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;
}

}

タグ: