public function getListJson($controller, $contents)
 {
     sfContext::getInstance()->getConfiguration()->loadHelpers(array('Helper', 'Tag', 'Escaping', 'opUtil'));
     $result = array();
     foreach ($contents as $content) {
         $data = array('number' => $content->number, 'level' => $content->level, 'member_url' => $controller->genUrl('@obj_member_profile?id=' . $content->member_id), 'member_name' => $content->Member->name, 'command' => $content->command, 'body' => $content->body, 'created_at' => $content->created_at);
         foreach ($data as &$d) {
             $d = sfOutputEscaper::escape(sfConfig::get('sf_escaping_method'), $d);
             $d = OpenPNE_KtaiEmoji::convertEmoji($d);
         }
         $data['body'] = op_auto_link_text(op_decoration(nl2br($data['body'])));
         $result[] = $data;
     }
     return json_encode($result);
 }
 /**
  * Executes this filter.
  *
  * @param sfFilterChain $filterChain A sfFilterChain instance
  */
 public function execute($filterChain)
 {
     $filterChain->execute();
     $response = $this->getContext()->getResponse();
     $request = $this->getContext()->getRequest();
     $content = $response->getContent();
     if (!$request->isMobile()) {
         list($list, $content) = opToolkit::replacePatternsToMarker($content);
     }
     $content = OpenPNE_KtaiEmoji::convertEmoji($content);
     if (!$request->isMobile()) {
         $content = str_replace(array_keys($list), array_values($list), $content);
     }
     $response->setContent($content);
 }
 /**
  * rewrite
  *
  * @param string $body
  * @return string
  */
 public function rewrite($body, $contentType, $isAutoConvert = false)
 {
     $patterns = array();
     $replacements = array();
     if ($isAutoConvert) {
         $patterns[] = "/<\\?xml(.*)encoding=[\"'].*[\"']/iU";
         $replacements[] = '<?xml${1}encoding="shift-jis"';
         $patterns[] = "/<meta(.*)content=[\"'](.*);\\s*charset=(.*)(;.*)?[\"'](.*)>/iU";
         $replacements[] = '<meta${1}content="${2}; charset=shift-jis${4}"${5}>';
     }
     $partials = array($this->action->getPartial('global/partsPageTitle', array('title' => $this->action->application->getTitle())), $this->action->getPartial('application/renderFooter', array('application' => $this->action->application)));
     if ($this->action->getRequest()->getMobile()->isDoCoMo() && opConfig::get('font_size')) {
         $pattern_start_tag = '/(<td.*?>)/';
         $replacement_start_tag = '$1<font size="2">';
         $pattern_end_tag = '</td>';
         $replacement_end_tag = '</font></td>';
         $partials = preg_replace($pattern_start_tag, $replacement_start_tag, $partials);
         $partials = str_replace($pattern_end_tag, $replacement_end_tag, $partials);
         foreach ($partials as &$partial) {
             $partial = '<font size="2">' . $partial . '</font>';
         }
     }
     if (!$isAutoConvert && 'UTF-8' !== $this->getEncoding($body, $contentType)) {
         foreach ($partials as &$partial) {
             $partial = mb_convert_encoding($partial, $this->getEncoding($body, $contentType), 'UTF-8');
         }
     }
     $patterns[] = "/<body.*>/iU";
     $replacements[] = '${0}' . $partials[0];
     $patterns[] = "/<\\/body>/i";
     $replacements[] = $partials[1] . '${0}';
     $urlPatterns = array("/<(a)(.*)href=[\"']([a-zA-Z]+):([a-zA-Z]+)(?:\\?(.*))?[\"'](.*)>/iU", "/<(form)(.*)action=[\"']([a-zA-Z]+):([a-zA-Z]+)(?:\\?(.*))?[\"'](.*)>/iU");
     $body = preg_replace_callback($urlPatterns, array($this, 'rewriteUrl'), $body);
     if ($isAutoConvert) {
         // for Emoji
         if ($this->action->getRequest()->getMobile()->isEZweb()) {
             $body = preg_replace_callback('/\\xEE[\\xB1-\\xB3\\xB5-\\xB6\\xBD-\\xBF][\\x80-\\xBF]|\\xEF[\\x81-\\x83][\\x80-\\xBF]/', array($this, 'convertEZwebEmoji'), $body);
         } elseif ($this->action->getRequest()->getMobile()->isSoftBank()) {
             $body = preg_replace_callback('/\\xEE[\\x80-\\x81\\x84-\\x85\\x88-\\x89\\x8C-\\x8D\\x90-\\x91\\x94][\\x80-\\xBF]/', array($this, 'convertSoftBankEmoji'), $body);
         }
         return OpenPNE_KtaiEmoji::convertEmoji(mb_convert_encoding(preg_replace($patterns, $replacements, $body), 'SJIS-win', 'UTF-8'));
     }
     return preg_replace($patterns, $replacements, $body);
 }