CampContext::setLanguageHandler PHP Метод

setLanguageHandler() приватный Метод

Handler for the language change event.
private setLanguageHandler ( MetaLanguage $p_oldLanguage, MetaLanguage $p_newLanguage )
$p_oldLanguage MetaLanguage
$p_newLanguage MetaLanguage
    private function setLanguageHandler(MetaLanguage $p_oldLanguage, MetaLanguage $p_newLanguage)
    {
        static $languageHandlerRunning = false;
        if ($languageHandlerRunning || $p_newLanguage->same_as($p_oldLanguage)) {
            return;
        }
        $languageHandlerRunning = true;
        $this->m_readonlyProperties['url']->language = $p_newLanguage;
        $this->m_objects['language'] = $p_newLanguage;
        if ($this->article->defined()) {
            $oldArticle = $this->m_objects['article'];
            $newArticle = new MetaArticle($p_newLanguage->number, $oldArticle->number);
            $this->setArticleHandler($oldArticle, $newArticle);
        }
        if ($this->section->defined() && !$this->m_objects['article']->defined()) {
            $oldSection = $this->m_objects['section'];
            $newSection = new MetaSection($oldSection->publication->identifier, $oldSection->issue->number, $p_newLanguage->number, $oldSection->number);
            $this->setSectionHandler($oldSection, $newSection);
        }
        if ($this->issue->defined() && !$this->m_objects['section']->defined()) {
            $oldIssue = $this->m_objects['issue'];
            $newIssue = new MetaIssue($oldIssue->publication->identifier, $p_newLanguage->number, $oldIssue->number);
            $this->setIssueHandler($oldIssue, $newIssue);
        }
        $languageHandlerRunning = false;
    }