コード例 #1
0
 /**
  * Show confirmation before moving anything
  *
  * @return void
  */
 public function show()
 {
     $input = JFactory::getApplication()->input;
     // Overwrite the view
     $input->set('view', 'moveelementconfirm');
     $groups = $input->get('groups', array(), 'array');
     $tables = $input->get('tables', array(), 'array');
     $files = $input->get('files', array(), 'files');
     // If a group is selected then load all the elements from that group
     if (!empty($groups)) {
         foreach ($groups as $groupId) {
             $group = NenoContentElementGroup::getGroup($groupId);
             // Handle tables
             $groupTables = $group->getTables();
             if (!empty($groupTables)) {
                 /* @var $groupTable NenoContentElementGroup */
                 foreach ($groupTables as $groupTable) {
                     // Add the table id to the tables array
                     $tables[] = $groupTable->getId();
                 }
             }
             // Handle files
             $groupFiles = $group->getLanguageFiles();
             if (!empty($groupFiles)) {
                 /* @var $groupFile NenoContentElementLanguageFile */
                 foreach ($groupFiles as $groupFile) {
                     // Add the file id to the files array
                     $files[] = $groupFile->getId();
                 }
             }
         }
     }
     // Remove duplicates
     array_unique($tables);
     array_unique($files);
     // Load table info
     if (!empty($tables)) {
         foreach ($tables as $key => $table) {
             $tables[$key] = NenoContentElementTable::load($table);
         }
     }
     // Load files info
     if (!empty($files)) {
         foreach ($files as $key => $file) {
             $files[$key] = NenoContentElementLanguageFile::load($file);
         }
     }
     // Show output
     // Get the view
     /* @var $view NenoViewMoveElementConfirm */
     $view = $this->getView('MoveElementConfirm', 'html');
     $view->groups = NenoHelper::convertNenoObjectListToJObjectList(NenoHelper::getGroups());
     // Assign data from the model
     $view->tables = NenoHelper::convertNenoObjectListToJObjectList($tables);
     $view->files = NenoHelper::convertNenoObjectListToJObjectList($files);
     // Display the view
     $view->display();
 }
コード例 #2
0
ファイル: language.php プロジェクト: andresmaeso/neno
 /**
  * Execute the task
  *
  * @param   array $taskData Task data
  *
  * @return bool True on success, false otherwise
  */
 public function run($taskData)
 {
     if (!empty($taskData['language'])) {
         $languageTag = $taskData['language'];
         $groups = NenoHelper::getGroups(false);
         /* @var $group NenoContentElementGroup */
         foreach ($groups as $group) {
             $group->generateContentForLanguage($languageTag);
         }
         // Publish language content
         $db = JFactory::getDbo();
         $query = $db->getQuery(true);
         $query->update('#__languages')->set('published = 1')->where('lang_code = ' . $db->quote($languageTag));
         $db->setQuery($query);
         $db->execute();
     }
 }
コード例 #3
0
ファイル: groupselements.php プロジェクト: javigomez/neno
 /**
  * {@inheritdoc}
  *
  * @return array
  */
 public function getItems()
 {
     $this->setState('list.limit', 0);
     $groups = NenoHelper::getGroups(true);
     return $groups;
 }
コード例 #4
0
ファイル: view.html.php プロジェクト: andresmaeso/neno
 /**
  * Load group data
  *
  * @return void
  */
 protected function getGroupData()
 {
     $groups = NenoHelper::getGroups(false);
     /* @var $group NenoContentElementGroup */
     foreach ($groups as $key => $group) {
         $groups[$key] = $group->prepareDataForView();
     }
     $this->groups = $groups;
 }
