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

Changeset 7574


Ignore:
Timestamp:
Jun 11, 2008, 10:38:04 PM (11 years ago)
Author:
ebihara
Message:

#2634:OPENPNE_USE_PARTIAL_SSL が false の場合は OPENPNE_SSL_URL は見ないようにし、URLが OPENPNE_URL もしくは OPENPNE_SSL_URL からはじまっているかどうかの判定に strpos() を使用するようにした

File:
1 edited

Legend:

Unmodified
Added
Removed
  • OpenPNE/trunk/webapp/lib/smarty_plugins/modifier.t_url2a_ktai.php

    r7558 r7574  
    1313function smarty_modifier_t_url2a_ktai($string)
    1414{
    15     $url_pattern = sprintf('/(%s|%s)(?:index.php)?\?m=pc&a=(\w+)((?:[a-zA-Z0-9_=]|&)*)/', preg_quote(OPENPNE_URL, '/'), preg_quote(OPENPNE_SSL_URL, '/'));
     15    $url_pattern = '/https?:\/\/(?:[a-zA-Z0-9_\-\/.,:;~?@=+$%#!()]|&)+/';
    1616    return preg_replace_callback($url_pattern, 'smarty_modifier_t_url2a_ktai_callback', $string);
    1717}
     
    1919function smarty_modifier_t_url2a_ktai_callback($matches)
    2020{
    21     $raw_url    = $matches[0];
    22     $host       = $matches[1];
    23     $raw_action = $matches[2];
    24     $param      = $matches[3];
     21    $raw_url = $matches[0];
    2522
    26     //自動リンクのアクションリストにない場合は変換なし
    27     if (empty($GLOBALS['_OPENPNE_PC2KTAI_LINK_ACTION_LIST'][$raw_action])) {
     23    $openpne_url = '';
     24    if (strpos($raw_url, OPENPNE_URL) === 0) {
     25        $openpne_url = OPENPNE_URL;
     26    } elseif (OPENPNE_USE_PARTIAL_SSL && strpos($raw_url, OPENPNE_SSL_URL) === 0) {
     27        $openpne_url = OPENPNE_SSL_URL;
     28    }
     29
     30    if (!$openpne_url) {
    2831        return $raw_url;
    2932    }
    3033
    31     $converted_action = $GLOBALS['_OPENPNE_PC2KTAI_LINK_ACTION_LIST'][$raw_action];
     34    $url_pattern = sprintf('/^%s(?:index.php)?\?m=pc&a=(\w+)((?:[a-zA-Z0-9_=]|&)*)$/', preg_quote($openpne_url, '/'));
     35
     36    $openpne_url_matches = array();
     37    if (!preg_match($url_pattern, $raw_url, $openpne_url_matches)) {
     38        return $raw_url;
     39    }
     40    $action = $openpne_url_matches[1];
     41    $param = $openpne_url_matches[2];
     42
     43    //自動リンクのアクションリストにない場合は変換なし
     44    if (empty($GLOBALS['_OPENPNE_PC2KTAI_LINK_ACTION_LIST'][$action])) {
     45        return $raw_url;
     46    }
     47
     48    $converted_action = $GLOBALS['_OPENPNE_PC2KTAI_LINK_ACTION_LIST'][$action];
    3249    $param = str_replace('&', '&', $param);
    3350
Note: See TracChangeset for help on using the changeset viewer.