ページの作成や編集にはユーザ登録が必要です。
WikiページのMETA情報を管理するプラグイン
- 投稿者: A_M
- カテゴリ: 新規
- 優先度: 緊急
- 状態: 提案
- 日時: 2008年08月20日 19時38分56秒
内容
BugTrack-request/69に触発されて作成しました。
パッケージ
プラグイン・アーカイブ
- meta_(yyyymmdd).zip - yyyymmdd は公開年月日
- plugin/meta/Install.pm
- plugin/meta/MetaHandler.pm
- theme/metainfo.css
- theme/plugin_metainfo.png
ダウンロードは更新履歴の項目からお願いします。
インストール
- アーカイブをFSWiki設置ディレクトリに展開します。
- 管理画面のプラグイン設定で meta を有効にしてください。
- サンプルのCSSを利用してみるときは、お使いのテーマファイルで、metainfo.css をインポートします。
@import '../metainfo.css';
出力HTML
<div class="admin-plugin metainfo"> <p>(ステータス表示)</p> <ul> <li>Title - (表示されるタイトル)</li> <li>Description - (定義されたページ概要)</li> <li>Keyword - (定義されたキーワード)</li> </ul> </div>
使い方
Menuページに、metainfo パラグラフプラグインを記述してください
- 管理者用のステータスチェッカです。
- 管理者権限でログインした時に限り表示されます。
{{metainfo}}
特別ページ名「Admin/MetaInfo」をMETA情報定義ページとしてとして予約し、META情報を定義します。META情報定義ページに記述されたFSWiki記法のうち、テーブル記法部分をデータとして解析、HTML出力します。
テーブル記法は次の順を守ってデータ記述してください。
,ページ名,TITLE(別名),DESCRIPTION,"KEYWORDS"
以下のように記述しても動くと思います。
,ページ名,TITLE(別名),DESCRIPTION,KEYWORD1,KEYWORD2,KEYWORD3, ...
データ行のうち左端に記述するページ名が実在するページなら、タイトル、ページ概要、キーワードの記述が有効であるとして処理します。このため、未作成ページのMETA情報を予め定義しておくことも出来ます。
詳細は、プラグインヘルプをご覧下さい。
依存関係
登録タイトルを表示するために Wiki::get_title を上書きしています。
- 引数無しの場合は従来の結果を返しますが、引数にページ名を渡すと定義したタイトルを返します。
例えば、plugin/core/ListPage.pm の do_action関数のループ内でアンカーテキスト部分を変更すると、ページ一覧を定義済みのタイトルで表示します(タイトル登録なければ、従来通り)。
ライセンス
GPL
更新履歴
- meta_20080820.zip(563)
- 初版公開
- meta_20080820_2.zip(593)
- プラグインヘルプの出力において、ディストリビューションの仕様に合わせていませんでしたので修正版です。
初版は編集画面のイメージをスタイル指定できるよう、以下のようなDIV要素で囲うように、plugin::info::PluginHelp.pm を改変して運用していました。
<div class="wikiNotation"> <pre> 記法説明 </pre> </div>
- meta_20080821.zip(598)
- 以下の変更を行いました。
- save_after hookの追加
- META情報定義ページ(Admin/MetaInfo)の更新後、参照権限を管理者に矯正します。
- テーブル記法の省略形式に対応しました。
,PAGENAME,TITLE ,PAGENAME,,DESCRIPTION ,PAGENAME,TITLE,DESCRIPTION ,PAGENAME,,,KEYWORDS (*) ,PAGENAME,TITLE,,KEYWORDS (*) ,PAGENAME,,DESCRIPTION,KEYWORDS (*) ,PAGENAME,TITLE,DESCRIPTION,KEYWORDS (*)
ご質問いただく中で、テーブル記法の在り方と処理方法を見直し、定義項目が少ないケースでも正常に動作するようにしました。
初日に公開した2点は(*)の書式のみを想定した作りでしたが、この仕様については明記していなかったため、混乱された方もいらっしゃったと思います。この場をお借りして、お詫び申し上げます。
コメント
- 素朴な疑問なんですが、menuで設定したキーワードなどが管理者で表示されている所までは確認できたのですが、ログアウトして一般の閲覧者表示にした時に、ソースを表示させるとMETA情報が入っていないような気がします。手書きでテンプレートに<meta name="keywords"content="キーワード"/>などとした場合はソース表示されるのですが、どこか間違っているのでしょうか?この状態でも検索エンジンがキーワードを拾ってくれるのでしょうか? - 名無しさん (2008年08月20日 23時13分44秒)
- META情報定義ページ「Admin/MetaInfo」の参照権限を「ユーザ」もしくは「管理者」に変更してみて下さい。管理者が設定する情報ですので公開にしているとMETA情報を入れないようにしています。 - A_M (2008年08月20日 23時29分30秒)
- 「管理者(ユーザ)」表示では設定情報が反映されていますが、公開しているとMETA情報が入らないという事は、googleなどの検索クローラーがMETAタグ(キーワード)を拾ってくれないという事でしょうか?当方あまり詳しくないので、とんでもない勘違いをしているかもしれませんが。。 - 名無しさん (2008年08月21日 00時12分28秒)
- ご質問のとおり、公開したページにMETA情報が入らなければ意味がありません。とはいえ、META情報定義ページ「Admin/MetaInfo」の権限を公開にして他ユーザに定義内容を書き換えられると、やはり意味がありませんので、「Admin/MetaInfo」は設定変更を認めない運用になります。また、FrontPageにMETA情報を入れるには、テーブル記法で、最左列が"FrontPage"となる定義を「Admin/MetaInfo」に書いておかなければMETA情報を入れることはできません。 - A_M (2008年08月21日 01時22分28秒)
- META情報定義ページと難しく表現してますが、テーブル記法の各行は「どのページに」「どんな別名タイトルを付け」「どんな説明にし」「どんなキーワードを設定するか」を書きます。こうした情報を定義するから、定義ページと称しています。 - A_M (2008年08月21日 01時30分12秒)
- 結論を2択でお願いしたいのですが、本プラグイン使用で公開ページでのMETAタグは読み取り可能なのでしょうか?それとも不可でしょうか?そこが知りたいのです。もし公開ソースで読み取れるのであれば、自分の設定方法が間違ってるのかもしれません。 - 名無しさん (2008年08月21日 01時58分36秒)
- 公開したページでMETAタグを正しく出力するか?という事でしたら「Yes」です。 - A_M (2008年08月21日 02時47分38秒)
- FrontPageにMETA情報を定めるとき定義ページに内容を記述しますが、FrotPageの参照権限は公開。但し、定義ページの参照権限はユーザや管理者にしておくことが条件になります。正しく動作しない事がありましたら、お手数ですがご報告ください。 - A_M (2008年08月21日 02時54分27秒)
- テンプレートによってはMETAタグが出力されないようです。<!--TMPL_VAR NAME="HEAD_INFO"-->が記述されていないからのようです。 - Masanori (2009年05月04日 08時23分51秒)
最終更新時間:2010年10月24日 00時48分09秒