サイト全体で統一のサイドナビにカスタマイズしてみようと思います。
参考
- 小粋空間: アーカイブページのリストの表示内容が異なる理由
- 小粋空間: サイドバーの表示をメインページと同じにする
- idxctx プラグインというのを作ってみました。 - blog.aklaswad.com
うちの場合のサイドバーテンプレートは各ウィジェットをウィジェットセットで
<$mt:WidgetSet name="2カラムのサイドバー"$>
みたいな感じで読み込んでいます。「2カラムのサイドバー」ウィジェットセットには「最近のブログ記事」「 検索,」「最近のコメント」「カテゴリアーカイブ」「月別アーカイブ」「OpenID対応」「Powered By」をインストールしています。
簡単なのは、参考の3つ目のプラグインを使うことです。
プラグインをインストールしウィジェットセットを読み込んでる部分を
<MTIndexContext>
<MTWidgetManager name="2カラムのサイドバー">
</MTIndexContext>
のように「MTIndexContext」コンテナ・タグで括ればアーカイブページでもメインページと同じ表示内容になってくれます。
ですが、今回最終的な目標は、サイト全体統一のサイドメニューにし、メインページ以外で現在位置表示。今このページにいますよ~的な表現をサイドメニューに施そうと思ってます。
参考
上記ページを参考に、各アーカイブのウィジェットをカスタムするわけですが
方法としては、アーカイブテンプレートに設定された予約変数を判定して分岐させ、
JavaScriptで「a」タグにclass属性を付与していきます。
この際、(参考3つ目)idxctxプラグインを使用してると、サイドバー部分は一時的にメインページと同じ振る舞いをしてるのでアーカイブテンプレートの予約変数を判定してくれません。
ということで、idxctxの利用は今回さけて、サイドバーの各ウィジェットを弄ってこう。
月別アーカイブ、カテゴリアーカイブに関しては、それぞれ1番外側を括ってる「MTIf」タグを外していく
カテゴリアーカイブ:
<MTIf name="module_category_archives">
~
</MTIf>別アーカイブ:
<MTIf name="module_monthly_archives">~
</MTIf>
↑これを削除すれば、それぞれのアーカイブページでもメインページと同じ表示内容になります。
問題は、最近のブログ記事
Zne Cartが出力するHTMLソースコードはデフォルトで1行3列のtableタグで囲われています。これをdivのブロック要素に変更し、レイアウトはCSSで設定したいと思います。
/includes/templates/template_default/common/tpl_main_page.php をオーバーライド
/includes/templates/kahoyan/common/tpl_main_page.php
そんで、ID、クラス名はそのままでtableタグをdivタグに変更。
<table width="100%" border="0" cellspacing="0" cellpadding="0" id="contentMainWrapper">
を
<div id="contentMainWrapper">
としました。trタグはそのまま削除しtdタグはtableタグ同様ID、classは残して
<td id="navColumnOne" class="columnLeft" style="width: <?php echo COLUMN_WIDTH_LEFT; ?>">
を
<div id="navColumnOne" class="columnLeft">
としました。
style="width: <?php echo COLUMN_WIDTH_LEFT; ?>"
って部分は、管理画面からカラムの幅を設定できるんですが、その設定した値が入ってきます。
こちらもCSSで設定していきたいので、無くします。
以前のエントリー「新規カスタムテンプレートの作成」でオーバーライドしたCSSファイルに修正を加えていきます。
新規でスタイルシートを作成していってもいいと思うんですが、細かいところで設定漏れが無いように、デフォルトのCSSファイルの該当箇所を変更していく方法にしました。
metaタグ(keywords description)やら メインページの文言、ロゴ画像などの変更。
ディレクトリ /includes/languages/japanese/ の meta_tags.php、header.php、index.php をオーバーライド。
/includes/languages/japanese/kahoyan/metatags.php
/includes/languages/japanese/kahoyan/header.php
/includes/languages/japanese/kahoyan/index.php
Zen Cart に関してのメモもエントリーしてくことにしたので、descriptionも変更しフィードもカテゴリ毎につくっとこーと思います。以下試した手順。
1. ルートのatom.xmlを生成している、インデックステンプレートの「最新記事のフィード」のソースコードをコピーしといて。
2. アーカイブテンプレート、アーカイブテンプレートの作成 +ブログ記事リスト。
3. タイトルを「カテゴリ別のフィード」とし、コピーしたコードをペースト。
-
ディレクトリ /includes/templates に kahoyanディレクトリ作成。
/includes/templates/kahoyan
- ディレクトリ /includes/templates/template_default/css の stylesheet.css ファイルを
ディレクトリ /includes/templates/kahoyan/css にコピー/includes/templates/kahoyan/css/stylesheet.css
-
includes/templates/template_default/template_info.php ファイルを
ディレクトリ /includes/templates/kahoyan にコピー/includes/templates/kahoyan/template_info.php
- /includes/templates/kahoyan/template_info.php
を修正
$template_name = 'Default Theme';
▲という箇所を探し$template_name = 'Kahoyan Theme';
と変更。 - ディレクトリ /includes/templates/kahoyan をサーバにアップロード
- 管理画面 /追加設定・ツール/テンプレートの設定 Kahoyan Templateを選択し更新。
- 管理画面 /追加設定・ツール/サイドボックスの表示設定 kahoyan 画面下部 リセットボタンをクリック。
オーバーライド (override)とは?
カスタムテンプレートを作成するときなどに、カスタムテンプレート用のディレクトリを作成しデフォルトのテンプレートをコピーし修正します。テンプレートの設定でカスタムテンプレートが選択されている場合デフォルトのテンプレートより優先して変更を加えたファイルを読んでくれます。
まぁ、デザイン畑出の私にすれば便利機能!不思議システム!!(ルフィか!?)って感じですがWikipediaではこんな。
オブジェクト指向プログラミングにおいてオーバーライド(override)とは、
スーパークラスで定義されたメソッドをサブクラスで定義しなおし、動作を上書きすることである。
(Wikipedia)
なるほどね~。。。って嘘!ごめん見栄はった。
デフォルト触らずにいろいろ弄くれておかしくなったら消せばもっかいやりなおしできる!
ぐらいの認識でひとまず前に進もう!
- 管理画面ディレクトリ名の変更。(管理画面への第三者の侵入を防ぐ。)
/(ZenCartインストールディレクトリ)/admin/includes
を/(ZenCartインストールディレクトリ)/○○○○○○/includes
○○○○○○と、任意のディレクトリ名に変更。
- ディレクトリ /(ZenCartインストールディレクトリ)/○○○○○○/includes の configure.php ファイルを修正。
38行目 define('DIR_WS_ADMIN', '・・・/admin/');の admin 部分を 変更したディレクトリ名 ○○○○○○ に変更。
40行目 define('DIR_WS_HTTPS_ADMIN', ・・・/admin/');
57行目 define('DIR_FS_ADMIN', '・・・/admin/'); - 言語パッケージ内の定番ページファイル
ディレクトリ /(ZenCartインストールディレクトリ)/includes/languages/japanese/html_includes/My Template
オーバーライドしてない場合は
/(ZenCartインストールディレクトリ)/includes/languages/japanese/html_includes/
上記ディレクトリのphpファイルは、第三者に改ざんされないように、編集時以外はパーミッション設定を書き込み不可にしておく。
Zen Cartの日本語公式サイトで日本語版 Zen Cart 1.3.0.2をダウンロードして
上記サイトがサポートしてる、インストールガイドページ下記を参考にインストール完了!
http://zen-cart.jp/zen-cart-v1.3.0.2-l10n-jp-4/docs/1.readme_installation.html
Zen Cartのデモサイト に登録されている情報をデモ用にインストールするか選択できるんですが、Zen Cartの豊富な機能をくまなく活用するには、デモ情報インストールをオススメします。
Zen Cartを試す目的ではじめるショップなので、最初はデモで構築だけ試すって方法も考えたけど、せっかく作るんだったら充実したショップ管理者側の機能も試したいと思い、実際に運営してみることにしました。
しかし、困ったのが商品。。何売るか。。。
そこで、頼ったのが身内^^。無趣味な私のまわりには何故か(ありがたいことに;)多趣味なひとがいっぱい。取急ぎ、かみさんと私の両親に相談してみました。
何売るか~を一週間くらい悩んでたので、もっと早くに気付けばよかった。電話でショップの商品について相談した二日後にさっそくいろいろ送ってくれました^^!
みーば手作りラベンダーのドライブーケ!とってもいい香りがします^^!

