ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Changeset 3682


Ignore:
Timestamp:
Aug 10, 2007, 1:08:59 AM (12 years ago)
Author:
ogawa
Message:

#1022:書き込み内のSNS内URLを、PC・携帯からのどちらでも見られるように変換

Location:
OpenPNE/branches/stable-2.8.x/webapp
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • OpenPNE/branches/stable-2.8.x/webapp/init.inc

    r1858 r3682  
    119119include_once 'PHP/Compat/Function/http_build_query.php';
    120120
     121//PC版URLを携帯版に変換して自動リンクするアクション
     122$GLOBALS['_OPENPNE_PC2KTAI_LINK_ACTION_LIST'] = array(
     123    'page_fh_diary'         => 'page_fh_diary',
     124    'page_c_home'           => 'page_c_home',
     125    'page_c_topic_detail'   => 'page_c_bbs',
     126    'page_c_event_detail'   => 'page_c_bbs',
     127    'page_f_home'           => 'page_f_home',
     128);
     129
    121130?>
  • OpenPNE/branches/stable-2.8.x/webapp/lib/smarty_plugins/modifier.t_url2a_ktai.php

    r2734 r3682  
    1616    $openpne_url = $parts['host'] . $parts['path'];
    1717
    18     $url_pattern = sprintf('/https?:\/\/%s\?m=pc&a=(page_fh_diary(?:[a-zA-Z0-9_=]|&)*)/', preg_quote($openpne_url, '/'));
     18    $url_pattern = sprintf('/(https?:\/\/%s)(?:index.php)?\?m=pc&a=(\w+)((?:[a-zA-Z0-9_=]|&)*)/', preg_quote($openpne_url, '/'));
    1919    return preg_replace_callback($url_pattern, 'smarty_modifier_t_url2a_ktai_callback', $string);
    2020}
     
    2222function smarty_modifier_t_url2a_ktai_callback($matches)
    2323{
    24     $url = str_replace('&', '&', $matches[0]);
     24    $raw_url    = $matches[0];
     25    $host       = $matches[1];
     26    $raw_action = $matches[2];
     27    $param      = $matches[3];
     28   
     29    //自動リンクのアクションリストにない場合は変換なし
     30    if (empty($GLOBALS['_OPENPNE_PC2KTAI_LINK_ACTION_LIST'][$raw_action])) {
     31        return $raw_url;
     32    }
     33
     34    $converted_action = $GLOBALS['_OPENPNE_PC2KTAI_LINK_ACTION_LIST'][$raw_action];
     35    $param = str_replace('&', '&', $param);
    2536
    2637    // 携帯用URLに置換、ksid 追加
    27     $ktai_url = str_replace('?m=pc', '?m=ktai', $url) . '&' . $GLOBALS['KTAI_URL_TAIL'];
     38    $ktai_url = $host . '?m=ktai&a=' . $converted_action . $param . '&' . $GLOBALS['KTAI_URL_TAIL'];
    2839
    2940    // 表示上は page_ 以降を最大40文字で縮める
    30     $urlstr = str_replace('&', '&', $matches[1]);
     41    $urlstr = $converted_action . $param;
    3142
    3243    $length = 40;
Note: See TracChangeset for help on using the changeset viewer.