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

Changeset 3116


Ignore:
Timestamp:
May 25, 2007, 12:41:12 PM (12 years ago)
Author:
ogawa
Message:

#858:お知らせ、サイドバナー、テンプレート挿入でURL2CMDが正常に動かない

File:
1 edited

Legend:

Unmodified
Added
Removed
  • OpenPNE/branches/2.8.x/webapp/lib/smarty_plugins/modifier.t_url2cmd.php

    r2734 r3116  
    77function smarty_modifier_t_url2cmd($string, $type = '')
    88{
    9     $url_pattern = '/https?:\/\/([a-zA-Z0-9\-.]+)\/?(?:[a-zA-Z0-9_\-\/.,:;~?@=+$%#!()]|&)*/';
     9    if (in_array($type, db_get_url2a_denied_list())) {
     10        // HTMLエスケープされていない場合
     11        // ", ', </a> がURLの後に続く場合はマッチさせない
     12        $url_pattern = '/https?:\/\/([a-zA-Z0-9\-.]+)\/?(?:[a-zA-Z0-9_\-\/.,:;~?@=+$%#!()&])*(?!["\'a-zA-Z0-9_\-\/.,:;~?@=+$%#!()&]|<\/a>)/';
     13    } else {
     14        $url_pattern = '/https?:\/\/([a-zA-Z0-9\-.]+)\/?(?:[a-zA-Z0-9_\-\/.,:;~?@=+$%#!()]|&amp;)*/';
     15    }
     16   
    1017    $GLOBALS['_CMD']['type'] = $type;
    11 
    1218    return preg_replace_callback($url_pattern, '_smarty_modifier_t_cmd_make_url_js', $string);
    1319}
     
    1622{
    1723    $url = str_replace('&amp;', '&', $matches[0]);
    18     $file = $matches[1] . '.js';
     24    $cmd = $matches[1];
     25   
     26    $file = $cmd . '.js';
    1927    $path = './cmd/' . $file;
    2028
    21     if (!OPENPNE_USE_CMD_TAG || !db_is_use_cmd($matches[1], $GLOBALS['_CMD']['type']) || !is_readable($path)) {
    22         // t_url2aが無効
     29    if (!OPENPNE_USE_CMD_TAG || !db_is_use_cmd($cmd, $GLOBALS['_CMD']['type']) || !is_readable($path)) {
    2330        if (in_array($GLOBALS['_CMD']['type'], db_get_url2a_denied_list())) {
     31            // t_url2aが無効: 何もせずに返す
    2432            return $matches[0];
    2533        } else {
    26         // t_url2aが有効
     34            // t_url2aが有効
    2735            return pne_url2a($url);
    2836        }
    2937    }
    30 
     38   
     39    $url_html = str_replace('&', '&amp;', $url);
    3140    $result = <<<EOD
    3241<script type="text/javascript" src="cmd/{$file}"></script>
    3342<script type="text/javascript">
    3443<!--
    35 url2cmd('{$matches[0]}');
     44url2cmd('{$url_html}');
    3645//-->
    3746</script>
Note: See TracChangeset for help on using the changeset viewer.