public function setRewriteUrl($value) { try { if (!$this->getId()) { $this->setId(Document::getGenericDocument($this)->getId()); } $con = Propel::getConnection(); $con->begin(); // $rewriteUrl = UrlrewritePeer::retrieveByPk($value); $c = new Criteria(); $c->add(UrlrewritePeer::PAGE_ID, $this->getId()); $rewriteUrl = UrlrewritePeer::doSelectOne($c); //$rewriteUrl = Document::getDocumentInstance($value); $value = trim($value); if ($rewriteUrl) { if ($value != '') { $value = Urlrewrite::checkRewriteUrl($value, $this->getId()); $rewriteUrl->setLabel($value); $rewriteUrl->save(null, $this); } else { if ($value == '') { $rewriteUrl->delete(); } } } else { if ($value) { $value = Urlrewrite::checkRewriteUrl($value, $this->getId()); $rewriteUrl = new Urlrewrite(); $rewriteUrl->setLabel($value); $rewriteUrl->setPageId($this->getId()); $rewriteUrl->save(null, $this); } } $con->commit(); return true; } catch (Exception $e) { $con->rollback(); throw $e; } return true; }
public function executeDisplay() { $parameters = $this->getRequest()->getParameterHolder()->getAll(); $culture = $this->getUser()->getCulture(); $user = $this->getUser()->getSubscriber(); if (isset($parameters['rewriteUrl'])) { if (isset($parameters['pageref'])) { $document = Document::getDocumentInstance($parameters['pageref']); } else { if (BackendService::loadUrlRelations()) { if (array_key_exists('urlRelations', $_SESSION) && array_key_exists($parameters['rewriteUrl'], $_SESSION['urlRelations'])) { $documentId = $_SESSION['urlRelations'][$parameters['rewriteUrl']]; $document = Document::getDocumentInstance($documentId); } } else { $c = new Criteria(); $c->add(UrlrewritePeer::LABEL, $parameters['rewriteUrl']); $rewriteUrl = UrlrewritePeer::doSelectOne($c); /*if ($rewriteUrl && array_key_exists('sf_culture', $parameters)) { $document = Document::getDocumentInstance($rewriteUrl->getPageId()); if(substr(get_class($document), -4) == "I18n") { $parent = Document::getParentOf($rewriteUrl->getPageId()); $document = Document::getDocumentInstance($parent->getId()); } } else*/ if ($rewriteUrl) { $document = Document::getDocumentInstance($rewriteUrl->getPageId()); } } } if (!isset($document)) { $elements = explode("_", substr($parameters['rewriteUrl'], 0, -5)); $id = array_pop($elements); $key = $elements[0]; if (Document::getStatus($id) == UtilsHelper::STATUS_ACTIVE) { if ($key == "news") { if ($document = Document::getDocumentByExclusiveTag("website_page_newslist")) { $this->getRequest()->setParameter("month", $id); $this->getRequest()->setParameter("year", $elements[2]); $this->pageTitle = "News - " . $elements[1] . " " . $elements[2]; } } else { $rewritedDoc = Document::getDocumentInstance($id); if ($rewritedDoc) { $documentClass = get_class($rewritedDoc); if ($document = Document::getDocumentByExclusiveTag("website_page_" . $documentClass . "_detail")) { $this->getRequest()->setParameter($documentClass . "_id", $id); /*if(class_exists($documentClass."I18n")) $this->pageTitle = $rewritedDoc->getLabelI18n(); else*/ $this->pageTitle = $rewritedDoc->getLabel(); } } } } } } else { if (array_key_exists('pageref', $parameters) && is_numeric($parameters['pageref'])) { $document = Document::getDocumentInstance($parameters['pageref']); } else { $document = Document::getDocumentByExclusiveTag('website_page_home'); } } if (isset($document)) { //$page = Document::getDocumentByCulture($document, $culture); //if(Document::getStatus($document->getId()) != UtilsHelper::STATUS_ACTIVE) $this->forward404(); $page = $document; if ($page->getPublicationStatus() != UtilsHelper::STATUS_ACTIVE) { $this->forward404(); } } if (isset($page) && get_class($page) == "Page") { //$culture = $pageI18n->getCulture(); //$this->getUser()->setCulture($culture); } else { $page = null; } if ($page && $page->getIsSecure() && !$this->getUser()->isAuthenticated()) { $page = Document::getDocumentByExclusiveTag('website_page_login'); } $this->pageDocument = $page; $this->forward404Unless($page); $this->getRequest()->setParameter('pageref', $page->getId()); $this->getRequest()->setParameter('rewriteUrl', null); switch ($page->getPageType()) { // case "ACTIONPAGE": return $this->redirect($page->getActionName()); case "EXTERNAL": return $this->redirect($page->getUrl()); case "REFERENCE": $this->redirect(Document::getDocumentInstance($page->getPageId())->getHref()); break; } if (is_object($user)) { if ($user->getBackend()) { $this->setLayout('editPageContent'); $this->content = $this->getContent(true); } else { $this->content = $this->getContent(); } $this->setResponseParams($user); } else { $this->content = $this->getContent(); $this->setResponseParams(); } }