Ejemplo n.º 1
0
 protected static function validInput(array &$data)
 {
     if (!isset($data['prefix']) or !is_string($data['prefix'])) {
         return FALSE;
     }
     $data['prefix'] = $data['prefix'];
     $data['regex'] = $data['prefix'] . '/' . self::REGEXP;
     $data['class'] = __CLASS__;
     $data['controller'] = self::CONTROLLER;
     return parent::validInput($data);
 }
Ejemplo n.º 2
0
 protected static function validInput(array &$data)
 {
     if (!parent::validInput($data) or !isset($data['nodeid']) or !is_numeric($data['nodeid'])) {
         return FALSE;
     }
     $node = vB_Library::instance('node')->getNodeBare($this->arguments['nodeid']);
     if (empty($node) or !empty($node['errors'])) {
         return FALSE;
     }
     $this->title = $node['title'];
 }
Ejemplo n.º 3
0
 protected static function validInput(array &$data)
 {
     if (!isset($data['pageid']) or !is_numeric($data['pageid']) or !isset($data['prefix'])) {
         return FALSE;
     }
     $data['regex'] = $data['prefix'] . '/' . self::REGEXP;
     $data['class'] = __CLASS__;
     $data['controller'] = 'page';
     $data['action'] = 'index';
     $data['arguments'] = serialize(array('pageid' => $data['pageid'], 'tab' => '$tab'));
     return parent::validInput($data);
 }
Ejemplo n.º 4
0
 protected static function validInput(array &$data)
 {
     if (!isset($data['contentid']) or !is_numeric($data['contentid']) or !isset($data['prefix']) or !isset($data['action'])) {
         return FALSE;
     }
     $data['regex'] = $data['prefix'];
     $data['class'] = __CLASS__;
     $data['controller'] = 'search';
     $data['arguments'] = '';
     //serialize(array('pageid' => $data['contentid']));
     return parent::validInput($data);
 }
Ejemplo n.º 5
0
 protected static function validInput(array &$data)
 {
     if (!parent::validInput($data) or !isset($data['nodeid']) or !is_numeric($data['nodeid'])) {
         return FALSE;
     }
     $data['pageid'] = intval($data['pageid']);
     $data['prefix'] = $data['prefix'];
     $data['regex'] = $data['prefix'] . '/' . self::REGEXP;
     $data['arguments'] = serialize(array('nodeid' => '$nodeid', 'pageid' => $data['pageid']));
     $data['class'] = __CLASS__;
     $data['controller'] = 'page';
     $data['action'] = 'index';
     // this field will be used to delete the route when deleting the channel (contains channel id)
     unset($data['pageid']);
     return parent::validInput($data);
 }
Ejemplo n.º 6
0
 protected static function validInput(array &$data)
 {
     if (!isset($data['pageid']) or !is_numeric($data['pageid']) or !isset($data['prefix'])) {
         return false;
     }
     $data['regex'] = $data['prefix'] . '/' . self::REGEXP;
     $data['class'] = __CLASS__;
     $data['controller'] = 'page';
     $data['action'] = 'index';
     $arguments = unserialize($data['arguments']);
     if (!$arguments) {
         return false;
     }
     $arguments['pageid'] = $data['pageid'];
     $data['arguments'] = serialize($arguments);
     $result = parent::validInput($data);
     return $result;
 }
