テーマで使える変数
提供: 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をハックします。
参考:
- 話題ごとに異なるデザイン …標準パッケージにて配布
- 記事ページにパンくずリストを表示する
- CUSTOM_templatesetvars() …テンプレート変数を追加するカスタム関数