コード例 #1
0
ファイル: componentlist.php プロジェクト: thangredweb/redCORE
 /**
  * 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];
 }
コード例 #2
0
ファイル: config.php プロジェクト: thangredweb/redCORE
 /**
  * Loading of related XML files
  *
  * @param   string  $extensionName  Extension name
  *
  * @return  array  List of objects
  */
 public function loadContentElements($extensionName = '')
 {
     return RTranslationHelper::getContentElements($extensionName);
 }
コード例 #3
0
ファイル: table.php プロジェクト: thangredweb/redCORE
 /**
  * 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;
 }