(v3.2) アクセスしてきたクライアントの送ってきたアクセス先URLを評価します
FancyURLモードの時のみ処理されます
globalfunctions.php 280行目
$manager->notify( 'ParseURL', array( 'type' => basename(serverVar('SCRIPT_NAME')), // e.g. item, blog, ... 'info' => serverVar('PATH_INFO'), 'complete' => &$parsed ) );
globalfunctions.php の該当部分がわかりやすいと思いますので function用にちょこっと書き換えて掲載します
function event_ParseURL(&$data) { $urlparts = explode('/', $data['info']); // url already parsed or no url parts (homepage) - http://site.com if($data['complete'] || empty($urlparts)) { return; } for ($i=0;$i<sizeof($urlparts);$i++) { switch ($urlparts[$i]) { case $CONF['ItemKey']: // item/1 (blogid) $i++; if ($i<sizeof($urlparts)) $itemid = intval($urlparts[$i]); break; case $CONF['ArchivesKey']: // archives/1 (blogid) $i++; if ($i<sizeof($urlparts)) $archivelist = intval($urlparts[$i]); break; case $CONF['ArchiveKey']: // two possibilities: archive/yyyy-mm or archive/1/yyyy-mm (with blogid) if ((($i+1)<sizeof($urlparts)) && (!strstr($urlparts[$i+1],'-')) ){ $blogid = intval($urlparts[++$i]); } $i++; if ($i<sizeof($urlparts)) $archive = $urlparts[$i]; break; case 'blogid': // blogid/1 case $CONF['BlogKey']: // blog/1 $i++; if ($i<sizeof($urlparts)) $blogid = intval($urlparts[$i]); break; case $CONF['CategoryKey']: // category/1 (catid) case 'catid': $i++; if ($i<sizeof($urlparts)) $catid = intval($urlparts[$i]); break; case $CONF['MemberKey']: $i++; if ($i<sizeof($urlparts)) $memberid = intval($urlparts[$i]); break; default: // skip... } } // once the conditions above are processed, consider the URL parsed $data['complete'] = true; return; }