public function moveurltovideo()
 {
     $db = JFactory::getDBO();
     $db->setQuery('SELECT * FROM #__djmt_items');
     $items = $db->loadObjectList();
     $moved = 0;
     foreach ($items as $item) {
         $item->params = new JRegistry($item->params);
         $linktype = explode(';', $item->params->get('link_type', ''));
         if ($linktype[0] == 'url') {
             $video = DJVideoHelper::getVideo($item->params->get('link_url'));
             if (count($video->getErrors())) {
                 continue;
             }
             // not a video link
             if (empty($video->embed)) {
                 continue;
             }
             $db->setQuery('UPDATE #__djmt_items SET video=' . $db->quote($video->embed) . ' WHERE id=' . $item->id . ' AND (video IS NULL OR video=\'\')');
             $db->query();
             $moved++;
         }
     }
     $this->setRedirect(JRoute::_('index.php?option=com_djmediatools', false), 'Url link parameter moved to Video link successfully.');
     return true;
 }
 function postflight($type, $parent)
 {
     $db = JFactory::getDBO();
     if ($type == 'install') {
         $db->setQuery("UPDATE #__extensions SET enabled=1 WHERE type='plugin' AND (element='djmediatools' OR folder='djmediatools')");
         $db->query();
     }
     if ($type == 'update') {
         defined('DS') or define('DS', DIRECTORY_SEPARATOR);
         // fix doubled single album view
         if (version_compare($this->oldrelease, '2.0.0', 'lt')) {
             $path = JPATH_ROOT . DS . 'components' . DS . 'com_djmediatools' . DS . 'views' . DS . 'item' . DS . 'tmpl' . DS . 'default.xml';
             //JFactory::getApplication()->enqueueMessage($path);
             if (JFile::exists($path)) {
                 @unlink($path);
             }
         }
         // fix video column for updates from verion 1.3.4 to 1.4.beta2
         $fixvideo = false;
         if (version_compare($this->oldrelease, '1.3.4', 'ge') && version_compare($this->oldrelease, '1.4.beta3', 'lt')) {
             $config = JFactory::getConfig();
             $app = JFactory::getApplication();
             $db->setQuery("SELECT count(column_name) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '" . $config->get('dbprefix') . "djmt_items' AND table_schema = '" . $config->get('db') . "' AND column_name = 'video'");
             $result = $db->loadResult();
             if (!$result) {
                 $db->setQuery("ALTER TABLE `" . $config->get('dbprefix') . "djmt_items` ADD `video` VARCHAR( 255 ) NULL DEFAULT NULL AFTER `image`");
                 $db->query();
                 $fixvideo = true;
             }
         }
         // convert old video links into video field
         if ($fixvideo || version_compare($this->oldrelease, '1.3.4', 'lt')) {
             require_once JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_djmediatools' . DS . 'lib' . DS . 'video.php';
             $db->setQuery('SELECT * FROM #__djmt_items');
             $items = $db->loadObjectList();
             foreach ($items as $item) {
                 $item->params = new JRegistry($item->params);
                 $linktype = explode(';', $item->params->get('link_type', ''));
                 if ($linktype[0] == 'video') {
                     $video = DJVideoHelper::getVideo($item->params->get('video_link'));
                     $db->setQuery('UPDATE #__djmt_items SET video=' . $db->quote($video->embed) . ' WHERE id=' . $item->id);
                     $db->query();
                 }
             }
         }
     }
 }
 function postflight($type, $parent)
 {
     $db = JFactory::getDBO();
     $config = JFactory::getConfig();
     if ($type == 'install') {
         $db->setQuery("UPDATE #__extensions SET enabled=1 WHERE type='plugin' AND (element='djmediatools' OR folder='djmediatools')");
         $db->query();
     }
     if ($type == 'update') {
         defined('DS') or define('DS', DIRECTORY_SEPARATOR);
         // fix doubled single album view
         if (version_compare($this->oldrelease, '2.0.0', 'lt')) {
             $path = JPATH_ROOT . DS . 'components' . DS . 'com_djmediatools' . DS . 'views' . DS . 'item' . DS . 'tmpl' . DS . 'default.xml';
             //JFactory::getApplication()->enqueueMessage($path);
             if (JFile::exists($path)) {
                 @unlink($path);
             }
         }
         // fix video column for updates from verion 1.3.4 to 1.4.beta2
         $fixvideo = false;
         if (version_compare($this->oldrelease, '1.3.4', 'ge') && version_compare($this->oldrelease, '1.4.beta3', 'lt')) {
             $app = JFactory::getApplication();
             $db->setQuery("SELECT count(column_name) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '" . $config->get('dbprefix') . "djmt_items' AND table_schema = '" . $config->get('db') . "' AND column_name = 'video'");
             $result = $db->loadResult();
             if (!$result) {
                 $db->setQuery("ALTER TABLE `" . $config->get('dbprefix') . "djmt_items` ADD `video` VARCHAR( 255 ) NULL DEFAULT NULL AFTER `image`");
                 $db->query();
                 $fixvideo = true;
             }
         }
         // convert old video links into video field
         if ($fixvideo || version_compare($this->oldrelease, '1.3.4', 'lt')) {
             require_once JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_djmediatools' . DS . 'lib' . DS . 'video.php';
             $db->setQuery('SELECT * FROM #__djmt_items');
             $items = $db->loadObjectList();
             foreach ($items as $item) {
                 $item->params = new JRegistry($item->params);
                 $linktype = explode(';', $item->params->get('link_type', ''));
                 if ($linktype[0] == 'video') {
                     $video = DJVideoHelper::getVideo($item->params->get('video_link'));
                     $db->setQuery('UPDATE #__djmt_items SET video=' . $db->quote($video->embed) . ' WHERE id=' . $item->id);
                     $db->query();
                 }
             }
         }
         $db->setQuery("SELECT count(column_name) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '" . $config->get('dbprefix') . "djmt_albums' AND table_schema = '" . $config->get('db') . "' AND column_name = 'folder'");
         $result = $db->loadResult();
         if (!$result) {
             $db->setQuery("ALTER TABLE `" . $config->get('dbprefix') . "djmt_albums` ADD `folder` VARCHAR( 255 ) NULL DEFAULT NULL AFTER `alias`");
             $db->query();
         }
         // move images from joomla root to proper folder
         if (version_compare($this->oldrelease, '2.3.1', 'le')) {
             $db->setQuery("SELECT i.id, i.image, a.folder, a.id as aid, a.alias FROM #__djmt_items i, #__djmt_albums a WHERE i.catid=a.id AND i.publish_up > '2014-12-10 00:00:00'");
             $items = $db->loadObjectList();
             foreach ($items as $item) {
                 if (strpos($item->image, 'images/') !== 0 && strcasecmp(substr($item->image, 0, 4), 'http') != 0 || strpos($item->image, 'images/djmediatools/0-/') === 0) {
                     if (empty($item->folder) || $item->folder == 'images/djmediatools/0-') {
                         $item->folder = 'images/djmediatools/' . $item->aid . '-' . $item->alias;
                     }
                     $tmpPath = JPATH_ROOT . (strpos($item->image, '/') !== 0 ? DS : '') . str_replace('/', DS, $item->image);
                     $path = JPATH_ROOT . DS . str_replace('/', DS, $item->folder);
                     JFolder::create($path);
                     $filename = JFile::getName($item->image);
                     $name = JFile::stripExt($filename);
                     $ext = JFile::getExt($filename);
                     // prevent overriding the existing file with the same name
                     if (JFile::exists($path . DS . $filename)) {
                         $iterator = 1;
                         $newname = $name . '.' . $iterator . '.' . $ext;
                         while (JFile::exists($path . DS . $newname)) {
                             $iterator++;
                             $newname = $name . '.' . $iterator . '.' . $ext;
                         }
                         $filename = $newname;
                     }
                     if (JFile::move($tmpPath, $path . DS . $filename)) {
                         $db->setQuery('UPDATE #__djmt_items SET image=' . $db->quote($item->folder . '/' . $filename) . ' WHERE id=' . $item->id);
                         $db->query();
                     }
                 }
             }
             $db->setQuery("SELECT id, image, folder, alias FROM #__djmt_albums");
             $items = $db->loadObjectList();
             foreach ($items as $item) {
                 if ($item->folder == 'images/djmediatools/0-') {
                     $item->folder = 'images/djmediatools/' . $item->id . '-' . $item->alias;
                     $db->setQuery('UPDATE #__djmt_albums SET folder=' . $db->quote($item->folder) . ' WHERE id=' . $item->id);
                     $db->query();
                 }
                 if (strpos($item->image, 'images/djmediatools/0-/') === 0) {
                     $item->image = str_replace('images/djmediatools/0-', $item->folder, $item->image);
                     $db->setQuery('UPDATE #__djmt_albums SET image=' . $db->quote($item->image) . ' WHERE id=' . $item->id);
                     $db->query();
                 }
                 if (strpos($item->image, 'images/') !== 0 && strcasecmp(substr($item->image, 0, 4), 'http') != 0) {
                     $db->setQuery('UPDATE #__djmt_albums SET image=' . $db->quote($item->folder . $item->image) . ' WHERE id=' . $item->id);
                     $db->query();
                 }
             }
         }
     }
     $src = JPath::clean(JPATH_ROOT . '/media/djmediatools/djextensions/js');
     $dst = JPath::clean(JPATH_ROOT . '/media/djextensions/js');
     if (JFolder::exists($src)) {
         JFolder::create(JPath::clean(JPATH_ROOT . '/media/djextensions'));
         JFolder::move($src, $dst);
         JFolder::delete(JPath::clean(JPATH_ROOT . '/media/djmediatools/djextensions'));
     }
 }