Ejemplo n.º 7
0
 protected static function validInput(array &$data)
 {
     // ignore page number
     unset($data['pagenum']);
     if (isset($data['channelid'])) {
         $data['nodeid'] = $data['channelid'];
         unset($data['channelid']);
     }
     if (!isset($data['nodeid']) or !is_numeric($data['nodeid']) or !isset($data['pageid']) or !is_numeric($data['pageid'])) {
         return FALSE;
     }
     $data['nodeid'] = intval($data['nodeid']);
     $data['pageid'] = intval($data['pageid']);
     if (!isset($data['prefix'])) {
         $newChannel = vB_Library::instance('node')->getNodeBare($data['nodeid']);
         //use urlident if we have it.
         if (empty($data['urlident'])) {
             $url = self::createPrefix($newChannel['parentid'], $newChannel['title'], false);
         } else {
             $url = self::createPrefix($newChannel['parentid'], $newChannel['urlident'], true);
         }
         $data['prefix'] = $url;
     }
     // special case, when prefix is empty (it's a home page route), the page shouldn't have a leading /
     if ($data['prefix'] === '') {
         $data['regex'] = '(?:page(?P<pagenum>[0-9]+))?';
     } else {
         $data['regex'] = preg_quote($data['prefix']) . '(?:/page(?P<pagenum>[0-9]+))?';
     }
     $data['class'] = __CLASS__;
     $data['controller'] = 'page';
     $data['action'] = 'index';
     $data['arguments'] = serialize(array('channelid' => $data['nodeid'], 'nodeid' => $data['nodeid'], 'pagenum' => '$pagenum', 'pageid' => $data['pageid']));
     // this field will be used to delete the route when deleting the channel (contains channel id)
     $data['contentid'] = $data['nodeid'];
     unset($data['nodeid']);
     unset($data['pageid']);
     return parent::validInput($data);
 }
Ejemplo n.º 8
0
 protected static function validInput(array &$data)
 {
     if (!isset($data['contentid']) or !is_numeric($data['contentid']) or !isset($data['prefix'])) {
         return FALSE;
     }
     $data['regex'] = $data['prefix'];
     $data['class'] = __CLASS__;
     /************************************************************************************************************/
     /** TODO: This class is being used for search routes since rev 58051 (fix for VBV-176) which doesn't
      * seem correct since they use a different controller and action.
      *  This is a temporal fix to prevent overwriting the controller and action, but eventually we'll need
      * to use a different route class. I prefer the route class to always set the controller and action.
      */
     if (!isset($data['controller'])) {
         $data['controller'] = 'page';
     }
     if (!isset($data['action'])) {
         $data['action'] = 'index';
     }
     /************************************************************************************************************/
     //in this case the contentid is the pageid
     $data['arguments'] = serialize(array('pageid' => $data['contentid']));
     return parent::validInput($data);
 }
Ejemplo n.º 9
0
 protected static function validInput(array &$data)
 {
     // ignore page number
     unset($data['pagenum']);
     if (!isset($data['channelid']) or !is_numeric($data['channelid']) or !isset($data['pageid']) or !is_numeric($data['pageid'])) {
         return FALSE;
     }
     $data['channelid'] = intval($data['channelid']);
     $data['pageid'] = intval($data['pageid']);
     if (!isset($data['prefix'])) {
         $channelUrl = self::getChannelURL($data['channelid']);
         if ($channelUrl and $channelUrl[0] == '/') {
             $channelUrl = substr($channelUrl, 1);
         }
         $data['prefix'] = $channelUrl;
         $data['regex'] = preg_quote($channelUrl) . '/' . self::REGEXP;
         $data['arguments'] = serialize(array('nodeid' => '$nodeid', 'pagenum' => '$pagenum', 'contentpagenum' => '$contentpagenum', 'channelid' => $data['channelid'], 'pageid' => $data['pageid']));
     } else {
         if (!isset($data['nodeid'])) {
             // when modifying the url for a conversation page, we need to store the conversation node id
             return FALSE;
         }
         // We have conversation route that's getting a special URL. Ex: /mySpecialTopic instead of /channelX/nodeId-topicTitle
         $data['regex'] = preg_quote($data['prefix']) . self::CUSTOM_URL_REGEXP;
         // omit appending  '/' since the regex begins with it
         $data['arguments'] = serialize(array('nodeid' => $data['nodeid'], 'customUrl' => true, 'pagenum' => '$pagenum', 'contentpagenum' => '$contentpagenum', 'channelid' => $data['channelid'], 'pageid' => $data['pageid']));
         unset($data['nodeid']);
     }
     $data['class'] = __CLASS__;
     $data['controller'] = 'page';
     $data['action'] = 'index';
     // this field will be used to delete the route when deleting the channel (contains channel id)
     $data['contentid'] = $data['channelid'];
     unset($data['channelid']);
     unset($data['pageid']);
     return parent::validInput($data);
 }