Example #1
0
 protected function init()
 {
     if (!parent::init()) {
         return false;
     }
     // ignore params which may hurt caching such as callback, playSessionId
     if (kConf::hasParam('playmanifest_ignore_params')) {
         $ignoreParams = kConf::get('playmanifest_ignore_params');
         foreach ($ignoreParams as $paramName) {
             unset($this->_params[$paramName]);
         }
     }
     $this->_playbackContext = isset($this->_params['playbackContext']) ? $this->_params['playbackContext'] : null;
     unset($this->_params['playbackContext']);
     $this->_deliveryCode = isset($this->_params['deliveryCode']) ? $this->_params['deliveryCode'] : null;
     unset($this->_params['deliveryCode']);
     // take only the hostname part of the referrer parameter of baseEntry.getContextData
     if (isset($this->_params['referrer'])) {
         $referrer = base64_decode(str_replace(" ", "+", $this->_params['referrer']));
         if (!is_string($referrer)) {
             $referrer = "";
         }
         unset($this->_params['referrer']);
     } else {
         $referrer = self::getHttpReferrer();
     }
     $this->_referrers[] = $referrer;
     $this->finalizeCacheKey();
     $this->addExtraFields();
     return true;
 }
 protected function init()
 {
     if (!parent::init()) {
         return false;
     }
     self::handleSessionStart($this->_params);
     // remove parameters that do not affect the api result
     foreach (kConf::get('v3cache_ignore_params') as $name) {
         unset($this->_params[$name]);
     }
     unset($this->_params['kalsig']);
     unset($this->_params['clientTag']);
     unset($this->_params['callback']);
     $this->_params['___cache___uri'] = $_SERVER['SCRIPT_NAME'];
     // extract any baseEntry.getContextData referrer parameters
     for ($i = 0;; $i++) {
         $prefix = $i ? "{$i}:" : "";
         // 0 = try single request, >0 = try multirequest
         if (!isset($this->_params["{$prefix}service"]) || !isset($this->_params["{$prefix}action"])) {
             if (!$i) {
                 // could not find service/action, try multirequest - 1:service/1:action
                 continue;
             }
             break;
         }
         $service = $this->_params["{$prefix}service"];
         $action = $this->_params["{$prefix}action"];
         if (strtolower($service) != 'baseentry' || strtolower($action) != 'getcontextdata') {
             continue;
         }
         $referrerKey = "{$prefix}contextDataParams:referrer";
         if (isset($this->_params[$referrerKey])) {
             $referrer = $this->_params[$referrerKey];
             unset($this->_params[$referrerKey]);
         } else {
             $referrer = self::getHttpReferrer();
         }
         $this->_referrers[] = $referrer;
     }
     $this->finalizeCacheKey();
     $this->addExtraFields();
     return true;
 }