サイト内で各ページURLをindex.php?cID=***で統一したい

2013年1月31日 at 11:50

お世話になります。

現状、全てのサイト内リンクを絶対URLでhttp://www.***********/index.php?cID=***と指定しているのですが、
一部のリンク(テーマからグローバルブロックを読み込んでいる部分と、オートナビ等)のリンク先は
http://www.***********/index.php?cID=*** となっているのですが、クリックすると、表示されるページURLが日本語URLとなってしまいます。

これを全て、サイトマップから「訪問」をクリックして表示された時のURLである、
index.php?cID=*** というURLでサイト内のリンクを共通させたいです。

バージョン:5.5.2.1
OS:Windows7
サーバー:エックスサーバー(X10)
利用ブラウザ:Chrome / IE9

大変お手数ではございますがご教授願います。
宜しくお願い致します。

タグ:

Re: サイト内で各ページURLをindex.php?cID=***で統一したい

2013年2月4日 at 10:12
5.5.2.1の場合
オートナビは
/concrete/blocks/autonav/controller.php
の getURLメソッドを変更すればいけると思います。
試してないので推測で申し訳ないですが。。。。

5.6.0.2からディレクトリ構成が変更になるのでオートナビブロックをコピーして
新しいブロックとして作ったほうがいいかもしれません。
 

Re: サイト内で各ページURLをindex.php?cID=***で統一したい

2013年2月4日 at 14:47
記事ブロックが、cID=? 形式のリンクを自動で変換しています。その処理はご自分でオーバーライドして止めることができます。
具体的には、下記のコードを controller.php という名前で作成し /blocks/content/controller.php にアップロードしてみてください。 /concrete/blocks/content/controller.php ではないのでご注意ください。

http://gist.github.com/4705216
<?php
defined('C5_EXECUTE') or die("Access Denied.");
class ContentBlockController extends Concrete5_Controller_Block_Content {

function translateTo($text) {
// keep links valid
// $url1 = str_replace('/', '\/', BASE_URL . DIR_REL . '/' . DISPATCHER_FILENAME);
$url2 = str_replace('/', '\/', BASE_URL . DIR_REL);
$url3 = View::url('/download_file', 'view_inline');
$url3 = str_replace('/', '\/', $url3);
$url3 = str_replace('-', '\-', $url3);
$url4 = View::url('/download_file', 'view');
$url4 = str_replace('/', '\/', $url4);
$url4 = str_replace('-', '\-', $url4);
$text = preg_replace(
array(
// '/' . $url1 . '\?cID=([0-9]+)/i',
'/' . $url3 . '([0-9]+)\//i',
'/' . $url4 . '([0-9]+)\//i',
'/' . $url2 . '/i'),
array(
// '{CCM:CID_\\1}',
'{CCM:FID_\\1}',
'{CCM:FID_DL_\\1}',
'{CCM:BASE_URL}')
, $text);
return $text;
}

}
 

Re: サイト内で各ページURLをindex.php?cID=***で統一したい

2013年2月4日 at 15:55
ページリストブロックでは

navigationヘルパーを使用していますので

concrete/helpers/navigation.php
を helpers/navigation.php にコピーして

getLinkToCollectionメソッドを変更してください。
 

Re: サイト内で各ページURLをindex.php?cID=***で統一したい

2013年2月4日 at 18:11
皆様ご返信誠にありがとうございます。
試してみます。