こちらに詳細な解説があったので、備忘録として記載しておきます。
・・・と以前に非公開で書いていたのですが、既にそのサイトは消滅してしまい・・・ここで公開するのもいいかと思い、公開設定としました。(2014.3.21)
以下、引用
タイトル,キーワード,説明文の書き方,表示法:mylinksの場合
picoの場合はカテゴリー説明文を入力する欄が用意されており,それを利用しました。また「メタ情報の書き方・表示法(一般的モジュール) 」では,外部テンプレートにメタ情報を書いて,親テンプレートから読み出して,それぞれのメタ情報を取り出す方法でした。
今回は,「設定ファイル」にメタ情報をカテゴリーごとに入力しておき,親となるテンプレートからそれを読み込み,カテゴリーにあったメタ情報を取り出します。
外部設定ファイルは,altsysyで新規に作成します。一般的なファイルとして作成し,それを読み込むことも可能ですが,altsysで作成すると,データベースに保存され,メンテナンスも簡単です。前回同様,mylinks(標準のリンクモジュール)を題材に説明します。
mylinksのページの種類は,トップページ,カテゴリーページ,リンク詳細ページの三つです。そのうち,リンク詳細ページのメタ情報は,コンテンツから引用しますので,ここでは,トップページとカテゴリーページの場合についての説明です。
仕組みを簡単に説明すると
設定ファイルには,カテゴリーに対応したセクションを作成し,セクション(カテゴリー)ごとの「ページタイトル」,「メタキーワード」,「メタ説明文」を変数と値をセットにして記述します。
設定ファイルを読み込むときに閲覧中のカテゴリーページのIDとセクション名に関連づけをもたせることで,適切なメタ情報を取り込むことができます。
メタ情報は,セクション名の下に「変数名」と「値(情報)」を「コロン(:)」を挟んで記述します。後述の「設定ファイルのコード例」を参考にしてください。
利用するテンプレート
mylinksのトップページとカテゴリーページのテンプレートにメタ情報を取り出すコードを書きます。コードはまったく同じですが,二つのテンプレートに書かなければなりません。
テンプレート名
- トップページ:mylinks_index.html
- カテゴリーページ:mylinks_viewcat.html
二つのテンプレート共通のコード
前述のテンプレートに挿入します。テンプレートの先頭に書くのがいいと思います。
<div class=”komidasi”><span>コード</span></div>
<{* config_load方式でメタ情報の取得・表示 *}>
<{assign var=”cname” value=$category_path|strip_tags|strip:””|replace:”メイン”:””|replace:”:”:””|replace:” ”:””}>
<{config_load file=”db:mylinks_meta_info.conf” section=”cid`$smarty.get.cid`”}>
<{if $smarty.config.page_ttl}>
<{assign var=”xoops_pagetitle” value=”`$smarty.config.page_ttl`:`$cname`”}>
<{/if}>
<{if $smarty.config.meta_kw}>
<{assign var=”xoops_meta_keywords” value=”`$smarty.config.meta_kw`,`$xoops_meta_keywords`”}>
<{/if}>
<{if $smarty.config.meta_desc}>
<{assign var=”xoops_meta_description” value=$smarty.config.meta_desc}>
<{/if}>
「config_load関数」のパラメータ「section」の部分に閲覧中のカテゴリーID(数値)を組み合わせる部分がポイントです。これで,カテゴリーページの変更に対応できます。
section=”cid`$smarty.get.cid`”
文字列「cid」に続けて,閲覧中のカテゴリーIDが代入されている変数「$smarty.get.cid」を連結して,cid1,cid2……とし,設定ファイルの「セクション名」と同じになるようにしています。
smartyには,config_load関数と同名のメソッドがあります。これを利用してメタ情報を得ることもできます。
<{config_load file=”db:mylinks_meta_info.conf” section=”cid`$smarty.get.cid`”}>
これを次のように書き替えます
<{php}> $this->config_load(“db:mylinks_meta_info.conf”, “cid”.$_GET[‘cid’]); <{/php}>
表示結果例
トップページの場合
<meta name=”keywords” content=”xField,xoops,cube,ホームページ,制作,作成,作製,製作,ネット,ショップ,オンライン,モジュール,テンプレート,smarty,php,MySQL,カスタマイズ,改造,ズープス,新潟” />
<meta name=”description” content=”xoops,テーマ・モジュール配布サイト,HTMLやCSSの解説サイト,xoopsの管理・運用・カスタマイズに便利なソフト,学習に欠かせない書籍などの資料の紹介などをしています。
” />
<title> おすすめリンク集:xoopsおよび関連技術サイトへのリンク集です。 – Wander Wonder xField</title>
カテゴリーページ
<meta name=”keywords” content=”xField,xoops,cube,ホームページ,制作,作成,作製,製作,ネット,ショップ,オンライン,モジュール,テンプレート,smarty,php,MySQL,カスタマイズ,改造,ズープス,新潟” />
<meta name=”description” content=”xoopsモジュールを開発し,公開しているサイトを集めました。どんなモジュールがあって,どんなことができるのかを知りたいときに役立つと思います。
” />
<title> xoopsモジュールの開発,配布(公開)サイトの情報-xoopsモジュール – Wander Wonder xField</title>
設定ファイル(外部テンプレート)
設定ファイル(テンプレート)名
テンプレート名は自由につけられます。下記はひとつの例です。
mylinks_meta_info.conf
[cid1]
page_ttl = xoopsモジュールの開発,配布(公開)サイトの情報
meta_kw =
meta_desc = xoopsモジュールを開発し,公開しているサイトを集めました。どんなモジュールがあって,どんなことができるのかを知りたいときに役立つと思います。[cid2]
page_ttl = xoopsのインストール,設定等に関する解説およびダウンロードサイトの情報
meta_kw =
meta_desc = xoopsにはじめて触れる方が迷い,悩むと思われるインストール方法や,システム管理の設定方法などを詳しく説明しているサイトの紹介です。意外な情報を見つけることも多いですね。[cid3]
page_ttl = xoppsの管理,運用,カスタマイズなどに役立つソフトの紹介
meta_kw =
meta_desc = xoopsの運用,管理,カスタマイズの際に,重宝するソフトのご紹介です。ローカルでの作業だけでなく,Webにアクセスした状態での作業にも役立つソフトがあります。[cid4]
page_ttl = xoopsでのサイト構築に役立つ豊富なWebサービス・ツールの紹介ページ
meta_kw =
meta_desc = 最近はWebサービス・ツールが非常にたくさん紹介されています。あえてモジュールでコンテンツを作成しなくても,これらを利用することで,コンテンツを充実させるのも一つの方法ではないでしょうか。xoopsで利用できそうなWebサービス・ツールを紹介いたします。[cid5]
page_ttl = 初心者も上級者もxoops学習に専門書は必読。手放せない書籍を紹介
meta_kw =
meta_desc = 情報はネットで手にはいるから,といって,専門書を読まない方も多いようです。でも,私は,手の届くところに専門書があると,安心です。xoopsとモジュール,テーマ,テンプレートなどをじっくり学習するためにも,高度なスキルを身につけるためにも,優良な書籍をお読みになることが,達人への近道だと思うのですが。[cid]
page_ttl = おすすめリンク集:xoopsおよび関連技術サイトへのリンク集です。
meta_kw =
meta_desc = xoops,テーマ・モジュール配布サイト,HTMLやCSSの解説サイト,xoopsの管理・運用・カスタマイズに便利なソフト,学習に欠かせない書籍などの資料の紹介などをしています。