(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が必要とするすべてのテンプレートファイルが収められていますが、外見を大きく変えるのに変更する必要があるのはほんの少数でしょう。
特に次のテンプレートは間違いなく変更する必要があるでしょう。
テーマを用いて表示するとき、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を指しています)。しかし、この方法はあまり目につかないし、訪問者がページのどこかにパーマネントリンクがあるのを期待することが多いため、自分でパーマネントリンクを追加する方法を次に示します。
<a href="{article_url}">{lang_permalink}<a>
chk_grpdefault
と chk_applydefault
のチェックボックスがadmin/group/groupeditor.thtmlにありますが、'登録済みユーザアカウントにデフォルトグループを追加する'は、 '新規登録ユーザのデフォルトグループをチェック'のチェックなしには選択できないようにしました。 (javascript/common.js内の追加されたJavaScriptによって実行されます).{hide_meta}
を追加しました。{icon_max_dimensions}
を追加しました。{hide_meta}
を新たに追加しました。<div id="editor-mode">
の
CSS スニペットdisplay:{show_htmleditor};
を削除しました。false
がreturnされるべき
でしたが、returnはunset-paramの場合(つまり、リストア
)のとき、
open_group
とopen_subgroup
において失敗していました。select-element
部で、
テーブル行のために{hide_row}
を追加し、テーブルselect
の
後に{delete}
オプションを追加しました。
これらは動的なドロップダウンメニュー(たとえば$_CONF['menu_elements']
)の
追加・削除に必要なものでした。lang_
という前置子を置いて
一貫性をもたせました。(例 {lang_owner}
他).span
と新テンプレート変数 {hidewhenediting}を
追加して実現しました。これによりコメントが編集されている時にはspan
を
隠すCSSが付加されます(コメントが投稿された後にはこのCSSは付加されません)。
変更したファイル:comment/commentform.thtml, comment/commentform_advanced.thtmlid="identity_url"
が
抜けていたのを修正しました。(<label>タグが示していたのは名前でなくIDだったため)。rel="home"
を追加するのに使われているのみです。<li>
エレメントに少々
paddingを加えました。これにより、スレッド上で続くコメントが少し離れるように
なって読みやすくなりました。
{lang_num_stories}
と {num_stories}
です。{remoteservice}
変数をadmin/user/edituser.thtmlテンプレート
に追加しました。{title_checked}
変数をsearch/searchform.thtmlテンプレートに
追加し、「検索条件の修正」で「タイトルのみ」のチェックボックスの状態が維持される
ようにしました。searchresult-byline
という新しいクラスと
しました。以下の変更はほとんどの場合些細なものであり、たとえ変更しなくてもテーマの機能に 影響を与えないでしょう。
<div id="preview">
を
変更しています。font-size:larger;
をスタイルシートから削除し、top/bottomのpaddingを
追加しました(bug #0000956)。width="180"
をブロックエディタの
テンプレート(admin/block/blockeditor.thtml)から削除しました。width:100%;
の指定がありません。各プラグインのテンプレートはlayoutディレクトリではなく、 plugins/プラグイン名/templatesディレクトリにあります。
width="150"
を削除しました。XHTML
定数で設定しないでください!{pi_display_name}
がテンプレートファイル
admin/plugins/editor.thtmlにあれば、プラグインの表示上の名前
(またはディレクトリ名)を表示できる用になりました。これは表示上の変更です。<form>
を埋めるこむテンプレートファイル
admin/lists/inline.thtmlが追加されました。(例:新しいグループ編集画面){startblock_email}
と{endblock_email}
およびトップのテーブルが
削除されました。これらの要素は自動的にメールフォームに追加されます。</option>
タグの
閉じ忘れ、およびconfiguration.thtmlで<col>
の
XHTML処理忘れに対応しました。検索フォームと結果表示のテンプレートが変更され、検索結果の表示モジュール用に新しく テンプレートが追加されました。searchディレクトリ以下のテンプレートを 同梱のProfessionalテーマからコピーして利用してください。
テンプレートファイルcommentform.thtmlとcommentform.thtmlは、
セキュリティトークンとテーマ変数{notifcation}
(コメント通知オプションのため)が
追加されました。
パーミッションエディタのそのいろいろな場合(所有者、グループ、メンバー、ゲストユーザに対してR = 閲覧 E = 編集 パーミッションの設定)は、いろいろなテンプレートで使われてきました。これからは、どこでも固有の名前で定義されます:
他の名前を使用しているテンプレートファイルは機能し続けます、しかし、新しいファイルは今後上記の名前を使用しなければなりません。
注: Geeklog 1.5.0ないし1.5.1用に作成されたテーマはGeeklog 1.5.2でも問題なく動作するはずです。今回のリリースでは、1.5.0と1.5.1に悪影響を与えていたバグ(下記参照)を修正するだけです。他の変更点はオプションです。
以下に述べるバグはGeeklog 1.5.0及び1.5.1に存在していたバグです。これらの修正をカスタムテーマに適用することを勧めます。
{start_storylink_anchortag}
変数にタグを閉じる '>' が抜けていました。このため、テーマによっては記事のタイトルが表示されなくなっていました(これはGeeklog本体のバグであるため、テーマを修正する必要はありません。)。{site_admin_url}
変数がセットされていませんでした。このため、セットアップ方法によっては、設定の変更に失敗していた可能性があります。old_pid
フィールドを追加し、アンケートID変更の際に生じる問題に対応しました。以下の変更点はオプションです。軽微な問題や一部のセットアップ方法にしか影響を与えない問題に対処します。
.header-navigation-container li.last
ルールが不要になっていました。{direction}
)が使用できなくなっていました。注意: 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リクエストだけでしょう。
{page_title}
変数(header.thtml)の振る舞いが変わり、実際のページタイトルかサイトのスローガンの一方のみを保持するようになりました(旧バージョンでは、サイト名 + ページタイトルないしサイトのスローガン)。このようにする目的は、{page_title}{page_site_splitter}{site_name}
と組み合わせることでページタイトルをサイト名の前におけるようになり、SEOの効果を高めるためです。トップページではサイト名を最初に置き、他のページではページタイトルを最初に置くには、新しい {page_title_and_site_name}
を使用してください。feed-link
クラスを追加しました。話題フィードの新規記事オプションなどで、フィードのリンクに使用します。Professionalテーマでは、小型のフィードアイコン(images/feed.png)が背景画像として使用されます。commentbar-line2
クラスが変更されました。機能上の変更点はなく、コメントバーの他のスタイルは以前と同様に機能します。{story_text_no_br}
変数を使用して記事本文を参照しています。 {story_introtext}
変数を使用しているテンプレートは以前と同様に機能します。XHTML準拠のテーマがサポートされました。テーマの functions.php ファイルの中で、次の定数を定義する必要があります。
define('XHTML', ' /');
こうすることで、内部的にXHTMLに切り替わります。テーマをHTMLとXHTMLの両方でサポートしたいなら、XHTMLの空要素タグがあるところすべてで {xhtml}
テーマ変数を使用する必要があります。たとえば、 <br />
タグは <br{xhtml}>
と書く必要があります。HTMLをサポートするつもりがないなら、XHTMLタグを直接記述しても構いません。
注意: XHTMLを使用するなら、サイトのコンテンツ(記事、コメントなど)をXHTML準拠にしなければなりません。Geeklogは自動的にコンテンツをXHTMLに変換しません。
Geeklog 1.5.0では、ユーザが記事を投稿する際、記事を単に冒頭文だけでなく冒頭文と本文に分ける機能をサポートしています。テンプレートを変更することでこの機能は有効/無効にできます。該当するファイルは、
です。有効にするには、 {bodytext}
テンプレート変数を含むテーブルの列がテンプレートファイルに含まれるようにしましょう。 {bodytext}
テンプレート変数を含むテーブルの列をテンプレートファイルから削除すれば、元の動作に戻ります。
これらの項目は今ではリストを使用しています。 <ul>
タグと <li>
タグとリストの黒丸を表示しないための新しい blocklist クラスが使用されています。ブロックを作成するために新しいテンプレートファイルが追加されています。
Geeklog-1.5.0のベータ版やリリース候補版で使用されていた {blockid}
テンプレート変数は削除されました。
特に管理者セクションで使用される多くのフォームには、フォーム保存・アクション処理がきちんと実行されるよう、新しいhiddenフィールドが必要になっています(訳注:CSRF攻撃を防ぐため)。次の記述を
<input type="hidden" name="{gltoken_name}" value="{gltoken}"{xhtml}>
以下のテンプレートに追加してください。
プラグイン固有のテンプレートファイルが一部変更されているので、以下のテンプレートファイルを確認してください。
{hidden_fields}
テンプレート変数)以下のテンプレートファイルは削除され、不要になりました。
以前、システムメッセージ用にハードコードされていたCSSは、新しく sysmessage クラスとしてスタイルシートに移されました。
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 についで、以下のファイルに影響を与えます。
管理者用テンプレートの多くには、外見や機能の変更のため少しずつ変更が加えられています。自作テーマの管理者用テンプレートを変更していない場合、更新する最も簡単な方法は、Professional テーマの admin ディレクトリからファイルを一式、コピーすることです。
{delete_option}
テンプレート変数を {delete_option_no_confirmation}
テンプレート変数に置き換えるとよいでしょう。{group_dropdown}
テンプレート変数を含めなければならなくなりました。{startampm_selection}
, {endampm_selection}
, {ampm_selection}
テンプレート変数として、また、分を選ぶドロップダウンリストが {startminute_options}
, {endminute_options}
, {minute_options}
テンプレート変数として利用できるようになりました。{author}
と {owner}
テンプレート変数が利用できるようになりました。この2つの変数は $_CONF['show_fullname'] の設定に従って、ユーザのフルネームかユーザ名(アカウント名)のいずれかを表示します。{contributedby_author}
に変わりました。{answer_text}
テンプレート変数が含まれます。polleditor.thtml は pollansweroption.thtml と同じく、コメントを残すためのフィールドが追加されました。{captcha}
テンプレート変数が追加されました。
以下の変更はProfessionalテーマ固有のものです。他のテーマに移植する必要はたぶんないでしょう。
従来通り、不足している新しいテンプレートファイルは、Geeklogに同梱されているデフォルトのProfessionalテーマからコピーしてくればよいでしょう。
Geeklog 1.4.0の管理者用セクションはかなりの変更を伴って改訂されています。したがって、従来のテーマの admin ディレクトリをGeeklog-1.4.0に同梱のProfessionalテーマの admin ディレクトリでそっくり置き換えてから、今まで自分が加えた改造を適用することをお勧めします。
注意: コントロールパネル(moderation.php)用の新アイコンは背景が白になっています。背景が暗い色(や白以外の色)のテーマ用には、アルファチャンネルつきのPNG形式のアイコンをダウンロードするとよいでしょう。この場合は、JavaScriptを用いたハックを行わないと、インターネットエクスプローラでは表示できないことに注意してください。場合によっては、これらのアイコンを変換して、背景を透明にしたりテーマの背景色に合わせたりする必要があるでしょう。
同梱されているアドバンストエディタ(FCKeditor)を使用するには、次の新しいテンプレートが必要です。
テーマの header.thtml テンプレートファイルの <head>
セクションに {advanced_editor}
テンプレート変数を追加する必要があります。
{send_trackback_link}
, {send_trackback_url}
, {lang_send_trackback_text}
テンプレート変数が利用できるようになりました。現在の記事に対するトラックバックコメントを送るための完全なリンクとURL、リンク文字列を提供します。{plugin_types}
オプションの一部として表示されるからです)。{services}
テンプレート変数を追加しなければならなくなりました。{start_trackbacks_anchortag}{trackbacks_with_count}{end_trackbacks_anchortag}
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:
{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).{layout_url}
variable is now available in the templates
for the story, link, and event submission forms.{separator}
is now
available in addition to the misspelled {seperator}
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.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.
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 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.
{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.{link_edit}
variable has been added to
links/linkdetails.thtml so that admins can edit links directly
from the links section.{edit_icon}
can be used as an alternative to
{edit_link}
in the story template files and in
links/linkdetails.thtml.{google_paging}
variable has been added to
admin/link/linklist.thtml. Also added a column number to
linklist.thtml and admin/link/listitem.thtml.{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.
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).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 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.
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/boxesblock.thtml preferences/commentblock.thtml preferences/deleteaccount.thtml preferences/digestblock.thtml preferences/displayblock.thtml preferences/displayprefs.thtml preferences/excludeblock.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.
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}">
If you have a file named commentheader.thtml in your theme directory, you can safely remove it. It isn't used at all.
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.
$_THEME_URL = $_CONF['layout_url'];
$_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.{whats_related}
and
{story_options}
, respectively
(the {whats_related_story_options}
variable for both blocks is
still available).{contributedby_fullname}
for the full name of a story author and
{contributedby_photo}
for his/her user photo.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.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 ...
mailto:
link with the site's email address from the
configuration.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.