/** * @return null */ public function initialize($options = null) { if (sfJpMobile::isMobile()) { ini_set("session.use_trans_sid", 1); ini_set("session.use_cookies", 0); ini_set("session.use_only_cookies", 0); } else { ini_set("session.use_trans_sid", 0); ini_set("session.use_cookies", 1); } parent::initialize($options); }
protected function renderFile($_sfFile) { $info = pathinfo($_sfFile); $base = "{$info['dirname']}/{$info['filename']}"; $filename = $base . ucfirst(strtolower(sfJpMobile::getCarrierName())) . '.' . $info['extension']; if (!is_readable($filename)) { $filename = "{$base}Mobile.{$info['extension']}"; if (!sfJpMobile::isMobile() || !is_readable($filename)) { $filename = $_sfFile; } } return parent::renderFile($filename); }
/** * @see sfWebController */ public function redirect($url, $delay = 0, $statusCode = 302) { $url = $this->genUrl($url, true); if (sfJpMobile::isMobile() && !preg_match('/(\\?|&)' . preg_quote(SID) . '/', $url)) { $url .= (strpos($url, '?') === false ? '?' : '&') . SID; } if (sfConfig::get('sf_logging_enabled')) { $this->dispatcher->notify(new sfEvent($this, 'application.log', array(sprintf('Redirect to "%s"', $url)))); } // redirect $response = $this->context->getResponse(); $response->clearHttpHeaders(); $response->setStatusCode($statusCode); $response->setHttpHeader('Location', $url); $response->setContent(sprintf('<html><head><meta http-equiv="refresh" content="%d;url=%s"/></head></html>', $delay, htmlspecialchars($url, ENT_QUOTES, sfConfig::get('sf_charset')))); $response->send(); }
/** * 出力コンテンツの変換 * @return null */ private function _convertContent() { $content = $this->getContext()->getResponse()->getContent(); // 絵文字変換 if (!sfJpMobile::isDocomo()) { $content = sfJpMobile::getEmoji()->convert($content); } // 出力文字コードの変更 if (!sfJpMobile::isMobile() || !sfJpMobile::isSoftbank() && !sfJpMobile::isWillcom()) { $content = mb_convert_encoding($content, 'SJIS-win', 'UTF-8'); } $this->getContext()->getResponse()->setContent($content); }