/** * Handler for the publication change event. * * @param MetaPublication $p_oldPublication * @param MetaPublication $p_newPublication */ private function setPublicationHandler(MetaPublication $p_oldPublication, MetaPublication $p_newPublication) { static $publicationHandlerRunning = false; if ($publicationHandlerRunning || $p_newPublication->same_as($p_oldPublication)) { return; } $publicationHandlerRunning = true; if ($p_newPublication->defined() && !$this->getLanguage()->defined()) { $this->setLanguageHandler($this->getLanguage(), $p_newPublication->default_language); } $this->setIssueHandler($this->getIssue(), new MetaIssue()); $this->m_readonlyProperties['url']->publication = $p_newPublication; $this->m_objects['publication'] = $p_newPublication; $publicationHandlerRunning = false; }
/** * Get publication by site name * * @return MetaPublication */ private function _getPublication() { $alias = preg_replace('/^' . $this->getScheme() . ':\\/\\//', '', $this->getBase()); $aliasObj = new Alias($alias); if ($aliasObj->exists()) { $publication = new MetaPublication($aliasObj->getPublicationId()); } if (empty($publication) || !$publication->defined()) { throw new InvalidArgumentException("Invalid site name '{$alias}' in URL.", self::INVALID_SITE_NAME); } return $publication; }