テーマで使える変数

提供: GeeklogJpWiki

※この文書はテーマ変数に関する完全な文書ではなく、記事テンプレートやサイトヘッダで使われる変数を扱っているに過ぎません。

目次

「はじめに」

GeeklogはPHP Base Library(PHPlib)のテンプレートエンジンを使っています。このライブラリにより、テンプレートファイルで変数を使うことができます。{変数名}というように括弧に囲まれた単語が変数です。GeeklogがWebページを生成するときにテンプレートファイルに記述された変数を特定の値に変換します。変数は、常に同じテキストに置き換えられる固定テキスト、記事に対するコメントの数や記事の全体テキストといった動的な内容、あるいは他のテンプレートの内容などです。

ただし、全ての変数が全てのテンプレートで利用できるわけではありません。変数のGeeklogサイトのURL{site_url}はほとんどのテンプレートで使えるようになっていますが、多くの変数は特定のテンプレートでのみ使えます。例えば{formatted_article}変数はarticle.htmlテンプレートファイルでのみ使えます。現在のテンプレートで定義されていない変数がテンプレート内に記述されている場合、{変数名}を変換せずそのままHTMLに書き出してしまいます。

「サイトヘッダ」

次の変数がヘッダテンプレート(header.thtml)で利用可能です。

変数説明
site_url http://www.example.com サイトのURL(config.phpファイルの$_CONF['site_url'] で指定された値)
layout_url http://www.example.com/layout/XSilver ユーザの現在のテーマのレイアウトフォルダのURL
page_title Geeklog Site - Another Nifty Geeklog Site サイト名とスローガンの組み合わせかサイト名と現在の記事のタイトルのどちらか保持
background_image http://www.example.com/layout/
XSilver/images/bg.gif
背景画像として使われる現在のテーマの画像フォルダにあるbg.gifへのURL
site_mail admin@example.com サイト管理者へのコンタクトに利用する電子メールアドレス。スパム問題があるので、この変数に管理者のアドレスを設定せずに代わりに次のような管理者への投稿フォームへのリンクの提供を推奨します。
{site_url}/profiles.php?uid=2(2はメールを受け取るユーザのIDで通常は管理者となります)
site_name Geeklog Site サイトの名前
site_slogan Another Nifty Geeklog Site サイトのスローガン
welcome_msg Welcome to Geeklog Site ユーザ名の次に続くウェルカムメッセージ(登録ユーザのため)
datetime Thursday, November 28 2002 @ 11:43 AM PST 現在の日時を$_CONF['date']に従ってフォーマットしたもの
site_logo http://www.example.com/layout/
XSilver/images/logo.gif
サイトのロゴとして使われる現在のテーマの画像ディレクトリのlogo.gifへのリンク
css_url http://www.example.com/layout/
XSilver/style.css
現在のテーマのスタイルシートへのリンク
theme professional 現在のテーマ名
charset UTF-8 現在の言語ファイルの文字コード
rss_url http://www.example.com/backend/geeklog.rdf サイトのRSSフィード用URLを示します({rdf_filel}と同じ)。この変数はfooter.thtmlでも利用可能
rdf_file http://www.example.com/backend/geeklog.rdf サイトのRSSフィード用URLを示します({rss_url}と同じ)。この変数はfooter.thtmlでも利用可能
feed_url   話題ごとに異なる、フィードファイルへのリンクを動的に生成
plg_headercode   プラグイン専用ヘッダコード
advanced_editor   アドバンストエディタ専用ヘッダコード
left_blocks   左ブロックコンテンツ
geeklog_blocks   ブロックコンテンツ 左ブロック、または右ブロックの内部が表示される(通常は左ブロックの内部)。実際にはleftblocks.thtml、rightblocks.thtmlで使う。
menu_elements   グローバルナビゲーション 順番などはconfig.phpで指定
menuitem_text アンケート グローバルナビゲーションのメニューのテキスト 実際にはmenuitem.thtml、menuitem_last.thtml、menuitem_none.thtml内で使う
menuitem_url http://www.example.com/polls/index.php グローバルナビゲーションのメニューのURL 実際にはmenuitem.thtml、menuitem_last.thtml、menuitem_none.thtml内で使う
button_home ホーム 「ホーム」メニューを表すテキスト 言語設定に依存する。
button_contact 管理者にメール 「管理者にメール」メニューを表すテキスト 言語設定に依存する。
button_contribute 記事投稿 「記事投稿」メニューを表すテキスト 言語設定に依存する。
button_calendar カレンダー 「カレンダー」メニューを表すテキスト 言語設定に依存する。
button_sitestats サイト情報 「サイト情報メニュー」を表すテキスト 言語設定に依存する。
button_personalize 個人設定 「個人設定」メニューを表すテキスト 言語設定に依存する。
button_search 検索 「検索」メニューを表すテキスト 言語設定に依存する。
button_advsearch 検索オプション 「検索オプション」メニューを表すテキスト 言語設定に依存する。
button_directory 記事一覧 「記事一覧」メニューを表すテキスト 言語設定に依存する。
current_topic &topic=GeekLog 現在表示している記事・トピックが属するトピックを表すクエリ文字(記事・トピックページでのみ有効)
prof_url http://www.example.com/users.php?mode=profile&uid=2 ログイン済みユーザーのプロフィールページのURL(日本語版オリジナル仕様:ログイン時に有効・非ログイン時は{site_url}と同じ)
direction ltr 文字の方向 言語設定に依存する。ヘブライ語バージョン以外ではltr(左から右)が標準の設定となっている。HTML・XHTMLのdir属性用(例: <body dir="{direction}">

記事

次の変数がstorytext.thtml、storybodytext.thtml, featuredstorytext.html、featuredstorybodytext.thtml、archivestorytext.thtml、archivestorybodytext.thtmlテンプレートファイルで利用できます。これらのファイルは、各記事の単独ページの表示に使われるarticle/article.thtmlファイルの{formatted_article}変数の内容と同様indexページで記事を表示する時に使われます。

変数説明
site_url http://www.example.com サイトのURL(config.phpファイルの$_CONF['site_url']に設定されているものと同一)
layout_url http://www.example.com/layout/XSilver ユーザの現在のテーマのレイアウトディレクトリへのURL
story_date Tuesday, October 22 2002 @ 11:50 PM PDT ユーザの選んだ書式の記事の日時
lang_views Views ユーザの選んだ言語の"View"という単語
story_hits 42 記事が読まれた回数
article_url http://www.geeklog.net/article.php?story=articles 記事ページ(article.php)へのフルURL。URLリライトが有効時も正しいURLを反映します
story_id articles 記事のID("link to this story"リンクを生成する時に使われる)
story_title Welcome to Geeklog! 記事のタイトル
story_introtext Welcome and let me be the first to congratulate you on installing GeekLog ... indexページで表示された場合は記事の導入テキストを、単独記事ページで表示された場合は導入テキストと本文の両方を含みます。
story_introtext_only 冒頭文のみ。
story_bodytext_only 本文のみ。
lang_todays_featured_article Today's Featured Article ユーザの選らんだ言語で"Today's Featured Article"に該当する単語。記事が注目記事の場合にのみ利用可能

記事がindexページに表示され記事本文が空でない時に限り次のような変数が利用できます。
The following variables are only available when the story is displayed on the index page and the body text of the story is not empty:

変数説明
lang_readmore read more ユーザの選らんだ言語で"read more"に該当する単語
lang_readmore_words words ユーザの選らんだ言語で"word"該当する単語
readmore_words 62 記事本文のワード数
readmore_link <a href="...">read more</a> (62 words) 記事本文のワード数を含む別ページへのリンク
start_readmore_anchortag <a href=".../article.php
?story=20021022234959146">
別ページの記事へのリンクの開きタグ
end_readmore_anchortag </a> 記事へのリンクの閉じタグ
email_icon (icon) 電子メールのアイコンで記事を電子メールで送信するフォームへのリンク
print_icon (icon) 記事の印刷向き画面へのリンクを示すプリンタアイコン
recent_post_anchortag -- コメントがまだ何も投稿されていない時、この変数にはコメント投稿フォームへのリンク({post_comment_link}と同様)が入っている。記事にコメントがある場合は、変数にはリンクは含まれず、代わりに最後にコメントを投稿した人のユーザ名、コメントがポストされた日時が含まれています。

記事に対するコメントが利用でき既にコメントされている時に限り次のような変数が使えます。

変数説明
comments_url http://www.example.com/article.php
?story=20021022234959146#comments
コメントセクションへのURL(記事が別ページに表示されている時)
comments_text 2 comments コメント数とユーザの選らんだ言語で"comments"に該当する単語
comments_count 2 記事に対するコメント数(1以上)
lang_comments comments ユーザの選らんだ言語で"comments"に該当する単語
start_comments_anchortag <a href=".../article.php
?story=20021022234959146#comments">
記事のコメントセクションへのリンクの開きタグ
end_comments_anchortag </a> 記事のコメントセクションへのリンクの閉じタグ
post_comment_link <a href=".../comment.php
?sid=20021022234959146&pid=0
&type=article">Post a comment</a>
コメント投稿フォームへのリンク(ユーザの選択した言語で"Post a comment"に該当するものをリンク用のテキストに使用)

config.phpの$_CONF['contributedbyline'] = 1;に設定されている時に限り次のような変数が使えます。すなわち記事の著者名が表示されるのを許可している場合です。

変数 
lang_contributed_by Contributed by: ユーザの選らんだ言語で"Contributed by:"に該当する単語
contributedby_uid 7 記事の著者のユーザID
contributedby_user Tony 記事の著者のユーザ名(ショートネーム)
contributedby_fullname Tony Bibbs 記事の著者のフルネーム。フルネームが記入されていない場合はユーザ名が使われます。
start_contributedby_anchortag <a class="storybyline" href="http://www.example.com/
users.php?mode=profile&uid=7">
記事の著者プロフィールへのリンクの開きタグ(ゲストユーザーの場合は空)
Opening tag for a link to the story author's profile (empty for anonymous authors).
end_contributedby_anchortag </a> 記事の著者プロフィールへのリンクの閉じタグ(ゲストユーザーの場合は空)
contributedby_url http://www.example.com/
users.php?mode=profile&uid=7
記事の著者プロフィールへのリンク(ゲストユーザーの場合は空)
contributedby_photo <img src=".../images/userphotos/Tony.gif" alt="Tony Bibbs"> もしあれば記事の著者の写真(ゲストユーザーの場合は常に空)
camera_icon small camera icon and link to the author's user profile 写真をアップロードしている場合はカメラアイコン("Who's Online"ブロックと同様)と著者プロフィールへのリンク(ゲストユーザーの場合は表示されない)

記事に対する話題アイコンが有効になっていてユーザが無効にしていない時に限り次のような変数が使えます。

変数説明
story_anchortag_and_image <a href="http://www.example.com/
index.php?topic=Geeklog"><img src="..." ...></a> (shortened)
話題順にソートされた記事の話題アイコンでサイトのindexページへのリンクに挟まれます。
story_topic_image <img align="right" src="http://www.example.com/
images/topics/topic_gl.gif" alt="Geeklog" title="Geeklog">
記事の話題アイコン
story_topic_id General リンクで用いられる話題のID(内部名)
story_topic_name General News 話題名(Sectionsブロックに表示されるもの)
story_topic_url <a href="http://www.example.com/
index.php?topic=General">
話題が設定されている記事のみを表示するためのサイトのindexページへのURL

現在のユーザに記事編集権限が与えられている時に限り次のような変数が使えます。

変数説明
edit_link <a href=".../admin/story.php
?mode=edit&sid=20021022234959146">edit</a>
管理者の記事を編集するためのエディタへのリンク
edit_icon <a href=".../admin/story.php
?mode=edit&sid=20021022234959146"><img src=".../images/edit.gif"></a>
管理者の記事を編集するためのエディタへのリンクするアイコン
edit_url http://www.example.com/admin/story.php
?mode=edit&sid=20021022234959146
管理者の記事を編集するためのエディタへのURL
lang_edit_text edit ユーザの選択した言語で"edit"に該当する単語

その他,記事には数多くのテーマ変数を利用できます。

  • story_date_short
  • story_date_only
  • contributedby_author
  • author
  • story_text_no_br
  • page_selector
  • story_page
  • send_trackback_link
  • send_trackback_url
  • lang_send_trackback_text
  • story_display
  • story_counter
  • read_more_class
  • start_storylink_anchortag
  • end_storylink_anchortag
  • lang_comments
  • comments_with_count
  • lang_post_comment
  • start_post_comment_anchortag
  • end_post_comment_anchortag
  • trackbacks_url
  • trackbacks_text
  • trackbacks_count
  • lang_trackbacks
  • trackbacks_with_count
  • start_trackbacks_anchortag
  • end_trackbacks_anchortag
  • email_story_url
  • lang_email_story
  • lang_email_story_alt
  • print_story_url
  • lang_print_story
  • lang_print_story_alt
  • pdf_icon
  • pdf_story_url
  • lang_pdf_story
  • lang_pdf_story_alt
  • story_display
  • story_counter
  • edit_image

サイトフッタ

次の変数がサイトフッタテンプレート(footer.thtml)で利用可能です。

変数説明
site_url サイトヘッダの例と同じ サイトヘッダの説明と同じ
layout_url サイトヘッダの例と同じ サイトヘッダの説明と同じ
site_mail サイトヘッダの例と同じ サイトヘッダの説明と同じ
site_name サイトヘッダの例と同じ サイトヘッダの説明と同じ
site_slogan サイトヘッダの例と同じ サイトヘッダの説明と同じ
rdf_file サイトヘッダの例と同じ サイトヘッダの説明と同じ
rss_url サイトヘッダの例と同じ サイトヘッダの説明と同じ
copyright_notice Copyright © 2006 サイト名
本ページのすべての商標と著作権はそれぞれの所有者に帰属します。
コピーライト表示と商標に関する注意
copyright_msg Copyright © 2006 サイト名 コピーライト表示
current_year 2006 現在の西暦
lang_copyright Copyright 「Copyright」を表すテキスト 言語設定に依存する
trademark_msg 本ページのすべての商標と著作権はそれぞれの所有者に帰属します。 商標に関する注意
powered_by Powered By 「Powered By」を表すテキスト 言語設定に依存する
geeklog_url http://www.geeklog.net/ Geeklog本家のURL
geeklog_version 1.4.0sr5-1 Geeklogのバージョン
right_blocks   右ブロックコンテンツ
geeklog_blocks   ブロックコンテンツ 左ブロック、または右ブロックの内部が表示される(通常は右ブロックの内部)。実際にはleftblocks.thtml、rightblocks.thtmlで使う。
centerblockfooter-span </td></tr></table> テーブル(表)のtd要素、tr要素、table要素の終了タグが出力される
execution_time 0.08 ページ作成時間(単位なし)
execution_textandtime ページ作成時間: 0.08 秒 「ページ作成時間」を表すテキストとページ作成時間(単位あり) 言語設定に依存する。

どのテンプレートファイルが、Geeklogのどの部分に使われるかを明示している完全なリストが現在ありません。しかしほとんどの場合、テーマのレイアウトディレクトリのファイルとディレクトリの名前を見れば予測できます。

Geeklogの一定の部分を作るのに、どのテンプレートファイルが使われているかわからない場合は、URLを見てPHPファイル名を確認してください。たとえば、ユーザープロファイルを見るときは、users.phpファイルとなります。そのファイルを開けて、 '.thtml'を検索してくだい。プロファイルでは、次のようになっています。 (関数 userprofile()で):

$user_templates = new Template ($_CONF['path_layout'] . 'users');
$user_templates->set_file (array ('profile'=>'profile.thtml', 'row'=>'commentrow.thtml', 'strow'=>'storyrow.thtml'));

テーマのusersディレクトリのテンプレートファイルprofile.thtml、commentrow.thtml、storyrow.thtmlを使用していることがわかります。

テーマ変数の追加

なお,テーマの変数は自由に増やせます。

日本語版標準パッケージでは,ヘッダテンプレート(header.thtml)で以下の変数を利用できます。

変数 {topic_id}
 変数の値: 話題ID

変数 {login_status}
 変数の値:
  guest:ログイン前
  member:ログイン後

変数 {home_id}
 変数の値:
  home:ホームページ
  sub:サブページ

ヘッダ,フッタは,system/custom/custom_templatesetvars.phpで記述。 記事は,public_html/article.phpをハックします。

参考:

個人用ツール