Changeset 7573
- Timestamp:
- Jun 11, 2008, 10:36:15 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
OpenPNE/branches/stable-2.12.x/webapp/lib/smarty_plugins/modifier.t_url2a_ktai.php
r7557 r7573 13 13 function smarty_modifier_t_url2a_ktai($string) 14 14 { 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_\-\/.,:;~?@=+$%#!()]|&)+/'; 16 16 return preg_replace_callback($url_pattern, 'smarty_modifier_t_url2a_ktai_callback', $string); 17 17 } … … 19 19 function smarty_modifier_t_url2a_ktai_callback($matches) 20 20 { 21 $raw_url = $matches[0]; 22 $host = $matches[1]; 23 $raw_action = $matches[2]; 24 $param = $matches[3]; 21 $raw_url = $matches[0]; 25 22 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) { 28 31 return $raw_url; 29 32 } 30 33 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]; 32 49 $param = str_replace('&', '&', $param); 33 50
Note: See TracChangeset
for help on using the changeset viewer.