Ejemplo n.º 1
0
 /**
  * ブロックファイルに応じて tpl_mainpage を設定する
  *
  * @param  string $bloc_file ブロックファイル名
  * @return void
  */
 public function setTplMainpage($bloc_file)
 {
     if (Utils::isAbsoluteRealPath($bloc_file)) {
         $this->tpl_mainpage = $bloc_file;
     } else {
         $this->tpl_mainpage = Application::alias('eccube.helper.page_layout')->getTemplatePath($this->objDisplay->detectDevice()) . BLOC_DIR . $bloc_file;
     }
     $this->setTemplate($this->tpl_mainpage);
 }
/**
 * 数値を数字絵文字に変換する。
 *
 * 入力が0~9ではない場合、または、携帯端末からのアクセスではない場合は、
 * 入力を [ と ] で囲んだ文字列を返す。
 *
 * @param string $value 入力
 * @return string 出力
 */
function smarty_modifier_numeric_emoji($value)
{
    // 数字絵文字 (0~9) の絵文字番号
    static $numeric_emoji_index = array('134', '125', '126', '127', '128', '129', '130', '131', '132', '133');
    if (Display::detectDevice() == DEVICE_TYPE_MOBILE && isset($numeric_emoji_index[$value])) {
        return '[emoji:' . $numeric_emoji_index[$value] . ']';
    } else {
        return '[' . $value . ']';
    }
}
Ejemplo n.º 3
0
 /**
  * Page のレスポンス送信(ダウンロード).
  *
  * @param string $file_name
  * @param string $data
  * @return void
  */
 public function sendResponseCSV($file_name, $data)
 {
     $this->objDisplay->prepare($this);
     $this->objDisplay->addHeader('Content-disposition', "attachment; filename={$file_name}");
     $this->objDisplay->addHeader('Content-type', "application/octet-stream; name={$file_name}");
     $this->objDisplay->addHeader('Cache-Control', '');
     $this->objDisplay->addHeader('Pragma', '');
     $this->objDisplay->response->body = $data;
     $this->objDisplay->response->write();
     Application::alias('eccube.response')->actionExit();
 }
Ejemplo n.º 4
0
/**
 * marqueeタグで囲む。
 *
 * DoCoMoの携帯端末の場合はmarqueeを使用しない。
 *
 * @return string 出力
 */
function smarty_block_marquee($params, $content, &$smarty, &$repeat)
{
    // {/marquee}の場合のみ出力する。
    if ($repeat || !isset($content)) {
        return null;
    }
    // 末尾の改行などを取り除く。
    $content = rtrim($content);
    // marqueeタグを使用しない場合
    if (Display::detectDevice() == DEVICE_TYPE_MOBILE && MobileUserAgent::getCarrier() == 'docomo') {
        return "<div>\n{$content}\n</div>\n";
    }
    return "<marquee>\n{$content}\n</marquee>\n";
}
Ejemplo n.º 5
0
 /**
  * Page のレスポンス送信.
  *
  * @return void
  */
 public function sendResponse()
 {
     $objPlugin = PluginHelper::getSingletonInstance($this->plugin_activate_flg);
     // ローカルフックポイントを実行
     $parent_class_name = get_parent_class($this);
     $objPlugin->doAction($parent_class_name . '_action_after', array($this));
     $class_name = get_class($this);
     if ($class_name != $parent_class_name) {
         $objPlugin->doAction($class_name . '_action_after', array($this));
     }
     // HeadNaviにpluginテンプレートを追加する.
     $objPlugin->setHeadNaviBlocs($this->arrPageLayout['HeadNavi']);
     // スーパーフックポイントを実行.
     $objPlugin->doAction('LC_Page_process', array($this));
     $this->objDisplay->prepare($this, true);
     $this->objDisplay->response->write();
 }