(Geeklogの最近のバージョンにおけるテーマ変更一覧については、下記参照のこと。)

# Geeklog用のテーマ作成

Geeklog用にテーマを作成するのは簡単ですぐにできます。HTMLファイルを編集できるなら、テーマを作成できます。PHPを習得する必要はありません。

## テーマ作成

最初に、自分が作成したいテーマに最も似ている既存のテーマがあれば、それをコピーします。作成したいテーマが根本的に違うものであるなら(我々としてはそうであってほしいのですが)、どのテーマをコピーしてもかまいません。既存のテーマを自分が希望するテーマ名でコピーしましょう(テーマ名にスペースを含めないでください)。

`cp -R /path/to/geeklog/public_html/layout/professional /path/to/geeklog/public_html/layout/自分のテーマ名(スペースを含んではいけません。)`

新しくできたディレクトリ(MS Windowsの場合は「フォルダー」。以下、同様。)に移動します。

`cd /path/to/geeklog/public_html/layout/自分のテーマ名(スペースを含んではいけません。)`

必要に応じてテンプレートを編集します。一般的に、GeeklogでいうテンプレートとはHTMLファイルの断片です。今作成したディレクトリにはGeeklogが必要とするすべてのテンプレートファイルが収められていますが、外見を大きく変えるのに変更する必要があるのはほんの少数でしょう。

特に次のテンプレートは間違いなく変更する必要があるでしょう。

- header.thtml
- footer.thtml
- blockheader.thtml
- blockfooter.thtml
- storytext.thtml
- storybodytext.thtml
- featuredstorytext.thtml
- featuredstorybodytext.thtml
- archivestorytext.thtml
- archivestorybodytext.thtml
- style.css

### テーマはどのように機能するか

テーマを用いて表示するとき、Geeklogはサイトのヘッダーになる header.thtml から始め、次に左ブロック(`{left_blocks}` テンプレート変数と leftblocks.thtml テンプレートファイルを探しましょう)を処理します。サイトの中央部分は記事で構成されますが、普通の記事の場合は storytext.thtml と storybodytext.thtml テンプレートファイル、注目記事の場合は featuredstorytext.thtml と featuredstorybodytext.thtml テンプレートファイルが使用されます。最後に、footer.thtml テンプレートファイルを使用して、右ブロック(`{right_blocks}` テンプレート変数と right_blocks.thtml テンプレートファイルを探しましょう)とサイトのフッターを表示します。ブロック自体は blockheader.thtml と blockfooter.thtml テンプレートファイルで構成されています。

この説明はGeeklogのメインページと記事がどのように作成されるかを述べただけです。Geeklogで見かける様々なエディターやリストだけでなく、カレンダープラグインなど、Geeklogのあらゆる部分を構成するために様々なテンプレートが存在しています。

どのテンプレートファイルがGeeklogのどの部分の表示に使用されているのかを説明する完全なリストは今のところ存在していません。とはいえ、たいていの場合は、テンプレートのあるディレクトリ名とファイル名を見れば、用途は明らかなはずです。Geeklogのある部分を表示しているテンプレートファイルが分からない場合は、URLを見るとよいでしょう。たとえば、ユーザーのプロフィールを表示しているときなら、users.php というPHPのファイル名に気がつくでしょう。そのファイルをテキストエディターで開き、 `.thtml` を検索します。プロフィールの場合は、次の行が `function userprofile()` の中に見つかります。

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

PHPを理解していなくても、この部分で profile.thtml, commentrow.thtml, storyrow.thtml テンプレートファイルが使用されていることは分かるでしょう。最初の行を見れば、これらのテンプレートファイルがテーマディレクトリ内の users ディレクトリから読み込まれているのが分かります。

テンプレートファイル内で使用されているテンプレート変数のリスト(完全なものではありません)もドキュメントに含まれています。

### テーマのテストと追加情報

自分のテーマを編集し終わったら、次はテストです。 http://自分のサイトのURL/usersettings.php?mode=preferences へ行き、テーマのドロップダウンリストから作成したばかりのテーマを選択します(テーマ名はテーマを収めているディレクトリ名と同じです)。

最後に、テーマの images ディレクトリ内のロゴや他の画像ファイルを入れ替える必要もあるでしょう。

