第2話 新たなる挑戦 スニペット作成
さて、contact-us の為にテンプレートを複製するのも後々面倒なので <base href= を書き換えるスニペットの作成に挑戦してみました。まず、site_url という名前で以下のようなコードを作成。
<?php
$docId = $modx->documentObject['id'];
if ($docId==6) {
$output = '';
} else {
$output = $modx->config["site_url"];
}
return $output;
?>
つぎに MODxHost テンプレートの一部を修正
<base href="[(site_url)]"></base>
↓ スニペットの呼び出しに書き換える
<base href="[[site_url]]"></base>
動いた!! なんだ簡単じゃないか(^。^)y-.。o○ これで僕もエキスパートの仲間入りと思いながら一服。んで・・メニューをクリックしてみると新たな壁にぶち当たった。 リンクがすべて
https://ss1.coressl.jp/modx/~ になっている。
う~ん・・悩むこと1時間。Wayfinder は /modx/~ のようなパスを返すようだ。それだけじゃない Ditto まで書き換えないといけないのか? とりあえず Wayfinder のドキュメントの説明 &rowTpl を見ながら次のように付け足せばいいのかなと思いながら・・
<li[+wf.id+][+wf.classes+]>
<a href="http://www.example.com[+wf.link+]" title="[+wf.title+]" [+wf.attributes+]>[+wf.linktext+]</a>
[+wf.wrapper+]
</li>
面倒くさいのでやめた。wf.link をフォーラムで検索。なんかよさそうな記事を発見。なんだ、さっき投稿されたばかりじゃないか。
Wayfinderで生成される[+wf.link+]を修正したい
早速、config.inc.php を書き換え。Wayfinder も Ditto のリンクもすべて http:// になった・・万歳。
このお話は共有SSL のためのものですが 独自ドメインの SSL でもこの方法を使ったほうがよさそうです。一番最初の htaccess を使う方法はあまりお勧めできません。