/** * Discovers components structure * * @return void */ protected function discoverStructure() { $finished = NenoSettings::get('installation_completed') == 1; if (!$finished) { $level = NenoSettings::get('installation_level', 0); if (!$this->isLeafLevel($level)) { $element = $this->getElementByLevel($level); if ($element == null && $level == 0) { // If there aren't any, let's create do not translate group if it doesn't exist NenoHelperBackend::createDoNotTranslateGroup(); $finished = true; } elseif ($element == null && $level != 0) { list($firstPart, $secondPart) = explode('.', $level); $firstPart--; if ($firstPart == 0) { NenoSettings::set('installation_level', $firstPart); } else { NenoSettings::set('installation_level', implode('.', array($firstPart, $secondPart))); } } else { /* @var $element NenoContentElementGroup */ $element->discoverElement(false); } } else { list($firstPart, $secondPart) = explode('.', $level); $firstPart--; if ($firstPart == 0) { NenoSettings::set('installation_level', $firstPart); } else { NenoSettings::set('installation_level', implode('.', array($firstPart, $secondPart))); } } } if ($finished) { echo 'ok'; } }
/** * Execute discovering process * * @return void */ public function processDiscoveringStep() { /* @var $db NenoDatabaseDriverMysqlx */ $db = JFactory::getDbo(); $query = $db->getQuery(true); $finished = NenoSettings::get('installation_completed') == 1; if (!$finished) { $level = NenoSettings::get('installation_level', 0); $element = $this->getElementByLevel($level); if ($element == null && $level == 0) { // If there aren't any, let's create do not translate group if it doesn't exist NenoHelperBackend::createDoNotTranslateGroup(); // Let's publish language plugins $query->clear()->update('#__extensions')->set('enabled = 1')->where(array('element LIKE ' . $db->quote('languagecode'), 'element LIKE ' . $db->quote('languagefilter')), 'OR'); $db->setQuery($query); $db->execute(); // Let's create menu structure NenoHelper::createMenuStructure(); NenoSettings::set('installation_completed', 1); $finished = true; } elseif ($element == null && $level != 0) { list($firstPart, $secondPart) = explode('.', $level); $firstPart--; if ($firstPart == 0) { NenoSettings::set('installation_level', $firstPart); } else { NenoSettings::set('installation_level', implode('.', array($firstPart, $secondPart))); } } else { $element->discoverElement(); } } if ($finished) { echo 'ok'; } JFactory::getApplication()->close(); }