トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-plugin/386

ページの作成や編集にはユーザ登録が必要です。

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

ダウンロードは更新履歴の項目からお願いします。

 インストール

  1. アーカイブをFSWiki設置ディレクトリに展開します。
    • 管理画面のプラグイン設定で meta を有効にしてください。
  1. サンプルの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(451)
初版公開
meta_20080820_2.zip(453)
プラグインヘルプの出力において、ディストリビューションの仕様に合わせていませんでしたので修正版です。

初版は編集画面のイメージをスタイル指定できるよう、以下のようなDIV要素で囲うように、plugin::info::PluginHelp.pm を改変して運用していました。

<div class="wikiNotation">
<pre>
記法説明
</pre>
</div>
meta_20080821.zip(471)
以下の変更を行いました。
  1. save_after hookの追加
    • META情報定義ページ(Admin/MetaInfo)の更新後、参照権限を管理者に矯正します。
  1. テーブル記法の省略形式に対応しました。
,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秒)
お名前: コメント:
meta_20080820.zip meta_20080820_2.zip meta_20080821.zip

最終更新時間:2010年10月24日 00時48分09秒