type = $type; if ( empty($label) ) { $label = ucfirst($type); } $this->label = $label; parent::__construct(); $this->setTargetFromType(); } /** * Set the item target link from its type */ protected function setTargetFromType() : void { global $INFO; global $plugin_controller; $language = null; // If one of the "translate" or "translation" plugins is activated, get the language code for the current page if ( ! $plugin_controller->isdisabled('translate') ) { $translate_plugin =& $plugin_controller->load('helper', 'translate'); $language = $translate_plugin->getPageLanguage(); } elseif ( ! $plugin_controller->isdisabled('translation') ) { $translation_plugin =& $plugin_controller->load('helper', 'translation'); $language = $translation_plugin->getLangPart($INFO['id']); } // If the top level namespace is a language one, the children namespace should be inserted inside it if ( $language !== null && preg_match("/^$language:/", $INFO['id']) ) { $this->id = preg_replace( "/^$language:/", "$language:".$this->type.':', $INFO['id'] ); } else { $this->id = $this->type.':'.$INFO['id']; } $this->params = []; } }