3.0RCでMagicalURL
基本的に2.0と同じです。FancyURLで自動生成するファイル名をmod_rewrite
↑を参考に3.0RCに読み替えました。
【新規作成】
index_f.php
<?
// This file will generate and return the main page of the site
$CONF['Self'] = "http://eslot.s55.xrea.com";
include('config_f.php');
selector();
?>
// This file will generate and return the main page of the site
$CONF['Self'] = "http://eslot.s55.xrea.com";
include('config_f.php');
selector();
?>
config_f.php
config.phpのコピーをconfig_f.phpにリネームして保存
ソースの最後のほうを↓のように変更
// include libs
include($DIR_LIBS.'globalfunctions_f.php');
if (!extension_loaded('mbstring')) {
include($DIR_LIBS.'mb_emulator/mb-emulator.php');
}
include($DIR_LIBS.'globalfunctions_f.php');
if (!extension_loaded('mbstring')) {
include($DIR_LIBS.'mb_emulator/mb-emulator.php');
}
globalfunctions_f.php
globalfunctions.phpのコピーをglobalfunctions_f.phpにリネームして保存
210行目付近を
// decode path_info
if ($CONF['URLMode'] == 'pathinfo'){
$data_str = preg_replace("/.html$/",'', serverVar('PATH_INFO'));
$data = explode("_",$data_str);
for ($i=0;$i<sizeof($data);$i++){
if ($CONF['URLMode'] == 'pathinfo'){
$data_str = preg_replace("/.html$/",'', serverVar('PATH_INFO'));
$data = explode("_",$data_str);
for ($i=0;$i<sizeof($data);$i++){
870行目付近から
/**
* Centralisation of the functions that generate links
*/
function createItemLink($itemid, $extra = '') {
global $CONF;
if ($CONF['URLMode'] == 'pathinfo')
$link = $CONF['ItemURL'] . '/item_' . $itemid;
else
$link = $CONF['ItemURL'] . '?itemid=' . $itemid;
return addLinkParams($link, $extra);
}
function createMemberLink($memberid, $extra = '') {
global $CONF;
if ($CONF['URLMode'] == 'pathinfo')
$link = $CONF['MemberURL'] . '/member_' . $memberid;
else
$link = $CONF['MemberURL'] . '?memberid=' . $memberid;
return addLinkParams($link, $extra);
}
function createCategoryLink($catid, $extra = '') {
global $CONF;
if ($CONF['URLMode'] == 'pathinfo')
$link = $CONF['CategoryURL'] . '/catid_' . $catid;
else
$link = $CONF['CategoryURL'] . '?catid=' . $catid;
return addLinkParams($link, $extra);
}
function createArchiveListLink($blogid = '', $extra = '') {
global $CONF;
if (!$blogid)
$blogid = $CONF['DefaultBlog'];
if ($CONF['URLMode'] == 'pathinfo')
$link = $CONF['ArchiveListURL'] . '/archives_' . $blogid;
else
$link = $CONF['ArchiveListURL'] . '?archivelist=' . $blogid;
return addLinkParams($link, $extra);
}
function createArchiveLink($blogid, $archive, $extra = '') {
global $CONF;
if ($CONF['URLMode'] == 'pathinfo')
$link = $CONF['ArchiveURL'] . '/archive_'.$blogid.'_' . $archive;
else
$link = $CONF['ArchiveURL'] . '?blogid='.$blogid.'&archive=' . $archive;
return addLinkParams($link, $extra);
}
function createBlogLink($url, $params) {
return addLinkParams($url . '?', $params);
}
function createBlogidLink($blogid, $params = '') {
global $CONF;
if ($CONF['URLMode'] == 'pathinfo')
$link = $CONF['BlogURL'] . '/blog_' . $blogid;
else
$link = $CONF['BlogURL'] . '?blogid=' . $blogid;
return addLinkParams($link, $params);
}
function addLinkParams($link, $params) {
global $CONF;
if (is_array($params)) {
if ($CONF['URLMode'] == 'pathinfo') {
foreach ($params as $param => $value) {
$link .= '_' . $param . '_' . urlencode($value);
}
} else {
foreach ($params as $param => $value) {
$link .= '&' . $param . '=' . urlencode($value);
}
}
}
$link .= ".html";
if(strstr ($link, '//')){ $link = str_replace(".com//", ".com/", $link);} ※NP_TrackBack用
if(strstr ($link, '/')){ $link = str_replace("item/", "item_", $link);} ※NP_Latest Writebacks用
return $link;
}
* Centralisation of the functions that generate links
*/
function createItemLink($itemid, $extra = '') {
global $CONF;
if ($CONF['URLMode'] == 'pathinfo')
$link = $CONF['ItemURL'] . '/item_' . $itemid;
else
$link = $CONF['ItemURL'] . '?itemid=' . $itemid;
return addLinkParams($link, $extra);
}
function createMemberLink($memberid, $extra = '') {
global $CONF;
if ($CONF['URLMode'] == 'pathinfo')
$link = $CONF['MemberURL'] . '/member_' . $memberid;
else
$link = $CONF['MemberURL'] . '?memberid=' . $memberid;
return addLinkParams($link, $extra);
}
function createCategoryLink($catid, $extra = '') {
global $CONF;
if ($CONF['URLMode'] == 'pathinfo')
$link = $CONF['CategoryURL'] . '/catid_' . $catid;
else
$link = $CONF['CategoryURL'] . '?catid=' . $catid;
return addLinkParams($link, $extra);
}
function createArchiveListLink($blogid = '', $extra = '') {
global $CONF;
if (!$blogid)
$blogid = $CONF['DefaultBlog'];
if ($CONF['URLMode'] == 'pathinfo')
$link = $CONF['ArchiveListURL'] . '/archives_' . $blogid;
else
$link = $CONF['ArchiveListURL'] . '?archivelist=' . $blogid;
return addLinkParams($link, $extra);
}
function createArchiveLink($blogid, $archive, $extra = '') {
global $CONF;
if ($CONF['URLMode'] == 'pathinfo')
$link = $CONF['ArchiveURL'] . '/archive_'.$blogid.'_' . $archive;
else
$link = $CONF['ArchiveURL'] . '?blogid='.$blogid.'&archive=' . $archive;
return addLinkParams($link, $extra);
}
function createBlogLink($url, $params) {
return addLinkParams($url . '?', $params);
}
function createBlogidLink($blogid, $params = '') {
global $CONF;
if ($CONF['URLMode'] == 'pathinfo')
$link = $CONF['BlogURL'] . '/blog_' . $blogid;
else
$link = $CONF['BlogURL'] . '?blogid=' . $blogid;
return addLinkParams($link, $params);
}
function addLinkParams($link, $params) {
global $CONF;
if (is_array($params)) {
if ($CONF['URLMode'] == 'pathinfo') {
foreach ($params as $param => $value) {
$link .= '_' . $param . '_' . urlencode($value);
}
} else {
foreach ($params as $param => $value) {
$link .= '&' . $param . '=' . urlencode($value);
}
}
}
$link .= ".html";
if(strstr ($link, '//')){ $link = str_replace(".com//", ".com/", $link);} ※NP_TrackBack用
if(strstr ($link, '/')){ $link = str_replace("item/", "item_", $link);} ※NP_Latest Writebacks用
return $link;
}
【修正】
action.php
16行目付近を変更
$CONF = array();
include('config_f.php');
include('config_f.php');
【.htaccess】
こんな感じで
【アップロード&テスト】
ファイルをそれぞれアップロードして管理エリアでFancyURLをONにする。
index_f.phpにアクセスして確認。
問題がなければindex_f.phpをindex.phpにしてもOK〜
displayed [74389]s.
Comments
古川:
FancyURLを使っているうちにやはりMagicalURLに切り替えたいと考えてこのサイトに行き着きました。質問があるのですがよろしいでしょうか?
アイテムの表示は問題ないのですが、カテゴリーの表示に2つ問題があります。
最初の問題は、ALLのURL表示が
http://www.delightful-prope...
となっていて、表示はするのですが、これで表示されたページでALLを再度クリックすると、こんどは.htmlが取れた
http://www.delightful-prope...
を表示してしまいます。
2番目の問題は、GeneralのURLがこのように表示され、
http://www.hoge.com/categor...
このURLが表示されないのです。
お知恵を拝借できませんでしょうか。
アイテムの表示は問題ないのですが、カテゴリーの表示に2つ問題があります。
最初の問題は、ALLのURL表示が
http://www.delightful-prope...
となっていて、表示はするのですが、これで表示されたページでALLを再度クリックすると、こんどは.htmlが取れた
http://www.delightful-prope...
を表示してしまいます。
2番目の問題は、GeneralのURLがこのように表示され、
http://www.hoge.com/categor...
このURLが表示されないのです。
お知恵を拝借できませんでしょうか。
(2005/06/03)
古川:
すみません追加です。以前NucleusのFancyURLのモジュールをコピーしていてその上にこのMagicalURLを設定しようとしているのですが、それは関係しますか?CategoryはCatidに直しましたが表示されません。
(2005/06/03)
Trackbacks [ Trackback URL ]