コード例 #5
0
ファイル: installation.php プロジェクト: andresmaeso/neno
 /**
  * Get data for the installation step
  *
  * @param   int $step Step number
  *
  * @return stdClass
  */
 protected function getDataForStep($step)
 {
     $data = new stdClass();
     switch ($step) {
         case 1:
             $languages = NenoHelper::findLanguages(true);
             $data->select_widget = JHtml::_('select.genericlist', $languages, 'source_language', null, 'iso', 'name', NenoSettings::get('source_language'));
             break;
         case 3:
             $language = JFactory::getLanguage();
             $default = NenoSettings::get('source_language');
             $knownLanguages = $language->getKnownLanguages();
             $languagesData = array();
             $defaultTranslationsMethods = NenoHelper::getDefaultTranslationMethods();
             $db = JFactory::getDbo();
             $query = $db->getQuery(true);
             $query->insert('#__neno_content_language_defaults')->columns(array('lang', 'translation_method_id', 'ordering'));
             $insert = false;
             foreach ($knownLanguages as $key => $knownLanguage) {
                 if ($knownLanguage['tag'] != $default) {
                     $insert = true;
                     $languagesData[$key] = $knownLanguage;
                     $languagesData[$key]['lang_code'] = $knownLanguage['tag'];
                     $languagesData[$key]['title'] = $knownLanguage['name'];
                     $languagesData[$key]['translationMethods'] = $defaultTranslationsMethods;
                     $languagesData[$key]['errors'] = NenoHelper::getLanguageErrors($languagesData[$key]);
                     $languagesData[$key]['placement'] = 'installation';
                     $languagesData[$key]['image'] = NenoHelper::getLanguageImage($knownLanguage['tag']);
                     $languagesData[$key]['published'] = NenoHelper::isLanguagePublished($knownLanguage['tag']);
                     $languagesData[$key]['comment'] = NenoHelper::getLanguageTranslatorComment($knownLanguage['tag']);
                     foreach ($defaultTranslationsMethods as $ordering => $defaultTranslationsMethod) {
                         $query->values($db->quote($knownLanguage['tag']) . ',' . $defaultTranslationsMethod->id . ',' . ($ordering + 1));
                     }
                 }
             }
             if ($insert) {
                 $db->setQuery($query);
                 $db->execute();
             }
             $data->languages = $languagesData;
             break;
         case 4:
             /* @var $db NenoDatabaseDriverMysqlx */
             $db = JFactory::getDbo();
             $query = $db->getQuery(true);
             $tablesIgnored = NenoHelper::getDoNotTranslateTables();
             /* @var $config \Joomla\Registry\Registry */
             $config = JFactory::getConfig();
             $query->select('DISTINCT TABLE_NAME')->from('INFORMATION_SCHEMA.COLUMNS')->where(array('COLUMN_NAME = ' . $db->quote('language'), 'TABLE_SCHEMA = ' . $db->quote($config->get('db')), 'TABLE_NAME NOT LIKE ' . $db->quote('%neno%'), 'TABLE_NAME NOT LIKE ' . $db->quote('%\\_\\_%'), 'TABLE_NAME NOT LIKE ' . $db->quote('%menu')));
             $db->setQuery($query);
             $tables = $db->loadArray();
             $tablesFound = array();
             foreach ($tables as $table) {
                 if (!in_array(str_replace($db->getPrefix(), '#__', $table), $tablesIgnored)) {
                     $sourceLanguage = NenoSettings::get('source_language');
                     $sourceLanguageParts = explode('-', $sourceLanguage);
                     $query->clear()->select(array('COUNT(*) AS counter', 'language', $db->quote($table) . ' AS `table`'))->from($db->quoteName($table))->where(array('language <> ' . $db->quote('*'), 'language <> ' . $db->quote(''), 'language <> ' . $db->quote($sourceLanguage), 'language <> ' . $db->quote($sourceLanguageParts[0])))->group('language');
                     $db->setQuery($query);
                     $recordsFound = $db->loadObjectList();
                     if (!empty($recordsFound)) {
                         $tablesFound = array_merge($tablesFound, $recordsFound);
                     }
                 }
             }
             $data->tablesFound = $tablesFound;
             break;
         case 5:
             $groups = NenoHelper::getGroups();
             /* @var $group NenoContentElementGroup */
             foreach ($groups as $key => $group) {
                 $group->getTables();
                 $groups[$key] = $group->prepareDataForView();
             }
             $data->groups = $groups;
             break;
     }
     return $data;
 }