/** * Execute the task * * @param array $taskData Task data * * @return bool True on success, false otherwise */ public function run($taskData) { /* @var $db NenoDatabaseDriverMysqlx */ $db = JFactory::getDbo(); $query = $db->getQuery(true); $extensions = $db->quote(NenoHelper::whichExtensionsShouldBeTranslated()); $query->select('e.*')->from('`#__extensions` AS e')->where(array('e.type IN (' . implode(',', $extensions) . ')', 'e.name NOT LIKE \'%neno\'', 'NOT EXISTS (SELECT 1 FROM #__neno_content_element_groups_x_extensions AS ge WHERE ge.extension_id = e.extension_id)'))->order('name'); $db->setQuery($query); $extensions = $db->loadAssocList(); foreach ($extensions as $extension) { NenoHelper::discoverExtension($extension); } return true; }
/** * Discover extension * * @param integer $extensionId Extension Id * * @return void */ protected function discoverExtension($extensionId) { $db = JFactory::getDbo(); $query = $db->getQuery(true); $extensions = $db->quote(NenoHelper::whichExtensionsShouldBeTranslated()); $query->select('*')->from('#__extensions')->where(array('extension_id = ' . (int) $extensionId, 'type IN (' . implode(',', $extensions) . ')')); $db->setQuery($query); $extensionData = $db->loadAssoc(); if (!empty($extensionData) && strpos($extensionData['element'], 'neno') === false) { NenoHelper::discoverExtension($extensionData); } }
/** * Event triggered after update an extension * * @param JInstaller $installer Installer instance * @param int $extensionId Extension Id * * @return void */ public function onExtensionAfterUpdate($installer, $extensionId) { $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select('*')->from('#__extensions')->where('extension_id = ' . (int) $extensionId); $db->setQuery($query); $extensionData = $db->loadAssoc(); if (!empty($extensionData) && strpos($extensionData['element'], 'neno') === false) { NenoHelper::discoverExtension($extensionData); } }