Пример #1
0
 /**
  * Gets the url for a page url entity
  * @param PageUrl $pageUrl The page url as stored in the database
  * @param array $additionalParameters Additional parameters; will override stored parameters with same keys
  * @return string Returns the page url
  */
 static function Url(PageUrl $pageUrl, array $additionalParameters = array())
 {
     $list = new PageParamListProvider($pageUrl);
     $params = $list->ToArray();
     foreach ($additionalParameters as $key => $value) {
         $params[$key] = $value;
     }
     return self::PageUrl($pageUrl->GetPage(), $params, $pageUrl->GetFragment());
 }
Пример #2
0
 /**
  * Creates a new page url selector
  * @param string $prefix The prefix
  * @param string $label The selector label
  * @param PageUrl $pageUrl The pre-selected page url
  */
 function __construct($prefix, $label = '', PageUrl $pageUrl = null)
 {
     $this->disabledPageIDs = array();
     $this->prefix = $prefix;
     $this->label = $label;
     $this->site = null;
     $this->pageField = Input::Hidden($prefix . 'Page');
     $this->paramsField = Input::Hidden($prefix . 'Params');
     $this->fragmentField = Input::Hidden($prefix . 'Fragment');
     $this->serializer = new ArrayLinesSerializer();
     if ($pageUrl && $pageUrl->Exists()) {
         $this->url = FrontendRouter::Url($pageUrl);
         $this->pageField->SetValue($pageUrl->GetPage()->GetID());
         $list = new PageParamListProvider($pageUrl);
         $this->paramsField->SetValue($this->serializer->ArrayToLines($list->ToArray()));
         $this->fragmentField->SetValue($pageUrl->GetFragment());
     }
 }