にへるつおるぐ | src | ブログ | コンタクト | 統計 | | Login |
|
|
ソースコード・スクリプト・パッチ置き場 |
GeneralItems that do not fit in other categories NP_GenerateURL.phpNP_GenerateURL.php <?php class NP_GenerateURL extends NucleusPlugin{ function getName() {return 'Generate URL';} function getAuthor() {return 'akebia';} function getURL() {return 'http://nyan.co.uk/akebia/item/858';} function getVersion() {return '1.2';} function getDescription(){return '';} function getEventList() {return array('GenerateURL');} function supportsFeature($f){switch($f){ case 'SqlTablePrefix': case 'SqlApi': return 1; default: return 0;}} function event_GenerateURL($data) { global $CONF, $manager, $virtualpath, $blogid; // url already generated if ($data['completed']) return; $params = $data['params']; $extra = $params['extra']; if (!is_array($extra)) $extra = array(); switch ($data['type']) { case 'item': $item_id = intval($params['itemid']); $blog_id = getBlogIDFromItemID($item_id); if ($blog_id == $blogid || !$blog_id) { $base_url = $CONF['ItemURL']; } else { $b =& $manager->getBlog($blog_id); $base_url = $b->getURL(); } if (substr($base_url, -1) != '/') $base_url .= '/'; $url = $base_url.$CONF['ItemKey'].'/'.$item_id; break; case 'member': $member_id = intval($params['memberid']); $url = $CONF['Self'].'/'.$CONF['MemberKey'].'/'.$member_id; break; case 'category': $cat_id = intval($params['catid']); $blog_id = getBlogIDFromCatID($cat_id); if ($blog_id == $blogid) { $base_url = $CONF['CategoryURL']; } elseif(!$blog_id) { $url = $CONF['CategoryURL'].'/'; break; } else { $b =& $manager->getBlog($blog_id); $base_url = $b->getURL(); } if (substr($base_url, -1) != '/') $base_url .= '/'; $url = $base_url.$CONF['CategoryKey'].'/'.$cat_id; break; case 'archivelist': if (!$params['blogid']) { $blog_id = $CONF['DefaultBlog']; } else { $blog_id = intval($params['blogid']); } if ($blog_id == $blogid || !$blog_id) { $base_url = $CONF['ArchiveListURL']; } else { $b =& $manager->getBlog($blog_id); $base_url = $b->getURL(); } if (substr($base_url, -1) != '/') $base_url .= '/'; $url = $base_url.$CONF['ArchivesKey'].'/'.$blog_id; break; case 'archive': $blog_id = intval($params['blogid']); if ($blog_id == $blogid || !$blog_id) { $base_url = $CONF['ArchiveURL']; } else { $b =& $manager->getBlog($blog_id); $base_url = $b->getURL(); } sscanf($params['archive'], '%d-%d-%d', $y, $m, $d); if ($d) { $archive = sprintf('%d-%d-%d', $y, $m, $d); } else { $archive = sprintf('%d-%d', $y, $m); } if (substr($base_url, -1) != '/') $base_url .= '/'; $url = $base_url.$CONF['ArchiveKey'].'/'.$archive; break; case 'blog': $blog_id = intval($params['blogid']); if ($blog_id == $blogid || !$blog_id) { $base_url = $CONF['BlogURL']; } else { $b =& $manager->getBlog($blog_id); $base_url = $b->getURL(); } if (substr($base_url, -1) != '/') $base_url .= '/'; $url = $base_url; break; } if ($extra['blogid'] == $blogid && !preg_match('/(^|\/)('.$CONF['BlogKey'].'|blogid)\//', $virtualpath)) { unset($extra['blogid']); } $data['url'] = addLinkParams($url, $extra); $data['completed'] = TRUE; return $data; } } ?> CommentsNo comments yet
Add CommentTrackbackこのトラックバックURL(右クリックして、リンクのURLをコピー)を使ってこの記事にトラックバックを送ることができます。もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。トラックバックの手動送信に失敗したり、拒否された場合には、あけび猫が入力しますので、こちらまでご連絡下さい。重複したトラックバックは、自動的に1つにまとめられるようなので、気軽に色々試してみて下さい。 |