File Manager

Current Directory: /home/astoriaah/www/administrator/components/com_widgetkit/updates
Viewing File: /home/astoriaah/www/administrator/components/com_widgetkit/updates/2.2.0.php
<?php namespace YOOtheme\Widgetkit; class Update220 implements Update { public function run($app) { try { $db = $app['db']; $provider = $app['content']; $shortcode = $app['shortcode']; $contents = $provider->findAll(); $update = function ($data) use ($provider, $contents) { try { if (!@$data['id'] || !@$data['widget'] || !@$contents[$data['id']]) { return false; } $name = $data['widget']; $content = $contents[$data['id']]; unset($data['id'], $data['widget']); if (isset($content['_widget'])) { $content = clone $content; $content->setId(null); } $content['_widget'] = array('name' => $name, 'data' => $data); return $provider->save(array_filter($content->toArray())); } catch (\Exception $e) { \JError::raiseWarning(null, 'Error executing update to 2.2.0. ('.$e->getMessage().')'); } return false; }; foreach ($db->fetchAll(' SELECT :content as source, "introtext" as field, `id`, `introtext` as `value` FROM @content WHERE `introtext` LIKE :search UNION ALL SELECT :content as source, "fulltext" as field, `id`, `fulltext` as `value` FROM @content WHERE `fulltext` LIKE :search UNION ALL SELECT :modules as source, "content" as field, `id`, `content` as `value` FROM @modules WHERE `content` LIKE :search ', array( 'content' => $db->replacePrefix('@content'), 'modules' => $db->replacePrefix('@modules'), 'search' => '%[widgetkit%' ) ) as $result) { $db->update($result['source'], array($result['field'] => $shortcode->parse('widgetkit', $result['value'], function ($attrs, $param, $tag, $shortcode) use ($update) { return (!$data = $update($attrs)) ? $shortcode : "[{$tag} id=\"{$data['id']}\" name=\"{$data['name']}\"]"; })), array('id' => $result['id'])); } foreach ($db->fetchAll('SELECT `id`, `params` FROM @modules WHERE `module` = :module', array('module' => 'mod_widgetkit')) as $result) { if (!$params = json_decode($result['params'], true) or !isset($params['widgetkit']) || !($data = (is_array($params['widgetkit']) ? $params['widgetkit'] : json_decode($params['widgetkit'], true))) || !($data = $update($data)) ) { continue; } $params['widgetkit'] = json_encode(array('id' => $data['id'])); $db->update($db->replacePrefix('@modules'), array('params' => json_encode($params)), array('id' => $result['id'])); } } catch (\Exception $e) { \JError::raiseWarning(null, 'Error executing update to 2.2.0. ('.$e->getMessage().')'); } } } return new Update220();