Beispiel #1
0
 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;
 }
Beispiel #2
0
 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();
     }
 }