/** * Display the view * * @param string $tpl Template name * * @return void * * @throws Exception */ public function display($tpl = null) { $this->langs = NenoHelper::getTargetLanguages(false); NenoHelperBackend::addSubmenu(''); $this->sidebar = JHtmlSidebar::render(); parent::display($tpl); }
/** * {@inheritdoc} * * @return boolean */ public function persist() { // If the table has been marked as translatable, let's check for the content element file if ($this->translate) { $this->checkTranslatableStatusFromContentElementFile(); } $result = parent::persist(); if ($result) { /* @var $db NenoDatabaseDriverMysqlx */ $db = JFactory::getDbo(); // If the table has been marked as translated if ($this->translate) { // Creates shadow tables and copy the content on it $db->createShadowTables($this->tableName); } /* @var $field NenoContentElementField */ foreach ($this->fields as $field) { $field->setTable($this)->setTranslate($field->isTranslatable() && $this->isTranslate())->persist(); if ($field->getFieldName() === 'language' && $this->isTranslate()) { $languages = NenoHelper::getTargetLanguages(); $defaultLanguage = NenoSettings::get('source_language'); foreach ($languages as $language) { if ($language->lang_code != $defaultLanguage) { $db->deleteContentElementsFromSourceTableToShadowTables($this->tableName, $language->lang_code); } } } } } return $result; }
/** * Refresh the translatable tables * * @return void */ public function refreshTranslatableTables() { $query = $this->getQuery(true); $query->select('table_name')->from('#__neno_content_element_tables')->where('translate = 1'); $manifestTablesObjectList = $this->executeQuery($query, true, true); $this->manifestTables = array(); if (!empty($manifestTablesObjectList)) { foreach ($manifestTablesObjectList as $object) { $this->manifestTables[] = $object->table_name; } } $this->languages = NenoHelper::getTargetLanguages(); }