テンプレートシステムとしては、GeeklogではPHPLibのテンプレートクラス(http://phplib.sourceforge.net/)を使用しています。彼らが作成したドキュメントを読み、できれば、/非公開領域/system/classes/template.class.php を覗いて、どのように実装されているか調べてみるのもよいでしょう。この知識があっても、あるテンプレートファイルがどのテンプレートファイルとセットで使われているかはっきりと分からないかもしれません(たとえば、 storytext.thtml と storybodytext.thtml がセットになって、1つの記事の完全なフォーマットができあがります)。疑問があるなら、http://lists.geeklog.net/listinfo/geeklog-usersメーリングリストに登録するか、IRC(irc.freenode.net の #geeklog チャネル)で尋ねるとよいでしょう。

### ヒントと注意点

テーマとWYSIWYGエディター： Geeklogが使用するテンプレートファイルは完全なHTMLファイルではなく、断片に過ぎません。Geeklogはこの断片を組み合わせて適切なHTMLドキュメントを作成します。しかし、このため一部のWYSIWYG HTMLエディターが誤動作し、ファイルに不足しているHTML要素を勝手に追加して、Geeklogにとっては使い物にならなくしてしまうことがあります。
テーマの編集には、単純なテキストエディターを使用することをお勧めします。

XHTML: Geeklog は XHTML準拠のサイトを作成できます。HTMLにもXHTMLにも準拠したテーマを作成できます。 詳しくは次のWikiThemes and XHTMLをご覧ください。

テンプレートファイル中のPHP： テーマのヘッダー、つまり、header.thtml の中ではPHPのコードを使用できます。カスタム関数を使用したいなら、テーマディレクトリ内の functions.php ファイル内で定義すればよいでしょう。

左右のブロックで見た目を変える： 左右のブロックの外見を変えることができます。詳細は、Geeklogホームページのこの記事を参照してください。

アンケート： 投票結果をグラフで表示する際、複数の色の棒グラフを使用するには、`{answer_counter}` と `{answer_odd}` テーマ変数を pollbooth/pollvotes_bar.thtml テンプレートファイル内で使用するとよいでしょう。`{answer_counter}` はそれぞれの回答数に置き換えられるので、 bar{answer_counter}.gif と記述すると、結果として bar1.gif, bar2.gif のようになります。GIFファイルごとに色を変えておけば、回答ごとに色も変わることになります。
`{answer_odd}` は回答ごとに 0 から 1、1 から 0 と変わるので、bar{answer_odd}.gif と記述すると、結果として奇数番目の回答は bar0.gif 、偶数番目の回答は bar1.gif となります。

右ブロック内で左ブロックを表示する： `$_CONF['left_blocks_in_footer']` はかなり変わったオプションです。このオプションを使用すると、サイトのフッター(つまり footer.thtml)内で `{left_blocks}` テンプレート変数が使用できるようになる一方で、ヘッダー(header.thtml)内では `{left_blocks}` テンプレート変数が使用できなくなります。
これを利用すると、2列レイアウト(1列は右ブロック用、もう1列はコンテンツ用)を実現できます。単にすべてのブロックを右ブロックに移動しただけでは期待した動作にはなりません。普通、左ブロックしか表示しないようなページ(たとえば、article.php や管理者用のページ)では、全くブロックが表示されない からです。 `$_CONF['left_blocks_in_footer'] = 1` にすると、この動作が修正され、システム内部では依然として左ブロックとして扱われていても、実際には右ブロックに表示されるようになります。
テーマの header.thtml, footer.thtml, leftblocks.thtml はたぶん、修正する必要があるでしょう。ですから、left_blocks_in_footer オプションはコンフィギュレーションでは設定できず、テーマの functions.php 内で設定すべきです。そうすることで、たとえば、ユーザーに「普通の」テーマと右ブロックテーマを選択する余地を与えることさえできるようにります。

エラーメッセージ： Geeklog 1.4.1以降、重大なエラーが発生したときにRoot以外のユーザーにどのようなHTMLを表示するか制御できるようになりました。好みのHTMLを表示するには、lib-custom.php 内の `CUSTOM_handleError` 関数を変更する必要があります。

記事にパーマネントリンク(permalink)を追加する： 多くのWebサイトでは、パーマネントリンク、つまり記事に対応する永続的なURLを提供しています。Geeklogでデフォルトの Professional テーマでは、記事の見出しが既にその機能を果たしています。つまり、記事の永続的なURLへのリンクとなっています(article.phpを指しています)。しかし、この方法はあまり目につかないし、訪問者がページのどこかにパーマネントリンクがあるのを期待することが多いため、自分でパーマネントリンクを追加する方法を次に示します。

1. 記事のテンプレートファイル内に適当な場所を探します。既に記事関係のリンクが多数含まれているので、storytext.thtml 内の story-footer セクションがよいかもしれません。
2. パーマネントリンクを設置する場所を決めたら、次のコードを入力します。
   `<a href="{article_url}">{lang_permalink}<a>`
   これで、記事へのリンク(article_url)が、現在の言語ファイルの「パーマネントリンク(Permalink)」に相当する語句(lang_permalink)を用いて追加されました。
3. 徹底的にやりましょう。この時点では、パーマネントリンクは注目記事以外の記事でしか表示されません。また、CSSを使用して外見を変更したり、リンクの場所を調節する必要があるでしょう。
4. 同じコードを featuredstorytext.thtml と archivestorytext.thtml テンプレートファイルに追加すれば、注目記事にもパーマネントリンクが表示されるようになります。

## 変更点

## Theme changes in Geeklog 2.2.2

- New Block Header Child template called blockheader-child.thtml. This is used by User Profile page and allows for nesting blocks within the main block. This change required bumping Geeklog minimum version for themes to 2.2.2.
- For the users\profile.thtml file, all {end_block} template variables updated with unique names.
- Edit link for topics added to topic.thtml
- New block template added called "_admin_list" which allows a theme to specify what block header and footer to use to wrap Admin Lists. Admin lists originally used "_admin_block" which is also used by the main admin page block.
- Template files archivearticlebodytext.thtml, archivearticletext.thtml, articlebodytext.thtml, articletext.thtml, featuredarticlebodytext.thtml, and featuredarticletext.thtml moved from root folder to the folder "article".
- Template file printable.thtml added to the root folder to the folder.
- Template file printable.thtml removed from the "article" folder.

## Geeklog 2.2.1におけるテーマの変更点

- メインテーマのheader.thtmlとfooter.thtmlがまとめられてindex.thtmlになりました。つまり、この新しいフィルの中で従来の2つのファイルで用いられていたすべてのテンプレート変数を用いることができます。
- 新しいindex.thtmlには、メインページのコンテンツを表示する {content} テンプレート変数を追加しました。
- 新しいindex.thtmlには、システムメッセージを表示する {system_messsages} テンプレート変数を追加しました。
- テーマの設定が追加されました: 'theme_name', 'theme_version', 'theme_gl_version', 'theme_author', 'theme_license'
- functions.php の中で、テーマ変数 $theme_config['supported_version_theme'] が非推奨になりました。代わりに 'theme_gl_version' を使用してください。
- (プラグインの funcions.inc で利用できる) PLG_getThemeItem と theme_getThemeItem_foo APIが追加され、テーマがGeeklogのアイテムでCSSクラスやスタイル、その他の情報を設定できるようになりました。

## Geeklog 2.2.0におけるテーマの変更点

- "record_edit"ブロックと{record_edit}テンプレート変数を commentform.thtml と commentform_advanced.thtml に追加しました。これにより、記録を残さずにモデレーターがコメントを編集できるようになりました。
- "comment_signature", "comment_edit"ブロックと{comment_signature}, {comment_edit}テンプレート用を comment.thtmlに追加しました。コメントの署名とユーザーが編集したもののスタイル付けが容易になり、ハードコードされていたCSSが取り除かれました。
- {block_help}テンプレート変数を全てのブロックヘッダー用テンプレートファイル (blockheader.thtml, blockheader-left.thtml, etc..)から取り除きました。{help_title}テンプレート変数を追加し、ヘルプ用のアイコンとリンクをテンプレートファイルに直接追加しました。表示する必要を確認するのは、テンプレートのif構文で {help_url} 変数をチェックしてください。
- PHPブロックに必要になるかもしれないテンプレートファイルを置くためにblocksディレクトリを追加しました。phpblock_switch_language関数用に switchlanguage.thtml テンプレートファイルを追加しました。
- {delete_option}, {delete_option_no_confirmation}テンプレート変数を articleeditor.thtml と articleeditor_advanced.thtml テンプレートファイルから削除しました。代わりに {allow_delete} テンプレート変数を使用してください。具体例は Modern Curve テーマをご覧ください。
- {image_add_instructions}, {allow_user_scaling}, {image_preview_instructions}テンプレート変数を articleeditor.thtml と articleeditor_advanced.thtml テンプレートファイルに追加しました。
- image-file-name, image-file-selectブロックを articleeditor.thtml と articleeditor_advanced.thtml テンプレートファイルに追加しました。
- common.thtml, checklist.thtmlテンプレートファイルを新しく"controls"ディレクトリに追加しました。
- authenticationrequired.thtml テンプレートファイルを"user"ディレクトリに追加しました。
- deleteaccountconfirm.thtml テンプレートファイルを"preferences"ディレクトリに追加しました。
- topic.thtml テンプレートファイルをテーマのルートディレクトリに追加しました。

## Geeklog 2.1.3におけるテーマの変更点

- {copyright_notice}をfooter.thtmlから削除しました。HTMLタグを含んでいる上に、同じメッセージを{copyright_msg}と{trademark_msg}テンプレート変数から作れるからです。
- usersディレクトリからstoryrow.thtml, commentrow.thtml, email.thtmlを削除しました。これを補うために、profile.thtmlにブロックを追加しました。
- 記事内の画像の左寄せ・右寄せ・寄せなし([imageX_left], [imageX_right], [imageX])をサポートするために、3つのブロックを storytext.thtml, featuredstorytext.thtml, archivestorytext.thtmlに追加しました。
- アンケートプラグインで、denimテーマとデフォルトテンプレート用のpollanswer.thtml, pollquestions.thtml, pollvotes_bar.thtml, pollvotes_num.thtml, pollquestion.thtmlを削除しました。これを補うために、pollblock.thtml と pollresult.thtml にブロックを追加しました。

## Geeklog 2.1.2におけるテーマの変更点

- テーマ変数 {lang_side} を {lang_position} に変更し、{none_selected} を blockeditor.thtml と defaultblockeditor.thtml の position フィールドに追加しました。
- Device フィールド(ラジオボタン3個で構成されています)を blockeditor.thtml と defaultblockeditor.thtml に追加しました。
- 話題ごとに記事のテンプレートを変更する機能を追加しました。たとえば、話題が Geeklog の記事のテンプレートを変更したいとします。 この場合、 [path_layout]/topics/Geeklog というディレクトリを作成し、[path_layout] ディレクトリ下の storytext.thtml, storybodytext.thtml, featuredstorytext.thtml, featuredstorybodytext.thtml, archivestorytext.thtml, archivestorybodytext.thtml テンプレートを [path_layout]/topics/Geeklog ディレクトリにコピーし、お好きなように変更してください。

## Geeklog 2.1.1におけるテーマの変更点

新たなテーマ機能は、プラグインにテーマ別のテンプレートを用意できるようになったことです。 テンプレートはプラグインそのものに持つことができ、あるいはテーマ、あるいはその両方にもつことができます。 すべてのGeeklogs コアプラグインは、このあたらしい機能をサポートしています。より詳しい説明は Geeklog Wiki Theme Specific Plugin Templatesを参照してください。

### 変更点全般

- UIkit framework (v2.24.0) をテーマから、必要に応じて呼べるようにしました。
- breadcrumbsディレクトリからbreadcrumbs.thtmlをrootディレクトリに移動。ブロックナンバーをテンプレートに追加しました。
- breadcrumb.thtml, breadcrumb_child.thtml, breadcrumb_nolink.thtml, and breadcrumb_root.thtmlを削除しました。
- breadcrumbs directoryを削除しました。

## Geeklog 2.1.0におけるテーマの変更点

- 追加: テーマ変数{related_topics} featuredstorytext.thtmlとstorytext.thtml
- 追加: topicrelated.thtml は記事の関連話題で表示。
- 削除: topicoption.thtml と topicoption_off.thtml. 追加: topicnavigation.thtml which uses blocks から reduce the number of template files.
- リネーム: page_navigation.thtml から pagenavigation.thtml
- 削除: menuitem.thtml, menuitem_last.thtml と menuitem_none.thtml. 追加: menunavigation.thtml which uses blocks から テンプレートの数を減らします。
- 削除: adminoption.thtml と adminoption_off.thtml.
  追加: adminavigation.thtml which uses blocks から テンプレートの数を減らします。
- 削除: adminoption.thtml と adminoption_off.thtml.
  追加: adminavigation.thtml which uses blocks から テンプレートの数を減らします。
- 削除: useroption.thtml と useroption.thtml.
  追加: usernavigation.thtml which uses blocks から テンプレートの数を減らします。
- 削除: listitem.thtml. list.thtml now uses blocks から テンプレートの数を減らします。
- 削除: admin/moderation/moderation.thtml, admin/moderation/ccitem.thtml と admin/moderation/ccrow.thtml.
  追加: admin/commandcontrol.thtml これは、テンプレートファイルの数を減らすためにブロックを使用します。
- 追加: /images/icons/moderation.png管理画面用画像
- list id 変更: "admin-moderation" から "admin-commandcontrol". 対象は、Denim, Modern Curve テーマ
- 画像移動: /tooltips/images/ から /images/tooltips/ tooltip テンプレートファイルを/tooltips/以下に移動。
- 画像移動: /navbar/images/ から /images/navbar/ css files (different for each theme).
  削除: unused images for navbar from Denim と Modern Curve themes.
- 更新: /admin/blocks/blockeditor.thtml と 追加: in cache_time labels と input for all themes.
- 更新: /admin/common/edit_topics.thtml すべてのテーマでjQueryを利用。 (adding ids から a number of elements)
- 追加: /admin/envcheck.thtml と 環境チェックのAdmin page関連 css
- 更新: /admin/topic/storyeditor.thtml, /admin/topic/storyeditor_advanced.thtml と /admin/topic/topiceditor.thtml. ID の文字数を128桁まで増やしました。 (話題名も同様)。
  追加: タイトル名から最適なIDに自動変換するjavascript topic_2_id.js
- 追加: テーマ変数 {titletoid} を 記事編集、話題編集、静的ページ編集テンプレートファイルに追加。 自動変換javascriptの有効・無効はコンフィギュレーションで設定できます。
- テンプレートファイルの /comment/commentbar.thtml から、テーマ変数削除: {show_link_to_commenteditform} 追加: テンプレートブロック {commenteditform_jumplink} と テーマ変数 {jump_link_for_commenteditform}.

## Geeklog 2.0.0におけるテーマの変更点

Geeklog 2.0.0には2つのテーマエンジンが存在します。現在、DeminとModern Curveテーマは2.0.0のテーマエンジンを使っています。Professional および Professional CSS テーマは1.8.1テーマエンジンを使っています。 1.8.1テーマエンジンはそのうちGeeklogからなくなります。そのため、テーマを開発するなら新しいテーマエンジンを使ってください。くわしくはGeeklog Wiki Theme Developers Guideを。

### 変更点全般

- HTML 5 DOCTYPE が追加されました。
- 最小のテーマAPIが利用可能になりました。それはデフォルトを無視するために使用することができます、CSSファイルとJavaScriptファイルのロード、くわしくはGeeklog Wikiを。新しい機能は、function theme_config_mytheme()、function theme_css_mytheme()、 function theme_js_libs_mytheme()、function theme_js_files_mytheme()とfunction theme_init_mytheme()です。
- 新しいパンくず用フォルダには、breadcrumbs.html, breadcrumb_root.thtml, breadcrumb.thtml, breadcrumb_nolink.thtml, と breadcrumb_child.thtmlがあります.
- 話題、記事と静的ページのパンくずリスト表示には、テンプレート変数 {breadcrumb_trail} をheader.thtmlに追加します。
- 話題選択のための新しいファイルedit_topics.thtmlが/admin/commonに追加されました。
- topicoption.thtmlとtopicoption_off.thtml がテーマのrootフォルダに追加されました。
- adminフォルダの話題フォルダの入れ替え。たくさんのファイルに変更があります。
- 話題選択のために、テーマ変数 {topic_selection} が、ファイル /admin/block/blockeditor.thtml, /admin/block/defaultblockeditor.thtml, /admin/article/articleeditor.thtml, /admin/article/articleeditor_advenced.thtml, /submit/submitstory.thtml, と /submit/submitstory_advanced.thtmlに追加されました。
- 同じページでコメントする機能で多くの変更があります。すべてのコメントフォルダとcommentbar.thtml と comment.thtmlを必要に応じてカスタマイズします。
- 静的ページとブロック編集のための新しいCSSが追加されました。

### テーマエンジン2.0.0特有の変更点

- header.thtmlのbody のclassに新しいテンプレート変数 {layout_columns}が追加されました。これはGeeklogのカラム数の指定のためのものです。
- 新しいJavscriptファイル /javascript/fix_html.jsは、プラグインが2.0.0テーマエンジンをサポートしていない場合に必要になります。
- Javascript code `FixHTML('leftblocks', 'centerblocks', 'rightblocks');` はfooter.thtml ファイルに必要になりました。

### テーマエンジン1.8.1特有の変更点

- なし。

## Geeklog 1.8.0におけるテーマの変更点

- 新たにテーマ変数 `{plg_footercode}` が footer.thtmlに追加されました。 これにより追加コード、たとえば JavaScriptコードがページの終わりに追加されます。
- 検索エンジン向けにメタタグが記事の印刷用ページarticle/printable.thtmlに追加されました。 これにより検索エンジンにクロールされないようになりました。
- 検索エンジン向けにメタタグが静的ページの印刷用ページ templates/printable.thtmlに追加されましたこれにより検索エンジンにクロールされないようになりました。
- 新たに様々な tooltips向けのテンプレートを含むtooltipsディレクトリ(自動タグの説明などで活用)が提供されました。 スタイルシートstyle.cssの`tooltip`クラスとあたらしいクラスに、いくつかの変更が必要です (classic, help, etc.)

## Geeklog 1.7.1におけるテーマの変更点

### Admin templates

- グループ管理画面で、`chk_grpdefault` と `chk_applydefault` のチェックボックスがadmin/group/groupeditor.thtmlにありますが、'登録済みユーザーアカウントにデフォルトグループを追加する'は、 '新規登録ユーザーのデフォルトグループをチェック'のチェックなしには選択できないようにしました。 (javascript/common.js内の追加されたJavaScriptによって実行されます).

### その他の変更

- コメント投稿と編集で、キャンセルと削除のボタンを必要に応じて追加しました。(e.g. レビュー時等). comment/commentform.thtml と comment/commentform_advanced.thtml。
- loginform_openid.thtmlで、</div>に変更しました。
- Cosmetics: block-bg-left とblock-bg-right クラスから1px borderを削除しました。
- Cosmetics: header.thtmlのメインテーブルにborder="0" を追加しました。

## Geeklog 1.7.0におけるテーマの変更点

### Admin templates

- 話題エディターテンプレート(admin/topic/topiceditor.thtml)に、 メタタグサポートが無効の際にメタディスクリプションとメタキーワードの テキスト入力フィールドを隠すためのテーマ変数 `{hide_meta}` を追加しました。
- 話題エディターテンプレートadmin/topic/topiceditor.thtmlに、 最大画素数、話題アイコンの最大ファイルサイズ、縮小されるかどうかを表示する テーマ変数 `{icon_max_dimensions}`を追加しました。
- 話題エディターテンプレートadmin/topic/topiceditor.thtmlに、 話題IDの変更ができるようにするため、hiddenフィールドの"old_tid"を 追加しました。
- 記事エディターテンプレートadmin/topic/storyeditor.thtml と admin/topic/storyeditor_advanced.thtmlに、メタタグが無効のとき、 メタ description と メタ keywordsを隠すためのテーマ変数 `{hide_meta}` を新たに追加しました。
- admin/topic/storyeditor_advanced.thtmlで、許可するHTMLタグと 自動タグを常に表示するため、`<div id="editor-mode">`の CSS スニペット`display:{show_htmleditor};`を削除しました。
- コンフィギュレーションテンプレートadmin/config/menu_element.thtmlの すべてのonclickイベントにおいて`false`がreturnされるべき でしたが、returnはunset-paramの場合(つまり、`リストア`)のとき、 `open_group` と`open_subgroup` において失敗していました。
- admin/config/config_element.thtmlに新たにtextareaを追加し、 コンフィギュレーション・オプションで複数行の入力フィールドをつくれるようにしました。
- admin/config/config_element.thtmlの`select-element`部で、 テーブル行のために`{hide_row}`を追加し、テーブル`select`の 後に`{delete}` オプションを追加しました。 これらは動的なドロップダウンメニュー(たとえば`$_CONF['menu_elements']`)の 追加・削除に必要なものでした。
- グループエディターテンプレート admin/group/groupeditor.thtmlで、 デフォルトグループの2つの新たなオプション (chk_grpdefault と chk_applydefault チェックボックスと言語変数)を追加しました。
- fieldhelpクラスに左右paddingを含めるようにしました。 よってグループ編集テンプレート(admin/group/groupeditor.thtml)に 直接書かれたpaddingを削除しました。
- 一貫性: テンプレートのadmin/common/edit_permissions.thtmlの タイトル部の変数は、変数の名前に`lang_` という前置子を置いて 一貫性をもたせました。(例 `{lang_owner}`他).

### その他の変更

- コメントやコメント投稿を編集する際に「ログアウト」リンクは今後表示されません。 これは、リンクの周りに`span`と新テンプレート変数 {hidewhenediting}を 追加して実現しました。これによりコメントが編集されている時には`span`を 隠すCSSが付加されます(コメントが投稿された後にはこのCSSは付加されません)。 変更したファイル：comment/commentform.thtml, comment/commentform_advanced.thtml
- プロファイルテンプレート(users/profile.thtml)において、 「ユーザーのすべての投稿を探す」のリンクのURLの文字が短くなりました。 不要な検索パラメーターが含まれていたのを削除したためです。
- loginform_openid.thtmlにて、identity_urlの入力フィールド`id="identity_url"`が 抜けていたのを修正しました。(<label>タグが示していたのは名前でなくIDだったため)。
- topicoption.thtmlテンプレートファイルにて、新変数{option_attributes}が 追加されました。現状では話題ブロックで Home へのリンクアトリビュート値 `rel="home"`を追加するのに使われているのみです。
- 「マイアカウント」における新オプションにて、ユーザーがアドバンストエディターを 使うか否かを選択できるようになりました。 preferences/displayblock.thtmlに新たにテンプレート変数 {advanced_editor_option}が追加され、これは新しく追加した テンプレートファイルpreferences/editor.thtmlを参照しています。 (コンフィギュレーションでサイトのアドバンストエディター利用を無効にしている場合には 表示されません)。
- comment/thread.thtmlの`<li>`エレメントに少々 paddingを加えました。これにより、スレッド上で続くコメントが少し離れるように なって読みやすくなりました。
- テンプレートファイルsubmit/submitloginrequired.thtmlは不要に なったので削除しました。

## Geeklog 1.6.1におけるテーマの変更点

- Added rules for the token-expirynotice(セキュリティトークンの期限切れ警告)と token-expirytime(セキュリティトークンの期限) id(クラスではありません!)を スタイルシートに追加しました。 これらのidはエディターでセキュリティトークンの期限を表示する書式として使用されます。
- プラグインを更新する必要があるときに、プラグインエディターでの表示に使用するアイコン (images/update.png)を追加しました。このアイコンは編集アイコンと同じサイズに した方がよいでしょう(Professionalテーマでは、16x16ピクセルです。)。
- 話題エディターに現在の話題に含まれる記事数を表示する行が追加されました。 admin/topic/topiceditor.thtml テンプレートに追加された変数は、 `{lang_num_stories}` と `{num_stories}` です。
- 「友だちに記事をメールする」フォームと profiles/contactauthorform.thtml フォームに元記事へのリンクが追加されました。使用可能な変数は、{lang_title}、 {story_title}、{story_url}、{story_link}です。
- profiles/contactauthorform.thtmlフォームに「自分宛にコピーを送信」という オプションを追加しました。
- 記事エディターのテンプレート(admin/article/articleeditor.thtmlと admin/story/storyeditor_advanced.thtml)に記事のdescriptionメタタグと keywordsメタタグを入力するtextareaフィールドを追加しました。
- 話題エディターのテンプレート(admin/topic/topiceditor.thtml)に話題の descriptionメタタグとkeywordsメタタグを入力するtextareaフィールドを追加しました。
- リモートユーザーがログインするのに使用しているサービス名をオプションで表示するために、 `{remoteservice}`変数をadmin/user/edituser.thtmlテンプレート に追加しました。
- `{title_checked}`変数をsearch/searchform.thtmlテンプレートに 追加し、「検索条件の修正」で「タイトルのみ」のチェックボックスの状態が維持される ようにしました。
- Google風に検索結果を表示する際に署名の色が緑色にハードコードされていましたが、 これをスタイルシートに移し、`searchresult-byline`という新しいクラスと しました。

### 軽微な変更点

以下の変更はほとんどの場合些細なものであり、たとえ変更しなくてもテーマの機能に 影響を与えないでしょう。

- 軽微な変更: 「(アカウント情報からの)メール送信」フォーム (profiles/contactuserform.thtml)、「友だちに記事をメールする」フォーム (profiles/contactauthorform.thtml)、「グループメール」フォーム (admin/mail/mailform.thtml)の外見とレイアウトを統一しました (アラインメントや入力フィールドのサイズなど)。
- 軽微な変更: アドバンストエディター使用時に記事のプレビューがわずかに右にずれていた バグを修正しました(bug #0000963)。 admin/story/storyeditor_advanced.thtmlテンプレートの`<div id="preview">`を 変更しています。
- 軽微な変更: 管理画面で使用するリストヘッダーフィールドで使用されていた `font-size:larger;`をスタイルシートから削除し、top/bottomのpaddingを 追加しました(bug #0000956)。
- 軽微な変更: 第1列を右側に押しやっていた `width="180"` をブロックエディターの テンプレート(admin/block/blockeditor.thtml)から削除しました。
- 軽微な変更: パーミションを指定するチェックボックス(admin/common/edit_permissions.thtml)の 外見を管理者リストの外見に揃えました。新しいCSSクラス(admin-list-smalltable)を 導入しました。このクラスはadmin-list-table とほぼ同じですが `width:100%;` の指定がありません。

### プラグインテンプレートの変更点

各プラグインのテンプレートはlayoutディレクトリではなく、 plugins/プラグイン名/templatesディレクトリにあります。

- リンク(Links): カテゴリエディターのテンプレート(admin/categoryeditor.thtml)から 第1列を右側に押しやっていた`width="150"`を削除しました。
- 静的ページ(Static Pages): 静的ページエディターにdescriptionメタタグとkeywordsメタタグ用の 入力フィールドを追加しました。
- 静的ページ(Static Pages): 静的ページエディターで、閲覧数を最終更新日時の下に移動 しました(admin/editor.thtml、admin/editor_advanced.thtml)。
- 静的ページ(Static Pages): 静的ページエディターで、descriptionメタタグとkeywordsメタタグを 入力するtextareaフィールドを追加しました(admin/editor.thtml、 admin/editor_advanced.thtml)。
- アンケート(Polls): アンケートエディターにdescriptionメタタグとkeywordsメタタグ用の 入力フィールドを追加しました。
- Polls: 自動タグを使用してアンケートを(記事などに)埋め込む際に使用される 新しいCSSクラス(poll-autotag-message、poll-autotag、 poll-autotag-left)を追加しました。

## Geeklog 1.6.0におけるテーマの変更点

- テーマのheader.thtmlでは、ハードコードされたDOCTYPEではなく、 テーマ変数{doctype}を使えるようになりました。 DOCTYPEはコンフィギュレーションでセットされます(現在設定可能なのは、 HTML 4.01 StrictとTransitional, XHTML 1.0 StrictとTransitionalです)。 functions.phpファイルの`XHTML`定数で設定しないでください!
- XHTMLにするとき、テーマ変数{xmlns}は、現在XHTMLコンプライアンス xmlns="http://www.w3.org/1999/xhtml"を満たしています。 (<html>タグ内で利用).
- テーマ変数{story_text_no_br}で、記事の冒頭文と本文のテキストにスペースを追加しました。
- バグ修正: テーマ変数{contributedby_user}と {contributedby_fullname}は、すでに空です。
- 2つのテーマ変数{start_contributedby_anchortag}と {end_contributedby_anchortag}には、何もセットしていません(Geeklog 1.5.0以降)。その代わり{contributedby_author}に所有者へのリンクを追加しました。 そのためこれら3つのテーマ変数(記事テンプレートで利用される)はまだ利用可能です。 Geeklog 1.6.0では古い定義を復活させます。つまり、アンカータグのテーマ変数は 所有者のプロファイルへのリンクの開始と終了のタグを含みます。 テーマ変数{contributedby_author}は、所有者の名前だけです。
- 新テーマ変数{photo_max_dimensions}はユーザー写真の最大値をセットしています。
  ユーザー写真のサイズ: preferences/userphoto.thtml
- 記事や静的ページで、印刷用のテンプレートファイルprintable.thtmlを利用する際に 読み込まれるスタイルシートprint.cssが追加されました。
- プラグイン編集画面で、テーマ変数`{pi_display_name}`がテンプレートファイル admin/plugins/editor.thtmlにあれば、プラグインの表示上の名前 (またはディレクトリ名)を表示できる用になりました。これは表示上の変更です。
- 既存のHTMLに`<form>`を埋めるこむテンプレートファイル admin/lists/inline.thtmlが追加されました。(例：新しいグループ編集画面)
- テンプレートファイルprofiles/contactuserform.thtmlに、自分自身へ 送信済みメールを送るオプションを追加しました。
- テンプレートファイルadmin/mail/mailform.thtmlの表示上の変更： `{startblock_email}`と`{endblock_email}`およびトップのテーブルが 削除されました。これらの要素は自動的にメールフォームに追加されます。
- 検索用テンプレートファイルsearch/searchform.thtmlに、タイトルだけを 検索するためのあらたなチェックボックスが追加されました。
- テンプレートファイルadmin/group/groupmembers.thtmlの表示上の変更： ヘッダー(アイコンやリンクその他各種構成を含む)はGeeklogに実装されています。 テンプレートファイルからこれらの要素を含んだ<table>を取り除きました。
- コンフィギュレーション: config_element.thtmlで`</option>`タグの 閉じ忘れ、およびconfiguration.thtmlで`<col>`の XHTML処理忘れに対応しました。

### 検索

検索フォームと結果表示のテンプレートが変更され、検索結果の表示モジュール用に新しく テンプレートが追加されました。searchディレクトリ以下のテンプレートを 同梱のProfessionalテーマからコピーして利用してください。

### コメント

テンプレートファイルcommentform.thtmlとcommentform.thtmlは、 セキュリティトークンとテーマ変数`{notifcation}`(コメント通知オプションのため)が 追加されました。

### プラグイン

- アンケートプラグインのテンプレートファイルplugins/polls/templates/admin/polleditor.thtmlはアンケートのid(pid)の文字列に40文字を許可:
- 静的ページプラグインの印刷用テンプレートファイルprintable.thtmlではprint.cssを読み込んでいます(上部参照)。それは現在HTMLスクリプトドキュメントタイプを含んでいます。

### パーミッションエディター

パーミッションエディターのそのいろいろな場合(所有者、グループ、メンバー、ゲストユーザーに対してR = 閲覧　E = 編集　パーミッションの設定)は、いろいろなテンプレートで使われてきました。これからは、どこでも固有の名前で定義されます:

- {lang_permissions} (headline)
- {lang_perm_key} (凡例: R = 閲覧, ...)
- {permissions_editor} (チェックボックス)
- {lang_permissions_msg} (注意: メンバーとは、そのときログインしているユーザーのこと ...)

他の名前を使用しているテンプレートファイルは機能し続けます、しかし、新しいファイルは今後上記の名前を使用しなければなりません。

## Geeklog 1.5.2におけるテーマの変更点

注: Geeklog 1.5.0ないし1.5.1用に作成されたテーマはGeeklog 1.5.2でも問題なく動作するはずです。今回のリリースでは、1.5.0と1.5.1に悪影響を与えていたバグ(下記参照)を修正するだけです。他の変更点はオプションです。

### バグ修正

以下に述べるバグはGeeklog 1.5.0及び1.5.1に存在していたバグです。これらの修正をカスタムテーマに適用することを勧めます。

- トラックバックエディターのテンプレートファイル(admin/trackback/trackbackeditor.thtml)にセキュリティトークンがありませんでした(そのため、トラックバックに失敗していました。)。
- 記事テンプレートの `{start_storylink_anchortag}` 変数にタグを閉じる '>' が抜けていました。このため、テーマによっては記事のタイトルが表示されなくなっていました(これはGeeklog本体のバグであるため、テーマを修正する必要はありません。)。
- admin/config/configuration.thtmlのコンフィギュレーションフォームのactionに `{site_admin_url}` 変数がセットされていませんでした。このため、セットアップ方法によっては、設定の変更に失敗していた可能性があります。
- アンケートエディターのテンプレートファイル(plugins/polls/templates/admin/polleditor.thtml)にhidden属性の`old_pid`フィールドを追加し、アンケートID変更の際に生じる問題に対応しました。

### 他の変更点

以下の変更点はオプションです。軽微な問題や一部のセットアップ方法にしか影響を与えない問題に対処します。

- 軽微な問題: Professionalテーマで、最後の項目が他の項目と同じであるため、style.css中の `.header-navigation-container li.last` ルールが不要になっていました。
- 国際化: 記事と静的ページの印刷ページ用テンプレートで、言語の向きを指定するテンプレート変数(`{direction}`)が使用できなくなっていました。

## Geeklog 1.5.1でのテーマの変更点

注意: Geeklog 1.5.0用に作成されたテーマはたいていの場合、Geeklog 1.5.1と互換性があります。必ず変更しなければならないのは管理者メニューのコンフィギュレーション用のものが1つあるだけで、以下に列挙する変更点はすべて任意か、特別な設定時(多言語サイトや、右から左へと表示する言語など)のものです。詳細は以下をご覧ください。

### 重要な変更点: コンフィギュレーション

管理者のコンフィギュレーションで使用されていたJavaScriptのコードでは一般的な名前を使用していたため、他のJavaScriptと名前の衝突が起こっていました。お使いのテーマがGeeklog 1.5.1でも正常に動作するように、admin/config/config_element.thtml を更新してください。

### 多言語ブロック

Geeklog 1.5.1で導入された多言語ブロックでは、無効になっているブロックが動的に入れ替えられることを利用しています。Geeklogの多言語サポートを使用している場合、テーマの functions.php 内のPHPコードを変更して、多言語用に正しいブロックテンプレートが選択されるようにする必要があります。

    $lang = COM_getLanguageId();
    if (empty($lang)) {
        $result = DB_query("SELECT onleft,name FROM {$_TABLES['blocks']} WHERE is_enabled = 1");
    } else {
        $result = DB_query("SELECT onleft,name FROM {$_TABLES['blocks']}");
    }

Geeklog 1.5.1より前のバージョンでは、 functions.php の中に見つかるのは最初のSQLリクエストだけでしょう。

### 他の変更点

- Geeklog 1.5.0では、`{page_title}`変数(header.thtml)の振る舞いが変わり、実際のページタイトルかサイトのスローガンの一方のみを保持するようになりました(旧バージョンでは、サイト名 + ページタイトルないしサイトのスローガン)。このようにする目的は、`{page_title}{page_site_splitter}{site_name}` と組み合わせることでページタイトルをサイト名の前におけるようになり、SEOの効果を高めるためです。トップページではサイト名を最初に置き、他のページではページタイトルを最初に置くには、新しい `{page_title_and_site_name}` を使用してください。
- リンクプラグインで、リンクには外部リンクであることを示すアイコンがつきました。このアイコンが右から左へと読む(RTL)ヘブライ語などの言語では適切に表示されず、テキストリンクが判読不能になっていました。このような場合にアイコンを適切に表示する方法を見つけられなかったため、テキスト方向が'rtl'になっている場合はアイコンは表示されません(今のところは)。
- オプションの `feed-link` クラスを追加しました。話題フィードの新規記事オプションなどで、フィードのリンクに使用します。Professionalテーマでは、小型のフィードアイコン(images/feed.png)が背景画像として使用されます。
- オプションとして、「コメントを投稿する」ボタンを左にフロートさせて見やすくするために、 comment/commentbar.thtml テンプレートファイルと style.css 内の `commentbar-line2` クラスが変更されました。機能上の変更点はなく、コメントバーの他のスタイルは以前と同様に機能します。
- 記事のテンプレートファイル(archivestorytext.thtml, featuredstorytext.thtml, storytext.thtml)では、現在、 `{story_text_no_br}` 変数を使用して記事本文を参照しています。 `{story_introtext}` 変数を使用しているテンプレートは以前と同様に機能します。

## Geeklog 1.5.0におけるテーマの変更点

### XHTMLをサポート

XHTML準拠のテーマがサポートされました。テーマの functions.php ファイルの中で、次の定数を定義する必要があります。

    define('XHTML', ' /');

こうすることで、内部的にXHTMLに切り替わります。テーマをHTMLとXHTMLの両方でサポートしたいなら、XHTMLの空要素タグがあるところすべてで `{xhtml}` テーマ変数を使用する必要があります。たとえば、 `<br />` タグは `<br{xhtml}>` と書く必要があります。HTMLをサポートするつもりがないなら、XHTMLタグを直接記述しても構いません。

注意: XHTMLを使用するなら、サイトのコンテンツ(記事、コメントなど)をXHTML準拠にしなければなりません。Geeklogは自動的にコンテンツをXHTMLに変換しません。

### 「記事投稿」 - ユーザーによる記事投稿

Geeklog 1.5.0では、ユーザーが記事を投稿する際、記事を単に冒頭文だけでなく冒頭文と本文に分ける機能をサポートしています。テンプレートを変更することでこの機能は有効/無効にできます。該当するファイルは、

- submit/submitstory.thtml
- submit/submitstory_advanced.thtml

です。有効にするには、 `{bodytext}` テンプレート変数を含むテーブルの列がテンプレートファイルに含まれるようにしましょう。 `{bodytext}` テンプレート変数を含むテーブルの列をテンプレートファイルから削除すれば、元の動作に戻ります。

### 管理者メニュー、ユーザーメニュー、話題リスト

これらの項目は今ではリストを使用しています。 `<ul>` タグと `<li>` タグとリストの黒丸を表示しないための新しい blocklist クラスが使用されています。ブロックを作成するために新しいテンプレートファイルが追加されています。

- blockheader-list.thtml
- blockfooter-list.thtml

Geeklog-1.5.0のベータ版やリリース候補版で使用されていた `{blockid}` テンプレート変数は削除されました。

### セキュリティ上の変更

特に管理者セクションで使用される多くのフォームには、フォーム保存・アクション処理がきちんと実行されるよう、新しいhiddenフィールドが必要になっています(訳注：CSRF攻撃を防ぐため)。次の記述を

    <input type="hidden" name="{gltoken_name}" value="{gltoken}"{xhtml}>

以下のテンプレートに追加してください。

- admin/block/blockeditor.thtml
- admin/block/defaultblockeditor.thtml
- admin/config/configuration.thtml (Geeklog-1.5.0用の新しいテンプレートファイル)
- admin/group/groupeditor.thtml
- admin/group/groupmembers.thtml
- admin/mail/mailform.thtml
- admin/plugins/editor.thtml
- admin/article/articleeditor.thtml
- admin/article/articleeditor_advanced.thtml
- admin/syndication/feededitor.thtml
- admin/topic/topiceditor.thtml
- admin/trackback/pingbackform.thtml
- admin/trackback/pingform.thtml
- admin/trackback/serviceeditor.thtml
- admin/user/edituser.thtml
- comment/reportcomment.thtml

プラグイン固有のテンプレートファイルが一部変更されているので、以下のテンプレートファイルを確認してください。

- plugins/calendar/templates/addevent.thtml
- plugins/calendar/templates/editpersonalevent.thtml
- plugins/calendar/templates/dayview/quickaddform.thtml
- plugins/calendar/templates/submitevent.thtml (`{hidden_fields}` テンプレート変数)
- plugins/links/templates/admin/categoryeditor.thtml (Geeklog-1.5.0用に追加されたテンプレートファイル)
- plugins/links/templates/admin/linkeditor.thtml
- plugins/polls/templates/admin/polleditor.thtml
- plugins/staticpages/templates/admin/editor.thtml
- plugins/staticpages/templates/admin/editor_advanced.thtml

### 削除されたファイル

以下のテンプレートファイルは削除され、不要になりました。

- admin/lists/menufields.thtml
- admin/lists/topmenu_nosearch.thtml
- admin/plugins/newlistitem.thtml
- admin/plugins/newpluginlist.thtml

### システムメッセージ

以前、システムメッセージ用にハードコードされていたCSSは、新しく sysmessage クラスとしてスタイルシートに移されました。

## Geeklog 1.4.1でのテーマの変更点

1.4.1ではCSSが以前よりも大幅に変更されました。レイアウト用のコンポーネントがスタイルシートに移されている途中なので、外見を変えるのに、テンプレートファイルをいじる必要は少なくなっています。テーブルと <div> タグの使用が減り、セマンティックス(意味)と一貫性がさらに重視されています。 style.css ファイルには、CSSクラスの使用に関する説明が増えています。

従来通り、不足しているテンプレートファイルはGeeklogに同梱されているデフォルトのProfessionalテーマからコピーしてくればよいでしょう。

### 見出しタグ

今後、ブロックと記事のタイトルは見出しタグで表現されます。記事の中で最大のタイトルは <h1> タグであり、ブロックのそれは常に <h2> タグです。

### 記事のレイアウト

記事のブロックはもはやテーブルを含まなくなり、対応するCSSのクラス名も一貫性を持たせるために変更されました。記事を囲むボックスは、 story クラスまたは story-featured クラスという名前がついています。ボックス内のコンポーネントは、記事アイコン、記事情報、記事本体、記事フッターです。タイトルは <h1> タグを使用しています。注目記事は外側のボックスのクラスが違うだけで、残りは同じです。

### ブロック

ブロックは記事と同じように変化しました。テーブルはなくなり、block-box, block-box-left, block-box-right という名前の <div> タグが1個使用されているだけです。タイトルは <h2> タグであり、ブロックのヘルプアイコンは block-helpicon というクラスの <span> タグになりました。ブロックのサブタイトルは、(新着記事ブロックや過去の記事ブロックのように) <h3> タグです。これらの変更は style.css についで、以下のファイルに影響を与えます。

- blockfooter-left.thtml
- blockfooter-related.thtml
- blockfooter-right.thtml
- blockfooter.thtml
- blockheader-left.thtml
- blockheader-message.thtml
- blockheader-related.thtml
- blockheader-right.thtml
- blockheader.thtml

### 管理者用テンプレート

管理者用テンプレートの多くには、外見や機能の変更のため少しずつ変更が加えられています。自作テーマの管理者用テンプレートを変更していない場合、更新する最も簡単な方法は、Professional テーマの admin ディレクトリからファイルを一式、コピーすることです。

- 記事エディターなどの管理者用エディターで削除ボタンをクリックすると、意図しない削除を防ぐためにJavaScriptを用いた確認ダイアログが表示されるようになりました。確認ダイアログが不要なら、管理者用テンプレートの `{delete_option}` テンプレート変数を `{delete_option_no_confirmation}` テンプレート変数に置き換えるとよいでしょう。
- 保存/キャンセル/削除のボタンの配列が管理者用テンプレートで統一されました(group/groupeditor.thtml と user/edituser.thtml が変更されました)。
- lists/topmenu_nosearch.thtml と topic/topiclist.thtml テンプレートの最上部にあるリンクが変更され、他のテンプレートと揃えられました(つまり、リンクが[]で囲まれなくなりました)。
- "gldefault" ブロックのグループ所有権の変更を可能にするために、defaultblockeditor.thtml テンプレートに `{group_dropdown}` テンプレート変数を含めなければならなくなりました。

### テーマの他の変更点

- leftblocks.thtml と rightblocks.thtml にはブロックの横幅の最小値を維持するために <div> タグが使用されていましたが、CSSの block-bg-spreader というクラスに置き換えられました。
- アンケートプラグインのテンプレートで、CSSのブロック関係のクラスとの混同を避けるため、 block-vote-results クラスが poll-vote-results に、 block-vote クラスが poll-vote に変更されました。
- カレンダープラグインが使用するテンプレートファイルがプラグイン用のディレクトリ(/非公開領域/plugins/calendar/templates)へ移動され、テーマディレクトリ内の calendar ディレクトリをそっくり削除できるようになりました。
  submitevent.thtml, editpersonalevent.thtml, admin/eventeditor.thtml, dayview/quickaddform.thtml テンプレートで、24時間制で時刻を入力できるようになりました。hidden 属性の hour_mode フィールドが必要になり、テンプレートに応じて、am/pmを選ぶドロップダウンリストが `{startampm_selection}`, `{endampm_selection}`, `{ampm_selection}` テンプレート変数として、また、分を選ぶドロップダウンリストが `{startminute_options}`, `{endminute_options}`, `{minute_options}` テンプレート変数として利用できるようになりました。
- オブジェクトの作成者(たとえば、記事やコメントの作成者)やオブジェクトの所有者(たとえば、ブロックの所有者)が表示されるテンプレートならどれでも、`{author}` と `{owner}` テンプレート変数が利用できるようになりました。この2つの変数は $_CONF['show_fullname'] の設定に従って、ユーザーのフルネームかユーザー名(アカウント名)のいずれかを表示します。
- storytext.thtml と featuredstorytext.thtml テンプレート中の記事の作成者タグの名前が `{contributedby_author}` に変わりました。
- アンケートの回答でコメントを残せるようにするため、 pollvotes_bar.thtml, pollansweroption.thtml, polleditor.thtml が変更されました。pollvotes_bar.thtml には色がつき、2つの行と、それぞれの行の色を指定するクラス、 `{answer_text}` テンプレート変数が含まれます。polleditor.thtml は pollansweroption.thtml と同じく、コメントを残すためのフィールドが追加されました。
- ユーザーのアカウント情報ページが設計し直されました。技術上の変更点はありませんが(つまり、旧バージョンのテンプレートは依然として機能しますが)、一部のオプションの配列が見直され、オプションを変更するのにパスワードを入力する必要がある旨を表示する注意書きが追加されました。変更されたのは、 preferences ディレクトリ内の profile.thtml, username.thtml, userphoto.thtml テンプレートファイルです。
- navbar ディレクトリには2つの画像(button.gif と button_over.gif)に加えて、4つのテンプレートファイル(menuitem.thtml, navbar.thtml, breadcrumbs.thtml, breadcrumb_link)が格納されています。
- 以下のファイルに `{captcha}` テンプレート変数が追加されました。
  - comment/commentform.thtml
  - comment/commentform_advanced.thtml
  - profiles/contactauthorform.thtml
  - profiles/contactuserform.thtml
  - submit/submitstory.thtml
  - submit/submitstory_advanced.thtml
  - users/registrationform.thtml
  このテンプレート変数は CAPTCHA 機能を実装するプラグインが使用するためのものであり、該当するプラグインがインストールされていない場合は空白になります。

### Professionalテーマ

以下の変更はProfessionalテーマ固有のものです。他のテーマに移植する必要はたぶんないでしょう。

- Professionalテーマでは、間隔調整やセクション分けのために従来は1x1の透明GIF画像(speck.gif)を使用していましたが、スタイルシートで指定するようになりました。
- ブロックヘッダーなどで、テーブルのネスト(入れ子)が減りました。
- 使用されていない customlogin-header.thtml と customlogin-footer.thtml テンプレートファイルが削除されました。

## Geeklog 1.4.0におけるテーマの変更点

従来通り、不足している新しいテンプレートファイルは、Geeklogに同梱されているデフォルトのProfessionalテーマからコピーしてくればよいでしょう。

### 管理者用テンプレート

Geeklog 1.4.0の管理者用セクションはかなりの変更を伴って改訂されています。したがって、従来のテーマの admin ディレクトリをGeeklog-1.4.0に同梱のProfessionalテーマの admin ディレクトリでそっくり置き換えてから、今まで自分が加えた改造を適用することをお勧めします。

注意: コントロールパネル(moderation.php)用の新アイコンは背景が白になっています。背景が暗い色(や白以外の色)のテーマ用には、アルファチャンネルつきのPNG形式のアイコンをダウンロードするとよいでしょう。この場合は、JavaScriptを用いたハックを行わないと、インターネットエクスプローラーでは表示できないことに注意してください。場合によっては、これらのアイコンを変換して、背景を透明にしたりテーマの背景色に合わせたりする必要があるでしょう。

### アドバンストエディター(WYSIWYGエディター)

同梱されているアドバンストエディター(FCKeditor)を使用するには、次の新しいテンプレートが必要です。

- comment/commentform_advanced.thtml (コメント用)
- submit/submitstory_advanced.thtml (記事投稿用)
- admin/story/storyeditor_advanced.thtml (管理者の記事エディター用)
- staticpages/templates/admin/editor_advanced.thtml (/非公開領域/plugins にある静的ページエディター用)
- advanced_editor_header.thtml (上述のテンプレートファイルすべてから呼び出される)

テーマの header.thtml テンプレートファイルの `<head>` セクションに `{advanced_editor}` テンプレート変数を追加する必要があります。

### 他の変更点

- コメントの扱いが変更されたため、コメント用のテンプレート(commentbar.thtml と thread.thtml)が変更されました。
- トラックバックをサポートするために、新しいテンプレートファイルを含むディレクトリ(trackback と admin/trackback)が追加されました。
- 記事用のテンプレートで、新しい `{send_trackback_link}`, `{send_trackback_url}`, `{lang_send_trackback_text}` テンプレート変数が利用できるようになりました。現在の記事に対するトラックバックコメントを送るための完全なリンクとURL、リンク文字列を提供します。
- links と admin/link ディレクトリが削除されました。リンク集はプラグインとなり、そのテンプレートは /非公開領域/plugins/links/templates にあります。
- pollbooth と admin/poll ディレクトリが削除されました。アンケート機能はプラグインとなり、そのテンプレートは /非公開領域/plugins/polls/templates にあります。
- preferences/profile.thtml テンプレートに、パスワードを変更するためのフィールド(現在のパスワード、新規パスワードの確認用)が追加されました。
- 検索フォーム(search/searchform.thtml)に1ページあたりの検索結果の表示数を設定するオプションが追加され、ハードコードされていたオプションが削除されました(リンクはプラグインになったので、`{plugin_types}` オプションの一部として表示されるからです)。
- 自分のサイトにユーザーがリモート認証を利用してログインするのを許可する場合、loginform.thtml テンプレートファイルに `{services}` テンプレート変数を追加しなければならなくなりました。
- 自分のサイトでトラックバックを有効にする場合、記事のテンプレートファイルにたとえば次のように、トラックバック用のセクションを追加する必要があります。
  `{start_trackbacks_anchortag}{trackbacks_with_count}{end_trackbacks_anchortag}`
  具体例は、Professionalテーマの記事用テンプレートを参照してください。
- サイトの統計情報用の stats/sitestatistics.thtml テンプレートファイルが変更されました(リンクとアンケート用の項目が削除され、登録ユーザー数を表す項目が追加されました)。プラグインの項目を表示するための stats/singlesummary.thtml というテンプレートファイルが追加されました。
- 以前、掲示板プラグインなどが使用していた navbar ディレクトリがGeeklogテーマの一部になりました。テンプレートファイルファイルが2つ(menuitem.thtml と navbar.thtml)と画像ファイルが2つ(button.gif と button_over.gif)が含まれています。

## Theme changes in Geeklog 1.3.11

There are no mandatory theme changes in Geeklog 1.3.11, so themes made for Geeklog 1.3.10 will work just fine without any modifications.

A few minor additions / new options have been introduced:

- A new variable, `{camera_icon}`, can now be used in the story and comment template files to display the small camera icon (the same as in the Who's Online block) to link to the author's user profile (only if they uploaded a userphoto).
- The `{layout_url}` variable is now available in the templates for the story, link, and event submission forms.
- Also in the submission forms, a variable `{separator}` is now available in addition to the misspelled `{seperator}` variable.
- A new variable, `{calendar_mode}`, can be used in the calendar/events.thtml template file to ensure that the "add event" link will take the user to the proper event submission form for either the site calendar or the personal calendar.

## Theme changes in Geeklog 1.3.10

General note: To upgrade your custom theme for use with Geeklog 1.3.10, you can simply copy over any new template files from the Geeklog default theme.

The biggest change in Geeklog 1.3.10 is that we now ship it with only one default theme (the Professional theme, kindly provided by Victor B. Gonzalez) and that the previously included themes are now available as a separate download.

### Admin templates

Most themes don't change the template files in the theme's admin directory, so you can often save yourself a bit of work by simply replacing the entire admin directory with the one from the Geeklog 1.3.10 distribution.

- The story editor, admin/article/articleeditor.thtml includes new options for the story archiving and for editable story IDs. It is recommended to make a copy of this file and re-apply any changes you may have made to your copy again afterwards!
- The list of polls, admin/poll/polllist.thtml now supports paging, i.e. uses the {google_paging} variable.
- The list of events uses paging and a row number now (files affected: admin/event/eventlist.thtml and admin/event/listitem.thtml).
- The plugin editor, admin/plugins/editor.thml, now displays 2 version numbers for the plugin: The installed version and the (possibly differing) version of the actual code. In the latter case, it will also display an update button.
  The list of plugins, admin/plugins/pluginlist.thtml and admin/plugins/listitem.thtml, also displays the 2 version numbers and now supports paging when more than 25 plugins are installed.
- The topic editor, admin/topic/topiceditor.thtml, contained a hard-coded "10" for the default number of stories per pages. The new variable {default_limit} provides the actual default value now.
- admin/mail/mailform.thtml has been changed to look slightly less ugly ...

### Other templates

- Added two new templates for the new story archive feature. This allows you to theme olderstories differently. By default Geeklog 1.3.10 ships with these template files not themed and the same as a standard story. The new template files are
  - archivestorytext.thtml
  - archivestorybodytext.thtml
- Due to various changes in the comment engine, it is recommended that you copy over all the comment template files from the comment directory (comment/reportcomment.thtml is actually a new file).
- In calendar/dayview/dayview.thtml, i.e. in the calendar's day view, the hard-coded am/pm times have been replaced by variables of the form {xx_hour} (where 'xx' is 0-23).
- In the event details template, i.e. in calendar/eventdetails.thtml, the event type and an edit icon were added (this change was only made in Geeklog 1.3.10rc3).
- A "location" field was added in the user's profile: Added {lang_location} and {user_location} in users/profile.thtml and {lang_location}, {lang_location_text}, and {location_value} in preferences/profile.thtml.

### Optional changes

The following is a list of optional changes (mostly new variables that are now available). This information is mostly of interest for those who want to develop their own themes.

- {article_url}, i.e. the full URL to an article, is now also available in article/printable.thtml.
- In links/linkdetails.thtml the new variable {link_actual_url} now contains the actual link URL (instead of a link to Geeklog's portal.php).
- The following variables are now available in calendar/eventdetails.thtml: {event_state_name} (full name of the state), {event_state_only} and {event_state_name_only} (abbreviated and full state name without the comma), {event_edit} (link to edit the event, if allowed for the current user), {edit_icon} (same, but with the edit icon instead of a text link), {lang_event_type} and {event_type} for the event type
- The topic image is now available through the {topic_image} variable in topicoption.thtml and topicoption_off.thtml
- Several class names have been introduced so that the various lists that Geeklog uses can now be styled individually: list-feed, list-new-comments, list-new-links, list-new-plugins, list-older-stories, list-personal-events, list-site-events, list-story-options, list-whats-related (the names should be self-explanatory).
  Use {list_class_name} to get the actual class name, and {list_class} to get class="classname".
- Several class names have been introduced so that the 2 small calendars in the calendar's month view can be styled: .smallcal, .smallcal-headline, .smallcal-week-even, .smallcal-week-odd, .smallcal-week-empty, .smallcal-day-even, .smallcal-day-odd, and .smallcal-day-empty

## Theme changes in Geeklog 1.3.9

- In header.thtml, you can now use the new variable `{allowed_menu_elements}` as an alternative to using `{menu_elements}`. The new variable takes the `$_CONF['XXXloginrequired']` settings into account, i.e. it will only list those entries that the current user has access to.
- The admin/syndication directory, containing feededitor.thtml, listfeeds.thtml, listitem.thtml, and selecttype.thtml has been added.
- Template files comment/comment.thtml and comment/thread.thtml have been added and comment/startcomment.thtml has been changed to implement template-driven comments.
  Please note that comment/comment.thtml was changed again in Geeklog 1.3.9rc2.
- A `{link_edit}` variable has been added to links/linkdetails.thtml so that admins can edit links directly from the links section.
- An "edit" icon has been added: images/edit.gif. The new variable `{edit_icon}` can be used as an alternative to `{edit_link}` in the story template files and in links/linkdetails.thtml.
- In the calendar/calendar.thtml file, the "mode" parameter has been added to the << and >> buttons, so that users stay in their personal calendar when browsing through months.
- A new file, admin/group/groupmembers.thtml, has been added and admin/group/listitem.thtml has been changed for the new alternative option to add users to groups.
- A new file, admin/block/listside.thtml, has been added and admin/block/listitem.thtml and admin/block/listblocks.thtml have been changed for the enhanced block list.
- A `{google_paging}` variable has been added to admin/link/linklist.thtml. Also added a column number to linklist.thtml and admin/link/listitem.thtml.
- All template files where the user can enter a URL are now using a new variable, `{max_url_length}`, instead of a hard-coded number of characters for the max. length of the URL. Files affected: admin/block/blockeditor.thtml, admin/event/eventeditor.thtml, admin/link/linkeditor.thtml, admin/topic/topiceditor.thtml, submit/submitevent.thtml, submit/submitlink.thtml.
- The hard-coded `&nbsp;` has been removed from the `{welcome_msg}` variable. The blank was then added to the header.thtml of the Classic, XSilver, and Yahoo themes (the other themes either look fine without it or didn't use `{welcome_msg}` in the first place).
- An extra `table` has been removed from the users/profile.thtml file of the XSilver theme so that the username now lines up properly with the other entries.

## Theme changes in Geeklog 1.3.8

Theme changes in Geeklog 1.3.8 were mostly aimed at moving as much of the hard-coded HTML into template files as possible. Other changes were made to give theme authors better control over the layout and a small portion of changes were done to incorporate new Geeklog features.

### New template files

This is a list of the new files. You can safely copy these over from one of the standard themes that ship with Geeklog (most of these files contain HTML that was previously hard-coded into Geeklog).

    adminoption_off.thtml
    loginform.thtml
    topicoption.thtml
    topicoption_off.thtml
    useroption_off.thtml
    admin/database/listbackups.thtml
    admin/database/listitem.thtml
    admin/user/edituser.thtml
    admin/user/plainlist.thtml
    comment/commentbar.thtml
    comment/startcomment.thtml
    pollbooth/pollanswer.thtml
    pollbooth/pollblock.thtml
    pollbooth/pollcomments.thtml
    pollbooth/pollresult.thtml
    pollbooth/pollvotes_bar.thtml
    pollbooth/pollvotes_num.thtml
    preferences/commentblock.thtml
    preferences/deleteaccount.thtml
    preferences/digestblock.thtml
    preferences/displayblock.thtml
    preferences/displayprefs.thtml
    preferences/language.thtml
    preferences/privacyblock.thtml
    preferences/profile.thtml
    preferences/theme.thtml
    preferences/username.thtml
    preferences/userphoto.thtml
    search/resultauthdatehits.thtml
    search/resultrowenhanced.thtml
    search/resultsummary.thtml
    search/resulttitle.thtml
    users/newpassword.thtml

Note: preferences and admin/database are new directores.

### Changed / updated template files

These files have changed since Geeklog 1.3.7, i.e. they may contain new variables, table columns, etc. If you haven't changed these files in your existing theme, it is probably best to simply copy them over from one of the themes that ship with Geeklog (with the exception of style.css and header.thtml, see below).

    style.css (see below)
    header.thtml (see below)
    admin/block/blockeditor.thtml
    admin/block/listblocks.thtml
    admin/block/listitem.thtml
    admin/event/eventeditor.thtml
    admin/event/eventlist.thtml
    admin/event/listitem.thtml
    admin/group/grouplist.thtml
    admin/group/listitem.thtml
    admin/story/liststories.thtml
    admin/topic/listitem.thtml
    admin/topic/topiceditor.thtml
    admin/topic/topiclist.thtml
    calendar/editpersonalevent.thtml
    calendar/eventdetails.thtml
    search/searchform.thtml
    search/searchresults.thtml
    submit/submitevent.thtml
    users/getpasswordform.thtml

In style.css, four classes have been added that are used in the new search code of Geeklog 1.3.8. Instead of copying over the entire file, you will probably only want to copy over the code for those four classes: searchAuth, searchDate, searchHits, highlight.

If the header.thtml of your theme is using the `{menu_elements}` variable, then you do not need to make any changes to it. If it is not using that variable, then you will need to make one change to it. In that case, search your header.thtml for the link to the story submission form, i.e. something like

    <a href="{site_url}/submit.php?type=story">

and change it to read

    <a href="{site_url}/submit.php?type=story{current_topic}">

### Removed template files

If you have a file named commentheader.thtml in your theme directory, you can safely remove it. It isn't used at all.

## Theme changes in Geeklog 1.3.7

Please note that all the following changes are optional. Themes made for Geeklog 1.3.6 will work just fine with Geeklog 1.3.7 - no changes are necessary.

### New features and improvements

- Theme-based topic icons are now supported by setting $_THEME_URL in the theme's functions.php file. The variable should point to a directory that has the same hierarchy as Geeklog's images directory (note that the path to topic images is stored relative to Geeklog's public_html directory).
  Example: `$_THEME_URL = $_CONF['layout_url'];`
- The `$_BLOCK_TEMPLATE` "hack" can now be applied to the What's Related and Story Options blocks, as well. Use whats_related_block and story_options_block as the block names.
- The What's Related and Story Options blocks are now available as separate variables using `{whats_related}` and `{story_options}`, respectively (the `{whats_related_story_options}` variable for both blocks is still available).
- Several new variables can now be used in the story templates, e.g. `{contributedby_fullname}` for the full name of a story author and `{contributedby_photo}` for his/her user photo.
- When the new config variable $_CONF['showfirstasfeatured'] is set to 1, then the first story on every page is rendered using the template files for featured stories, even when the story is not marked as featured.

### Other changes

- The template file admin/plugins/installform.thtml has been removed since it isn't used any more.
- Two new optional template files, admin/plugins/newpluginlist.thtml and admin/plugins/newlistitem.thml, have been added to support formatting of the list of plugins which haven't been installed yet. If these files do not exist, hard-coded HTML is used to present the list.
- The template file admin/link/listitem.thtml has been changed so that all the links are clickable.
- `COM_pollResults()` doesn't use the side block templates any more when called from pollbooth.php. Therefore, you can now use different layouts whether the poll results are displayed in a side block or on the separate poll results and comments page.
- Removed the Normal / Archive / Refreshing drop down menus from the admin story and poll editors of the themes that ship with Geeklog. The setting of this dropdown isn't used in Geeklog anyway and has just confused users in the past ... (files admin/article/articleeditor.thtml and admin/poll/polleditor.thtml)

## Theme changes in Geeklog 1.3.6

There have been a lot of changes in the themes for 1.3.6 to get rid of the last pieces of hard-coded english texts so as to make localisation easier. Most of these changes have been made in the Admin editors (admin directory) and the calendar (calendar directory). If you created your own theme for an earlier version of Geeklog, we recommend that you copy over these two directories from one of the themes that come with Geeklog (choose one that is similar to your own theme or which it was originally based on). It seems like most Geeklog themes didn't change these files anyway, so this shouldn't be too much of a hassle ...

### Other changes

- The template file admin/mail/mailform.thtml has been added. This form for sending emails to other users of the site was previously hard-coded into Geeklog.
  If you followed the above advice and copied over the admin directory to your theme, you got this file already.
- Two new files menuitem_last.thtml and menuitem_none.thtml have been added to give theme authors better control over the items in menu bars ({menu_elements} and {plg_menu_elements} variables in header.thtml). The template file menuitem.thtml is now used to render the first and any following menu items - with the exception of the last menu item, which is rendered using menuitem_last.thtml. If there are no menu elements for a menu bar, menuitem_none.thtml is used.
- New files have been added and the existing files have been changed for the links section (links directory). Again, we recommend to just copy over those files from one of the themes that ship with Geeklog.
  The new files are: categoryactivecol.thtml, categorycol.thtml, categorynavigation.thtml, categoryrow.thtml, pagenavigation.thtml
- The user profile has been extended to include a list of the last 10 stories as well as the total numbers of stories and comments posted by that user. Have a look at the file users/profile.thtml to see the changes or just copy that file over from one of the themes that ship with Geeklog. You should also copy over the file users/storyrow.thtml which describes the block for the last 1o stories.
- The Classic theme has been updated to have an "Edit" link (for StoryAdmins) in every story now.
  Files changed: storybodytext.thtml, featuredstorybodytext.thtml
- In the Classic and Digital Monochrome themes the "contact" link now points to the form to send an email to the admin user instead of using a `mailto:` link with the site's email address from the configuration.

### CSS changes

- The underscore '_' is not a valid character in CSS. Therefore, some class names used by the Geeklog calendar have been changed to use the dash '-' instead. You may need to change your stylesheet accordingly.
  Names that changed: cal-oldday, cal-today, cal-futureday, cal-nullday, weekview-curday, weekview-offday
- A new class named pagenav can be used to format the paged navigation.
  Please note that this change was made after the release of Geeklog 1.3.6rc1 and affects the use of the paged navigation in admin/user/userslist.thtml and links/links.thtml: In 1.3.6rc1, the navigation was wrapped in <p> tags in those files. As of Geeklog 1.3.6 however, the function producing the navigation will wrap it in a <div> automatically.

Note: Theme authors are encouraged to specify a character set in the header.thtml of their themes like this:

    <meta http-equiv="Content-Type" content="text/html; charset={charset}">

Geeklog will replace the `{charset}` variable with the proper character set based on the currently used language file. Also make sure that you put the above line before the `<title>` tag in the `<head>` section of your header.thtml file.