/** * Method to get the options to populate to populate list * * @return array The field option objects. * * @since 1.0 */ protected function getOptions() { // Accepted modifiers $hash = md5($this->element); if (!isset(static::$cache[$hash])) { static::$cache[$hash] = parent::getOptions(); $lang = JFactory::getLanguage(); $options = array(); $db = JFactory::getDbo(); $query = $db->getQuery(true)->select('*')->from('#__extensions')->where('type=' . $db->quote('component')); // Setup the query $db->setQuery($query); // Return the result $components = $db->loadObjectList(); if (!empty($components)) { foreach ($components as $value) { $extension = $value->element; $source = JPATH_ADMINISTRATOR . '/components/' . $extension; $lang->load($extension . '.sys', JPATH_ADMINISTRATOR, null, false, true) || $lang->load($extension . '.sys', $source, null, false, true); $contentElements = ''; if ($this->getAttribute('loadContentElements', 'false') == 'true') { $contentElementsArray = RTranslationHelper::getContentElements($value->name); if (!empty($contentElementsArray)) { $contentElements = ' (' . count($contentElementsArray) . ')'; } } if ($this->getAttribute('showFullName', 'false') == 'true') { $title = JText::_($value->name); } else { $title = $value->name; } $options[] = JHtml::_('select.option', $value->element, $title . $contentElements); } static::$cache[$hash] = array_merge(static::$cache[$hash], $options); } } $component = JFactory::getApplication()->input->get->getString('component', ''); if (!empty($component)) { $this->value = $component; } return static::$cache[$hash]; }
/** * Loading of related XML files * * @param string $extensionName Extension name * * @return array List of objects */ public function loadContentElements($extensionName = '') { return RTranslationHelper::getContentElements($extensionName); }
/** * Preforms Batch action against all Content elements of given Extension * * @param string $option The Extension Name ex. com_redcore * @param string $action Action to preform * @param bool $showNotifications Show notification after each Action * * @return boolean Returns true if Action was successful */ public static function batchContentElements($option = 'com_redcore', $action = '', $showNotifications = true) { $contentElements = RTranslationHelper::getContentElements($option); if (!empty($contentElements)) { foreach ($contentElements as $contentElement) { switch ($action) { case 'install': self::installContentElement($option, $contentElement->contentElementXml, $showNotifications); break; case 'uninstall': self::uninstallContentElement($option, $contentElement->contentElementXml, $showNotifications); break; case 'purge': self::purgeContentElement($option, $contentElement->contentElementXml); break; case 'delete': self::deleteContentElement($option, $contentElement->contentElementXml); break; } } } // Delete missing tables as well if ($action == 'uninstall') { $translationTables = RTranslationHelper::getInstalledTranslationTables(); if (!empty($translationTables)) { foreach ($translationTables as $translationTableParams) { if ($option == $translationTableParams->option) { self::uninstallContentElement($option, $translationTableParams->xml, $showNotifications); } } } } return true; }