# Geeklogの変更履歴(public_html/docs/historyをHTML化&翻訳したものです)

## Jan 2, 2011 (1.6.1sr2)

このリリースでは以下のセキュリティの問題に対処しました:

YGN Ethical Hacker GroupのAung Khant氏が管理者のコンフィギュレーションパネルにXSSが存在すると報告がありました。

## May 9, 2010 (1.6.1sr1)

このリリースは以下のセキュリティ対策を行いました:

(長い期間有効なクッキーを使用している)自動ログインは辞書攻撃に対して脆弱性があります。この問題は、Nine SituationsグループのBookoo氏から2009年4月に受けた報告の1つでしたが、Geeklogチームはどうも見落としていたようです。これを指摘していただいた geeklog.net のユーザ Jack に感謝します。

## Nov 22, 2009 (1.6.1)

1.6.1rc1以降の変更点:

- プロフィールページからユーザにメールを送信できませんでした。これは誤ったフィールドに対して'@'文字を検査していることによるものです。(cf. バグ #0000992 reported by rayleigh) [Dirk]
- unpacker.class.phpの間違った定数を修正しました。 [Blaine]
- 古くなっていたヘルプファイルを更新し、コメント、ユーザによる投稿、ドラフト記事一覧についてヘルプファイルを追加しました。 [Dirk]
- インストール成功時にdb-config.phpとsiteconfig.phpのパーミッションを755に変更することを勧めていましたが、これらのファイルを実行する必要はないので644への変更を勧めるようにしました。(バグ #0001036) [Dirk]

- (Artur Rapp氏提供による)エストニア語の言語ファイルを更新しました。

### 静的ページプラグイン

- 静的ページエディターで、静的ページの中にある波括弧がテーマ変数として処理されていました。(バグ #0001038) [Dirk]
- Tomさんのパッチを取り込む際に偶然取り込まれなかった、$_SP_CONF['includesearchcenterblocks']と$_SP_CONF['includesearchphp']オプションを処理するコードを追加しました。[Dirk]
- SP_render_content内の宣言されていない変数の参照を取り除きました。(バグ #0001032)[Dirk]

## Nov 8, 2009 (1.6.1rc1)

1.6.1b1以降の変更点:

- 検索結果の署名が緑色にハードコードされていたのをスタイルシート("searchresult-byline"クラス追加)で指定するように変更しました(検索結果をGoogle風に表示するとき) [Dirk]
- 「検索条件の修正」で「タイトルのみ」というチェックボックスの状態がページ間で維持されていなかったバグを修正しました。 [Dirk]
  注: このバグを修正するには search/searchform.thtml テンプレートを修正する必要があります。
- 検索結果のページで「ソート...」と「検索結果xx件」ドロップダウンリストの表示を改善しました(機能要望 #0000910)。 [Sami, LWC]
- 検索結果でXHTMLを指定しているときでもHTMLの<br>タグを使用していました。(バグ #0001022, パッチ提供tacaさん)
- 'data'ディレクトリがない場合に間違ったパスが報告されるバグを修正しました。(Markus Wollschlagerさんによる報告) [Dirk]
- 管理者メニューでプラグインが0個のアイテムを返す場合に'N/A'と表示していたバグを修正しました。(バグ #0001025) [Dirk]
- $_TABLES['groups']テーブルの名前が"groups"でない場合、グループエディタで、あるグループを他のグループに追加できないバグを修正しました。(バグ #0000998)[Dirk]

- LWCの提供によりヘブライ語の言語ファイルを更新しました。

### リンクプラグイン

- URLリライトが有効な場合、検索結果でもリライトされたURLを返すようにしました。[Dirk]

### 静的ページプラグイン

- 新着情報ブロックの表示項目で間違って使用されていたCSSクラスを修正しました。[Tom]

## Nov 1, 2009 (1.6.1b1)

- マイアカウントでユーザのタイムゾーンを実際に選択できるようになりました。[Dirk]
- 「タイムゾーンハック」を最新のものにし、設定オプションをドロップダウンリストにしました。タイムゾーン関係のコードはすべて新しいTimeZoneConfigクラスに移しました。[Dirk]
- ユーザが「(ブロックの)表示・非表示」の設定を変更した際にSQLエラーが発生する可能性のある古いバグを修正しました。[Dirk]
- 投稿者名で検索する際にPHP 4で発生していたバグを修正しました(バグ #0001008) [Dirk]
- toinnodb.phpスクリプトの機能をデータベースバックアップ機能へ移動しました。[Dirk]
- データベースバックアップ機能にテーブルを最適化するオプションを追加しました（訳注: MySQLのみ）[Dirk]
- ほとんどのエディタにセキュリティトークンの期限(と編集内容が失われる旨の)警告を追加しました。これは、エディタを更新してよりユーザに親切な解決策を提供するまでの一時的な措置です。[Dirk]
- 検索結果でテキストの抜粋を表示する際にPHP 4で発生していたバグを修正しました。(バグ #0001004)[Dirk]
- コメント投稿制限が無視されていました。(バグ #0001003) [Dirk]
- プラグインの更新オプションをわかりやすくするためにアイコンを追加しました。[Dirk](この"stock_update-data.png"アイコンはAMAZIGH AneglusによってGPLで公開されているGnome 2.18のテーマのアイコンセットのものです。)
- 話題の並べ換え順フィールドで128以上の数値を指定できるようになりました。(機能要望 #0001011)[Dirk]
- Story Adminが記事の編集権限を持たないとき、Geeklogは"access denied"を表示しようとして"call to a member function on a non-object"エラーを発生させていました。(Chase and Cesarさんによる報告) [Dirk]
- 外部アプリケーションが検索結果に出力を送れるようにしました。(機能要望 #0000985)[Sami]
- 検索結果で、現在のソート順/表示数の上限を維持するようにしました。(バグ #0001007) [Sami]
- 記事へのコメントが許可されていないときにコメントフォームを表示しないようにしました。(バグ #0000994) [Dirk]
- ユーザの投稿を承認/却下した後で管理者パネルの承認待ちが更新されない古いバグを修正しました。[Dirk]
- プラグインの自動インストールで複数のプラグイングループの作成に関するバグを修正しました。[Randy, Dirk]
- 一定期間が経過した後で記事のコメント受付を自動的に有効/無効にする$_CONF['article_comment_close_enabled']オプションを追加しました(バグ #0000959)。gl_storiesテーブルのcomment_expireフィールドの扱いを変更して、0が「コメントを常に受け付ける」の意味になるようにしました。[Dirk]
- グループエディタの"Admin Group"チェックボックスが機能していなかったバグを修正しました。(バグ #0000995, reported & fix provided by Tsuchi)
- Geeklog-1.6.0の「コメントを無効にする」オプションのバグを回避するために、$_CONF['article_comment_close_days']に大きな数値に設定すると、「年」のドロップダウンリストで範囲外となり、その結果前年(!)を指定したことになってしまい、即座にコメント受付が終了していた場合がありました。[Dirk]
- 自分のプロフィールのページを閲覧すると、「マイアカウント」へ移動する編集用のリンクを追加しました。[Dirk]
- 「記事を友人にメールする」、「メール送信」、「グループメール」でユーザが名前欄にメールアドレスを記入していないかを確認するチェックを追加しました。(バグ #0000992) [Dirk]
- 「記事を友人にメールする」画面で自分にコピーを送るオプションを追加し、この画面とメール送信画面の外見により統一感を持たせました。[Dirk]
- 話題エディタで現在の話題に含まれる記事数を表示するようにしました。(機能要望 #0000806) [Dirk]
- admin/user.phpからCUSTOM_userCheckを呼び出すようにしました。(バグ #0000925) [Dirk]
- 話題ごとに注目記事を1つ指定できるようになりました。(機能要望 #0000750, パッチ提供Tom Homerさん)
- アドバンストエディタで投稿モードを変更すると間違ったタブが選択されるバグを修正しました。(バグ #0000980, パッチ提供dengenさん)
- Made the former $cc parameter for COM_mail関数の$ccパラメータを追加のメールヘッダの配列にしました(オプション)。($ccパラメータに文字列を指定しても、依然としてCC:として機能します。) [Dirk]
- 1番目のコメントに対する返信の通知に関するバグを修正しました。(バグ #0000973)[dengen, Dirk]
- ゲストのコメント投稿者が名前を記入した場合、その名前をコメント通知メールで使用するようにしました。(バグ #0000960) [Dirk]
- コメントを編集するリンクからすべてのCSRFトークンを削除しました。トークンが必要なのは実際にコメントを編集するときだけなので、承認のページで問題が発生していました。[Dirk]
- ゲストのコメントの名前を言語ファイルではなくデータベースのゲストユーザ名から取るようにしました。(cf. bug #0000960) [Dirk]
- セッションとパスワードのクッキーを作成する際にHttpOnlyフラグをセットし、JavaScriptから読み取りにくくしました。(Webブラウザがこのフラグをサポートしている必要があります。) [Dirk]
- Story Adminの記事一覧と記事のオプションブロックで「ピングを送る」リンクの表示/非表示を修正しました。[Dirk]
- アップグレードの過程でインストールスクリプトが英語に戻ってしまうことがあったバグを修正しました。(バグ #0000969, パッチ提供tacaさん)
- カンマが小数点として使用されているロケールでXMLSitemapのプライオリティの値が失われないようにする回避策を追加しました。[Dirk]
- XMLSitemapプラグインでプラグイン名の大文字/小文字を維持するようにしました。[mystral-kk, Dirk]
- トップメニューを描画する際にCUSTOM_renderMenu関数を利用できるようにしました。(機能要望 #0000845) [Dirk]
- WindowsでEOL(改行)文字が不統一になるのを避けるために、インストールスクリプトでdb-config.phpとsiteconfig.phpを常にバイナリモードで開くようにしました。(バグ #0000730) [Dirk]
- サイト移行の際にデータベースのダンプでSQLエラーが発生指定したバグを修正しました。(バグ #0000955) [Dirk]
- プラグイン自体がアップグレードが必要なときにしか、プラグインの移行が呼び出されていなかったバグを修正しました。(バグ #0000947) [Dirk]
- インストールスクリプトのサイト移行オプションが既存のデータベースに対しても機能するようになりました。(機能要望 #0000945) [Dirk]
- コメント通知で誤って「以下の場所で記事全体を読むことができます。」というメッセージが使用されていました。(バグ #0000940) [Dirk]
- インストールスクリプトで正しいコンテントタイプと文字セットのヘッダを送るようにしました。(バグ #0000964, パッチ提供tacaさん)
- 「認証の保存期間」で「受け付けない」オプションが認識されなくなっていました。(バグ #0000961) [Dirk]
- コメントが承認待ちキューに入ったときに通知メールを送るようにしました。[Dirk]
- 「友だちに記事をメールする」フォームに記事へのリンクを追加しました。[Dirk]
- story.*権限が要求されるときに、[code]、[raw]タグしか表示しないようにしました。[Dirk]
- RootユーザがすべてのHTMLタグを許可されている場合、[page_break]が表示されていませんでした。[Dirk]
- Tom Homerの提供により、descriptionメタタグとkeywordsメタタグがサポートされるようになりました。
- (サイトの移行中に)bigdump.phpでエラーが発生してmigrate.phpに戻った場合、ユーザが選択した言語が保存されるようにしました。(バグ #0000943) [Dirk]
- 検索結果で日付を表示するときに、COM_getUserDateTimeFormat関数、つまり、ユーザが設定したフォーマットを使用するようにしました。[Dirk]
- フィードを無効にするときに、フィードファイルを削除するようにしました。[Dirk]
- admin/sectest.phpに残っていたハードコードされた文字列を言語ファイルに移動しました。[Dirk]
- ピングバックの要約を作成する際に、必要なら他サイトのコンテンツの文字コードを変換するようにしました。[Dirk]
- 新しいCOM_getTextContent関数はHTMLを連続したテキストに変換します。記事の「続きを読む」と検索結果及びピングバックの要約で文字数をより正確に数えるために使用されます。[Dirk]
- オンラインユーザブロックに表示される登録ユーザ・ゲストユーザの数をCOM_numberFormat関数でフォーマットするようにしました。[Dirk]
- 数ヶ所でハードコードされていた'N/A'を$LANG_ADMIN['na']に移しました。[Dirk]
- ユーザエディタでリモートユーザのサービス名を表示するようにしました。[Dirk]

### カレンダプラグイン 1.1.1

- イベントを投稿する際にユーザidを引き継ぐようにしました。(バグ #0000993) [Dirk]
- event.phpで、{event_begin_anchortag}と{event_end_anchortag}テンプレート変数を再導入しました。[Dirk]
- イベントを編集すると、イベントの閲覧数がリセットされていました。[Dirk]
- イベントをコピーすると、閲覧数が0にならずにそのままコピーされていました。[Dirk]
- リンクのデフォルトの"http://"が残ったままイベントを投稿すると、間違ってスパムと報告されるバグを修正しました。(バグ #0000946) [Dirk]

### リンクプラグイン

- カテゴリエディタで現在のカテゴリに含まれるリンク数を表示するようにしました。
  注意: サブカテゴリのリンク数は(現時点では)含まれません。[Dirk]
- 自動タグでリンクのタイトルを表示する際に引用符の前にバックスラッシュ（訳注：日本語では\）が表示されていました。(バグ #0000986) [Dirk]

### アンケート(Polls)プラグイン

- ゲストユーザには表示されないアンケートしか含まないアンケートブロックの表示を修正しました。(バグ #0000996) [Dirk]
- Geeklog 1.5.2からアップグレードした場合、アンケートIDが40文字に増やされていませんでした。Geeklog 1.6.0の新規インストールと1.5.2より古いバージョンからのアップグレードでは正常に動作していました。(cf. 機能要望 #0000754) [Dirk]
- Tom Homerの提供により、descriptionメタタグとkeywordsメタタグをサポートするようになりました。
- Tom Homerの提供により、[poll:]、[poll_vote:]、[poll_result:]自動タグを導入し、自動タグが許可されているところならどこにでもアンケートを埋め込めるようになりました。

### 静的ページプラグイン 1.6.1

- 検索結果からある種の、またはすべての、静的ページを除外することができるようになりました。(機能要望 #0000979, provided by Tom Homer)
- 新規ないし更新された静的ページが新着情報ブロックに表示されるようになりました。(機能要望 #0000908, provided by Tom Homer)
- Geeklog-1.6.0でこのプラグインを新規インストールした場合、プラグインの管理者グループに間違った名前が使用されていました。アップグレードの際にこっそり修正するようにしました。[Dirk]
- ページ一覧を所有者で並べ換えられるようにしました。(機能要望 #0000978) [Dirk]
- 静的ページエディタで使用可能な自動タグの一覧を表示するようにしました。[Dirk]
- Tom Homerの提供により、descriptionメタタグとkeywordsメタタグをサポートするようになりました。

## Aug 30, 2009 (1.6.0sr2)

このリリースでは以下のセキュリティ対策を行いました:

- 不正なファイルをFCKeditorを介してアップロード可能でした。
  アップロードされるファイルはFCKeditorのフィルターを通過しなければならないため、スクリプトをアップロードすることは不可能でした。(したがって、Geeklogのサイトとしての整合性が壊されるといった危険性はありませんでした。) しかしながら、マルウェアの置き場として使用されていたという報告がありました。
  今回のアップデートではFCKeditorを無効としているか、ゲストユーザの場合にはアップロードの機能を使用できないようにしました。
  また、アーカイブ形式のファイルのアップロードも許可しません。
  さらに、FCKeditorを使ってファイルをアップロードするには、何らかの「編集」の権限が必要です。(これは一時的な対応です。将来のGeeklogのバージョンでは「アップロード」という独立した権限を採用する予定です)。

セキュリティと関係のない変更点:

- InnoDBテーブルを使用してインストール時の問題を修正しました。 [Dirk]
- リンクプラグイン(links): ファイル autoinstall.php に含まれる間違った関数名を修正しました。(バグ #0000954)
- コメントコードのフィールドが自動更新されるときの(global宣言のし忘れで、悪用不可能な)SQLエラーを修正しました。(Jokke_K氏により報告) [Dirk]

また、このリリースでは更新された(LWC氏により提供された)ヘブライ語とドイツ語の言語ファイルを含んでいます。

## July 30, 2009 (1.6.0sr1)

このリリースでは以下のセキュリティ対策を行いました:

- Gerendi Sandor Attila氏から、メール送信および記事を友人にメールで送るメールフォームにおいてXSSが存在すると報告がありました。
- 記事を知人にメールで送信する機能が記事のパーミッションを無視していました。 このため、閲覧できない記事までメールで送信可能でした。

セキュリティと関係のない変更点:

- 記事投稿キューがOFFのときに(初期化されていない変数による、悪用不可能な)SQLエラーを修正しました。(Dieter Thomas氏により報告) [Dirk]
- (COM_displayMessageAndAbortを呼ぶべきところを)存在しないCOM_outputMessageAndAbortを呼びだしていた問題を修正しました。 [Dirk]

## July 19, 2009 (1.6.0)

Geeklog 1.6.0は、以下のGoogle Summer of Code 2008の間に実装されたプロジェクトが取り込まれています:

- サイト移行のサポートとより簡単なプラグインのインストール。(開発者: Matt West氏)
- 検索プログラムの改善 (開発者: Sami Barakat氏)
- コメントの承認と編集の機能 (開発者: Jared Wenerd氏)

1.6.0rc2からの変更点:

- (Markus Wollschlager氏提供による)公式ドイツ語の言語ファイルを更新しました。
- (Geeklog.jp groupの提供による)日本語の言語ファイルとドキュメントを更新しました。

## July 12, 2009 (1.6.0rc2)

### 1.6.0rc1からの変更点:

- FCKeditorをversion 2.6.4.1に更新しました。 [Dirk]
- 詳細な検索で開始と終了の日を使用していない問題を修正しました。(バグ #0000924: パッチはdengen氏から提供)
- SQL dumpが`CREATE TABLE IF NOT EXISTS`要求を含んでいるときに、 移行処理の間のテーブルのプリフィックスの自動検知の問題を修正しました。(バグ #0000922) [Dirk]
- (移行処理の間に)bigdump.phpでエラーが発生したときに、ユーザをmigrate.phpに戻るようにしました。(バグ #0000919) [Dirk]
- バックアップが利用できないときの、移行処理でのウォーニングを修正しました。(バグ #0000918: パッチはhiroron氏に提供)
- Artur Rapp氏からの提供により、エストニア語の言語ファイルを更新しました。
- LWC氏からの提供により、ヘブライ語の言語ファイルを更新しました。
- Geeklog.jpグループの提供により、日本語の言語ファイルとドキュメントを更新しました。

## Jun 28, 2009 (1.6.0rc1)

### 1.6.0b3からの変更点:

- bigdump.phpで、db-config.phpをインクルードするパスを修正しました。(バグ #0000915) [Dirk]
- 移行処理でUTF-8のデータベースのdumpの検出を改善しました。(バグ #0000916) [Dirk]
- インストール・スクリプトのタイプミスを修正しました。(bugs #0000913 and #0000914) [Dirk]

## Jun 21, 2009 (1.6.0b3)

### 1.6.0b2からの変更点:

- 検索結果のソートと制限のコンボボックスで、IE6とSafariでの互換性の問題を修正しました。(バグ #0000874の一部) [Sami]
- コンフィギュレーションのHTMLの誤りを修正しました。(バグ #0000907) [Dirk]
- インストール・スクリプトを削除するように、より目立つ念押しの表示を追加しました。 [Dirk]
- プラグインで、コメント・バーから親のオブジェクト(記事と静的ページ)へのリンクが適切に動作するようにしました。 [Dirk]
- (検索文字列無しで)話題での検索を再度できるようにしました。(Markus Wollschlagerによる報告) [Dirk]
- `$_CONF['comment_close_rec_stories']`の扱いを修正しました。 (バグ #0000899) [Dirk]
- 検索結果に表示される、文字列の(検索対象の)選択を改善しました。 [Dirk]
- トラックバック消去後に起こるエラーを修正しました。 [Dirk]
- 検索結果の自動タグを置き換えました。(バグ #0000887) [Dirk]
- リモートユーザー編集の際にemailアドレスを強調しないようにしました。(バグ #0000885) [Dirk]
- クリックジャッキング防止のために、`X-FRAME-OPTIONS` HTTPヘッダを送信するコンフィギュレーションのオプションを追加しましたた。(ブラウザ側サポートが必要です。) [Dirk]
- インストール・スクリプトにおけるXSSを防止しました。 (Nemesis氏とMaXe氏による報告) [Dirk]
- カレンダー、アンケート、静的ページの各プラグインの古いプラグインAPI関数`plugin_commentsupport`を削除しました。 [Dirk]
- Geeklog.jpグループの提供により、日本語の言語ファイルと日本語のドキュメントを更新しました。

### カレンダープラグイン

- 閏年チェックの修正しました。 [Sean Clark]

### アンケートプラグイン

- PLG_getCommentUrlIdを実装しました。 [Dirk]
- アンケートIDを変更したときに、アンケートへのコメントを更新して迷子にならないようにしました。(バグ #0000901の一部) [Dirk]

### 静的ページプラグイン

- さらにPHP 4で(文法エラーとなる)互換性の問題の修正を試みました。 [Ben, Dirk]
- PLG_getCommentUrlIdを実装しました。 [Dirk]
- 静的ページのIDを変更したときに、静的ページへのコメントを更新して迷子にならないようにしました。(バグ #0000901の一部) [Dirk]
- 静的ページを削除したときに、そのコメントも削除するようにしました。(バグ #0000901) [Dirk]

### XMLサイトマッププラグイン

- デフォルトでアンケートプラグインをサイトマップに加えるようにしました。 (バグ #0000898の一部) [Dirk]
- プラグインを手動で追加または削除したとき、対応する優先度と更新感覚の項目を 自動的に追加または削除するようにしました。(バグ #0000898の一部) [Dirk]

## May 31, 2009 (1.6.0b2)

### 1.6.0b1からの変更点:

- (作業が進行中の)新しい検索(訳者註: タイトルのみの検索チェックボックス追加他)に様々な修正を行いました。 [Sami]
- コメント投稿のリストは、コメントの親の(記事やアンケートなどの)オブジェクトへのリンクを用意しようとするようになりました。もし、リンクが用意できないなら、コメントから抜粋を表示します。 [Dirk]
- コメント投稿キューに保存されたときに、プラグインのコメントのタイプは失われます。(記事のコメントとして扱われます。) [Dirk]
- SQLのエラーは標準のエラーハンドラ("Unfortunately, an error has occurred ...")を呼び出すようになりました。詳細はいつものようにerror.logに記録されます。 [Tony, Dirk]
- $_CONF['search_no_data']を設定オプションから削除して、言語ファイルに移動しました。 [Dirk]
- 同梱しているプラグインは、稼働中のサイトで動作しているDBMS(データベース管理システム)を参照して、確認するようになりました。 [Dirk]
- 新規インストールで、同梱しているプラグインはインストールしようとしているGeeklogのバージョンとの互換性を確認するようにしました。 [Dirk]
- ユーザははパスワードの変更もアカウントの削除もできませんでした。(Tom Homer氏の報告) [Dirk]
- インストール・スクリプトからの、プラグインのインストール後の処理を修正しました。 [Dirk]
- https://のURLを`COM_createImage`が認識するようにしました。(訳者註: これはGeeklog Japaneseサポート掲示板で指摘された、SSLサイトで画像のURL生成のバグの問題です。) (バグ #0000881) [Dirk]
- config classにおける通知を修正しました。(tgc他からの報告) [Dirk]
- 詳細検索のページで、「タイプ」のドロップダウンに空のエントリがある問題を修正しました。更新した`search/searchform.thtml`のテンプレートが必要です。(バグ #0000874の一部)
- 「プレビューをスキップする」オプションが無効のときに、`PLG_templateSetVars`(と当然`CUSTOM_templateSetVars`)が適切に呼び出されるようにしました。(バグ #0000880) [Dirk]
- フィードのエントリーの内容を一定量の文字に制限したときの、マルチバイトのエンコードされた文字列の扱いを修正しました。(alank氏の報告) [Dirk]
- search classに冗長なロギングのオプションを追加して、デフォルトではoffとしました。 [Dirk]
- lib-custom.phpが、1.6.0b1の配布用ファイルに含まれていませんでした。
- Juan Pablo Novillo氏からの提供により、スペイン語の言語ファイルを更新しました。

### アンケートプラグイン

- プラグインのコメントキューに置かれた時にメッセージを表示をします。 [Dirk]
- アンケートのIDが分かっていれば、アンケートのアクセス権がなくてもアンケートのタイトルを探し出すことができていました。 [Dirk]
- 存在しないアンケートのIDが呼び出すと、空のページとなる問題を(ほぼ)修正しました。(scarecrow氏の報告) [Dirk]

### 静的ページプラグイン

- プラグインのコメントキューに置かれた時にメッセージを表示をします。 [Dirk]
- 複数言語の環境で「全部のページ」の中央ブロックの処理を修正しました。これは、言語毎に許可できなければなりません。(Norbert Ortmann氏による報告) [Dirk]
- 自動タグ`[staticpage:]`が動作しない原因だったタイプミスを修正しました。 [Dirk]

### XMLサイトマッププラグイン

- サイトマップに含めずに除外するプラグインを設定するオプションを追加しました。デフォルトではリンクプラグインが除外の対象となっています。 [Dirk]
- プラグインをアンインストールするときに、サイトマップのファイルも削除するようにしました。 [Dirk]
- `sitemap.xml`に自動的にリンクを含めないようにしました。 [Dirk]
- 設定オプションをすると、`"missing argument 2"`というエラーになる問題を修正しました。(Markus Wollschlager氏により報告) [Dirk]

## May 1, 2009 (1.6.0b1)

- mystral-kk氏から提供された、新しいプラグインXMLSitemapは、すべての主要な検索エンジンがサポートしているXMLサイトマップファイルを生成します。
- グループ管理画面で、AllUsersとログイン中Userのグループにユーザー追加または削除を禁止しました。(バグ #0000863 と #0000864) [Dirk]
- ユーザーをグループに追加または削除するグループ管理画面のフォームの外観を変更して、他の管理パネルと一貫性が取れるようにしました。 [Dirk]
- `CUSTOM_templateSetVars`が実際にどこから呼び出されているか、ドキュメントに記述しました。(バグ #0000862) [Dirk]
- タイトルだけで検索するオプションを追加しました。(機能要望 #0000840) [Sami]
- 管理者専用メニューの「プラグイン」管理画面は、有効なプラグインの数を表示するようにしました。(従来は、無効なプラグインの数も含めて表示していました。) [Dirk]
- コンフィギュレーションに、「テキスト中のURLを自動的にクリック可能なURLにする」機能を有効または無効とするオプションを追加しました。 [Dirk]
- デフォルト設定をいくつか変更しました。 [Dirk]
  - ウェブサービスは無効にしました。
  - cronjobのエミュレーションはoffです。
  - デフォルトの話題のソート順序はアルファベット順です。
  - デフォルトのコメントの表示モードは入れ子です。
  これらの設定は、以前のバージョンのGeeklogから更新する場合は変わりません。
- 試験的実装: HTML出力をブラウザに送る前に圧縮します。(デフォルトでは無効; ブラウザとウェブサーバーの両方がサポートしていなければなりません。) [Dirk]
- 記事の一覧に正規化リンク(訳者註: 以下を参照http://www.sem-r.com/09/20090213153711.html)を追加しました。 [Dirk]
- admin/sectest.phpに直接書かれていた文字列を言語ファイルに移動しました。(バグ #0000716) [Dirk]
- ユーザーにメール送信を行うときに、自分にもコピーを送るオプションを追加しました。(機能要望 #0000771, Roshan Singh氏提供のパッチを元)
- COM_checkListがHTML内のcheckbox配列の名前にテーブルの名前を使ってしまうでしょう! checkboxの名前用に新しいパラメータを追加しました。 (Bookoo氏によりusersettings.phpの脆弱性と共に指摘、Geeklog1.5.2sr4を参照)
- プラグインで`COM_allowedHTML`と`COM_checkHTML`の誤って使用していた問題を修正しました: 特定のパーミッションなしに関数が呼ばれていたため'story.edit'がデフォルトとなっていました。すなわち話題の管理者として、admin_htmlをイベントに使用できるのに、カレンダーの管理者としては使用できませんでした。(バグ #0000785) [Dirk]
- header.thtmlといった、テンプレートのいくつかにfinish()の呼び出しが欠けていました。(バグ #0000855) [Dirk]
- ドキュメントをdocs/englishに移して、翻訳を用意できるようになりました。(機能要望 #0000770) [Dirk]
- 新しいプラグインのAPI関数`PLG_pluginStateChange`を追加しました。 [Dirk]
- バッドワードチェックのドロップダウンを修正して、オプションを従来の2つから増やせるようにしました。(訳者註: 従来の「チェックする」と「チェックしない」から、「チェックする(完全一致)」、「チェックする(前方一致)」、「チェックする(後方一致)」、「チェックしない」の4つとなりました。) (バグ #0000692) [Mike, Maciej Cupial]
- 少しだけ速度の速いテンプレートクラスを追加しました。(機能要望#0000760, パッチはdengen氏とmystral-kk氏から提供)
- より効率的なStory::hasContent実装を使用するようにしました。(バグ #0000858, パッチはMaciej Cupial氏から提供)
- 以前は公式にオプションだったコンフィギュレーション項目を完全に無効にできるようにしました。(バグ #0000846) [Dirk]
- 新しいプラグインのAPI関数`PLG_getDocumentationUrl`を追加しました。(機能要望 #0000848) [Dirk]
- 新規インストールでMySQLだけが該当: tinyintフィールドはフラッグとしてだけ使用していたため、tinyint(3)からtinyint(1)に定義を変更しました。(バグ #0000857)
- 予め定義済みの日付フォーマット文字列の１つを修正しましたた。(バグ #0000854)
- デイリー・ダイジェストと話題を友人にメールするときWikiスタイルの形式が処理されていませんでした。(バグ #0000837, パッチはPawel Szczur氏から提供)
- 新しいプラグインのAPI関数`PLG_configChange`を追加しました。(機能要望 #0000694) [Dirk]
- ユーザー管理画面で、一括登録と一括削除のオプションのレイアウトを修正しました。 [Dirk]
- ログインに失敗したとき、ユーザー登録を無効に設定していてもユーザー登録フォームが表示されていた問題を修正しました。(バグ #0000843)
- Wikiスタイルの表示処理で、(日本語やドイツ語のウムラウトといった)国毎の文字が正しく行われていませんでした。(バグ #0000823) [Dirk]
- 新しいプラグインのAPI関数`PLG_migrate`を導入しました。 [Dirk]
- コンフィギュレーションからDOCTYPEを切り換えられるようにしました。テーマでは、固定した文字列のDOCTYPEを書く代わりに`{doctype}`を使用する必要があります。(機能要求 #0000745) [Dirk]
- 新しいユーザーを登録したときの通知メールは、使用しているリモートのサービスについての情報を含めていませんでした。 [Dirk]
- XHTMLを使用するときにXHTMLに適合させるため、`{xmlns}`を定義しました。更新したテンプレートファイルのheadr.thtmlとarticle/printable.thtmlは変数を使用しています。 [Dirk]
- トラックバックを送信するときに、'&'を誤って使用していた問題を修正しました。(バグ #0000825)
- 不完全な(過去に公開したバージョンで決して有効にしたことのない)PDF作成機能を廃止しました。 [Dirk]
- 行の区切り文字(訳者註: 行末文字)にCRを使用して記事がが書かれていると、ニュースフィードで単語がつなげられてしまう問題を修正しました。 [Dirk]
- URLリライト作業を$_SERVER['ORIG_PATH_INFO']のみを設定するようにした(バグ #0000816)
- 管理者画面とユーザー画面でプラグインが複数登録されていると、プラグインの項目が重複する問題を修正しました。(バグ #0000820)
- `{contributedby_user}`と`{contributedby_fullname}`が記事のテンプレートに設定されていませんでした。(バグ #0000821) [Dirk]
- `{start_contributedby_anchortag}`, `{end_contributedby_anchortag}`, `{contributedby_author}`といった変数の古い定義を元にもどしました。すなわち、2つのアンカータグの変数が再び定義され、`_author`は名前だけを含むようになりました。(バグ #0000821) [Dirk]
- 自動的に削除する記事で、その記事のトラックバックを削除してませんでした。 [Dirk]
- パーミッション管理エディターで、テンプレート変数名の一貫性が取れるように保証しました。 [Dirk]
- 新しいパーミッション'group.assign'を追加してました。これは、ユーザーをグループに所属させるために必要となります。(ユーザー管理でなく)グループ管理の一部のパーミッションではデフォルトとしています。(機能要求 #0000190) [Dirk]
- PHPの必要とするバージョンをPHP 4.3.0に上げて、PHP 4.1.0への互換性のためのすべての回避策を削除しました。 [Dirk]
- データベースのバックアップファイル名のマスク設定(訳者注: ファイル名の付け方を定義)を追加しました。 [Dirk]
- $_CONF['pagetitle'] ハックを削除しました。代わりに、`COM_siteHeader('menu', $pagetitle)`を使用してください。 [Dirk]
- 正規リンクを記事に追加しました。 [Dirk]
- 固定した文字列で書かれていた「リマインダー」カラムのタイトルを言語ファイルに移動しました。(バグ #0000817)
- アーカイブの話題が定義されていないときは、アーカイブ・オプションのラジオボタンを表示しないようにしました。(機能要望 #0000807) [Dirk]
- どのような場所でも、グループ名の最初の文字を大文字にして表示するようにしました。[Dirk]
- `gl_dataformats`テーブルに、ISO 8601的な形式を追加しました。 [Dirk]
- `user.mail`パーミッションだけを持っているユーザーだけが、自ら所属するグループにメール送信できるようにしました。 [Dirk]
- グループ管理画面とユーザー管理画面を模様替えできるようにしました。新しいテンプレートファイル`admin/lists/inline.thtml`が必要です。 [Dirk]
- FCKeditorが有効な場合に使用できるタグ(訳者注: 「アドバンストエディタ用追加HTML」による設定)のリストを"advanced HTML"として導入しました。これは画像のために必要です。 (バグ #0000757) [Blaine]
- 新しいパーミッション`plugin.install`と`plugin.upload`を追加して、プラグイン管理画面で、さらに「きめの細かい」制御を可能としました。(バグ #0000637) [Dirk]
- 新しいプラグインのAPI関数`PLG_itemDeleted`を導入しました。 [Dirk]
- `PLG_itemSaved`のAPIを変更して、より単純に、そして使いやすくしました。 [Dirk]
- FCKeditorを2.6.4にバージョンアップしました。 [Blaine]
- Usersettings.php: カスタムユーザー登録が有効なときにパスワード変更ができませんでした。CUSTOM_userCheckをエラーメッセージの文字列とエラーコードの両方を返すように修正しました。users.php と usersettings,php を更新しました。(バグ #0000776) [Blaine]
- 拡張のAPI`PLG_getItemInfo`を導入しました。 [mystral-kk, Dirk]
- 管理画面で「アクセスが拒否されました」を表示するときの一貫性の欠如と様々な小さな誤りを修正しました。 [Dirk]
- 印刷可能なテンプレートのファイルで使用される`print.css`スタイルシートを追加しました。(機能要望 #0000766) [Dirk]
- db-config.phpを見つけられないときの、パスのヒントをインストール・スクリプトに再び導入しました。 [Dirk]
- マイアカウントのページにある「個人情報」の管理画面で、ユーザー写真の最大の解像度についての記述を加えました。(機能要望 #0000629) [Dirk]
- 話題が存在しないときにメッセージを表示して、ユーザーが記事の編集画面に入れないようにしました。(バグ #0000738) [Dirk]
- JPEGの品質を制御するコンフィギュレーションのオプションを追加しました。(機能要望 #0000720) [Dirk]
- LWC氏の提供により、インストール・スクリプトのヘブライ語の言語ファイルを更新しました。
- Aleksandar Scepanovic氏の提供により、新しいセルビア語(ラテン)の言語ファイルを追加しました。

### カレンダープラグイン

- 移行処理のサポートを追加しました。 [Dirk]
- 「これからのイベント」ブロックから余分な二重引用符を削除しました。(バグ #0000827)
- 自動インストールのサポートを追加しました。 [Dirk]
- `PLG_getItemInfo`, `PLG_itemSaved`, `PLG_itemDeleted`のサポートを追加しました。 [Dirk]

### リンクプラグイン

- 移行処理のサポートを追加しました。 [Dirk]
- カテゴリのデフォルトのパーミッションを追加しました。 [Dirk]
- 自動インストールのサポートを追加しました。 [Dirk]
- `PLG_getItemInfo`, `PLG_itemSaved`, `PLG_itemDeleted`のサポートを追加しました。 [Dirk]
- `LINKS_getCategorySQL`を導入して、Top10リンクでのリンクカテゴリとサイトの統計の視認性を向上しました。 [Dirk]
- 外部リンクを新しいウィンドウで開くオプションを追加しました。 (機能要望 #0000693)　どうか、十分に注意して使用してください。 [Dirk]
- 外部リンクだけ`class="ext-link"`と印を付けるようにしました。 [Dirk]

### アンケートプラグイン

- 移行処理のサポートを追加しました。 [Dirk]
- アンケートを見るときのページタイトルを設定しました。 [Dirk]
- 自動インストールのサポートを追加しました。 [Dirk]
- `PLG_getItemInfo`, `PLG_itemSaved`, `PLG_itemDeleted`のサポートを追加しました。 [Dirk]
- アンケートIDの最大文字数を40に拡張しました。(機能要望#0000754) [Dirk]

### スパム-X

- 移行処理のサポートを追加しました。 [Dirk]
- 自動インストールのサポートを追加しました。 [Dirk]

### 静的ページプラグイン

- 移行処理のサポートを追加しました。 [Dirk]
- printable.thtmlテンプレートで`{xmlns}`変数を使うようになりました。 [Dirk]
- 正規リンクを追加しました。 [Dirk]
- 自動インストールのサポートを追加しました。 [Dirk]
- `PLG_getItemInfo`, `PLG_itemSaved`, `PLG_itemDeleted`のサポートを追加しました。 [Dirk]
- テンプレート・ファイル`printable.thtml`は、HTML Strictなドキュメントタイプと、`print.css`を使うようになりました。 [Dirk]
- 他のプラグインや組み込み済み関数のように、"successfully saved"と"successfully deleted"といったメッセージ(訳者注: 英語の言語ファイルの場合で、日本語の言語ファイルでは若干表現が異なります。)を表示するようにしました。(バグ #0000644) [Dirk]

## July 30, 2009 (1.5.2sr5)

このリリースでは以下のセキュリティ対策を行いました:

- Gerendi Sandor Attila氏から、メール送信および記事を友人にメールで送るメールフォームにXSSが存在すると報告がありました。
- 記事を知人にメールで送信する機能が記事のパーミッションを無視していました。 このため、閲覧できない記事までメールで送信可能でした。

## Apr 18, 2009 (1.5.2sr4)

このリリースでは以下のセキュリティ対策を行いました:

Nine SituationsグループのBookoo氏から、usersettings.php の古いバグが対象となる、さらに別のSQLインジェクション脆弱性の報告がありました。前回の問題と同様に、攻撃者は任意のアカウントのパスワードハッシュ値を取得可能でしたが、このリリースで問題を修正しました。

## Apr 13, 2009 (1.5.2sr3)

このリリースでは以下のセキュリティ対策を行いました:

Nine SituationグループのBookoo氏から、また別のSQLインジェクションの脆弱性が webservices API に存在すると報告がありました。前回の問題と同様に、攻撃者は任意のアカウントのパスワードのハッシュ値を取得可能でしたが、このリリースで問題を修正しました。

セキュリティには無関係な問題

インストールスクリプトに関数`get_SPX_Ver`を再び採り入れました。これは、古いリリースのGeeklogからのアップグレードするときにまだ必要でした。(Sheila氏からの報告) [Dirk]

## Apr 4, 2009 (1.5.2sr2)

このリリースでは以下のセキュリティ対策を行いました:

Nine Situations グループの Bookoo氏から、glFusion に対してSQLインジェクションの脆弱性の報告がありましたが、これに Geeklog も該当していました。この問題によって、攻撃者は任意のアカウントのパスワードのハッシュ値を取得可能でしたが、このリリースで問題を修正しました。

## Mar 30, 2009 (1.5.2sr1)

このリリースでは以下のセキュリティ対策を行いました:

Fernando Munoz氏から、管理者用問い合わせの殆んどのフォームにXSSの可能性があると報告がありましたので、このリリースでそれらの問題を修正しました。

## Feb 8, 2009 (1.5.2)

- バッドワードチェックでの置換え文字列は"censormode"でなく"censored"とすべきでした。 [Dirk]
- `magic_quotes_gpc = On`で、記事プレビューの際にタイトルに余分なバックスラッシュが表示される問題を解決しました。(バグ #0000790) [Mike, Dirk]
- コメントを単独で見ているときに抜けていたページタイトルを追加しました。 [Dirk]
- グループドロップダウンメニューでのグループ表示で大文字小文字を区別しないようにしました。 [Dirk]
- コメントがスパムとして拒否された場合に報告メールを管理者に送った旨のメッセージを表示するようにしました。 [Dirk]
- 新しいパスワードでログインに失敗した場合に報告メールを管理者に送った旨のメッセージを表示するようにしました。 [Dirk]
- カレンダープラグイン用エストニア語の言語ファイルを更新しました。(Artur Rapp氏による提供)
- 日本語言語ファイルを更新しました。(Geeklog.jpグループによる提供)

### 静的ページプラグイン

- 静的ページを保存するときのパースエラーを修正しました。(greenteagod氏からのの報告) 1.5.2rc1のみで起る問題です。 [Dirk]

## Jan 24, 2009 (1.5.2rc1)

- COM_makeClickableLinksに関する様々な問題を修正しました。(バグ #0000767, #0000793,#0000796) [Sami]
- コメント投稿で、$_CONF['show_fullname']が有効の場合にユーザーのフルネームが表示されませんでした。 [Dirk]
- $_CONF['show_fullname']を有効にしてもコメントでいつもユーザー名が表示されていました。(バグ #0000800, mystral-kk氏の報告とパッチ提供)
- 記事のプレビューで、記事idが既に存在している場合に記事がなくなる問題を修正しました。 (バグ #0000789) [Dirk]
- STORY_extractLinksでのstr_replaceの誤用を修正しました。 (バグ #0000794) [Dirk]
- 「PING送信」を記事のオプションブロックに追加(機能がONになっており記事を作成･編集しているユーザーに許可されている場合に有効)しました。 [Dirk]
- 各プラグインにfunctions.incがない場合にユーザーがプラグインを有効にできないようにしました。 [Dirk]
- インストールスクリプトがdb-config.phpを探せない場合に、メッセージは常に英語としました。つまり画面上、言語の変更ができないようにしました。 [Dirk]
- 1.5.0以前のGeeklogからのアップグレードの場合、plugin config.phpファイルはリネームしないようにしました。 [Dirk]
- ソートできなかった管理画面の項目をソート可能としました。(バグ #0000791, hiroron氏の報告とパッチ提供)
- STORY_getItemInfoを修正して、未来の日付とドラフトフラグのチェックをするようにしました。 [mystral-kk, Dirk]
- COM_getPermSQLでのCOM_isAnonUserの誤用を訂正しました。(1.5.0以降) [Dirk]
- COM_getYearFormOptionsを$startoffsetパラメータと一緒に呼ぶとき、年のリストが1年ずつ戻っていました。(バグ #0000783; hiroron氏によるパッチ提供)
- 話題のパーミッションを変更した後のアップデートフィードを修正しました。 (バグ #0000783; hiroron氏によるパッチ提供)
- トラックバックエディタのテンプレートファイルでセキュリティトークンがなくなっている問題(バグ #0000778, hiroron氏の報告とパッチの提供)
- 少し違う意味のマイクロフォーマットを指示するため、lib-story.phpの話題のリンクからrelタグを削除しました。 [Dirk]
- サイト管理者が送信するメールでX-Originating-IPヘッダを含めないようにしました。(バグ #0000701) [Dirk]
- COM_errorLogをconfig classで使う前に、COM_errorLogがあるか否かをチェックするようにしました。(バグ #0000768, インストールで問題の起きる可能性を回避するため) [Dirk]
- インストールスクリプトで「サイトのメールアドレス」「No-Replyメールアドレス」を記入するようにしました。以前はアップグレード時にconfig.phpの値を上書きしてしまっていました。(バグ #0000759) [Dirk]
- 記事と静的ページの印刷画面テンプレートに言語指示を設定しました。また、言語ファイルが定義がしていなければ、$LANG_DIRECTIONを'ltr'に設定するようにしました。 (バグ #0000762) [Dirk]
- バッドワードチェックが正常に動作しなくしていた、バッドワードリストの中間の要素を削除しました。(バグ #0000763) [Dirk]
- 記事の保存のときに「記事」タイプでなく「geeklog」タイプでフィードの更新を行うように修正しました。(Tom Homer氏からの報告)
- フィードを削除するときにフィードのファイルも削除するようにしました。(バグ #0000758) [Dirk]
- gdlibを使用するときにimagecopyresizedの代わりにimagecopyresampledが使うようにしました。これにより、よりよい品質の画像を得ることができるでしょう。 (機能要望 #0000720の一部) [Dirk]
- 記事テンプレートの{start_storylink_anchortag}変数で'>'が抜けていました。(Michael Brusletten氏からの報告) [Dirk]
- 記事等の所有者がリモートの認証でログインしているとき、管理者専用メニューの「サービス」欄を表示するようにしました。 [Dirk]
- "System Message"欄に自由に文字列を表示できる新しい関数COM_showMessageTextを導入しました。 (機能要望 #0000676) [Dirk]
- プラグインのメッセージを含む、そのURLに渡されたメッセージを簡易に安定して表示する新しい関数COM_showMessageFromParameterの導入しました。 (バグ #0000618修正の2度目の試み) [Dirk]
- 記事をメール送信する際の確認メッセージを表示するようにしました。(機能要望 #0000689)[Dirk]
- wikiフォーマットの文書を(X)HTMLに変換する新関数COM_renderWikiTextを導入しました。 (機能要望 #0000643) [Dirk]
- CUSTOM_formatEmailAddress と CUSTOM_emailEscape functionsのサポートを追加しました。(機能要望 #0000727) [Dirk]
- コンフィギュレーションで変わってしまっていると報告があった'cookiedomain'を修正しました。(バグ #0000638) [Dirk]
- 1つのページに2つ以上のメッセージを表示するときに問題を起こしていたので、バグ #0000618(COM_showMessageが自動的に'plugin'パラメータを拾ってしまう)への修正を元に戻しました。 [Dirk]
- ダウンローダクラスで許可されているIPアドレスチェックが漏れていたので追加しました。(バグ #0000709) [Dirk]
- プラグインのアンインストール後に強制的にリフレッシュするようにして、管理者専用ブロックからそのプラグインのエントリーが消えるようにしました。 [Dirk]
- Window上のPHP4環境にあった記事の有効期限の問題を修正しました。(zeb氏による報告)
- LWC氏の提供による、スパム-Xプラグインとインストールスクリプトのヘブライ語の言語ファイルを更新しました。
- Geeklog.jpグループの提供による、日本語の言語ファイルを更新しました。
- Robert Stadnik氏の提供による、ポーランド語の言語ファイルを更新しました。
- gape氏の提供による、リンクプラグインのスロベニア語の言語ファイルを更新しました。

### カレンダープラグイン

- 個人カレンダが使えなかったカレンダープラグインの問題を修正しました。 [Blaine]
- eventdetails.thtmlで{event_url}を使えるようにしました。 [Dirk]

### リンクプラグイン

- ()が抜けていて、検索結果に間違いがあった可能性があります。 [Dirk]
- {link_actual_url} と {link_name} にURLエンコードを行う版を追加しました。 [Dirk]
- リンクID変更するときに、既存のリンクの上書きを防止しました。 [Dirk]

### アンケートプラグイン

- Suhosinのデフォルトのpost.max_varsの制限にかかるのを回避するため、(新規インストールの場合だけ)デフォルトの設定数を減らして一つのアンケートでの質問数のデフォルト設定を5に、一つの質問に対する答えの数を8としました。[Dirk]
- アンケートの質問にシングルクォート(")が含まれていると起きたSQLエラーを修正しました。(バグ #0000756) [Dirk]
- アンケート管理画面のアンケートIDの処理を修正しました。 (バグ #0000753) [Dirk]

### 静的ページプラグイン

- 静的ページの所有者が最後に編集したユーザーに変更されていました。 (バグ #0000777) [Dirk]
- sp_idがSTATICPAGE_MAX_ID_LENGTHよりも長い場合のWS_makeId呼び出しを修正しました。(Marc Maier氏によって発見) [Dirk]

## Sep 22, 2008 (1.5.1)

- 大文字小文字を区別しないファイルシステムで多様なインクルードファイルを直接実行したときに発生するエラーに対する保護を修正した (Mark Evansの報告による) [Dirk]
- 所有者以外が記事保存した際に所有者を保存した人にするようにした (バグ #0000742) [Mike]
- open_basedir制限が有効の場合のインストールされていないプラグイン検索を修正した (バグ #0000741)
- パスワード問題の最初の変更を修正した (バグ #0000724) [Mike]
- ハイライトされているURLへの新クエリーでの言語変更エラーを修正した(バグ #0000733) [Dirk]
- 記事のデフォルトのコメントタイトルのHTMLエンコードのバグを修正した(バグ #0000737) [Mike]
- 記事承認後でも承認待ちに記事のコピーが残っている問題を修正 [Mike]
- 文字セットが大文字で書かれている場合に、MySQLがUTF-8をを認識しない問題を修正 (バグ #0000731) [Dirk]
- ヘブライ語言語ファイルをアップデート。(LWC提供)
- エストニア語言語ファイルをアップデート。(Artur Rapp提供)
- 日本語言語ファイルをアップデート。(Geeklog.jpグループ提供)
- スロバキア語言語ファイルアップデート。(gape提供)

## Sep 7, 2008 (1.5.1rc1)

- インストールスクリプトにて付け忘れていたスラッシュを追加 (バグ #0000715) [Dirk]
- CSRFトークンがドラフトリストに渡されていなかった (バグ #0000726) [Ted Powell]
- rootのデバッグが有効の場合、'cookie'または'pass'を含むキーを持つarray stackの全てを隠すようにし、これをオーバーライドするオプションを追加。(バグ #0000722) [Mike]
- FCKエディターのアップロードスクリプトの直接実行ができないようにした(t0pP8uZzのレポートによる) [Dirk]
- コンフィギュレーションの「リストアオプション」を「有効」に名称変更 [Dirk]
- データベースバックアップのエラーのよりよい取り扱い方法の提供 (バグ #0000714) [Mike]
- 指定されたブロックテンプレートが右・左どちらのオーバーライドなのか自動検知するようにした。これによりテーマがブロックの右左を検知したり、データ ベースとやりとりすることなく、全てのブロックの左右位置指定が自動でできるようになった。(バグ #0000684) [Mike]
- データベースエントリーでコンフィギュレーション値が間違っていた場合の取り扱いの問題を修正。例えば間違った文字セットでカレンダーのイベントタイプをインポートしてしまったなど。 (バグ #0000690) [Dirk]
- コンフィギュレーションのHTMLエンティティ文字取り扱いの問題を修正(バグ #0000710)[Sami, Dirk]
- 記事での画像アップロードで、リサイズしていない画像がある場合にだけリンクを追加するようにした [Dirk]
- lib-story.phpから使われていないコードを削除した [Dirk]
- COM_siteFooterが右ブロックを２つ作ることがないようにした (バグ #0000698)[Mike]
- (Firefoxの？)microsummary(ライブトピック)が動作している。Joeの報告による [Mike]
- DB_checkTAbleExistsを追加しINST_checkTableExistsがこれを使うようにした [Mike]
- MSSQL互換性のためにREPLACE INTOをDB_saveに変更した[Mike]
- インストールスクリプトのget_SP_Ver関数を再導入した。古いGeeklogからのアップグレード時にはこれが必要なので。(libexecのほうこくによる) [Dirk]
- 未公開の記事にコメントできる問題を修正 (バグ #0000705) [Mystral_KK/Mike]
- クォート記号を含むクリッカブルリンク(バグ #0000691)と省略されたURLの問題を修正 [Sami]
- テーブルのプリフィックスの問題を強制的に修正した (バグ #0000702) [Mike/Sami]
- スラッシュを含む検索クエリーをハイライトするときのエラーを修正 [Dirk]
- FCKeditorをv2.6.2にアップデート [Blaine]
- remove() (config JavaScript)をgl_cfg_removeに移動 (バグ #0000681) [Mike]
- CUSTOM_usercreateへの変更を$batchimportでサポートし, もしthe Admin->Users Batch_Add が呼ばれたらtrueをセット[Blaine]
- RSSフィールドの日付フォーマットの修正(バグ #0000696) [mystral-kk]
- Professionalテーマのコメントバーの、コメント投稿をわかりやすくした [Dirk]
- シンジケーションフィードタイプを "geeklog"から"article"にリネームした。 [Dirk]
- 記事フィードに対する新オプション"すべてのトップに表示する記事": 記事をスキップ"話題ページでのみ表示する記事"オプションをセット (feature request #0000652) [Dirk]
- CUSTOM_usercreatがAdmin->Users Batch_Add経由で呼ばれた場合に$batchimportをtrue設定を許可するように変更 [Blaine]
- RSSフィールドの日付フォーマットの問題を修正 (バグ #0000696) [mystral_kk]
- Professionalテーマの少々の変更；「コメントする」オプションを見つけやすくした [Dirk]
- フィードのタイプを'geeklog'から'article'に名称変更。今はコチラが主流なので。 [Dirk]
- 記事のフィードの新オプション「すべてトップページに表示」を追加。「該当の話題のみに表示」オプションになっている記事以外を表示。 (機能要望 #0000652) [Dirk]
- ある話題に対するフィードが存在する場合、「・・・が購読する」のオプションが可能になった。その話題の各記事のオプションブロックから選択可能(機能要望#0000154) [Dirk]
- バグ #0000671の当面の修正: 文字列の方向が'rtl'の場合、外部リンクのアイコンを表示しない(ヘブライ語) [Dirk, Mike]
- 検索文字列をハイライトする場合に文字をそのままにする (Sami Barakat提供のパッチによる)
- URLリライトがONの場合、URLを改善(バグ #0000665, Sami Barakat提供のパッチによる) [Dirk]
- プラグインメッセージの改善 (バグ #0000618) [Blaine]
- header.thtmlに新変数 {page_title_and_site_name} を導入し、トップページで"サイト名-サイトスローガン"を再び実現した。 [Dirk]
- StoryAdmin権限のないユーザーがstory.submitで記事投稿した際ののSQLエラーを修正。 (Orionの報告による) [Dirk]
- 禁止されているユーザーのセッションを終わらせるようにした [Dirk]
- HTMLフォーマットコメントの署名がXHTML準拠していなかった [Dirk]
- style.cssを少し修正 - 目に見えるレイアウト変更はなし (バグ #0000683) [Dirk]
- 禁止ユーザー作成ができるようにした、つまりユーザー登録の際にそのユーザーを禁止ユーザーにできる [Dirk]
- エラー取り扱いを少し改善。logディレクトリの外にerror.logを作ることができないようにした [Dirk]
- サイトが動作しなくなっているときにはhttp status code 503 "Service Unavailable"を送るようにした [Dirk]
- データベースのバックアップに失敗しmysqldumpコマンドにログオンしている状態のときに、データベースのパスワードを隠すようにした。 [Dirk]
- 新規ユーザー登録が無効の時にはOpenIDログインが無効になるようにした [Dirk]
- コンフィギュレーションのオプションが「リストア」された場合、これらのオプションをデフォルトに戻すことができるようにした (バグ #0000664) [Dirk]
- 多言語ブロックを可能にするハックを適用 (バグ #0000626) [Dirk]
- 記事投稿の際のSQLエラーの修正 (Chaseの報告による) [Mike]
- 記事IDが分かれば、未来の日付の記事とドラフトモードの記事にアクセスできるようにした (バグ #0000678) [Mike]
- siteconfig.phpがコアのデータベースにオーバーライドできるようにした。デフォルトではrootdebug。 [バグ0000673] [Mike]
- リモートユーザーがwebservicesをつかえるようにした (バグ #0000640)。認証方式が原因でOpenIDユーザーはwebservicesを使えない。これ以外のリモートユーザーが webservicesにログインする場合にはusername@servicenameをユーザー名の代わりに使う必要がある。 [Dirk]
- 通過してきたフルパスをよりよく扱えるようにtemplate.classを修正 [Blaine]
- PLG_uninstallをアップデートし、table dropのエラーを抑えるようにした。 [バグ0000668] [Mike]
- INST_checkTableExistsをMS SQLでサポートできるように修正した [bug 0000668] [Mike]
- 許可されたhtmlタグリストで、htmlタグ周辺のltr divをハードコードした。加えてhtml準拠問題を少し直した。
- フィードのプレーンテキストの記事にnl2brを適用してフィードリーダーに正しいフォーマットを提供するようにした。 [バグ0000662] [Mike]
- SEC_creatTokenを変更しページごとにtokenを一つだけ返すようにした(結果として個々にtokenが出来るようになる)。トラックバックのある記事でコメントを削除できない問題をこれで改善[Mike, Dirk]
- Adminの記事編集画面の投稿キューで、記事のコピーを残して記事投稿が出来るようにした。この場合、記事IDも変えること。 [Dirk, Mark Evans]
- ユーザー投稿キューの修正 (greenteagodの報告による) [Dirk]
- LWC提供によるヘブライ言語ファイルのアップデート。

### カレンダープラグイン

- カレンダーのドイツ語言語ファイルの<brXHTML>タグの修正 [Dirk]
- 日付比較の修正 (終了日が開始日より前、バグ #0000703) [Dirk]
- 週と日の画面で管理者用削除リンクを修正 (バグ #0000680) [Dirk]
- イベントの所有者検索が動作していない [Dirk]
- カレンダーブロックに当日のイベント(進行中、全日イベント)を含むようにした。(バグ0000604, フォーラムでのパッチ) (really) [Mike]

### リンクプラグイン

- リンクリストが複数ページになる場合にでカテゴリを無視する問題を修正 [Dirk]
- id同じ場合にひそかにカテゴリが上書きされてしまう問題を修正 (バグ #0000659のpart2) [Dirk]
- カテゴリidを変更すると発生するSQLエラーの修正 (バグ #0000659のpart1) [Dirk]

### アンケートプラグイン

- マルチクエスチョン投稿で、投票ブロックで投票ボタンが投票開始を読むバグを修正。(bug #0000633) [Dirk]
- 投票が公開されている間は、結果をフィックス。 [Dirk]

### 静的ページプラグイン

- 多言語サイト構築の際にメニューが言語に対応せず、すべてのオプションが各言語で見えてしまう問題に対処 (バグ #0000713) [Dirk]
- プラグインのアンインストール関数から、使われていない'config_data'を削除(バグ #0000666) [Dirk]
- URLリライトONの際にプリント画面が動作していないのを修正 (バグ #0000661) [Dirk]

## June 15, 2008 (1.5.0)

Geeklog 1.5.0には、以下のGoogle Summer of Code 2007における開発成果が取り込まれている:

- Matt West開発によるユーザーフレンドリな新インストールスクリプト
- Aaron Blankstein開発による新コンフィギュレーションGUI(config.phpがこれに置換わります)
- Ramnath R. Iyer開発によるAtom Publishingプロトコルベースの新WebservicesAPI

### 1.5.0rc2からの変更

- デフォルトテーマ以外のテーマを使っていたユーザーがコンフィギュレーションを変更すると一時的にデフォルトテーマが見える。バグ #0000648の副作用 [Dirk]
- 利便性とセキュリティを秤にかけた結果、セキュリティを優先することにした。インストールスクリプトで、データベース認証要素(db名やパスワードのこと か？)をdb-config.phpから呼び出し表示することはしないことにした。デメリットは、データベースのアップグレードやgeeklogのインス トールを再度実行する際にデータベース認証要素を再度入力しなければいけなくなった。
- Links plugin: The word "Root" wasn't taken from the language file for the pagetitle of the public list of links (reported by Markus Wollschlager) [Dirk]
- リンクプラグイン: リンクの公開リストのページタイトルの言語ファイルから"root"が呼び出されていなかった。(Markus Wollschlagerのレポートによる) [Dirk]
- 管理者画面のレイアウト不整合で残っていた問題を修正。イベントのカレンダーリストとアンケートプラグイン (バグ #0000650) [Dirk]
- LWC提供によるヘブライ言語ファイルのアップデート
- Markus Wollschlager提供によるドイツ語言語ファイルのアップデート
- 幾つかの韓国語言語ファイルの罫線にCR/LFとLFが混在していた。

## June 8, 2008 (1.5.0rc2)

### 1.5.0rc1からの変更

- ブランクページ(全画面表示？)ページフォーマットでの静的ページでの|線を隠した。(Tetsuko Kommaの報告による) [Dirk]
- カレンダープラグインの日付選択とテンプレートのURL入力フィールドにdir="ltr"をハードコードした (LWCの報告による) [Dirk]
- インストールスクリプトのUTF-8言語取り扱いの修正 (Tetsuko Kommaの報告による) [Dirk]
- 管理リスト表示での一貫性の確保 (バグ #0000650) [Dirk]
- インストールヘルプの言語をサニタイズした(Mark Evansの報告による) [Dirk]
- システムメッセージのハードコードCSSをスタイルシートに移した [Dirk
- Yulup Atompubクライアントが時々XHTMLノードに文字列ノードを送信してしまうので、とりあえずの回避策を施した [Dirk]
- インストールスクリプトのInstall/Upgradeボタンを少し広くして日本語およびドイツ語表示での問題が出ないようにした [Dirk]
- バグ #0000647の修正: ユーザー設定の全ての変更がCUSTOM_usercheckを通るようにした [Blaine]
- ハードコードした<ul>を管理者･ユーザー・話題ブロックの関数から削除した。新しくblockheader-list.thtml, blockfooter-list.thtmlをこれらのブロックに追加した。 [Blaine]
- ブロックテンプレートの偽の{blockid}を削除し、ブロックタイトルから実際に取得するようにした。結果、ブロックタイトルが変わるとレイアウトが 変わるようになった。非アスキー言語でもうまく動作していなかったもの。style.cssとブロックテンプレートも適宜アップデートした。 [Blaine]
- サイトのデフォルト言語とデフォルトテーマ設定を修正(バグ #0000646と#0000648) [Aaron, Dirk]
- バンドルされたプラグインは今後config.phpを読む必要がないようにした。これによりアップグレードにおいて古いconfig.phpのリネームに失敗したときのトラブルも回避する。 [Dirk]
- ユーザー設定オーバーライドのオプションを使用した際のメールユティリティにおけるSQLエラーを修正 (Michael Bruslettenの報告による) [Dirk]
- インストールスクリプトの文字列方向に関する問題を修正 (LWCの報告による)[Dirk]
- Artur Rapp提供のエストニア言語ファイルのアップデート
- LWC提供のヘブライ言語ファイルのアップデート
- Takahiro Kambe、Tetsuko KommaとGeeklog.jpグループ提供の日本語言語ファイルのアップデート。
  メモ: 今後日本語言語ファイルはUTF-8バージョンのみをサポートする。ecu-jpバージョンは今後の配布から除かれる。
- Robert Stadnik提供によるポーランド語言語ファイルのアップデート
- gage提供によるスロベニア語言語ファイルのアップデート

## May 25, 2008 (1.5.0rc1)

### 1.5.0b2からの変更

- タイムゾーンハックを使う場合の記事日時の修正 (バグ #0000639) [Dirk]
- MS SQLアップグレードの修正 [Mike]
- インストールスクリプトの言語名をきれいに表示するコードを追加 [Dirk]
- 公示したとおり"保存後・・・"オプションが間違いなく動作するようにした [Dirk]
- ユーザーインポートのバッチでのエラーメッセージ表示と空記事投稿時の取り扱いの問題を修正 [Dirk]
- アカウントリマインダーのEmail文の修正 [Dirk]
- ユーザー一括削除画面の「登録して何ヶ月経つか」欄の値を1.4.1のときと同じように小数点以下を表示せずに表示するよう再び変更した [Dirk]
- Professionalテーマのスタイルシートで使われていないpoll-vote, poll-vote-results classを削除。今後のためにempty reqired-field classとmissing-field classを追加。(バグ #0000635参照) [Dirk]
- Samuel M. Stone提供の中国語言語ファイルをアップデート
- Artur Rapp提供のエストニア語言語ファイルをアップデート
- gape提供のスロベニア語言語ファイルをアップデート

### カレンダープラグイン

- 週表示と日表示のヘッドラインでなくなっていた]を修正 [Dirk]
- 個人イベントカレンダーのテンプレート修正 (<td> タグを追加) [Dirk]
- バグフィックス: 時々サイトイベントの投稿キューが個人イベントで投稿されるバグ[Dirk]
- Fixed "Delete old entries" option (delete checkboxes were missing) [Dirk]
- 「古いイベントの削除」オプションを修正(削除チェックボックスがなくなっていた) [Dirk]

## May 20, 2008 (1.5.0b2)

### 1.5.0b1からの変更

- article.thtmlテンプレートファイルで{story_title}が使えるようになった [Dirk]
- バグフィックス: いくつかのフィールドを空欄で話題を新規登録した時に、話題管理画面に戻らないようにした。｢アクセスは拒否された｣とメッセージが表示される為。 [Dirk]
- 記事作成編集画面の日付時間選択部分といくつかのフィールドで文字列方向を'ltr'でハードコード指定 (バグ #0000150)。また、Professionalテーマのhtml bodyスタイルシートから"text-align:left"を除去。本文文章の文字列方向変更機能に悪影響があるため。 (LWCの報告による) [Dirk]
- config.phpの情報をgeeklogドキュメント(いくつかのREADMEとソースファイル)から削除した。 (バグ #0000627) [Dirk]
- $_CONF配列に(内部)'subgroup'と'fieldset'エントリーをインクルードしないこと [Dirk]
- COM_numberFormatが小数点以下の桁を正しく扱っていなかった (バグ #0000624) [Dirk]
- テーマがXHTML整合性を確保していないときに、その確保が出来るようにした (バグ #0000622) [Dirk]
- いくつかの言語ファイルで無効になっていた<brXHTML>タグを修正 (バグ #0000621) [Dirk]
- ユーザー登録通知に表示されているURLが'&amp'を含んでいたので'&'に訂正 [Dirk]
- Markus Wollschlager提供のドイツ語言語ファイルのアップデート

### リンクプラグイン

- カテゴリーリストの｢リンクを有効にする｣リンクを修正 [Dirk]

### アンケートプラグイン

- バグフィックス: 幾つかのフィールド空欄で新しくアンケートを登録した時に、アンケート管理画面に戻らないようにした。「アクセスが拒否されました」のメッセージが出てしまうため。 [Dirk]
- gl_polltopicsテーブルの'open'列を'is_open'に名称変更。"open"はMS SQLサーバーでキーワードとして使われるため。 [Matt]
- アンケートのコンフィギュレーションでのsort_orderの値のダブりを修正 [Dirk]
- アンケートの話題と結果の見栄えの変更(バグ #0000625) [Dirk]

### 静的ページプラグイン

- staticpage.thtmlテンプレートファイルの印刷・編集アイコンの位置をページ下部に移動。同時にcenterblock.thtmlテンプ レートファイルからこれらのアイコンを除き、{lastupdate}と{hits}変数をそこに配置した。 (バグ #0000628) [Dirk]
- staticpage.thtmlテンプレートファイルから余分な}を取り除いた。(Markus Wollschlagerの報告による) [Dirk]

## May 5, 2008 (1.5.0b1)

- FCKeditorをv2.6にアップデート [Blaine]
- LDAPリモート認証モジュール。Jessica Blank / MTV Networks提供
- {lang_attribute}が多言語セットアップの時にのみ正しく設定されるようにした(バグ #0000616) [Dirk]
- Bloggerのリモート認証オプションを除いた。Blogger.comが認証プロセスを変更したのでこのモジュールは役に立たない。
- Geeklogが送信するemailはX-Orginating-IPヘッダを持つようになるのでspamやabuseの追跡の役に立つようになる [Dirk]
- 話題管理画面で半角20文字以上のIDを使えるようにした(Markus Wollschlagerの報告による) [Dirk]
- ユーザーの登録メールアドレスが他のユーザーと重なっていないことの制限を緩和。リモートユーザーの場合、重なっていても良い。オンサイトのユーザーの場合は今までの変わらずダメ。 [Dirk]
- バグ: ユーザー用emailフォームがsubjectに"があると正しく表示されていなかった．不完全なフィールドになってしまう為。 [Mike]
- バグ: 全てのテンプレートでsite_url, site_admin_url, layout_urlとxhtml有効を確実なものにした [Mike]
- html投稿モードで自動タグ[raw][/raw]をサポート。 [code]と<pre>のよいところ取りをして見苦しいスタイリングを使わなくて済むようにした。
- RSSフィードにAtomセルフリンクを追加。少し変だが<http://feedvalidator.org/docs/warning/MissingAtomSelfLink...>で推薦されているので。 [Mike]
- ポータルブロックでのポッドキャストサポートを改善し、フィードが本当に長い時にポータルブロックが溢れてしまうエラーを改善した。 [Mike]
- キャラクタセット設定がUTF-8の時のみ多言語文字列関数を使うようにした。 (Rick78の報告による) [Dirk]
- COM_hit()はUPDATE SQLを直接実行する代わりにCOM_siteFooterから呼ばれるようになった。 (Joe Mucchielloの報告による) [Dirk]
- パスワードを暗号化する必要があるときに使う新関数SEC_encryptPassword()を導入。今のところmd5()のwrapperとしてのみ使われるが、将来他の用途をより簡易化することに使う予定。 [Dirk]
- テンプレートライブラリが正しく使われていなかったコードがある場所にJoe Mucchiello提供のパッチを適用。
- ' /'でXHTMLを定常的に定義。これで全てのテーマをXHTML準拠にすることが出来るようになる。(geeklog.jpのdengen提供のパッチによる)
- 管理者メニューで登録ユーザーへのお知らせ機能を追加 [Blaine]
- ユーザー登録を許可していない場合には、記事投稿フォームで「ユーザー登録」リンクを表示しないようにした。 (Markus Wollschlagerの報告による) [Dirk]
- COM_startBlockをアップデートし、作成済みのidと重ならない｛blockid｝テンプレート変数を設定した。 [Blaine]
- グループ管理画面が2ページ以上の表示になる際の"Show Admin lists"チェックを修正した。 [Oliver]
- Admin-Menu表示の為の新関数を導入し、その機能をADMIN_list-functionsから除外した [Oliver]
- プラグインのバージョン番号が取得できないときにN/A表示していなかったのを修正した。(Machinariの報告による) [Dirk]
- $_CONF['limitnews'] == 0の時のdivision by zeroエラーの回避(Samuel M. Stoneの報告による) [Dirk]
- バグフィクス: Atomが常に0.3になっており記事の日付を処理しない (forumでのmystral kkの報告による). [Mike]
- OpenID 1.1サポートを追加。Choplair提供。
- site_nameを記事テンプレートに渡すようにした。digg.comなどにアドバンスリンクを提供するcross-siteなテンプレートにできるようになった [Mike]
- DB Backupsオプションを少々修正。全てのバックアップ(全ての.sqlファイル)をリスト化し、そこからダウンロードとファイル削除が出来るようにした [Dirk]
- ピングとピングバック送信時のエラーチェックを修正 [Mike, Dirk]
- ピングバック受信の際、ピングバックを送ってきたサイトの内容の抜粋を取得できるオプションをつけた [Dirk]
- ポータルブロックでHTTP Last-ModifiedとETagヘッダをこれらに変更があったときのみ使うようにした。 [Dirk]
- {read_more_class}変数がclass="story-read-more-link"が定義されていればそれを含むようにし{readmore_link}で使われるclass名との整合性を取るようにした。 [Dirk]
- Rootユーザーがパスワードを'password'で放置している場合のみセキュリティチェックを行うように変更した [Dirk]
- admin/sectest.phpが403ステータスコードを認識するようにした (THX100の報告による) [Dirk]
- 全てのプラグインAPIで、本当にプラグインのみで使われているもの以外はmatching CUSTOM_ 関数をを呼ぶようにした。 [Mike]
- phpブロック関数にパラメータを渡す統合的なサポート(Joe Mucchielloのパッチ#643)[Mike]
- 管理ページでの多くのHTMLエラーの修正[Oliver]
- 過去記事ブロックで日付と日付名の間に抜けていたブランクを追加(Jeruvy's girlfriendのIRCでの報告による) [Dirk]
- バグ[#648]のフィックス。新パスワードをemailした時にSMTPサーバーに届かずに送信に失敗していても"OK"を返してしまう。 [Oliver]
- ピングバック送信時にはURLにパラメータを含める必要がある。例えば to

Serendipity [Dirk]

- ピングバック送信の際、リンク先のサイトがX-Pingbackヘッダを送っていなければ<link rel="pingback">を探す。 [Dirk]
- ピングバックを送る際、対象の記事で同一のリンクテキストで複数のURLを持っている場合、最後のリンクだけにピングバックを送信していた(それを改善した)[Dirk]
- プラグインの自動アンインストールを新たに導入した。プラグインのすべての要素を除去するgeeklogコア関数に特定の配列を渡す関数をプラグイン自身が動作させる。このプラグイン内蔵関数はコアコードでは不可能な追加の除去を処理することが出来る。 [Oliver]
- カレンダの日付検索を修正(Jeffrey Hare提供のパッチによる)
- 自動タグがノーマルブロックのみで有効にした (バグ #653) [Dirk]
- 記事に{story_topic_image_no_align} and {story_anchortag_and_image_no_align}を追加して、位置指定(alignment)なしで話題アイコンにアクセスす るようにした(機能要望#410) [Dirk]
- 全てのhtmlが許可されていてもAdminには記事編集画面で自動タグを表示するようにした [Oliver]
- コメントを締め切ることが出来るようにした。つまり、現存するコメントを表示しつつも新コメントは受入れない、ということ。 [Dirk]
- 現在使われている文字セットを返すCOM_getCharsetを導入(コードのダブりを回避する)。ほとんどの場合、単純に$LANG_CHARSETを使って保存するだけだが。 [Dirk]
- 記事にwikiテキスト投稿オプションを追加 [Oliver]
- スパマーがサイトに登録しているadminのemailアドレスを取得することが出来ないよう、config.phpにnoreply-emailアドレスオプションを追加 [Oliver]
- index.phpに"microsummaries"サポートを追加。http://wiki.mozilla.org/Microsummariesを参照 [Mike]
- 記事関連の改変 - HTML特別文字での投稿に関する全ての問題に対応する為に記事のコードを大幅に再編した。 [Mike]
- ユーザー投稿記事においてBody Textを持つことが出来るようにした。これを無効にするには、layout\theme\submit\submitstory.thtmlとsubmitstory_advanced.thtmlを編集する[Mike]
- アップロード画像の寸法リサイズを修正。リサイズ後の画像の幅がmax以下の場合、max高さが効かなかった。新コードでこれを解決した[Oliver]
- tzcodeテーブルを除去し、代わりにPEAR::Dateを使い始めた。全てのtimezone情報がここに保存されていたので。 [Oiver]
- ユーザー設定ページにtimezeoneセレクターを追加[Oliver]
- LIKEで使われるようなワイルドカード文字で発生するアンダースコア(_)を外すようにCOM_getLangSQL()を修正。多言語設定で不要な文字を表示してしまう。(Kenji Itoの報告による)[Dirk]
- 文章方向(ltr/rtl)に関わるアドレス問題とadmin/sectest.phpにハードコードされた英語文の修正 (LWCの報告による) [Dirk]
- 言語ファイル変更によりusers.phpのログインフォームは「もう一度ログインしてください」から「新しいパスワードを入力してください」に変わった。
- データベースから"Are you secure?"(getBent)ブロックを除去。この機能はadmin/sectest.phpに移行したため。 (LWCの報告による) [Dirk]
- コンフィギュレーションに保存後に表示する画面のオプションを追加[Oliver]
- コンフィギュレーションに記事保存後に表示する画面のオプションを追加[Oliver]
- 記事中の画像位置をfloatにした。話題アイコンも。 [Oliver]
- カレンダープラグインとリンクプラグ引用の新チェコ語言語ファイル。Onderej Rusek提供
- カレンダープラグイン用新デンマーク語言語ファイル。dirtyjensen提供。
- オランダ語言語ファイルのアップデート。Ronald Edelschaap提供。
- カレンダプラグイン用オランダ語言語ファイル。John van Gaal提供
- カナダフランス語言語ファイルのアップデート: Geeklog本体と静的ページプラグイン用。同新らたな言語ファイル: カレンダー･リンク･アンケートプラグイン。Jean-Francois Allard提供。
- ヘブライ語言語ファイル。LWC提供。
- Geeklgo本体と全プラグイン用の日本語言語ファイル。Geeklog Japaneseグループ提供。
- 新たな韓国語言語ファイル、Geeklog本体とほとんどのプラグイン用。Tetsuko KommaとKim Younghie提供。
- スペイン語(UTF-8)言語ファイルアップデート、新たな全プラグイン用スペイン語UTF-8)言語ファイル。Jose R. Valverde提供。

### カレンダープラグイン(1.0.2)

- カレンダーブロックに当日のイベントを含むようにした (進行中または前日のイベント、バグ0000604、forumsで提供されたパッチ)
- イベントカレンダーからイベント削除する際の問題の修正[Dirk]
- gloabal $_STATESをGeeklog本体から除去した。イベント詳細のstateの項をテキスト入力フィールドにした。
- 個人カレンダーのイベント入力フォームでサイトフッタが抜けていたので修正した(Mark Evensの報告による)[Dirk]
- カレンダーのフィードの修正: getFeedContent関数への最初のパラメータをfeed limitでなくfeedのIDにした。(バグ$659)[Dirk]
- 検索文をハイライトするようにした[Dirk]
- 自動アンインストールを導入[Oliver]
- バッチ削除機能を追加[Oliver]
- イベント保存後の表示画面オプションをコンフィギュレーションに追加[Oliver]

### リンクプラグイン(2.0.0)

- リンク管理画面からリンク削除する際の問題を修正(すくなくともバージョン1.4.xでは動作していなかった)[Dirk]
- 登録項目にowner_idフィールドを追加し、記事の動作との連携を図った[Oliver]
- 自動アンインストールを導入Oliver]
- 「無効なリンクを報告」関数を追加[Oliver]
- リンク管理画面に「リンク有効化」を追加[Olver]
- リンク保存後に表示する画面のオプションをコンフィギュレーションに追加[Oliver]
- リンクに「サブカテゴリー」オプションを追加[Euan]

### アンケートプラグイン(2.0.1)

- 自動アンインストールを導入[Oliver]
- 「調査」に複数質問グループのサポートを追加1[Oliver]
- アンケート締め切りのサポートを追加[Oliver]
- 公開アンケートでアンケート結果を隠すサポートを追加[Oliver]
- アンケート投票後に表示する画面のオプションをコンフィギュレーションに追加[Dirk]

### Spam-Xプラグイン(1.1.1)

- 編集モジュールがフランス語言語ファイルで動作していない問題を修正(Joeのレポートによる)[Dirk]
- 自動アンインストールの導入[Oliver]
- $_CONF['site_url']が空の時のSLVモジュールのエラーを修正(AA6QNの報告による)[Dirk]
- ブロックするIPを範囲で指定するサポートの追加。CIDRまたはx.x.x.x.-y.y.y.yで指定する。 [Dirk]

### 静的ページプラグイン (1.5.0)

- バグフィックス: 多言語セットアップで全ての話題をセンターブロックで見えるようにした。 [Dirk]
- バグフィックス: 静的ページで$_CONF['show_right_blocks']をオーバーライドするページフォーマットを可能にした(Simon Lordの報告による)[Dirk]
- 静的ページ用の新自動タグ: staticpage_content。静的ページへのリンクの代わりに静的ページの内容を返す。 [Oliver]
- 静的ページ表示にはテンプレートを使うようにした[Oliver]
- 自動アンインストールを導入[Oliver]
- 静的ページエディター(編集画面)がアドバンスエディターのテンプレートを間違った場所で探していた。初期化されていない変数が原因(k74の報告による)[Dirk]
- phpで作られたコンテンツにおいても静的ページでタグの置換えが出来るようにした [Oliver]
- ページ保存後に表示する内容のオプションをコンフィギュレーションで選択できるようにした[Oliver]
- コメント機能の追加[Oliver]

## Dec 31, 2006 (1.4.1)

- Changed the default character set in config.php back to iso-8859-1 [Dirk]
- Removed display of the site URL from admin/sectest.php. On sites not installed in the webroot, it did not display the site's actual URL, which only causes confusion (reported by Dazzy) [Dirk]
- Fixed conflict between the Spam-X DeleteComment and SLVreport action modules which prevented the count of deleted spams from being incremented [Dirk]
- Fixed max. allowed length for a user's homepage (128) and location (96) in the preferences/profile.thtml template file (reported by burjans) [Dirk]
- Fixed page title after a successful batch import of users (which read "Error") [Dirk]
- Back in Geeklog 1.4.0, a counter was added to the Spam-X plugin to count all deleted spam posts. The counter was only added in fresh installs of 1.4.0, though, but not when upgrading from an earlier version. Fixed that [Dirk]
- In lists created from the Links and Calendar plugins, use "links-new-plugin" as the CSS class name [Oliver]
- Updated Estonian language file, provided by Artur Rapp
- Updated Russian language file, provided by Alexander Yurchenko
- New Russian language file for the Calendar plugin, provided by Alexander Yurchenko
- Updated Turkish language file, provided by Kemal Cellat

## Dec 17, 2006 (1.4.1rc1)

- Improved handling of UTF-8 feeds (feature request #631) [Mike, Dirk]
- Fixes for the remaining MS SQL issues (bugs #620, #621, #622, #624) [Randy Kolenko, Dirk]
- Initialize SQL request arrays to prevent PHP errors (e.g. with static pages), reported by ldfoo [Dirk]
- Escape the '#' sign in spam checks since we're using it as the separator character for the regexp [Dirk]
- Mark Evans provided a set of patches that let plugins hook into the user registration, story and comment submission as well as the contact user and email story forms. These hooks can be used to add CAPTCHAs to those forms, but may also come in handy for other plugin applications. Also modified several template files to include a {captcha} variable to ease installation of Mark's CAPTCHA plugin.
- Update the timestamp for the last run of PLG_runScheduledTask before calling the function to minimize the risk of the call being triggered more than once (bug #628) [Dirk]
- In a multi-language setup, allow one static page per language to take over the index page (bug #625) [Dirk]
- sectest.php didn't perform the test for the install script and default passwords on some setups (reported by Christian Weiske) [Dirk]
- Fixed "delete account" option (reported by Paul Lelgemann) [Dirk]
- Fixed counting of comments in several places where comments were counted without taking the type of the parent object into account (e.g. when a story and a poll happened to use the same id, their comment counts would have been messed up) [Dirk]
- Editing a story did reset the trackback count (reported by T. Marquez) [Dirk]
- In the admin's story editor, set the debug option for the image upload only when $_CONF['debug_image_upload'] = true (thus avoiding the "Warning: File #x on the HTML form was empty" messages in error.log) [Dirk]
- Renamed [calendar:] autotag back to [event:] for backward compatibility. It also makes more sense this way, since it does provide a link to an event, not a link to a calendar (bug #619) [Dirk]
- Need to check if field 'etids' is NULL (for MySQL 4) for the Daily Digest (bug #595) [Dirk]
- Removed the outer table from the layout and merged several style declarations into the body-tag declaration [Oliver]
- The spam check for comment posts did not include the comment title (reported by Laugh) [Dirk]
- When multi-language support is enabled, allow language-specific overrides of the locale settings, e.g. $_CONF['date_en'] and $_CONF['date_de'] to overwrite $_CONF['date'] depending on the current language [Dirk]
- When installing the Geeklog database using InnoDB tables, create a 'database_engine' entry in gl_vars, so that plugins know to use InnoDB for their tables. Updated the bundled plugins to act accordingly [Dirk]
- DB_query will now (optionally) accept an array of SQL request strings from which it will pick the one applicable for the currently used database type [Vinny, Dirk]
- Provide some more meta information in header.thtml [Dirk]
- added optional {lang_id} variable and lang attribute
- added a hreflang attribute to the feed links
- added <link rel="home">, <link rel="search">, <link rel="contents"> links (via the {rel_links} variable)
- COM_isFrontpage has been deprecated, as it had its return values inverted (returns false when on the site's index page). Use COM_onFrontpage instead from now on [Dirk]
- Fixed check for new stories from archive topic [Dirk]
- Call PLG_templateSetVars() from STORY_renderArticle() so we can have custom variables in the story templates [Dirk]
- Updated Chinese language files (traditional and simplified), provided by Samuel M. Stone
- Updated Japanese language files for Geeklog and all the plugins, provided by the Geeklog Japanese group
- Updated Ukrainian language files (Windows-1251, KOI8-U, and UTF-8 encoding) for Geeklog and all the plugins, provided by Vitaliy Biliyenko

## Nov 5, 2006 (1.4.1b2)

- Fixed potential SQL injection in the story editor preview (required Story Admin permissions) [Dirk]
- Added multi-language support in static pages centerblocks and search [Dirk]
- When cloning a static page, keep the original's "wrap in a block" setting [Dirk]
- Spam-X stats: Removed MT-Blacklist entry, added SLV whitelist entry [Dirk]
- Don't add empty "No Title" links in portal blocks when the feed has less than the configured max. number of entries (bug #610) [Dirk]
- Added support for COM_mail to use a parm for a CC: distribution list [Blaine]
- Fixed bug #603, hardcoded mysql_error() [Oliver]
- Fixed bug #604, delete trackbacks of a story when story is deleted [Oliver]
- Allow users to switch the language again, even when the default character set is not UTF-8. It is, however, not possible to mix UTF-8 and other charsets. Also, "UTF-8" is not displayed in the language dropdown any more [Dirk]
- Corrected SQL for group counting in Admin menu for root admin to fix bug #573 [Oliver]
- Properly encode non-ASCII characters in email headers (subject, names), loosely based on patch #489 and code from Cal Henderson's book [Dirk]
- Removed the Calendar styles and moved them to a dedicated file in the plugin's directory [Oliver]
- Sorted all stylesheet definitions alphabetically and split semantics and classes [Oliver]
- When making a topic the archive topic, update all existing stories in that topic to "archived" status (and likewise revert that status if the topic loses its archive topic status) [Dirk]
- Don't count archived stories as new stories in the What's New block [Dirk]
- Moved the defines for STORY_ARCHIVE_ON_EXPIRE and STORY_DELETE_ON_EXPIRE to lib-story.php (from config.php) where they make more sense [Dirk]
- COM_getPermSQL was using the current user's group information when called for another user. In Geeklog, this only happens for the Daily Digest, though (bug #594) [Dirk]
- When comments are disabled for a story, don't show any existing comments in the What's New block, in search results or via comment.php (bug #597) [Dirk]
- When trackbacks are disabled for a story, don't list any existing trackbacks in the What's New block [Dirk]
- In the Admin's User Editor, disabled the checkboxes for the All Users, Logged-in Users, and Remote Users groups to prevent accidental change of group membership [Dirk]
- When deleting a topic, also delete all Trackbacks attached to stories in that topic and update the Older Stories block and the feeds [Dirk]
- Fixed approve / delete of draft stories from moderation.php [Dirk]
- Strip blanks from the name of a PHP block function when saving a PHP block [Dirk]
- Fixed / added multi-language support in the article directory, What's New block, and the search for stories and comments [Dirk]
- Fixed an SQL error when changing a story's ID [Dirk]
- Call SET NAMES 'utf8' when using UTF-8 as the site's character set (with MySQL), as pointed out by several people [Dirk]
- Removed wrong parameter when calling up the comment form again when the comment's title was missing. This bug existed for both story and polls comments. (bug #591) [Dirk]
- Users who were only in the Syndication Admin group didn't have access to Command and Control (moderation.php) [Dirk]
- For Block, Group, Polls, Story and Topic Admins only display the number of the respective entries they can actually see (instead of the number of all entries, e.g. topics, in the system) [Dirk]
- Fixed highlighting parse error when the search term contained an apostrophe (bug #590) [Dirk]
- Improved (and subsequently fixed) Pingback spam detection which now also uses the $_CONF['check_trackback_link'] settings [Dirk]
- directory.php was still using $LANG30 instead of $LANG_MONTH (bug #583) [Dirk]
- When upgrading the database from 1.4.0, only update those plugins that are actually installed (disabled or not) [Dirk]
- CSS Changes to support better scaling of Font size - using browser Text-Size adjustment. Removed many extra font-size declarations. [Blaine]
- Don't allow viewing of a Banned user profile unless user admin [Blaine]
- Only call CUSTOM_loginErrorHandler when custom_registration is enabled (bug #584) [Blaine]
- Fixed SQL error with some older MySQL versions when calling up the Batch User Delete option [Oliver]
- Comments always displayed the comment author's full name, even when $_CONF['show_fullname'] was set to 0 [Dirk]
- Fixed 404 (caused by a request for a file named '(none)') in the user profile display when a user doesn't have a userphoto [Dirk]
- New Estonian language files for Geeklog and most of the plugins, provided by Artur Rapp
- Updated Hebrew language file, provided by LWC
- Updated Japanese language files for Geeklog and all the plugins, provided by the Geeklog Japanese group
- New Russian language files for the Spam-X plugin, provided by Pavel Kovalenko
- Updated Slovenian language files for Geeklog and all the plugins, provided by gape

### Calendar plugin

- Created a dedicated stylesheet file and include the file only if the URL contains the word 'calendar' [Oliver]
- Tweaked the Calendar search result listing: Removed the Event Description (usually too long for the result listing), replaced Location (which is only a part of the address and not very helpful) with Event Type, minimized Date & Time display for events lasting only one day (don't list date twice) [Dirk]

### Links plugin

- Renamed classes block-vote-results to poll-vote-results and block-vote to poll-vote [Oliver]
- Removed duplicate "Other" entry from the Link submission form [Dirk]
- In the Admin's list of links, only display an edit icon for links that the current user can actually edit (they did get a proper error message when trying to edit such a link, though) [Dirk]
- Don't return the number of links in the links submission queue if the current user does not have links.moderate permissions [Dirk]
- Filter out special characters from link IDs. They were properly escaped before storing them in the database but caused problems when using them (bug #565) [Dirk]

## Sep 17, 2006 (1.4.1b1)

- Changes to templates and CSS to remove deprecated HTML (align= and valign=) Removed un-used CSS declarations, redundant font-family declarations Removed use of font-size percentage and used more acceptable EM units [Blaine]
- Don't display an "edit" link in a story if the current user doesn't have edit permissions for the story's topic (bug #558) [Dirk]
- Added a new script to check the site's security (admin/sectest.php). This replaces the "get bent" PHP block, but also performs additional checks [Dirk]
- Created a Batch Delete function for users that easily identifies inactive or old users and allows mass-deletion of those [Oliver]
- Updated FCKeditor to version 2.3.1 [Blaine]
- Added ability to filter out Admin related groups on the Group Admin page Allows users to easily see only user groups. When editing non-core groups, You can select if this group is an Admin Group [Blaine]
- Added ability to multi-select submission queue items on the moderation page and delete them all at once [Blaine]
- Always make "Submissions" the first entry in the Admins Only block to keep the correspondence between the other entries and the icons on the moderation page undisturbed (and because it's an important entry) [Dirk]
- Fixed 'emailstoriesperdefault' config option (bug #553) [Dirk]
- Added support for Microsoft SQL Server, provided by Randy Kolenko
- Introduced $_CONF['disallow_domains'] as a blacklist of domain names that are not allowed for new users during signup. Both 'disallow_domains' and 'allow_domains' can also contain regular expressions [Dirk]
- Introduced DB_lockTable / DB_unlockTable to encapsulate the LOCK / UNLOCK requests when updating the comments table [Dirk]
- Fixed bug: [#540] Blocking the last Root user or yourself should not be possible [Oliver]
- Fixed bug: [#546] The phrase "Story Stats" is hardcoded [Oliver]
- Added a spam check to the email user form [Dirk]
- Use the same piece of code to compare plugin version numbers in lib-admin.php and admin/plugins.php to avoid the "update" button not appearing for some version numbers (bug #542) [Dirk]
- Re-implemented $_CONF['allow_domains'] whitelist (when the user submission queue is enabled) that was inexplicably missing from 1.4.0 [Dirk]
- Merged User Preferences and Account information into one page, like the Story editor with tabs etc. [Blaine, Oliver]
- Tried to make "3 new stories in the last 1 day" sound less awkward by going back one unit, i.e. "3 new stories in the last 24 hours", in the What's New block (likewise for 1 week, 1 month, etc.) [Dirk]
- Introduced config options to set the default for the story's draft flag and frontpage option (feature request #163) [Dirk]
- Introduced $_CONF['hide_main_page_navigation'] to hide the "Google paging" from index.php (may be useful for some layouts) [Dirk]
- Allow (optional) usage of autotags in "normal" blocks (can be enabled / disabled per block) [Dirk]
- Introduced a {story_counter} variable in the story templates. It's 0 on the article page and in previews, but 1 for the first story, 2 for the second, etc. on the index page (per page, i.e. starts with 1 again on the second page) [Dirk]
- Require that users enter their current password when changing their password, email address or "Remember me for" setting. Redesigned the Account Information page and added a note about this requirement. [Dirk]
- Prevent accidental banning of users when the Admin edits a user's information using a theme that wasn't updated for Geeklog 1.4.0+ [Dirk]
- $_CONF['show_fullname'] now works as expected, i.e. when setting it to = 1, a user's full name will be displayed everywhere in Geeklog instead of the username (assuming the users entered their full name) [Dirk]
- Fixed a bug in the article directory where December was not listed when no stories had been posted in that month (reported by Kino and Ivy of geeklog.jp)
- Replace Geeklog's [imageX] tags before extracting the What's Related links from a story to prevent the (verbatim) tag to show up in the block [Dirk]
- Update story ids in the gl_trackback table when a story's id is changed [Mike]
- Implemented new plugin API function, PLG_spamAction, to perform the spam actions in case spam has been detected through some other means (e.g. trackbacks from sites that don't link back to us) [Dirk]
- Implemented new plugin API function, plugin_enablestatechange_, to inform plugins when they are about to be enabled / disabled (Patch #405) [Dirk]
- Support backslashes in comment and submissions in HTML mode [Mike]
- Added breadcrumb functionality to the navbar class (v1.1) [Blaine]
- Enhancements to navbar templates and CSS for a more 3D TAB'ed look [Blaine]
- Changed several <table>s to <div>s + CSS in the Professional theme [Oliver]
- Introduced generic function to delete a user's photo to avoid code duplication and slightly different error handling in various places [Dirk]
- Made the new user registration form remember the user's input so that they don't have to retype everything in case of an error [Dirk]
- In the Admin's user list, banned users are indicated by striked-through entries (based on a hack by Andy Maloney) [Dirk]
- Added new setting $_CONF['onlyrootfeatures']. This is for sites where two or more story admins can feature stories that the other admins cannot see. The setting prevents that one admin does not see that there is another recent story featured and sets one by himself, "stealing" the feature from the other.
- Changed "Reply"-button to "Post a comment" [Oliver]
- Implemented an error handler to supress all PHP level errors and display a much more userfriendly error text to the end user. Prevents all path exposure, prevents "white error page" mystery debugging fun. [Mike]
- Full sweep of all code for $_REQUEST/$_GET/$_POST and $_COOKIE use. Made sure that COM_applyFilter, or other safe usage is made of the variables. [Mike]
- Added an option to hide the "No News To Display" message on the index page (new config option $_CONF['hide_no_news_msg']) [Dirk]
- Added an option to check if the sites sending trackbacks are actually linking to our site (see $_CONF['check_trackback_link'] in config.php) [Dirk]
- Made it impossible to save two syndication feeds with identical filenames [Oliver]
- Stories with comments/trackbacks disabled, do not show comment/trackback url in RSS feeds [Mike]
- Added email confirmation fields for new user and usersettings [Oliver]
- Allow changing of group ownership for "gldefault" blocks. Requires a change in admin/block/defaultblockeditor.thtml to enable the group dropdown. On a fresh install, all the blocks (with the exception of "Are you secure?") are now owned by the Block Admin group [Dirk]
- Users created by a User Admin should not be queued for approval, even when $_CONF['usersubmission'] = 1 [Dirk]
- Introduced 'syndication.edit' permission and 'Syndication Admin' group so that access to the Content Syndication panel no longer requires 'Root' permissions [Dirk]
- For the "Submissions" entry in the Admins Only block, only count story and event submissions when the current user has story.moderate or event.moderate permissions, respectively [Dirk]
- On admin/moderation.php, list the stories that have their draft flag set only when the current user has story.edit permission [Dirk]
- Fixed empty lines in a Group Admin's list of groups when that Group Admin was not a member of all groups [Dirk]
- Renamed the misnamed CUSTOM_runSheduledTask function (in lib-custom.php) to CUSTOM_runScheduledTask. Don't forget to make that change in your copy of lib-custom.php if you're using that functionality! [Dirk]
- Improved error log contents when unable to acquire a feed reader for a portal block. [Mike]
- Extended plugin API for feed extensions to include feed id and the topic (for adding topic/feed specific data) [Mike]
- Don't attempt to rename a non-existing user photo when $_CONF['allow_username_change'] is enabled (reported and fix suggested by Yusuke Sakata) [Dirk]
- Made changes to ensure compatibility with MS SQL, as suggested by Randy Kolenko [Dirk]
- The "last login date" column in the Admin's list of users now uses $_CONF['shortdate'] so that it includes the year [Dirk]
- Fixed batch user import (which set all imported users to status "Awaiting Authorization" instead of "Awaiting Activation") [Mike]
- Fixed admin lists google paging for use in static pages etc. [Oliver]
- Added support for a custom login error handler function, CUSTOM_loginErrorHandler [Blaine]
- Format the user agent string according to the RFCs 1945 / 2068 / 2616, i.e. "Geeklog/1.4.1" when trying to detect a Trackback URL [Dirk]
- Made the search option on the Admin pages behave like the site search, i.e. it doesn't require you to pad queries with '*' any longer [Dirk]
- In story search results, show/hide the "Author" and "Views" columns based on the $_CONF['contributedbyline'] and $_CONF['hideviewscount'] settings [Dirk]
- Introduced $_CONF['title_trim_length'] to make the max. title length of items in the What's New block configurable (feature request #525). Also implemented a new function COM_truncate (based on a patch by Yusuke Sakata) that properly handles truncation of multi-byte text strings if the mb_ functions are available [Dirk]
- Added a JavaScript confirmation box to most delete buttons/links. If you'd rather not have such a confirmation, use {delete_option_no_confirmation} instead of {delete_option} in the admin templates [Dirk]
- Fixed RSS Feed parser to create RFC 822 dates in en_GB or en_US locale as per the RFC spec [Mike]
- Removed obsolete "do not use spaces" warning from user editor (bug #530) [Dirk]
- Show fullname/username according to config.php settings in stories [Oliver]
- Added possibility to change the css-class for admin list headers and fields [Oliver]
- Added unified new style class to stats.php/style.css to have all lists on the page look the same [Oliver]
- Added multi-language support, based on earlier works by Euan McKay and LWC. Also see http://wiki.geeklog.net/wiki/index.php/Multi-Language_Support
- Changed the default path for topic icons to /images/topics [Dirk]
- Fixed an SQL error when calling up the Admin's list of stories without any topics [Dirk]
- Removed the public_html/portal.php script, as it is no longer needed [Dirk]
- Remove uninstalled plugins from the global $_PLUGINS array immediately (just in case the array would be used to trigger any actions) [Dirk]
- The "Topic" column in the list of feeds was empty for feeds that are only linked from a topic page [Dirk]
- Only use the mb_substr workaround in the calendar when the current character set is UTF-8 (bug #524) [Dirk]
- Fixed SQL error on MySQL 5 when listing the members of a group (bug #527) [Dirk]
- When emailing a story, don't include the text "Comment on this story at ..." when comments have been switched off for that story [Dirk]
- Fixed wrong wording of some of the "access denied" messages when trying to access Admin panels without proper privileges [Dirk]
- Fixed display of Admin block for users that only had certain Admin privileges [Dirk]
- New Afrikaans language file, provided by Renier Maritz
- Updated Hebrew language file, provided by LWC
- The Hebrew language file was also renamed to hebrew_utf-8.php for consistency with the other UTF-8 language files.
- Updated Turkish language file, provided by Kemal Cellat

### Calendar plugin (1.0.0)

- Bugfix: Replace autotags in the event description [Dirk]
- Added an option to switch between 24 hour and 12 hour am/pm mode for entering and editing events [Dirk]
- Implemented plugin_enablestatechange API function to enable/disable plugin feeds and blocks when the plugin is enabled/disabled [Dirk]
- Added calendar plugin initial version [Oliver]

### Links plugin (1.0.1)

- Implemented plugin_enablestatechange API function to enable/disable plugin feeds when the plugin is enabled/disabled [Dirk]
- Changed the english language file from "Web Resources" to "Links"
- Fixed hard-coded link to the "admin" directory when editing a link (reported by Ronnie Rigl) [Dirk]
- Optimized SQL requests for the plugin's What's New section [Dirk]
- Re-introduced {button_links} header variable [Dirk]
- Added an option to hide the Top Ten Links on the first page [Dirk]
- Made the page title on the Web Resources page more informative by adding the category and page number [Dirk]
- The edit icon (only visible for Links Admins) now uses the same image type as the current theme (was previously hardcoded to "edit.gif") [Dirk]
- Hide the "Web Resources" link from the menu when login is required to see the links (for consistency with the Polls plugin) [Dirk]
- Added a title attribute to the links on the site stats page that contains the link's actual URL [Dirk]
- Fixed site link in search results which wasn't using portal.php [Dirk]
- The Admin's search option now also searches the link description [Dirk]
- Removed extra <small> tags from the What's New section (bug #526) [Dirk]

### Polls plugin (1.1.0)

- Fixed call to undefined function polllist when calling up a non-existing poll [Dirk]
- Implemented plugin_enablestatechange API function to enable/disable the poll block when the plugin is enabled/disabled [Dirk]
- Fixed search [Dirk]
- Added a remark field for polls answers [Oliver]
- Re-introduced {button_polls} header variable [Dirk]
- Added an option to hide the link to the polls from the menu (for consistency with the Links plugin) [Dirk]
- Fixed poll URLs on the site stats page [Dirk]
- Remove the polls block when uninstalling the Polls plugin (another part of bug #520) [Dirk]

### Spam-X plugin (1.1.0)

- Added SLV (Spam Link Verification) modules [Dirk]
- The MT-Blacklist modules are not being shipped with Geeklog any longer. The MT-Blacklist entries are removed from the database during the upgrade [Dirk]
- Allow special characters (e.g. backslashes) in the Admin modules (e.g. the Personal Blacklist module) [Dirk]
- Moved spam actions to plugin_spamaction_spamx API function [Dirk]
- Fixed potential problems with the checkforSpam function's return code in case of unusual configurations (e.g. $_CONF['spamx'] = 0) [Dirk, Tom Willet]
- Made the plugin's internal log flag a proper config option. So you can now disable logging to spamx.log from the plugin's config.php [Dirk]
- Mass delete by IP now uses stored IP address [Mike]

### 静的ページプラグイン (1.4.3)

- Make sure autotags are replaced even when execution of PHP code is disabled (reported by LWC) [Dirk]
- Added a help URL for the block display of static pages [Oliver]
- Added ability in staticpage editor to enable/disable Advanced Editor mode so you can use FCKEditor and then if need basic html edit mode [Blaine]
- Fixed default sorting order for the list of static pages [Dirk]
- Allow to show/hide update date/time and hits [Oliver]
- When creating a new page, don't set the default group ownership to the Static Page Admin group if the current user is not a member of that group. Instead, pick a group with staticpages.edit permission that the user is a member of [Dirk]
- Fixed paging for the list of static pages (bug #528) [Dirk]

## July 23, 2006 (1.4.0sr5-1)

This release fixes display problems in the comment preview that were only in Geeklog 1.4.0sr5 (as a result of the fix for the XSS).

The complete 1.4.0sr5-1 tarball also includes the following language files:

- New Afrikaans language file, provided by Renier Maritz
- Updated Hebrew language file, provided by LWC
- Updated Turkish language file, provided by Kemal Cellat

## July 16, 2006 (1.4.0sr5)

JPCERT/CC informed us about a possible XSS in the comment handling that we're with this release.

## June 30, 2006 (1.4.0sr4)

Two exploits have been released by "rgod" for insecure Geeklog installations for a bug in the "mcpuk" file manager that we've been shipping as part of in all 1.4.0 releases.

- Some of the files outside of the public_html directory were not protected against direct execution. If Geeklog was installed such that those files were accessible from a URL (which has always been strongly discouraged in the installation instructions) then those files could be used to load and execute malicious code from a remote server.

  More information: http://www.geeklog.net/article.php/so-called-exploit

  In this release, we've added the missing execution prevention for all files outside of public_html. We would still, however, suggest that you fix your Geeklog install if the files outside of public_html are accessible from a URL.

- The "mcpuk" file manager that we've integrated into FCKeditor allowed the upload of arbitrary PHP code (even if FCKeditor was disabled in Geeklog's config.php). Depending on your webserver's configuration, it was then possible to execute that uploaded code.

  More information:
  http://www.geeklog.net/article.php/exploit-for-fckeditor-filemanager
  The file manager has been removed from this release. You will therefore no longer be able to upload files, e.g. images, through FCKeditor. Future versions of Geeklog will ship with an updated version of FCKeditor and its included file manager.

## May 28, 2006 (1.4.0sr3)

The Security Science Researchers Institute Of Iran reported the following security issues:

- Possible SQL injection and authentication bypass in auth.inc.php
- Possible XSS in getimage.php
- Path disclosure in getimage.php and the functions.php of some themes, e.g. the Professional theme

An internal code review also revealed a possible SQL injection in story.

## Mar 5, 2006 (1.4.0sr2)

Security issues:

- Konstantin Dyakoff found an old bug in the session handling that would allow anyone to log in as any user.
- HTML was not stripped from the Location field in a user's profile.

## Feb 19, 2006 (1.4.0sr1)

Security issues:

James Bercegay of GulfTech Security Research reported several issues with Geeklog's cookie handling that made it vulnerable to SQL injections, arbitrary file access, and even injection and execution of arbitrary code.
Bugfixes:

- Fixed bug in page-break combined with url rewrite (bug #521) [Oliver]
- Fixed Story [page_break] showing only intro on first page [Oliver]
- Fixed install script for the Spam-X plugin which was trying to include an SQL file that doesn't exist - and wasn't needed (part of bug #520) [Dirk]
- Updated Hebrew language file, provided by LWC
- New Russian language files for the Links and Polls plugins, provided by Volodymyr V. Prokurashko
- Fixed Static pages dutch language file [Oliver]
- New Polish language file for the Links plugin, provided by Robert Stadnik
- Added UTF-8 English versions of the Links, Polls, Static Pages, and Spam-X language files [Dirk]
- Added all UTF-8 Language files for core [Oliver]

## Feb 5, 2006 (1.4.0)

- Prevent execution of PHP code in "normal" blocks [Dirk]
- Added missing navbar images - used for CSS based buttons as part of the standard Plugin CSS [Blaine]
- Set options in FCKConfig to have Firefox browsers by default not using the <span> and font tags to format Bold and Italic [Blaine]
- Fixed another bug in google pagination of admin-lists [Oliver]
- Fixed "wrap static page in a block" and "exit type" options in the static page editor. Also link to the "rewritten" URL from the list of static pages when URL rewriting is on [Dirk]
- Fixed JavaScript error in the Admin's story editor (bug #479) [Dirk]
- Fixed hard-coded paths in the check.php script and added tests for missing directories (reported by Markus Wollschlager) [Dirk]
- A humble attempt to add some semantics [Dirk]
  - Added rel="category tag" to a story's topic link
  - Added rel="self bookmark" for a comment's permalink
- Cosmetics: Moved the number of links per category out of the actual link to the category [Dirk]
- On MySQL 5, the drop-down list of link categories presented to a user when submitting a new link came out wrong (while the one in the Admin's link editor worked just fine). Moved the working code into a new function in the plugin's functions.inc and changed the code to use it in both cases now [Dirk]
- Fixed an SQL error when the "length of entries" field in the Feed Editor was left empty [Dirk]
- Fixed date and time defaulting to the current date and time when creating a new event as an Admin user (adding a workaround for changes of strtotime() behavior in PHP 5) [Dirk]
- Fixed SQL error on MySQL 5 when creating a new topic (bug #517) [Dirk]
- In HTTP requests, format the user agent string according to the RFCs 1945 / 2068 / 2616, i.e. "Geeklog/1.4.0" [Dirk]
- Updated Japanese language files, provided by Yusuke Sakata
- Updated Ukrainian (Windows-1251) language file, provided by Vitaliy Biliyenko

## Jan 22, 2006 (1.4.0rc2)

- header.thtml now specifies the CSS Class Declaration to use for the body. This addresses the issue with FCKEditor when displayed, its CSS was over-riding the main site <body> tag and the site margin padding was being affected [Blaine]
- Removed CSS for the Forum plugin from style.css [Blaine]
- Fixed "Cannot modify header ..." message when logging in from the admin pages (reported by Samuel M. Stone). This also fixes confusing intermittent displays during the login (e.g. only some of the "Command and Control" icons showing up, messages about missing permissions flashing up) [Dirk]
- Removed Geeklog version number from feed files due to security concerns (pointed out by Samuel M. Stone) [Dirk]
- Login through the admin pages didn't work with register_globals=off [Dirk]
- Fixed admin lists so pagination works also in static pages [Oliver]
- Pass GeekLog as user agent when fetching RSS feeds [Mike]
- Made the image upload work with out-of-the-box PHP 5 configurations [Dirk]
- Fixed handling of HTML entities in Pingbacks [Dirk]
- Fixed Spam-X Mass Delete Trackback Spam module to update the story's trackback count when deleting trackbacks [Dirk]
- Fixed a possible SQL error when saving a block (reported by BDUB) [Dirk]
- Fixed story titles in the What's New block when they contained HTML entities (entities where sometimes cut off and/or encoded twice) [Dirk]
- Fixed a typo in all the plugin install script which set the group description to "grp_desc" instead of $grp_desc (found by Ingo Schaefer) [Dirk]
- Improved autodetect of Trackback URLs [Dirk]
- The submit story form was not selecting the advanced Editor if user was not logged in or did not have Story Editor permissions [Blaine]
- Added missing CSS class name "list-feed" for portal blocks [Dirk]
- Fixed user submission queue (reported by Andrew Lawlor) [Dirk]
- Fixed handling of integer fields in the Admin's story editor (reported by Ron Ackerman) [Dirk]
- Fixed handling of checkboxes in the static pages editor (reported by Ron Ackerman) [Dirk]
- Fixed SQL error when saving a static page that had had more than 1000 hits (reported by Euan McKay) [Dirk]
- Removed visible table border from advanced comment editor form [Blaine]
- Moved some hard-coded text strings from the advanced editor into the language files [Blaine]
- Updated Chinese language files, provided by Samuel M. Stone
- Updated Japanese language files, provided by Yusuke Sakate

## Dec 31, 2005 (1.4.0rc1)

- Added support for Advanced Editor in the Add Comment Feature [Blaine]
- Fixed SQL error in search on MySQL 5 (fix suggested by dariball) [Dirk]
- Added trackback.php and pingback.php to the included robots.txt [Dirk]
- Added a few more calls to COM_numberFormat all over the place (links and polls plugins, Admins Only block, ...) [Dirk]
- Fixed test for a Geeklog 1.3.9 database in the install script [Dirk]
- When emailing a story, make sure all fields are filled in [Dirk]
- Don't lose the current topic selection when a Story Admin uses the Contribute link [Dirk]
- Fixed highlighting of search query in comments when register_globals = off [Dirk]
- When the entries in the Admin's block are not sorted, make sure the icons in Command and Control are in the same order as the block entries [Dirk]
- Allow topic icons to be uploaded to and retrieved from a 'topics' directory outside of the document root [Dirk]
- Added a workaround to produce abbreviated day names in the calendar for UTF-8 language files (reported by Euan McKay) [Dirk]
- The Spam-X plugin now uses the same "universal" install script as the other three preinstalled plugins [Dirk]
- Added more allowable HTML tags and attributes if Advanced_Editor enabled config.php setting [Blaine]
- Added logic to detect if Javascript was not enabled and Advanced Editor was enabled. User will be prompted with alert and able to use the default editor [Blaine]
- Changed spam handling for Trackbacks and Pingbacks to check for spam on the unfiltered Trackback/Pingback content [Dirk]
- When editing a link submission with a new link category (i.e. the submitter selected "other" and entered a non-existing category), make sure that new category actually shows up in the links editor [Dirk]
- In the Admin's list of stories, show the display name of the topic (i.e. the same as in the Topics block) instead of the topic ID [Dirk]
- Hide the edit icon in the Admin's list of stories when the current user doesn't have edit access to a story (since they only got a note saying they can't edit that story anyway) [Dirk]
- Fixed alternating row colors in admin lists if one row has no data [Oliver]
- Made it impossible to switch off blocks if there is no access [Oliver]
- Fixed handling of items in the submission queues (it was only possible to approve / delete the first item in a queue) [Dirk]
- Grant users with 'plugin.edit' permission access to the plugin editor [Dirk]
- Changed admin-lists 'default-filter' to require 'AND' [Oliver]
- Fixed admin lists for events & static pages for non-root users [Oliver]
- Fixed invalid language string in submit.php [Oliver]
- Fixed problems with the query highlighting code escaping double quotes [Dirk]
- In the list of plugins, display only the plugin's current version number as long as it's in sync with the code version or the plugin hasn't implemented the chkVersion API function [Dirk]
- Limit length of a new user's username to 16 characters in the admin/user/edituser.thtml template file [Dirk]
- Don't display the current user's userphoto when creating a new user in admin/user.php [Dirk]
- Fixed sanity checks in USER_addGroup and USER_delGroup [Trinity, Dirk]
- Allowed the Links-entry from the top menu to be hidden by config.php in links [Oliver]
- Fixed small HTML validation issues with adv. editor and admin lists [Oliver]
- Fixed comment bug that allowed comments to be saved even when user did not have the correct story/topic permissions. [Vinny]
- Send the character set as an HTTP header from COM_siteHeader now [Oliver]
- Fixed updating Links feeds [Mike]
- Corrected RSS handling of GUID or LINK [Mike]
- Fixed date format in Atom feeds [Mike]
- Fixed loss of sort setting when browsing the user list [Oliver]
- Fixed block title of the site stats (reported by Tom Willet) [Dirk]
- Fixed an SQL error when approving the default story submission ("Are you secure?") after a fresh install (reported by suvi) [Dirk]
- Fixed warnings that exposed the full path to Geeklog when attempting SQL injections on the advanced search [Mike]
- The "Mail Users" icon was missing from Command and Control [Dirk]
- In Command and Control, show the Trackback icon only when at least one of the Trackback, Pingback, or Ping features is enabled (in addition to 'story.ping' permissions for the current user) [Dirk]
- Replaced the delete_event.gif icon (in layout/professional/images/icons) with a PNG, since the Professional theme uses PNGs now and the icon wouldn't show up otherwise [Dirk]
- The block around the list of backups was missing the title [Dirk]
- Don't emit the Trackback and Pingback headers when trackbacks have been disabled for a story [Dirk]
- Introduced {lang_trackback_comments_no_link} (in trackback/trackback.thtml) so that you can have an article page entirely without links back to itself (for picky spiders such as the one for Google News) [Dirk]
- Call COM_refresh when creating a user with usersubmission = 1 [Mike]
- Fixed sorting of Trackbacks in the What's New block [Dirk]
- The search by author or by date switched to searching for everything on page 2 of the results [Dirk]
- For the Links plugin, the "last x days" text in the What's New block was missing [Dirk]
- Fixed an SQL error when creating new blocks [Mike]
- The feed reader will now also follow redirects [Mike]
- Updated Chinese traditional and simplified language files, and new Chinese language files for the Links, Polls, and 静的ページプラグインs, provided by Samuel M. Stone
- German language files now exist in 4 combinations (formal / informal German, ISO-8859-15 / UTF-8 encoding) for Geeklog, the Links, Polls and 静的ページプラグインs [Dirk]
- Updated Japanese language files, provided by Yusuke Sakate
- New Ukrainian language files (Windows-1251) for Geeklog and all four plugins, provided by Vitaliy Biliyenko
- New Ukrainian language files (UTF-8 and KOI8-U encoding) for Geeklog, the Spam-X, and 静的ページプラグインs, provided by Yaroslav Fedevych

## Nov 20, 2005 (1.4.0b1)

- Introduced {start_storylink_anchortag} and {end_storylink_anchortag} template variables in the story and commentbar template files which only produce a link to the story when not on article.php, thus avoiding links back to the article page itself, which the spider for Google News doesn't seem to like (feature request #486) [Dirk]
- Added a workaround for image uploads using GD when ImageCreateTrueColor is not available (patch #468) [Dirk]
- Allow a subject to be passed as a parameter for the "contact user" form (based on patch #497) [Dirk]
- Added support for right-to-left languages (based on patch #488) [Dirk]
- Update Feeds and Older Stories block when changing topic settings [Dirk]
- Added a hits counter to events and added a Top Ten Events section to the site stats [Dirk]
- Introduced $_CONF['show_topic_icon'], i.e. the default setting whether to show topic icons or not [Dirk]
- The "Older Stories" block now only lists articles that appeared on the frontpage (i.e. have not been set to "Show only in topic", bug #408) [Dirk]
- Fixed problems with query highlighting in stories scrambling links in autotags (bug #492) [Dirk]
- Group names are now unique (as they should have been from the beginning). The install script takes care of existing duplicate group names when upgrading to 1.4.0 (bug #367) [Dirk]
- Allow for more topic IDs in the user's preferences (bug #490) [Dirk]
- Replace autotags in the Daily Digest (bug #484) [Dirk]
- Explicitly link to /docs/index.html for the documentation link in the Admin's block (bug #504) [Dirk]
- Added an option to enable / disable trackbacks per story (just like you can enable / disable comments per story) [Dirk]
- Changed COM_optionList to check for language arrays which override the text strings that are embedded in the database (for comment mode, featured story, post mode, etc.) Bug #227 [Dirk]
- Fixed Bug #174 -- quotes in titles are no longer double htmlentized [Vinny]
- The default permissions for new objects (stories, topics, blocks, etc.) can now be set in config.php (feature request #90) [Dirk]
- Added an "Active users" entry to the site statistics. If Geeklog is configured to track a user's last login, this will display the number of users who logged into the site during the last 4 weeks. Otherwise, it displays the number of user accounts with status = 3 (i.e. have logged into their account at least once and haven't been banned) [Dirk]
- Introduced a new plugin API function so that the plugin's summary (e.g. number of items) can be properly integrated with the "Site Stats" section. Modified stats/sitestatistics.thtml, removed stats/stats.thtml, added stats/singlesummary.thtml template files [Dirk]
- Introduced a generic function, USER_getPhoto, which provides the user's photo, if available. The function also supports getting the user's avatar from gravatar.com (if enabled in config.php) [Dirk]
- The texts in the What's New block ("x new stories in the last y hours", "last 2 weeks", etc.) now properly reflect the actual settings of the $_CONF['newXXXinterval'] variables (bug #390) [Oliver, Dirk]
- Introduced a method to signal a forced update for feeds in case the content of one of the feed entries has changed - so far, we only checked if entries had been added or removed (bug #277) [Dirk]
- Added $_CONF['show_right_blocks'] option which, if set = true, will display right-side blocks on all pages (also addresses feature request #31) [Dirk]
- Fixed bug #454, SQL error when reading comments. [Vinny]
- Leave off the "page=1" parameter on the "Google paging" navigation bar for links that point back to the first page [Dirk]
- The default feed for a new site is now in RSS 2.0 format and named "geeklog.rss" [Mike, Dirk]
- Added time of the day to the name of the database backups to allow several backups a day [Oliver]
- When the search returns no results, the search form is now pre-populated with the last search query, so that it can be changed easily. On successful searches, a "refine search" link will appear that also takes you back to a pre-populated search form (to refine your search, obviously) [Dirk]
- Changed search to only return a certain amount of hits per page, thus avoiding timeouts on servers where the script execution time is limited (bug #274) [Dirk]
- A new config variable, $_CONF['num_search_results'], defines the number of search results to be returned per page (and per type). The search form also includes a drop-down menu where this can be changed for every search. Plugins will have to indicate if they support this "paged" search. Otherwise, Geeklog will fake the paging for the plugin, so that the plugin does a full search for every page, but Geeklog will only display the hits for the current page (such a plugin can therefore still cause a timeout until it is changed to support "paged" searching).
- Added a permanent link to comments (in the professional theme) [Vinny]
- Added new icons for the admin sections and made sure each admin section now has an icon in admin/moderation.php [Dirk]
- The new icons have been taken from the Gnome project (some of them modified by Jakub Steiner). They are released under the GPL.
- Introduced global variable $_IMAGE_TYPE that specifies the image type to use. Defaults to 'gif'. Themes can override it to use other images types, e.g. PNG, for all images [Dirk]
- Added option to upload topic icons (Feature Request #415, Patch #423), provided by Alford Deeley (machinari)
- Changed the Admin's "Command and Control" center such that there is an icon for every entry in the Admin's block [Dirk]
- Removed duplicate code for creating a "topic SQL" query in moderation.php (use COM_getTopicSQL instead) [Dirk]
- Added the ability to allow users to login via defined remote services (ships with Blogger and LiveJournal support) [Mike]
- Added the ability to ban users, and to tell when a user has logged in at least once [Mike]
- Added edit-icon, List-Sorting, searching, Limits & alternating row colors in admin menus for groups, syndication, staticpages, trackback (where not yet done) [Oliver]
- Added function to allow user-defined scaling of images in articles by using [unscaledX] instead of [imageX] [Oliver]
- Removed $_CONF['whosonline_fullname'] option - use $_CONF['show_fullname'] instead [Dirk]
- Fixed bug where extra slashes appeared when previewing comments [Vinny]
- Removed the "lastvisit" cookies, as they are obviously not used [Dirk]
- Removed redundant changepwd-button & code from /admin/user.php (Bug #9) [Oliver]
- Added new feature to insert a feed-links into header depending on topic, to be chosen from /admin/syndication.php in the form of <link rel="alternate" type="application/{format}+xml" ....> [Oliver]
- Added options to google-Navigation so it can be used by plugins and work with url-rewriting (feature request #315). [Oliver]
- Userlist now also shows Registration Date and if $_CONF['lastlogin']= true it shows the last login date instead. [Oliver]
- Added option in config.php to hide "Viewed: x" line with $_CONF['viewscountline'] just as the $_CONF['contributedbyline'] [Oliver]
- Added function COM_numberFormat to format displayed numbers with custom decimal & thousand - separators and fixed decimal places if necessary Includes the respecitve 3 new config.php values in locale section. (Feature Request #298) [Oliver]
- Default Blocks showed always in all Topics before. Now you can choose to show them in All/only one topic/only on homepage like other blocks (feature #326) [Oliver]
- A Story can now break over several pages in the body-text. The tag [page_break] will split the bodytext in pieces that can be opened with the std. COM_printPageNavigation. Introtext is removed for pages>1 [Oliver]
- Added field for old password check in /usersettings.php (bug #230) [Oliver]
- Added password confirmation to /admin/user.php and /usersettings.php (bug #230) [Oliver]
- Made the alternating row colors in the Admin's trackback functions compatible with the scheme used in other places (list of users, etc.). Also changed the list of weblog directory services so that editing is now done by clicking on the number of the service [Dirk]
- Stories are no longer forced to be featured _and_ on frontpage (bug #362) [Oliver]
- Changed links locations in User-list, added user-photo indicator [Oliver]
- Don't update a story's date any more when unchecking the 'draft' flag (bug #400) [Dirk]
- Don't use "rewritten" URLs in the static pages editor any more (bug #403). Also updated the list of static pages to use alternating colors for the rows [Dirk]
- Use "\r\n" when sending trackback pings (bug #407) [Dirk]
- Allow autotags to optionally have a space after the tag name [Blaine]
  Valid tags are:
  [story:20040101093000103 here] or [story: 20040101093000103 here]
- Fixed inconsistent use of {site_url} and {layout_url} in some of the professional theme's admin template files - using {layout_url} everywhere now when referring to icons (bug #395) [Dirk]
- Event titles containing quotes were cut off at the first quote in the event editor, i.e. both the admin's event editor and the editor for personal events. (bug #399) [Dirk]
- Modified PLG_templateSetVars API to also check for a custom function [Blaine]
  Users can now set header template using CUSTOM_templatesetvars()
- Added new CSS declarations as recommened CSS for plugins [Blaine]
- Added a basic scheduler Plugin API plugin_runScheduledTask [Blaine]
  Interval is set in config.php - $_CONF['cron_schedule_interval']
- Enhanced the Group Admin interface display [Blaine]
- Enhanced the User Admin display and made the headings sortable [Blaine]
- Geeklog will now properly handle html special characters (such as quotes and ampersands) in comment titles (bug #174) [Vinny]
- Hide 'edit' option for articles in preview (bug #347) [Dirk]
- Changed admin/user.php to use file() for the batch import [Dirk]
- Implemented pinging weblog directory services like blo.gs and weblogs.com (Feature Request #35). By default, we ping pingomatic.com [Dirk]
- Complete overhaul of the Plugin Comment API to reduce the likelyhood of plugins introducing security problems. Older plugins that use the comment API will no longer work. [Vinny]
- Refactored Comment code out of lib-common.php and into lib-comment.php, also some changes to comment.php [Vinny]
- Introduced a 'story.ping' permission that enables users to send Pings, Pingbacks, and Trackbacks for a story (or plugin item). Members of the Story Admin group have that permission by default.
- Overhauled install script: It will now abort the installation if the minumum requirements (PHP 4.1.0, MySQL 3.23.2) are not met. It also displays a warning message if register_long_arrays is off (PHP 5 only, bug #360). Another warning message is displayed if "public_html" is part of the URL. When upgrading, it now tries to identify the Geeklog version that was used previously (only really works for versions 1.3.8 - 1.3.11) [Dirk]
- Fixed date in comment preview (bug #370) [Dirk]
- Incorporated the new syndication framework for reading and writing feeds of different formats (RSS, RDF, Atom), provided by Michael Jervis (patch #352). This contribution also addresses Task #19 ("RSS import class") and Feature Request #67 ("Limiting number of entries in RSS feeds"). Please note that the feed writer classes, system/classes/*.feed.class.php, are now obsolete and can be removed. Please also note this adds new PEAR package requirements for Net_URL and HTTP_Request.
- Added support for sending and receiving trackback comments (Feature Request #34) Also implemented Pingback support in pretty much the same way. Once received, Geeklog treats Trackbacks and Pingbacks the same and stores them in the gl_trackback table. [Dirk]
  Both can be switched off in config.php: $_CONF['trackback_enabled'] = false; and $_CONF['pingback_enabled'] = false;
- Added a new script, directory.php, that implements a date-based listing of all the stories on a site [Dirk]
- A link to the directory is available as a new option, 'directory', for the $_CONF['menu_elements'] config variable, so that it can be added to the menu. The column headline for event search results was not displayed [Dirk]
- Added logos to syndication feeds. [Mike]
- Added config option to disable new accounts (Patch #426 from Alford Deeley) [Mike]
- Alphabet Sort on Admin Menu and C&C Block [Mike]
- New Farsi (Persian) language file, provided by Hesam.H
- Updated Japanese language file, provided by Yusuke Sakata
- New Farsi (Persian) language file for the 静的ページプラグイン, provided by Hesam.H

### Links plugin 1.0.0

- Added ID-editor and Autotags-feature [link: ... ] [Oliver]
- Added Category-Specific Feeds [Oliver]
- Added Edit-Icon, List-Sorting, searching, Limits & etc for admin menu [Oliver]
- Moved links functionality into a plugin [Trinity, Oliver]

### Polls plugin 1.0.0

- Polls moved to a plugin [Trinity]

### Spam-X plugin 1.0.3

- The LogView module now automatically truncates the Spam-X logfile to 100KB [Tom Willet]
- The IP Blacklist module now supports regular expressions [Mike]
- Added a Mass Delete module for Trackback comments [Dirk]
- Added an "admin override" option, so that postings by members of the 'spamx Admin' group will not be checked for spam [Dirk]

## July 16, 2006 (1.3.11sr7)

JPCERT/CC informed us about a possible XSS in the comment handling that we're with this release.

## May 28, 2006 (1.3.11sr6)

The Security Science Researchers Institute Of Iran reported the following security issues:

- Possible SQL injection and authentication bypass in auth.inc.php
- Possible XSS in getimage.php
- Path disclosure in getimage.php and the functions.php of some themes, e.g. the Professional theme

An internal code review also revealed a possible SQL injection in story submissions.

## Mar 5, 2006 (1.3.11sr5)

Security issue:

- Konstantin Dyakoff found an old bug in the session handling that would allow anyone to log in as any user.

## Feb 19, 2006 (1.3.11sr4)

Security issues:

- James Bercegay of GulfTech Security Research reported several issues with Geeklog's cookie handling that made it vulnerable to SQL injections, arbitrary file access, and even injection and execution of arbitrary code.
- Prevent execution of PHP code in "normal" blocks

## Dec 12, 2005 (1.3.11sr3)

Security issues:

- Fixed comment bug that allowed comments to be saved even when user did not have the correct story/topic permissions (reported by LWC) [Vinny]
- Fixed a path disclosure in case someone tampered with the start date or end date in advanced search (reported by r0t3d3Vil) [Mike]
- Feeding malformed dates to the search caused a warning message to be displayed that disclosed the path to the Geeklog install on the server. It was NOT possible to use this for SQL injections.

Bugfixes:

- Fixed the problems (introduced in 1.3.11sr2) editing static pages when $_CONF['url_rewrite'] = true (bug #491) [Dirk]
- The "Reply" button didn't work when viewing individual comments [Vinny]
- Fixed the definition of the 'expire' field (in table gl_stories), which caused an SQL error when doing a fresh install on MySQL 5 (reported by Johannes) [Dirk]
- Fixed and updated the Hebrew language file [LWC, Dirk]
- New Ukrainian language file (Windows-1251), provided by Vitaliy Biliyenko
- New Ukrainian language files (UTF-8 and KOI8-U encoding) for Geeklog, the Spam-X, and 静的ページプラグインs, provided by Yaroslav Fedevych

## Oct 9, 2005 (1.3.11sr2)

This release provides security enhancements and better spam protection originally developed for Geeklog 1.3.12. It also addresses a few bugs where the bugfix could be integrated with a reasonable amount of work (other bugfixes will have to wait for the 1.3.12 release).

### Security and Spam protection:

- Added speedlimit to login attempts, defaults to allowing three tries in a five minute period. [Vinny]
  See new config options $_CONF['login_attempts'] and $_CONF['login_speedlimit']
- Changed the spam handling to update the speed limit when spam is detected (i.e. handle spam posts as if they were successful posts and make the submitter wait for the speed limit to expire). Also send a 403 "Forbidden" HTTP response code when displaying the "spam detected" message [Dirk]
  To quote RFC2616: "403 Forbidden: The server understood the request, but is refusing to fulfill it. Authorization will not help and the request SHOULD NOT be repeated."
- Filter linefeeds in the To:, From:, and Subject: fields of an email in COM_mail [Dirk]
- When a new user account is created and the user submission queue is enabled in config.php, ensure that the user is properly "queued" even in the unlikely event that the account creation fails halfway through (reported by LWC) [Dirk]
- When $_CONF['emailstoryloginrequired'] = 1, hide the links to the "email story" form from anonymous users [Dirk]
- When emailing a story, check the user's message that is sent with the story for spam [Dirk]
- Added a robots.txt file to the distribution. By default, it excludes comment.php, submit.php, and the docs directory from being spidered [Dirk]
- Added a spam check to the user profile [Dirk]
- Story, event, and link submissions are now also checked for spam [Dirk]
- This release also includes the Spam-X plugin version 1.0.2

Please note that MT-Blacklist (used by Spam-X) has recently been discontinued. For the time being, we provide the last version of the blacklist for download from geeklog.net (the Spam-X plugin as included in this release is configured to get it from there for the initial import). There will, however, be no updates the blacklist. For details, please see http://www.geeklog.net/article.php/mt-blacklist-discontinued

Bugfixes:

- Fixed an error message thrown up by PHP 5.0.5 or later when viewing the article page (bug #483) [Dirk]
- Fixed bug with topic-specific blocks not showing up on the article page when URL rewriting was enabled (bug #401) [Dirk]
- Fixed missing site header when trying to submit an event without required fields. Also fixed that it would redirect you to the story submission form then (bug #409) [Dirk]
- Make sure {menu_elements} is rendered using the menuitem_none.thtml template when no menu elements are to be displayed (bug #378) [Dirk]
- Quote names in email addresses as soon as they contain any non-alphanumeric characters (apart from the blank). This also addresses bug #368 [Dirk]
- Allow single quotes in passwords (bug #396, also previously reported as bug #349 / #996354) [Dirk]
- When $_CONF['profileloginrequired'] was set to 1, the actual message that you have to log in before being able to see a user profile was not wrapped in the Geeklog framework (reported by Sean C) [Dirk]
- Fix: Made a story's archive/expire date work with the timezone hack [Dirk]
- COM_applyFilter will now accept negative numbers if the isnumeric parameter is true. Needed to fix problems with pollbooth.php (and others) [Vinny]
- Upgraded included kses class to version 0.2.2 which fixes problems with Japanese and Thai characters (among other things), thus addressing bugs #94 and #119 [Dirk]
- Fixed SQL error when using the [staticpage:] autotag (bug #373) [Dirk]
- Added a missing stripslashes call to remove backslashes when a topic's name was displayed in the index page's title (bug #369) [Dirk]
- Link tags are now translated in printer friendly mode (Bug #411) [Mike]
- Removed the <meta name="ROBOTS"> entry from the Professional theme's header.thtml as "INDEX,FOLLOW" is the default anyway. For finer control, we now ship a robots.txt [Dirk]

Improvements:

- Don't check for auto-archived stories when no archive topic has been defined yet [Dirk]
- Added support for a custom_usercheck function. Custom registration code that requires certain information can now abort the creation of a new account if that information is missing. The function is called after Geeklog has checked that the username and email address of the new user are okay (valid and not in the database yet), but before the user has been added to the database [Dirk]
- Saved one SQL request for a story's printable view [Dirk]

Language files:

- Made sure all language files refer to Geeklog's [image] tags as [imageX], [imageX_right], and [imageX_left] (bug #381) [Dirk]
- New Catalan language file, provided by an anonymous user
- New Russian (UTF-8) language file, provided by Konstantin Boyandin
- Updated Hebrew language file, provided by LWC
- Updated Hellenic (Greek) language file, provided by MzOzD
- Updated Italian language file, provided by Marcello Teodori
- Updated Japanese (UTF-8) language file, provided by Yusuke Sakata
- Updated Portuguese (Brazil) language file, provided by Alcides Soares Filho
- Updated Russian language file, provided by Konstantin Boyandin
- New Japanese (UTF-8) language file for the 静的ページプラグイン, provided by Yusuke Sakata
- Updated Italian language file for the 静的ページプラグイン, provided by Marcello Teodori
- Updated Japanese language file for the 静的ページプラグイン, provided by Yusuke Sakata

## Aug 21, 2005 (Spam-X plugin 1.0.2)

- Changed the display name of the plugin to "Spam-X" to avoid potential confusion with the email spam filter of the same name. "SpamX" is a registered trademark of Hendrickson Software Components.
- Added a new module to filter posts based on the IP address of the poster [Tom Willet]
- Added a new module to filter posts based on the IP address of the spamvertised site [Tom Willet]
- Added a new module to filter posts based on characteristics of the HTTP header [Dirk]
- Fixed the Mass Delete Spam Comments module [Tom Willet]
- The Spam-X plugin's examine modules run the post through html_entity_decode() now in case the spammers try to obfuscate their posts by using HTML entities [Tom Willet, Dirk]
- The Mail Admin action module now also reports the HTTP headers of the post that triggered the spam filter [Dirk]
- Added a simple stats function (reports the number of posts deleted as spam, and - to the Spam-X Admin only - the number of entries for each module) [Dirk]
- Implemented an update function for the plugin [Dirk]
- New Farsi (Persian) language file, provided by Hesam.H
- New Italian language file, provided by Marcello Teodori
- New Spanish language file, provided by vivi1123

## Jul 3, 2005 (1.3.11sr1)

This release addresses the following security issue:

Stefan Esser found an SQL injection that can, under certain circumstances, be exploited to extract user data such as the user's password hash.

## Dec 31, 2004 (1.3.11)

Geeklog 1.3.11 addresses the following security issues:

1. It was possible to submit stories anonymously even if anonymous submissions were turned off in config.php (reported by Barry Wong). These stories still ended up in the submission queue, though, unless you disabled it in config.php.
2. Some of the parameters in link and event submissions weren't filtered, leaving them open to potential SQL injections.
3. The links for the What's Related block were created from the unfiltered story text, opening the possibility of XSS attacks (reported by Vincent Furia).

Bugfixes:

- Added a missing stripslashes() call for the topic name in the What's Related block (bug #351) [Dirk]
  (affected file: system/lib-story.php)
- Fixed problems in the story editor when editing plain-text posts with uploaded images (bug #356) [Dirk]
  (affected file: public_html/admin/story.php)
- When changing a story ID, update the story ID in any comments to that story, too (bug #357) [Dirk]
  (affected file: public_html/admin/story.php)
- Fixed handling of autotags that started with the same substring, e.g. for 2 tags 'mytag' and 'mytagtwo', the second tag would not be recognized (reported by Dr. Shakagee) [Dirk]
  (affected file: system/lib-plugins.php)
- Fixed caching of $_GROUPS [Dirk]
  (affected files: system/lib-security.php, public_html/lib-common.php)
- Made a minor optimization to save one SQL request when displaying the comment bar for anonymous users [Dirk]
  (affected file: public_html/lib-common.php)
- Updated Slovenian language file, provided by gape.
  (affected file: language/slovenian.php)

## Dec 22, 2004 (1.3.11rc1)

- Fixed "archive" option being activated too early on certain non-featured stories (bug #345) [Blaine]
- Added missing handling of autotags in static pages being displayed as center blocks (reported by Jill) [Dirk]
- Fixed size of the 'sid' field in the gl_comments table. It should be 40 characters, to be able to hold the long story IDs introduced in 1.3.10 (reported by Douglas Santos) [Dirk]
- When using mogrify (ImageMagick) to resize uploaded images, the name of the image is now enclosed in double quotes instead of single quotes, which caused the command to fail on Windows [Dirk]
- The emails sent from the Spam-X plugin's MailAdmin action now also include the IP address of the spam poster [Dirk]
- SEC_getFeatureGroup() should not overwrite $_GROUPS if not operating on the current user (bug #331) [Dirk]
- Introduced a {camera_icon} variable in story and comment templates that displays the little camera icon if the author has uploaded a user photo, just like in the Who's Online block (suggested by Laurence Whitworth) [Dirk]
- The parent link in top-level comments took the user to the homepage rather than to the article page (bug #346) [Vinny]
- Stories submitted for the archive topic will automatically be saved with frontpage = 0 when approved, i.e. only be displayed in the topic [Dirk]
- Avoid emitting an extra <br> tag after the last section in the What's New block (bug #330) [Dirk]
- Update comment count in Older Stories block when a new comment is posted (bug #317). Also optimized the code to collect the contents of the Older Stories block [Dirk]
- Fixed extra <br> being emitted in the calendar for events that aren't visible for the current user (bug #268) [Dirk]
- (Event) Admins can now delete events directly from the calendar's day and week views (just like events in the personal calendar) [Dirk]
- Fixed usersettings.php so that it displays the "benefits" message again when called up by an anonymous user. Also made it go to the user's preferences when called without a 'mode' parameter [Dirk]
- Added {layout_url} to the available theme variables in the submission forms. Also added {separator} for those who prefer correct spelling ;-) [Dirk]
- More parameter filtering and permission checks in submit.php [Dirk]
- Fixed over-zealous parameter filtering in links.php which prevented categories with apostrophes from working [Dirk]
- Fixed broken URLs when editing a plain-text story that contained uploaded images (reported by LWC) [Dirk]
- The PEAR classes that ship with Geeklog actually require PHP 4.2.x now. However, the missing functions in older PHP versions (minimum requirement for Geeklog itself is now PHP 4.1.0) are provided by the PEAR PHP_Compat package, which we will have to ship with Geeklog from now on. Added the necessary code to lib-common.php to load PHP_Compat, if required [Dirk]
  Many thanks to Tom Willet for providing a test setup.
- Fixed "quick add form" for personal events, so that it stores the new event directly now [Dirk]
- Fixed handling of 12am/pm in events, event submissions, and when passing the time from the calendar to the event submission forms [Dirk]
- Improved handling of personal events / personal calendar, especially for (Event) Admins [Dirk]
- Fixed What's Related links when magic_quotes_qpc = on [Vinny, Dirk]
- Fixed use of an undefined variable $U in COM_showBlocks and warning messages for undefined array indexes in COM_getCurrentURL (reported by irawen) [Dirk]
- Allow empty search query strings so that the "More by <author>" and "More from <topic>" options work again [Dirk]
- When deleting a poll, also delete any comments to that poll [Dirk]
- Delete comments and story images when deleting stories from a deleted topic (bug #339) [Dirk]
- When deleting a story, added an extra check for type='article' when deleting the story's comments [Dirk]
- Set current user as the owner when cloning an event (bug #338) [Dirk]
- Start time, end time, and event location weren't copied over when adding a site event to the personal calendar (bug #336) [Dirk]
- Fixed wrong use of htmlentities() on comment title (bug #335) [Dirk]
- Changed "read more" word count so that it ignores HTML tags (bug #333) [Dirk]
- Updated Slovenian language file, provided by gape.
- Updated Dutch language file, provided by Ko de Pree.
- Updated Dutch language file for the 静的ページプラグイン, provided by Ko de Pree.
- New French language files for the Spam-X plugin, provided by Alain Ponton.

## Nov 28, 2004 (1.3.10)

- Allow omission of the link text for the [story:], [event:], and [staticpage:] autotags. Geeklog will then use the title (of the story / event / static page) as the link text [Dirk]
  (affected files: system/lib-plugins.php, plugins/staticpages/functions.inc)
- Updated Chinese language files (all 4 of them), provided by Samuel M. Stone

## Nov 21, 2004 (1.3.10rc3)

- Changed wording of the error message if the "backups" directory is not writable [Dirk]
- Fixed comments for the DB_result (in lib-database.php) and dbResult (in mysql.class.php) functions (bug #320) [Dirk]
- Display a success message when using the "changepw" option in admin/user.php [Dirk]
- When changing a username, make sure to change the name of the user's photo, too (bug #321) [Dirk]
- Links in "plain text" stories and comments are now made clickable (i.e. enclosed in <a> tags) when the post is saved instead of when it's displayed, as in the previous release candidates. This also fixes bug #308. [Dirk]
- Added $_CONF['disable_autolinks'] config option to disable autolinks [Dirk]
- Removed ViewBlacklist.Admin.class.php from the Spam-X plugin [Tom Willet]
- Overhauled handling of personal events [Dirk]:
  - Fixed deleting personal events (again).
  - The upcoming events block now links to the event details of personal events (just like it already did for site events).
  - Added stricter checks for permissions, user IDs, and the personal calendars being activated in the first place.
- Added a check for allow_url_fopen if reading a (RSS) feed fails and report it in error.log if it is off [Dirk]
- When deleting a story (automatically), make sure we're only deleting comments belonging to that story (i.e. added a check for type = 'article') [Dirk]
- Added {event_type}, {lang_event_type}, and {edit_icon} in all the themes' calendar/eventdetails.thtml template file [Dirk]
- Fixed some URLs in the calendar (missing slash) [Dirk]
- Comment IDs don't have to be numeric (in comment.php) [Vinny]
- The 静的ページプラグイン now takes $_CONF['showfirstasfeatured'] into account when displaying static pages in center blocks (reported by eyecravedvd) [Dirk]
- Forgot to declare $_CONF as global when fixing bug #301 (bug #302) [Dirk]
- Updated Chinese language files (all 4 of them), provided by Samuel M. Stone
- Updated Japanese language files (euc-jp and UTF-8), provided by Yusuke Sakata
- Updated Polish language file, provided by Robert Stadnik
- Updated Slovenian language file, provided by gape
- Updated Spanish language file, provided by Angel Romero
- Updated Swedish language file, provided by Markus Berg

## Oct 24, 2004 (1.3.10rc2)

- Fixed plugin update function [Blaine]
- Set the target encoding in Geeklog's RSS parser (bug #301) [Dirk]
- Set the {topic_icon} variable to an empty string for the "Home" link in the Topics block (reported by jhwhite) [Dirk]
- Fixed News Box Configuration, i.e. the ability to disable blocks [Vinny]
- In the story template files, the number of comments now only is a link when there actually is a comment on the story [Dirk]
- Hard-coded the English word 'delete' in the URLs to delete a comment [Dirk]
- For the list of a user's recent comments, use 'mode=view' to link directly to a comment now [Dirk]
- Fixed comment id in comment notification emails [Dirk]
- Fixed display of the number of static pages that the user has access to (in the Admin Block) [Dirk]
- COM_makeClickableLinks did not recognize links with the 'http:' at the start of a line [Dirk]
- Re-introduced <br> between plugin sections in the What's New block, pretty much reverting the change suggested by feature request #292 [Dirk]
- Introduced function COM_formatEmailAddress that creates a (more or less) RFC(2)822 compliant email address from a name and an address [Dirk]
  This function is now used for formatting the site address, as well as for addresses entered by the user in profiles.php and admin/mail.php.
- The Spam-X plugin's MailAdmin action didn't send any email notifications, since the call to COM_mail was commented out ... [Dirk]
- admin/mail.php and admin/group.php use the complete URL to the script in the <form action="..."> now (instead of relying on PHP_SELF) [Dirk]
- Fixed parse error in the Dutch language file (reported by NeoNecro) [Dirk]
- Allow the dot '.' in IDs (in addition to letters, digits, the dash, and the underscore) [Dirk]

## Oct 17, 2004 (1.3.10rc1)

- Added new functionality to [autotags] - New plugin API's added [Blaine]
- Added [autotag] hooks for stories [Bline]
- When a plugin had its icon only in the admin directoy, the plugin editor did not find it and displayed a generic icon instead [Dirk]
- In admin/mail.php, apply htmlspecialchars() on the email addresses before displaying them, as the '<foo@example.com>' part will be interpreted as HTML by some browsers (pointed out by LWC) [Dirk]
- When using gdlib for image resizing, GIF images were converted to PNG, but Geeklog was still trying to display the GIF (reported by Tom Willet). Since the LZW patent has now expired (see http://www.unisys.com/about__unisys/lzw), it is safe to use GIF images again, so the PNG conversion was dropped [Dirk]
- Fixed link to the Anonymous user's profile in comment/thread.thtml [Dirk]
- Added Location field to the user profile [Blaine]
- In the light of bug #293, removed all variable names from the language files, leaving only the $_CONF config variables [Dirk]
- Fixed an error message when plugins didn't return an array from plugin_getmenuitems_xxx (reported by computerade) [Dirk]
- When sending emails from the admin/mail.php, some user's names weren't set in their email address (reported by LWC) [Dirk]
- Removed an extra <br> from before and between data provided by plugins in the What's New block (feature request #292) [Dirk]
- When creating a new user from admin/user.php, don't determine the uid before actually creating the database entries to avoid race conditions / collisions with other user accounts created at the same time (bug #243) [Dirk]
  Also took the opportunity to refactor and move the almost identical code from users.php and admin/user.php into a new function USER_createAccount in system/lib-user.php.
- usersettings.php was missing a default case for unsupported values of 'mode' (bug #287). This only displayed a blank page and was not exploitable [Dirk]
- Fixed hard-coded default group names in the Admin sections (e.g. when a user had story.edit permissions but was not in the Story Admin group, any new story created by that user would default to being owned by the Story Admin group nonetheless) [Dirk]
- Introduced new plugin API functions plugin_user_changed_xxx and plugin_group_changed_xxx to inform plugins when a user's information (profile or settings) or a group (new, edit, delete) has been changed [Dirk]
- COM_checkHTML and COM_allowedHTML now accept an additional parameter in form of a comma-separated list of permissions. If the current user has at least one of those permissions, they are assumed to be an "Admin" and the functions will use the $_CONF['admin_html'] list of HTML tags for them (bugs #114 and #118) [Dirk]
- COM_allowedHTML now has an option to only return the list of allowed HTML tags without the "Allowed HTML" text (bug #118) [Dirk]
- For the poll block, always use the block title stored in the database (bug #205) [Dirk]
- It is now again possible to have a different number of stories per page for individual topics. Users have to set their preferred number of stories per page to 0 (zero) in their preferences, though, as the user preferences will always override this setting (bug #190) [Dirk]
- The Professional theme, kindly provided by Victor B. Gonzalez, is our new default theme now.
- In the calendar's day and week view, event permissions weren't checked properly, so that some events were displayed to user who shouldn't have been able to see them (reported by Willem Jan) [Dirk]
- Don't update a story's hit counter as long as the draft flag is set or the publishing date is in the future (feature request #282) [Dirk]
- Introduced new function COM_sanitizeID() to filter special characters out of user-editable IDs as used for stories, polls, topics, and static pages (also fixes bug #181). Allowed characters are letters a-z (both upper and lower case), digits 0-9, the dash '-', and the underscore '_' [Dirk]
- The Upcoming Events block didn't use the help URL, even if it was set (reported by Wolfgang M. Schmitt) [Dirk]
- Geeklog now comes with Tom Willet's Spam-X plugin pre-installed. The plugin now stores the blacklists in the database and uses a new plugin API function to filter comment posts [Tom Willet, Tony, Blaine, Dirk]
- Plugins can now offer their own tags to allow easy linking to their content. These tags take the form [name:id link text], where 'name' is a name associated with the plugin, 'id' is a unique id referring to one of the objects under the plugin's control, and 'link text' is text used in the <a> tag that Geeklog creates from these tags. Built-in tags are [story:] to link to a story and [event:] to link to an event [Blaine, Dirk]
  Example: [story:email-bug About the email bug] would be translated into <a href="http://example.com/article.php/email-bug">About the email bug</a>
- portal.php now sends a 301 HTTP status code for the links instead of a 302. While a 302 status code would actually make more sense, Google does have a tendency to list search results with the URL of the portal script but with the content of the linked site, thus giving the impression that the content is actually located on another site. Sending a 301 avoids this problem [Dirk]
- Group Admins should not even see the groups of which they are not a member (bug #280) [Dirk]
- Prevent Group Admins from listing the members of a group unless they are a member of that group themselves [Dirk]
- Introduced $_CONF['left_blocks_in_footer'] config option that makes the {left_blocks} variable available in footer.thtml (disabling it in header.thtml at the same time). This is really only useful for two-column layouts where you want the side blocks in the right column [Dirk]
- Polls linked from the stats page now display the result of the poll instead of letting the user vote on them (feature request #267) [Dirk]
- In the Admin's list of events and stories, don't list items for which the Admin doesn't have read access (bug #269). [Dirk]
- Story IDs are now editable (just like the IDs of static pages). [Dirk]
  Important: Update the story editor template (admin/story/storyeditor.thtml)!
- Fixed a bug that reset every user's password request as soon as some user changed their account information (bug #265) [Dirk]
- Added support for URL rewriting to portal.php [Dirk]
- The links for the What's Related block are stored in the 'related' field in the gl_stories table again. Parsing the story for links every time it is rendered uses too much CPU power (with apologies to groklaw.net) [Dirk]
- Added theme variable {story_link} to commentbar.thtml to link back to original story the comments are derived from. [Vinny]
- Introduced new file system/lib-story.php for story-related functions and moved COM_article, COM_whatsRelated, COM_extractLinks, as well as the code to delete article images into that file (functions were renamed accordingly: STORY_renderArticle, STORY_whatsRelated, STORY_extractLinks) [Dirk]
- Fixed URLs to userphotos and story images when $_CONF['path_images'] had been changed (but was still inside of $_CONF['path_html']) [Dirk]
- Added a script to convert an existing database to InnoDB tables (if the MySQL version supports them): admin/install/toinnodb.php [Dirk]
- Added missing closing </a> tag in story search results (bug #260) [Dirk]
- Added a second parameter to function COM_makeList that is used as a CSS class name in the list it returns (use {list_class_name} to get the actual class name, and {list_class} to get class="classname"). Changed the existing calls to COM_makeList to include class names, so that you can now use the following class names in your stylesheet to style lists: 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) [Dirk]
- Moved the docs directory to public_html/docs and added a link to it from the Admin's block (can be switched off in config.php by setting the new option $_CONF['link_documentation'] = 0) [Dirk]
- Replaced 'ppmtojpeg' with 'pnmtojpeg' when using NetPBM for scaling uploaded JPEG images (bug #257) [Dirk]
- Added a check (and a warning message) for PHP 4.1.0 to the install script, as that is our new minimum requirement [Dirk]
- Rewrote install/success.php and added a link to install/check.php [Dirk]
- Added the 'data' and 'pdfs' directory to install/check.php [Dirk]
- Integrated the "welcome email hack": If the file 'welcome_email.txt' exists in the 'data' directory, the contents of that file are sent out as the welcome email to new users (instead of the hard-coded welcome message) [Dirk]
- Introduced a 'data' directory ($_CONF['path_data'], defaulting to /path/to/geeklog/data) and use it for the batch user import, as Geeklog's base directory may not be writable on some setups (bug #77) [Dirk]
- Sort list of older polls by date (newest first) and added paging [Dirk]
- Make sure the old userphoto is deleted when uploading a new one (bug #228). So far, the old photo was not removed when the file type changed (e.g. from .gif to .jpg) [Dirk]
- Don't assume the uploaded file in usersettings.php is always the userphoto - it may in fact belong to a plugin (bug #179). This bug prevented plugins from uploading their own files through the plugin API [Dirk]
- Fixed repeating events in the personal calendar's day view (bug #232) [Dirk]
- COM_siteHeader() now accepts a page title (to go between the page's <title>...</title> tags) as the second parameter, replacing the $_CONF['pagetitle'] hack (which still works but should be avoided) [Dirk]
- In the site's page title, replace the site slogan with more meaningful information, where possible, e.g. "Submit a Story" on the story submission form, "Search Results", etc. (feature request #95) [Dirk]
- Fixed deleting events from the personal calendar (bug #199) [Dirk]
- Carry over the date and time from the calendar when Admins add a new event (bug #132) [Dirk]
- Don't display "Site Events" headline in the Upcoming Events block when personal calendars are off (feature request #151) [Dirk]
- Removed hard-coded am/pm formatted hours from the calendar's day view (calendar/dayview/dayview.thtml) and replaced them with {xx_hour} variables, where 'xx' is 0-23, which will be replaced with the hours formatted according to the $_CONF['timeonly'] config variable [Dirk]
- Themes can now use a couple of CSS class names to style the small calendar (of the previous and next month) in month view: .smallcal, .smallcal-headline, .smallcal-week-even, .smallcal-week-odd, .smallcal-week-empty, .smallcal-day-even, .smallcal-day-odd, and .smallcal-day-empty [Dirk]
- Improvements to the Story Archive Feature, UI tweaks, Language Extraction, Added new field to the topics table. Admin now sets the archive topic in the Topic Editor. Only one topic can be used - logic enforced. [Blaine]
- Don't emit the <br><br> in article.php when the story's body text is empty (based on patch #147, provided by Andy Maloney) [Dirk]
- Set {article_url} variable when displaying the story in article.php [Dirk]
- Fixed missing </select> tags for the comment display mode and sort order drop-down menus in usersettings.php (patch #255, provided by machinari) [Dirk]
- Hard-coded the names of the pseudo image tags in story.php, i.e. they are always [imageX], [imageX_left], and [imageX_right] now, independent of the current language file (bug #139) [Dirk]
- Added the Auto-Archive Management feature. Optionally allows the Story Editor to archive or delete a story when the expire date is reached [Blaine]
- Improved the commentbar to logically support comments viewed from comment.php [Vinny]
- Removed a bug in comment.php that allowed a story/comment mismatch during display. This was not exploitable. [Vinny]
- Integrated the timezone hack to compensate for time differences when your webserver is located in another timezone (original timezone hack by Yew Loong, with additions by "Joe" as well as several other geeklog.net users) [Dirk]
- The calendar can now be configured so that the week starts on either a Sunday or a Monday - see new config variable $_CONF['week_start']
  (based on a patch by bond_anton) [Dirk]
- Sort the admin's list of events by date (newest first). Also added paging, a row number and parameter filtering. Paging and the row number require theme changes in admin/event/eventlist.thtml and listitem.thtml [Dirk]
- Incorporated a patch provided by Drago Goricanec to sort the Admin's user list by uid [Dirk]
- Introduced 2 config options for the Who's Online block:
  - $_CONF['whosonline_fullname'] will display the user's full name,
  - $_CONF['whosonline_anonymous'] does not display the names of registered users to anonymous visitors of the site.

  Both options are disabled by default [Dirk]

- Added support for single quotes and nested tags to COM_extractLinks [Vinny]
- The admin_html and user_html are now merged recursively (bug #240) [Vinny]
- Remove colons from email addresses, as they have a special meaning, according to RFC(2)822, that we didn't intend (bug #6) [Dirk]
- Fixed compilation of regexp if the search query ended or started with a space (the resulting error message would also expose the path to article.php), (bug #251) [Dirk]
- Sort the admin's list of polls by date (newest first). Also added paging, a row number and parameter filtering. Paging and the row number require theme changes in admin/poll/polllist.thtml and listitem.thtml [Dirk]
- Added paging to the plugin editor (for more than 25 installed plugins). A {google_paging} variable is needed in admin/plugins/pluginlist.thtml for the paging links to show up [Dirk]
- Emails sent from the Admin's mail form (admin/mail.php) were always sent with the site name and site email address, even if you entered something else in the form. Also made admin/mail/mailform.thtml slightly less ugly [Dirk]
- When deleting a topic, keep the blocks assigned to that topic (bug #247). They're assigned to 'all topics' and disabled, but kept around now. The same applies for topic feeds, which weren't handled at all before [Dirk]
- Make sure upload errors for user photos and story images are displayed in a Geeklog block, not on a blank screen [Dirk]
- Fixed description of DB_insertId() in lib-database.php and dbInsertId() in mysql.class.php: The functions take a resource, describing the opened link to the database, not a record set (pointed out by lgonze on IRC). [Dirk]
- Plugins are now getting the key type passed to their search function, so that they can perform a search for "exact phrase", "all of these words", or "any of these words" as selected from the search form. [Dirk]
- Use URL rewriting for the link to a story's printer-friendly version, when activated (bug #201) [Dirk]
- Resizing an image didn't work when the image height exceeded the max. height but the image width was still below the max. width (bug #242) [Dirk]
- Keeping the unscaled image when using GDlib didn't work (bug #197) [Dirk]
- Added a workaround for the Zeus webserver so that blocks marked "homeonly" properly appear there (bug #244) [Dirk]
- Previewing a story submission from admin/story.php before saving it left the original story submission in the submission queue while also adding it as a new story. This has been fixed now [Dirk]
- Added {article_url} variable for article/printable.thtml so that we can print the proper URL to the article if URL rewriting is on [Dirk]
- Added filtering for the $order parameter in article.php [Dirk]
- Added {link_actual_url} variable in links.php, holding the actual URL of a link (not Geeklog's redirect URL via portal.php). Updated template file links/linkdetails.thtml in all default themes to use {link_actual_url} in a title attribute for the links [Dirk]
- The event description now honors linefeeds to allow some basic text formatting [Dirk]
- Escape all PCRE special characters in the code to highlight search query words (bug #200). Also moved the code to its own function, COM_highlightQuery, in lib-common.php [Dirk]
- The contents and order of the menu entries, i.e. of the {menu_elements} variable in header.thtml, is now configurable in config.php (new config variable $_CONF['menu_elements']). It also includes an option to add custom entries by implementing a function CUSTOM_menuEntries() that returns the additional entries [Dirk]
- Use an UPDATE request when increasing the number of times a story has been emailed [Dirk]
- When an error occurs while creating a backup, the complete command line used to call mysqldump is now added to error.log [Dirk]
- Added 'view' mode to allow links directly to a single comment (and optionally its children) in comments.php. [Vinny]
- Added a few variables to be used in the eventdetails.thtml template file:
  - {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 [Dirk]
- Registered users can now report abusive comments to the site admin (inspired by Feature Request #171, which actually requested this for the forums). Requires new text strings in the language files and a new template file, comment/reportcomment.thtml [Dirk]
- Bugfix: New users created through the batch import didn't get the email with their password [Dirk]
- Moved function to create and send a password to lib-user.php to avoid having identical code in users.php, admin/user.php, and admin/moderation.php [Dirk]
- Added {topic_image} variable (available in the topicoption.thtml and topicoption_off.thtml template files) so that you can use topic images in the Topics block (feature request #152) [Dirk]
- COM_undoSpecialChars() now also handles &nbsp; (bug #192) [Dirk]
- Fixed handling of HTML entities in [code] sections (bug #159) [Dirk]
- Added an option to look up IP addresses (new variable $_CONF['ip_lookup'] in config.php, pointing to a service that does IP address lookups) [Dirk]
- Fixed problems with the database backup when there were spaces in the path to the backups directory (bug #185). [Dirk]
- Added email notification for new comments (feature request #155) [Dirk]
- Added tracking of IP addresses of comment posters (as suggested by Michael Jervis) [Dirk]
- Altered COM_article to improve performance by reducing queries. [Vinny]
- Reduced DB queries in COM_showTopics to improve performance. [Vinny]
- Cached enabled plugins to reduce db queries and improve performance. [Vinny]
- Fixed SEC_inGroup not using $_GROUPS cache in several instances. [Vinny]
- mysql.class.php now only runs mysql_connect once per page load. [Vinny]
- The "Google paging" now has additional links to jump to the first and last page (patch provided by Niels Leenheer). [Dirk]
- Introduced function COM_makeClickableLinks to turn URLs in text-only posts into clickable links (i.e. it's adding <a> tags around URLs). [Dirk]
- Changed the comment insert, delete, display algorithms for improved efficiency. They now use a modified preorder tree traversal method. [Vinny]
- Comment limit now applies to all the comments displayed, not just the top level comments. [Vinny]
- Added pagination ability to comments ({pagenav} template variable in startcomment.thtml). [Vinny]
- Fixed typo in timer.class.php that broke the ->restart() function. [Vinny]
- Make sure the database backup files are always sorted by (last modified) date (found & fixed by Alexander Schmacks). [Dirk]
- Make sure the user's preferred comment limit is used when changing the comment display via the comment bar (bug #176). [Vinny]
- When URL rewriting is activated, the "rewritten" URLs are now also used in all (RSS) feeds containing links to articles. [Dirk]
- Experimental: On a fresh install, use InnoDB tables (instead of MyISAM) if the MySQL version running on the server supports them (usually as of MySQL 4.0). This should avoid locks on tables where hit counters and the actual data are stored in the same table, e.g. stories (suggested by Marc Von Ahn). [Dirk]
- Fixed bug in the install script when upgrading from 1.3.8 or earlier: Check to see if the 静的ページプラグイン is installed before attempting to update its tables (reported by Rob Griffiths). [Dirk]
- Implemented a change to DB_fetchArray, suggested by Niels Leenheer: Geeklog will now, by default, only return associative array indices. In case the numeric indices are needed, a new (optional) second parameter for DB_fetchArray has to be set to "true". [Dirk]
- Removed extra quotes in SQL statements in admin/block.php to ensure compatibility with old MySQL versions (reported by Elmer Masters). [Dirk]
- In admin/database.php, if the is_executable function is not available (e.g. on Windows), do at least a file_exists to check if the mysqldump executable exists in the path given in config.php. [Dirk]
- Introduced function COM_getTopicSQL which returns part of an SQL request to check for a user's topic access [Dirk]
  (This was actually introduced in 1.3.9sr1 but missing from the changelog)

Language files

- New Bosnian language file, provided by Kenan Hodzic
- Updated Croatian language file, provided by Roberto Bilic
- New Indonesian language file, provided by Piotr Sobis
- Updated Norwegian language file, provided by Torfinn Ingolfsen

### 静的ページプラグイン 1.4.1

- Added a printable version for static pages (based on a concept by Jannetta S Lewis). Requires a new template file, printable.thtml, located in the static pages' template directory [Dirk]
- Added support for autolinks and provide a [staticpage:] autotag [Dirk]
- Added an option to sort the static pages that are added to a site's menu (see {plg_menu_elements} in header.thtml) by id, label, title, or date [Dirk]
- The block templates used to wrap a static page in a block can now be overridden, using '_staticpages_block' and '_staticpages_centerblock' as the index for the $_BLOCK_TEMPLATE array [Dirk]
- The plugin now checks for template files in the current theme's directory (layout/THEMENAME/staticpages) first before using the default template files from plugin/staticpages/templates [Dirk]
- When displaying a static page, the plugin no longer checks if the current user is a member of the Root group, so that "Root" users shouldn't see static pages that are for anonymous users only [Dirk]
  This change was actually supposed to be in Static Pages 1.4 (Geeklog 1.3.9), but somehow didn't make it ...
- For center blocks, ignore the "blank page" setting, unless it's for a page that is supposed to replace the entire frontpage (bug #234) [Dirk]
- The static pages editor doesn't display a "delete" button for new and cloned pages any more (since, obviously, you can't delete what hasn't been saved yet ...). [Dirk]
- Bugfix: Fresh installs of Geeklog 1.3.9 only allowed 20 characters for the static page ID, while installs upgraded from an earlier version allowed up to 40 characters [Dirk]
- New Portuguese (Brazil) language file, provided by Alcides Soares Filho.

## Mar 5, 2006 (1.3.9sr5)

This release addresses the following security issues:

- Konstantin Dyakoff found an old bug in the session handling that would allow anyone to log in as any user.
- James Bercegay of GulfTech Security Research reported several issues with Geeklog's cookie handling that made it vulnerable to SQL injections, arbitrary file access, and even injection and execution of arbitrary code.
- Prevent execution of PHP code in "normal" blocks

## Jul 3, 2005 (1.3.9sr4)

This release addresses the following security issue:

Stefan Esser found an SQL injection that can, under certain circumstances, be exploited to extract user data such as the user's password hash.

## Dec 31, 2004 (1.3.9sr3)

This release addresses 2 security issues:

1. It was possible to submit stories anonymously even if anonymous submissions were turned off in config.php (reported by Barry Wong). These stories still ended up in the submission queue, though, unless you disabled it in config.php.
2. Some of the parameters in link and event submissions weren't filtered, leaving them open to potential SQL injections.

## Oct 8, 2004 (1.3.9sr2)

This release addresses 2 security issues:

- Fixed a cross site scripting vulnerability caused by using the $topic variable in the language files ($LANG05[3]) where it should have been using '%s' instead (bug #293) [Vinny, Dirk]
- It was possible to post comments to stories or polls for which comment posting had been switched off [Dirk]
  This was only a problem if you allowed anonymous posts or when spammers went through the trouble of actually signing up for an account before posting.

Non-security related fixes:

- Fixed lib-plugins.php to be compatible with PHP 5 [Dirk]
- Includes updated PEAR packages to resolve email problems some users were having (especially with safe_mode being on).

## Jun 1, 2004 (1.3.9sr1)

This release addresses the following security issues:

- It was possible to post anonymous comments, even when anonymous comment posting had been switched off in config.php [Vinny, Dirk]
- Added additional speed limit checks for comments and submissions [Vinny]
- It was still possible to read the comments to stories, even when the user didn't have access to the story's topic (provided they knew the story id) [Vinny, Dirk]
- If none of the topics were visible for anonymous users, the site's index page may still have displayed some stories for anonymous users, depending on the stories' permissions [Vinny, Dirk]
- Users still got Daily Digest emails for topics from which they had been removed (bug #178) [Dirk]
- It was possible to subscribe to the Daily Digest for all topics, even if the user did not have access to certain topics [Dirk]
- Don't list stories or comments in the user profile if the current user isn't allowed to see the topics they were posted under (bug #208) [Dirk]

Non-security related fixes:

- Fixed an SQL error in COM_showTopics if users excluded topics in their preferences (reported by Rob Young) [Dirk]
- Fixed sporadic "Duplicate entry '...' for key 1." messages in error.log (caused by the handling of pseudo-session ids for anonymous users) [Dirk]
- Fixed incorrect author names in Daily Digest (bug #207) [Dirk]
- The plugin_profileblocksedit_<plugin-name> Plugin API function wasn't working due to a missing piece of code in usersettings.php [Dirk]
- COM_extractLinks will now ignore anchor tags that do not contain "href" (bug #183) [Vinny]

## Mar 14, 2004 (1.3.9)

- Custom Registration function hook to custom_useredit added in the edituser() when creating a new user from the admin screen. The custom function was not being called if this was a new user [file: admin/user.php].
- Fixed wrong use of DB_count in COM_showPoll in lib-common.php. This may have prevented people from voting on other polls once they voted on any poll on a site [file: lib-common.php].
- Updated Danish language file, provided by ZooN.
- Updated Hebrew language file, provided by Tal Vizel (please note that this file was made for 1.3.8-1 and is missing a few of the texts added in 1.3.9).

## Mar 7, 2004 (1.3.9rc3)

- Fixed call to CUSTOM_mail and added a sample implementation in lib-custom.php (commented out by default).
- Made an attempt to recover from duplicate session ids for anonymous users.
- Adding new topics always resulted in a "Please fill in the Topic ID and Topic Name fields" error message, even if you did fill in both fields (this bug was only introduced in 1.3.9rc2).
- Filter out backslashes.
- Comment titles were cut off at the first single or double quote (when submitting a new comment).
- The text string $LANG04[89] in all language files must be enclosed in double quotes, not single quotes.
- Updated Hebrew language file, provided by Tal Vizel.
- Updated Polish language file, provided by Robert Stadnik.
- Updated Polish language file for the 静的ページプラグイン, provided by Robert Stadnik
- Updated Russian language file, provided by Denis Kuznetsov.
- Updated Slovenian language file, provided by gape.
- Included UTF-8 versions of the Croatian and Japanese language files, provided by Samuel Stone.

## Feb 29, 2004 (1.3.9rc2)

- The new Admin interface for handling blocks (introduced in 1.3.9rc1) will renumber the block order in steps of 10, which can lead to order numbers > 255 if you have many blocks. Changed the 'blockorder' field in the "gl_blocks" table from TINYINT to SMALLINT to compensate.
  If you are upgrading from 1.3.9rc1, you will need to run the following SQL request manually:
  `ALTER TABLE gl_blocks CHANGE blockorder blockorder smallint(5) unsigned NOT NULL default '1';`
  Replacing "gl_blocks" with the proper table name, if you are using a table prefix other than 'gl_'. This step is not necessary when upgrading from 1.3.8 or earlier versions.
- The Group Admin restrictions introduced in 1.3.9rc1 didn't even let the Admin assign unassigned features to groups (e.g. there was no way to add the staticpages.PHP feature to the Static Page Admin group on a fresh 1.3.9rc1 install).
- When normal users tried to submit an event, they were redirected to the story submission form (this bug was only introduced in 1.3.9rc1).
- Cosmetic changes in the beautifying of language names (in the user's preferences).
- Fixed COM_extractLinks to work with links that follow [IMAGE] tags and more generally handle the extraction of links better and more efficiently.
- If a function CUSTOM_mail() exists, it will be called instead of COM_mail(), to allow users to implement their own function to send emails, if necessary.
- The 静的ページプラグイン now supports the "exact phrase", "all of these words", and "any of these words" search options.
- Included a simplified custom registration example and made the naming convention for the custom registration functions more consistent.
- Fixed display problems with comments in nested and threaded mode. Please note that the template file comment/comment.thtml has changed (again) since 1.3.9rc1!
- Don't rely on the Who's Online block being active when handling sessions for anonymous users.
- Removed some unused code that handled the obsolete "layout" blocks.
- Try to guess the correct path separator when running on PHP < 4.3.0.
- When upgrading from a pre-1.3.9 install, the install script choked on single quotes in the site name or site slogan.
- More parameter filtering.
- Included UTF-8 versions of the English, German, Finnish, and Chinese (traditional and simplified) language files, provided by Samuel Stone.
- Added new Croatian language file, provided by Roberto Bilic.
- Added new Finnish language file, provided by Jussi Josefsson.
- Added new Hebrew language file, provided by Tal Vizel.
- Updated Dutch language file, provided by Wim Niemans.

## Feb 16, 2004 (1.3.9rc1)

- Use COM_getYearFormOptions() etc. for the event submission form in submit.php, thus avoiding duplicated code.
- Plugins can now add their new entries to the What's New block by implementing the new plugin_whatsnewsupported and plugin_getwhatsnew API functions.
  This section can be enabled/disabled with the new $_CONF['hidenewplugins'] config variable.
- When a user is deleted, make sure we assign any objects that require Admin access (blocks, topics, ...) to a user from the Root group.
- Slightly revamped the install script and made it catch (or silently ignore) the most popular problems with the path to Geeklog ...
- Removed the hard-coded &nbsp; from {welcome_msg} and added it 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} anyway).
- Added a missing stripslashes() call for link titles returned from a search.
- Fixed bug when highlighting search queries that contained a '*' (reported by wlparks).
- Fixed a bug/typo introduced in 1.3.8-1sr4 that prevented you from deleting story submissions from the Admin's story editor (reported by James Bothe).
- Changed all url fields in the database to hold up to 255 characters per URL. Please note that the template files in most themes will limit the max. number of characters to 96 or 128 characters. See docs/theme.html for more information on how to update the themes.
- Fixed problems batch-importing users with single quotes in their names (bug #141).
- The permissions for the "Group Admin" group have been changed such that members of that group now only have access to groups of which they themselves are a member of. When creating new groups, the rights (permissions) to chose from are also limited to those that the Group Admin users have themselves. These changes should make the Group Admin group more useful.
  Note: Group admins can still see all the existing groups and who is a member of those groups.
- Fixed search class so that the simplified and the advanced search return the same results (as long as none of the advanced options are used).
- Added new config variable $_CONF['allowed_protocols'] which lets you specify the protocols that are allowed to be used in a link (feature request #109).
  Note: The kses class has a hard-coded list of allowed protocols to which the above will be added. It is currently not possible to remove any of the predefined protocols.
- Introduced variable {allowed_menu_elements} in header.thtml which only includes those menu elements that the current user is allowed to use (i.e. honoring the $_CONF['XXXloginrequired'] settings).
- COM_accessLog() now logs the user's uid and IP address automatically.
- The option to stay logged in for 1 year has been removed and an option to not stay logged in (after the session has expired) has been added.
- Fixed display of default blocks in the user preferences.
- If the user chose not to see certain topics (by selecting them from the "Excluded Items" list in the preferences) then don't list those topics in the Topics block.
- After saving your account information, you are now redirected to your profile page, so that you can see your changes as they would be displayed for other users of the site.
- Integrated Vincent Furia's patches to use Geeklog's URL rewriting for links to stories (i.e. article.php).
- In the story templates, you can now use {article_url} as the URL to the article.php with the current story (e.g. for a "link to this story" link).
- There is a new file, system/lib-user.php, for user-related code that is used by usersettings.php, admin/user.php, and admin/moderation.php.
- All template files that let you enter a URL are now using {max_url_length} for the maxlength attribute.
- Access to admin/mail.php is now granted to all users with 'user.mail' permissions (previously, users with that permission without being in the 'Mail Admin' group would see the "Mail Users" entry in the Admin block but were refused access to it).
- The list of group names in the Mail Users form is now sorted alphabetically.
- Any unauthorized attempts to access the admin pages are now properly logged in access.log.
- Fixed problems when resizing userphotos for user names that have spaces in them (reported by Per on geeklog-users).
- Now accomodate strict webhosts who don't allow file uploads to the standard image directory, you can now set a new configuration variable, $_CONF['path_images'] to point to a directory outside of your webtree where article images and user profile pictures will be saved and served from.
- Don't append a '-' to the page title if $_CONF['site_slogan'] is empty (feature request #88).
- COM_getMonthFormOptions() now always lists the month names instead of only the numbers. COM_getYearFormOptions() also lists the previous year.
- Changed admin/event.php to use the COM_getMonthFormOptions() etc. functions from lib-common.php, thus avoiding duplicated code.
- In the calendar/calendar.thtml template file, you can now use {start_block} and {end_block} to wrap the calendar in a block.
- Fixed a few display problems in case of errors in calendar_event.php. Also made calendar.php display messages sent from calendar_event.php.
- Make sure the custom registration form is properly called from all relevent places (bug #57).
- Single quotes are now silently stripped from topic IDs (bug #113).
- Fixed search displaying all the links for an empty search string, e.g. when searching for "more from" some user (bug #87).
- Fixed link from search results that contained a '/' (bug #115).
- Comments from a story that has been marked as "draft" are no longer returned from a search (bug #128).
- The Admin's link list now uses "google paging", 50 links per page (bug #104).
  Note: Requires a change in the admin/link/linklist.thtml template file.
- (Block)Admins can now change the order of blocks and enable / disable blocks directly from the Admin's list of blocks (based on a concept by stratosfear).
- An alternative interface to adding (multiple) users to a group is now available from the Admin's list of groups. This feature requires JavaScript.
- Fixed display of permissions in the "Access" column of the Admin's list of stories (didn't take Topic permissions into account).
- Fixed handling of "0" as a poll answer (bug #73).
- Added a check and warning message in admin/moderation.php if register_globals is "off".
- Changed function COM_isEmail() to use PEAR::Mail/RFC822 to check for valid email addresses.
- Added an edit icon to each theme (images/edit.gif). Variable {edit_icon} can be used as an alternative to {edit_link}, i.e. as an icon that Story Admins can click on to edit a story.
- You can now enable debug messages (to error.log) for the image upload by setting $_CONF['debug_image_upload'] = true in config.php.
- When deleting a group, delete all references to that group from the group_assignments table (bug #50). The install script will remove any orphaned entries when upgrading the database to 1.3.9.
- The option to delete comments was only available to users in the Root group (e.g. Admin). Since comments don't have permissions, comments can now be deleted by users with Story Admin permissions for the story they are commenting on (or Poll Admin permissions for comments on polls; bug #27).
- Display a generic (and localised) error message when there is a problem importing an (RSS) feed - details will be available in error.log. Also checks for empty (but existing) feeds now.
- When the user submission queue is activated, you now have an "edit" link that takes you to the Admin's user editor (the profile link is now on the username). Contributed by Ed Magin.
- COM_siteHeader() now uses output buffering for the eval(), preventing the header from being output directly.
  Note: This may require changes in 3rd party scripts, e.g. the Geeklog/Gallery integration.
- The install script will set the 'date' field for links to sensible values now (reconstructed from the date that's encoded in the link id).
- The author exclusion list in the preferences is now a (multi-select) listbox.
- A proper error message is now displayed if the Admin creates a new user or changes an existing account with an email address that already exists (that test was already introduced in 1.3.8-1 but the error message was confusing), thus closing bug #24. Also checks for valid email addresses now.
- You can now use {author_fullname} and {author_photo} variables in comment templates (feature request #35).
- Remove extra backslashes from new links in What's New block (bug #59).
- The [code] tag is now displayed in the list of allowed HTML tags.
- Image upload can now use the GD library (contributed by Rob Coenen). If possible, GIF images will be converted to PNGs during upload. However, some versions of the GD library may not allow to read GIF images at all.
- Geeklog now uses PEAR::Mail to send all emails. In config.php, you can select whether emails should be sent via PHP's mail() function, sendmail, or SMTP.
- Introduced /path/to/geeklog/system/pear as the directory to hold the PEAR packages used by Geeklog. Currently, those are PEAR, Mail, Net_SMTP, and Net_Socket. These packages will be included in the releases from now on.
- Introduced function COM_mail(). From now on, all Geeklog email will be sent from this function (instead of using PHP's mail() function directly).
- When users try to register with an empty username or invalid email address, make sure we're displaying a custom registration form (if one exists) when displaying the error message (part 1 of bug #57).
- Prevent users from registering with an empty username (bug #56).
- Use $_CONF['emailstoriesperdefault'] when batch-adding users. Until now, new users were subscribed to the Daily Digest automatically (bug #55).
- Added an 'edit' link to links/linkdetails.thtml, so that (Link) Admins can edit links easily (contributed by Euan McKay).
- What's Related applied COM_checkHTML() on the entire block instead of on the individual items, thus stripping out HTML from the template file (bug #52).
- Words from a search query are now properly highlighted in comments when the words occured only in the comments (but not in the story).
- Integrated Vincent Furia's new comment code to use templates for comments (instead of hard-coded HTML).
  New template files: comment/comment.thtml, comment/thread.thtml.

Updated: comment/startcomment.thtml

- New Admin interface for content syndication (RSS feeds etc.). This lets you create feeds for all the stories and per topic as well as for links and (upcoming) events. Plugins can also provide feeds (through extensions of the Plugin API). Additional feed formats (other than RSS 0.91) can be implemented as new classes (xxx.feed.class.php). Includes new admin/syndication template directory.
- Don't display the "delete" button in the Admin's Event editor when we're editing a new event (reported by Simon Lord).

### 静的ページプラグイン 1.4

- It is now possible to disable the use of PHP in static pages entirely by setting $_SP_CONF['allow_php'] = 0 in the static pages' config.php file. If you don't plan on using PHP in static pages, it is recommended that you do that as an additional security measure.
- You can now use "plain PHP" code in a static page, i.e. it doesn't need to be written such that it returns all output in a 'return' statement. The PHP checkbox has been replaced with a dropdown menu offering "do not execute PHP", "execute PHP (return)" [that's the old way], and "execute PHP" [new].
- The ID of a static page can now have up to 40 characters.
- When displaying a static page, the plugin no longer checks if the current user is a member of the Root group, so that "Root" users shouldn't see static pages that are for anonymous users only.
- The option to wrap static pages in a block can now be applied to each page individually. $_SP_CONF['in_block'] is only used as the default setting for new pages.
- Static pages to be displayed after the featured story (in a center block) are now displayed even if there is no featured story (after the static pages to be displayed at the top of the page).
- Static pages are not wrapped in a block when the page format is set to "blank page" (bug #60).
- Added a "Cancel" button in the static pages editor.
- Bugfix: Depending on the permission settings, the "Edit" link was sometimes displayed for users without them having edit permissions for the static page. It wasn't possible to edit the page, though, but the link shouldn't have been there in the first place.
- For security reasons, the Static Page Admin group does not include 'staticpages.PHP' permissions by default any more.
- When a user is deleted, static pages created by that user can now either be deleted or assigned to a Root user (see $_SP_CONF['delete_pages'] option).

Please see docs/staticpages.html for details.

## Oct 8, 2004 (1.3.8-1sr6)

This release addresses 2 security issues:

- Fixed a cross site scripting vulnerability caused by using the $topic variable in the language files ($LANG05[3]) where it should have been using '%s' instead (bug #293) [Vinny, Dirk]
  Note: german.php was not affected and is therefore not included.
- It was possible to post comments to stories or polls for which comment posting had been switched off [Dirk]
  This was only a problem if you allowed anonymous posts or when spammers went through the trouble of actually signing up for an account before posting.

## Jun 1, 2004 (1.3.8-1sr5)

This release fixes a bug due to which it was possible to post anonymous even when anonymous comment posting had been switched off in .php.

To upgrade from Geeklog 1.3.8-1sr4 to 1.3.8-1sr5, simply upload the included .php, replacing the file of the same name on your webserver.

## January 26, 2004 (1.3.8-1sr4)

This release addresses the following security issues:

1. It was possible for users in the Group Admin and User Admin groups to become a member of the Root group (reported by Samuel M. Stone, bug #135).
2. Being admin for a certain area (e.g. Story Admin for stories) made it possible to delete all objects in that area (e.g. stories) even if the user was not supposed to have access to them, provided the id of the object was known.
3. It was possible to delete other people's personal events if you knew the event ID.
4. It was possible to browse through the comments of a story even if the user did not have access to the actual story (reported by Peter Roozemaal).
5. Due to an XSS issue, it was possible to change someone's account settings (including the password) if you got them to click on a specially crafted link (reported by Jelmer, fix suggested by Vincent Furia).
6. The comment display suffered from the possibility of an SQL injection (reported by Jelmer).
7. It was possible to inject Javascript code in the calendar (reported by Jelmer).
8. It was possible to execute (but not save) Javascript code in the comment preview (reported by Jelmer).

## December 5, 2003 (1.3.8-1sr3)

This release addresses the following security-related issues:

1. As "dr.wh0" pointed out, the category field for link submissions was not filtered at all. Although you probably can't cause too much harm with those 32 characters, this has now been fixed.
2. Vincent Furia found that the restrictions for the form to email users could be circumvented and could even be used to spam users.
   In addition to fixing theses issues, there is now also a speed limit on that form (defaults to the speed limit for story submissions).
3. There was a way to post comments anonymously even when posting for anonymous users had been disabled.
4. It was possible to post comments under someone else's username.

## October 14, 2003 (1.3.8-1sr2)

Jouko Pynnonen found a way to trick the new "forgot password" feature, in 1.3.8, into letting an attacker change the password for _any_. This release addresses this issue - there were no other changes.

The only thing you need to do is to replace the file users.php on your site the file that comes with this tarball. It's suggested that you change the version number in your config.php to '1.3.8-1sr2' afterwards.

Please note that only Geeklog 1.3.8, 1.3.8-1, and 1.3.8-1sr1 are affected, as this feature did not exist in earlier versions.

## October 12, 2003 (1.3.8-1sr1)

This release is intended to address some of the security issues reported in September and early October 2003.

1. Includes Ulf Harnhammar's kses HTML filter to address possible Javascript injections and CSS defacements.
2. When upgrading from an earlier version, please make sure to copy over the $_CONF['user_html'] and $_CONF['admin_html'] arrays from the included config.php to your own copy of that file.
3. While almost all of the alleged SQL injection issues could not be reproduced, this release includes an update to the MySQL class to not report SQL errors in the browser any more (but only in Geeklog's error.log). This will avoid disclosing any sensitive information as part of the error message.
   Please note that at the moment we do NOT recommend to use Geeklog with MySQL 4.1 (which, at the time of this writing, is in alpha state and should not be used on production sites anyway).
   An upcoming release of Geeklog will address the remaining SQL issues, including any problems with MySQL 4.1.

Other fixes (not security-related):

- When trying to guess the value of $_CONF['cookiedomain'], we need to remove the port number from the URL, if there is one (bug #75).
- The full 1.3.8-1sr1 tarball also includes updated French (Canada) and Turkish language files.

## August 9, 2003 (1.3.8-1)

- When upgrading, the install script will now default the version selection to the last version in the list (currently: 1.3.7) instead of the first one (1.2.5-1).
- Don't allow HTML in static page titles (bug #26).
- Display the search form again if the query returned no results.
- Make sure we're not attempting to send a Daily Digest email to Anonymous.
- Prevent admin from changing a user's email address to one that's already used by someone else (bug #24). The error message you get when you try this may be confusing, though ("The username you tried saving already exists.") since I don't want to introduce new texts in the language file at this point. To be corrected later.
- Fixed a problem with the cookie timeout: When a user edited his/her profile for the first time, the cookie timeout defaulted to 1 hour, while the default in config.php was usually much longer (default: 1 week). So after editing their profile for the first time, users didn't stay logged in as long as before (unless they noticed that and changed the cookie timeout accordingly themselves).
- Fixed problems in the install script when trying to find out the MySQL version number.
- Fixed a problem collecting links for the What's Related block when the article contained (uploaded) images.
- Words from a search query are now hightlighted in comments as well.
- You can now use variables {rss_url} and {rdf_file} in both the site header and footer. Both variables hold the URL to the RSS feed.
- Fixed an occassional "call to member function of non-object" error message in lib-plugins.php.
- Make sure the RSS feed and Older Stories block are updated when a story is deleted.
- The language selection will only list files that end in .php and do not start with a '.'.
- Fixed links to a user's comments from the Last 10 Comments block in the user profile.
- Removed '&query=' from links in search results if the query was empty.
- Anonymous users couldn't use the advanced search even if $_CONF['searchloginrequired'] was not set.
- Fix to disallow access to the extended search for anonymous users (i.e. $_CONF['searchloginrequired'] works again as it did in 1.3.7)
- Fixed search by date.
- Template variable {uid_value} was always empty in the user's profile edit form (in usersettings.php).
- New French (Canada) language file, provided by Jean-Francois Allard.
- Updated Dutch language file, provided by W. Niemans.
- Updated Bulgarian language file, provided by Vassil Simeonov and Itso Banov.
- Updated Spanish language file, provided by Angel Romero.
- New French (Canada) language file for the 静的ページプラグイン, provided by Jean-Francois Allard.
- New Dutch language file for the 静的ページプラグイン, provided by W. Niemans.

## July 17, 2003 (1.3.8)

- Added Blaine's sample code for the custom registration to lib-custom.php (there's also an accompanying sample template file, memberdetail.thtml).
- "No new links" wasn't displayed in the What's New block when you didn't have any links in the database or when the current user didn't have access to any of them (reported by krove).
- Applied a patch by Tatsumi Imai to fix problems with Japanese characters when editing polls (bug #17).
- Hide those story submissions from moderators that don't have access to the topic.
- Use $HTTP_SERVER_VARS['PATH_INFO'] instead of $PATH_INFO for the url_rewrite feature, since the latter doesn't seem to work on some setups (reported by Peter Sieradzki).
- Updated Slovenian language file, provided by gape.
- Updated Polish language file for the 静的ページプラグイン, provided by Robert Stadnik

## July 6, 2003 (1.3.8rc2)

- When failing to delete an image for a story (from the Admin's story editor), only log this problem in the error.log but don't abort the script (reported by Rob).
- When editing a story that used double quotes in the title, the title was cut off after the first quote sign.
- Story Admins could edit stories in a topic they didn't have access to, if they somehow found out the story id.
- When $_CONF['listdraftstories'] was enabled, moderation.php listed all stories that had the "draft" flag set without checking for topic permissions (this option was only introduced in 1.3.8rc1).
- For Story Admins, the Admin menu may have listed a greater number of stories than the user actually had access to (didn't check for topic permissions).
- Fixed "Google paging" on the Admin's list of stories when the current user didn't have access to all the topics (paging was only introduced in 1.3.8rc1).
- Try to prevent "illegal access" messages in error.log, caused by the plugin page looking for uninstalled plugins.
- Upcoming events (in the block of the same name) are now sorted by start date and start time, which makes more sense than the old start date, end date sort order (reported by Peter Sieradzki).
- Fixed description of function DB_count() in lib-database.php (reported by jose on IRC).
- Changed the "getBent" block to test the real admin directory in case it has been renamed (bug #762881).
- Saving the user profile also saved the privacy options, setting them all to "off" (reported by Dwight Trumbower).
- Check the topic permissions when doing a search on stories and comments.
- Check the topic permissions when displaying the new stories and comments in the What's New block.
- Need to use date_sub() in the SQL request for the display=new mode on the index page to ensure compatibility with old versions of MySQL (reported by Markus Guske).
- New users created manually from the Admin's User menu were assigned a random password, even when the Admin entered one (reported by TechFan).
  This bug was only introduced in 1.3.8rc1.
- The printer-friendly version of a story in HTML format should not call nl2br() on the story text (bug #762636).
- When attempting to edit a submission, check that it still exists in the submission queue (since another Admin could already have handled it), avoiding an SQL error (reported by Simon Lord).
- New language file for formal German (addressing the user as "Sie" instead of "Du"), provided by Philip Sack.
- Updated Italian language file, provided by quess65.
- Updated Japanese language file, provided by Yusuke Sakata.
- Updated Polish language file, provided by Robert Stadnik.
- Updated Spanish language file, provided by Angel Romero.
- Updated Swedish language file, provided by Markus Berg.
- New formal German language file for the 静的ページプラグイン.
- New Italian language file for the 静的ページプラグイン, provided by quess65.
- New Japanese language file for the 静的ページプラグイン, provided by Yusuke Sakata.
- New Swedish language file for the 静的ページプラグイン, provided by Markus Berg

## June 29, 2003 (1.3.8rc1)

- Fixed SQL error when using quotes in a group description.
- Fixed bug where blocks assigned to a topic disappeared when viewing articles.
- Add new Plugin API PLG_getHeaderCode, Used to return JS Functions or other Header Meta Tags required by the plugin. Added new variable {plg_headercode} to the template header.thtml files.
- New search: You can search for the exact phrase, all of the words, or any of the words from the query. Search words are highlighted in stories. Also, results in stories and comments are listed separately.
- Added new block "Privacy Options" to the Preferences:
  - chose to receive email from admins and/or other users
  - chose to show up in Who's Online block
    (Feature requests #609758 and #609759)
- New config option $_CONF['hide_author_exclusion'] to hide the author exclusion list from the user's preferences (useful e.g. when it's a rather long list but hardly used by the users of your site).
- Added tracking of users lastlogin to the userinfo table. New $_CONF['lastlogin'] added to config.php - SESSION SETTINGS area
- Added an option in admin/group.php to list all the users belonging to a group.
- Added adminoption_off.thtml template file (for current entry in the Admin menu) and topicoption.thtml and topicoption_off.thtml files (for entries in the Topics/Sections menu).
- Geeklog will not accept topic ids containing spaces any more.
- Added new config option $_CONF['allow_account_delete'] to allow users to delete their account (from their Account Information page).
- Posts (stories and comments) from deleted users will now be reassigned to user "Anonymous".
- Removed the Geeklog version number from the footer of the default themes. Instead, the version number is now displayed in the headline of the "Command and Control" block (moderation.php) and next to the "GL Version Test" entry in the Admin's functions block.
- New Norwegian language file, provided by Torfinn Ingolfsen.
- Introduced new config.php variable $_CONF['mysqldump_options'] that holds additional options to be used when Geeklog calls mysqldump to do a backup of the database.
- Added a check for an existing email address in the user's profile so that users can't change their email address to one that's already in use for another account.
- Pick up the 'postmode' default setting for the Admin's story editor.
- Stories in the Daily Digest are now sorted by date (newest first, as on the index page).
- Changed handling of plugin comments slightly: Plugins will have to do the 'delete' operation on their comments on their own now since Geeklog can't possibly know which (if any) permissions are needed to delete a comment.
  The 'id' parameter in the call to plugin_handlecomment_<type> will now always be the comment id.
- In another attempt to solve the various issues regarding "www vs. non-www" URLs and related login problems:
  - Made sure all setcookie() calls use all 6 parameters
  - Try to guess the correct value for $_CONF['cookiedomain'] if it isn't set
  - Removed the redirection attempt from index.php
- When requesting a new password for your account, you can now enter either your username or the email address you used to register with the site.
- Added a speed limit for requests for a new password (defaults to 5 minutes between requests).
- The commentspeedlimit and submitspeedlimit tables have been replaced with a general speedlimit table and three new functions operating on it have been introduced (in lib-common.php). The new table has a 'type' field, so plugins could easily implement their own speed limits.
- Introduced new "forgot password" functionality: When requesting a new password for an account, the user will now receive an email with a link that s/he has to click on. It will take the user to a form where s/he can enter a new password (a unique id is contained in the URL and checked when entering the new password, thus preventing misuse). The old password remains valid until a new password is entered from this form, so the email can simply be ignored in case the user didn't request a new password (cf. Feature Request #567979).
- Removed unused commentheader.thtml file from all default themes.
- Fixed the redirect after posting a comment to a poll (should return to the poll, not to the index page).
- You can now "clone" events, i.e. make a copy of an existing event. This comes in handy if you have a lot of similar events (e.g. repeating events).
  Template files admin/event/eventlist.thtml and admin/event/listitem.thtml need to be updated or the "clone" option will not show up ...
- Fixed a bug in the Admin's poll editor which let you enter more than $_CONF['maxanswers'] answers for a poll. You may need to adjust your setting of $_CONF['maxanswers'] or you may lose an answer when editing such a poll (found & fixed by Tom Willet).
- Moved hard-coded HTML for the poll block and poll results to new template files.
- When the theme uses a replacement function for COM_siteHeader and/or COM_siteFooter, we need to pass it the same parameter that the replaced function was being called with.
- Fixed "Last 10 comments by user" in the user's profile which was missing the comments to polls.
- When a new user registers, we need to check for a valid email address first (before searching the database to see if that address is already in use)
- You are now taken back to the moderation page after editing a story submission
- Fixed 'previous' link on the Admin's list of stories. Alternatively, you can now use {google_paging} there (requires a change in the template).
- Added -Q option to the mysqldump call when doing a database backup. This will enclose database names in quotes and thus prevent problems with special characters in table names as used by some plugins (bug #712901).
- Set the max length of the input field for the event URL to 128 characters (was 96) in the default themes (other themes may need adjusting).
- Fixed localisation of the date of all-day events in the event details.
- Added missing {event_location} variable in calendar/eventdetails.thtml template files.
- Fixed display of events spanning several days in the personal calendar.
- Moved hard-coded HTML for the login form in the User Functions block to a new template file.
- The Sections block now uses the useroption.thtml and the new useroption_off.thtml template files for the list of topics. You can also use $_CONF['hide_home_link'] to hide the "Home" link from the Sections block.
- New config option $_CONF['keep_unscaled_image'] allows you to keep the original, unscaled image after upload (in stories only, for now). The smaller, scaled image will be used as a thumbnail and link to the original image (based on code provided by Alexander Schmacks).
- In admin/database.php:
  - Made sure we really display the last 10 backups (fix by Alexander Schmacks)
  - Display total number of backups in the directory
  - Moved hard-coded HTML for the list of backups to template files
  - Replaced $PHP_SELF with $_CONF['site_admin_url']/database.php since $PHP_SELF seems to cause problems in some environments
- You can now make one topic the default topic. The topic selection in the story submission form will then default to this topic.
- When clicking on the "contribute" link from the topic index page, the new story will now default to the topic you just viewed.
  This only works with themes that use the {menu_elements} variable in header.thtml. Other themes can use the new variable {current_topic} which holds '&topic=<topicid>' when a topic is selected (and is empty otherwise).
- Integrated Vincent Furia's improvements for COM_exportRDF. You can now use $_CONF['rdf_limit'] to limit the number of stories in the RDF file by setting this to a number (e.g. 10) or a number of hours (e.g. 24h).
  $_CONF['rdf_storytext'] lets you add the story's introtext to the RDF feed. Also fixed a bug with un-escaped special characters in the feed's title.
- Added paging to the list of Static Pages (for more than 50 pages).
- Fixed problem with the Older Stories block disappearing when it was edited (e.g. moved from left to right), bug #670673.
- Fixed "late" update of portal blocks (bug #681855).
- Fixed mixing of comments from different plugins, found & fixed by Alan McKay.
- A theme can provide its own functions to render the site header and footer (this is not a new feature). Geeklog now expects those functions to be named <themename>_siteHeader and <themename>_siteFoote, respectively. Until now, it was, however, looking for the wrong function names ...
- Added the piece of code that is needed to make the Theme Tester work to lib-common.php (won't do anything without the Theme Tester block).
- Fixed SQL query for displaying new comments in the What's New block, provided by Marc Von Ahn (with some help from Rob Griffiths).
- Changes to make Geeklog install and work again on old versions of MySQL (e.g. MySQL 3.22). Special thanks to Markus Guske for providing the fixes for the What's New block and for testing the new install.
- Feb 13/03: (Blaine) Added new Plugin function to support Center Blocks Included call to PLG_showCenterblock in index.php
- The user's signature is now appended to messages sent to another user.
- Feb 6/03: (Blaine) Added support for custom user registration and account profile: Added hooks to users.php, usersettings.php and admin/user.php and new $_CONF parm to enable Developer is responsible for code to handle new form processing, account record save, update and delete.
- The list of blocks now includes a column indicating whether the block is enabled or disabled (will need changes in admin/block/listblocks.thtml and listitem.thtml template files of custom themes).
- Variable {rdf_url} (available in footer.thtml) holds the URL of the RDF file.
- What's Related block is now created dynamically.
- Top Ten Commented Stories didn't count comments on stories submitted by anonymous users (found & fixed by Laurence Whitworth).
- Allow users to change their username if $_CONF['allow_username_change'] is set to 1.
- Jan 18/03: (Blaine) Corrected problem in mysql.class.php where the checks in dbdelete, dbchange, dbcount and dbcopy for a passed value of 0 were not sufficient. If the parameter was 0 - it was assuming it was empty.
  Consequence: The dbdelete would delete all records or dbcount would return count(*)
- Display Preferences and Comment Preferences have been merged. There is now only one option, Preferences, in the User Functions block.
- Hard-coded HTML for the Display Preferences, Comment Preferences, and Account information has been moved to template files (new "preferences" directory).

### 静的ページプラグイン 1.3

- Integrated (and extended) the 静的ページプラグイン 1.2 (originally started by Phill Gillespie and later supported by Tom Willet). This "combined" version is now called Static Pages 1.3.
  Use Geeklog's install script to upgrade from any previous version (1.1 or 1.2)
- Supports the use of PHP in static pages.
- You can now edit the ID of a static page to create more readable URLs like http://yoursite/staticpages/index.php?page=about
  In combination with Geeklog's $_CONF['url_rewrite'] option, the URL can even look like http://yoursite/staticpages/index.php/page/about
- You can now "clone" static pages, i.e. make a copy of an existing page.
- Removed the "static pages on frontpage" hack and changed the plugin to use the new Center Block API instead:
  A static page can now be displayed on the top of the front page, on the bottom, or after the featured story. It can also replace the front page entirely. Instead of using special label names (like "frontpage"), the display mode and position can now be selected from drop-down menus in the static pages editor.

Please see docs/staticpages.html for details.

## January 26, 2004 (1.3.7sr5)

This release addresses the following security issues:

1. It was possible for users in the Group Admin and User Admin groups to become a member of the Root group (reported by Samuel M. Stone, bug #135).
2. Being admin for a certain area (e.g. Story Admin for stories) made it possible to delete all objects in that area (e.g. stories) even if the user was not supposed to have access to them, provided the id of the object was known.
3. It was possible to delete other people's personal events if you knew the event ID.
4. It was possible to browse through the comments of a story even if the user did not have access to the actual story (reported by Peter Roozemaal).
5. Due to an XSS issue, it was possible to change someone's account settings (including the password) if you got them to click on a specially crafted link (reported by Jelmer, fix suggested by Vincent Furia).
6. The comment display suffered from the possibility of an SQL injection (reported by Jelmer).
7. It was possible to inject Javascript code in the calendar (reported by Jelmer).
8. It was possible to execute (but not save) Javascript code in the comment preview (reported by Jelmer).

## December 5, 2003 (1.3.7sr4)

This release addresses the following security-related issues:

1. As "dr.wh0" pointed out, the category field for link submissions was not filtered at all. Although you probably can't cause too much harm with those 32 characters, this has now been fixed.
2. Vincent Furia found that the restrictions for the form to email users could be circumvented and could even be used to spam users.
3. There was a way to post comments anonymously even when posting for anonymous users had been disabled.
4. It was possible to post comments under someone else's username.

## October 12, 2003 (1.3.7sr3)

This release is intended to address some of the security issues reported in September and early October 2003.

1. Includes Ulf Harnhammar's kses HTML filter to address possible Javascript injections and CSS defacements.
2. When upgrading from an earlier version, please make sure to copy over the $_CONF['user_html'] and $_CONF['admin_html'] arrays from the included config.php to your own copy of that file.
3. While almost all of the alleged SQL injection issues could not be reproduced, this release includes an update to the MySQL class to not report SQL errors in the browser any more (but only in Geeklog's error.log).
   This will avoid disclosing any sensitive information as part of the error message.
   Please note that at the moment we do NOT recommend to use Geeklog with MySQL 4.1 (which, at the time of this writing, is in alpha state and should not be used on production sites anyway).
   An upcoming release of Geeklog will address the remaining SQL issues, including any problems with MySQL 4.1.

## May 26, 2003 (1.3.7sr2)

Security issues:

- It was possible to obtain valid session ids for every account (reported by SCAN Associates).
- Using Internet Explorer, it was possible to upload an image with embedded PHP code and execute it (reported by SCAN Associates).
- Story permissions could override topic permissions, resulting in the display of stories to users who shouldn't have access to them (reported by Andrew Lawlor).
  Note: This was already fixed with the new index.php, released 2003-05-15.
- Added a warning in config.php that adding any of the following tags to the list of allowable HTML can make the site vulnerable to scripting attacks:
  <img> <span> <marquee> <script> <embed> <object> <iframe>
  (pointed out by Joat Dede)
- Fixed the bug in several of the admin areas (blocks, events, links, polls, stories, topics) where admins without root access got a message stating that they did not have the proper permissions when trying to save an object.
- Fixed a typo in lib-sessions.php that caused the creation of unnecessary sessions (pointed out by Kobaz).
- Fixed malformed cookie (used $_CONF['site_url'] instead of $_CONF['cookiedomain']) in lib-sessions.php, found & fixed by Jon Evans.
- Fixed a bug that prevented certain right blocks from showing up when there were no stories for a topic.
- The "Google paging" on the index page may have displayed the wrong number of pages for users who disabled topics in their display preferences.
- Updated Dutch language file, provided by Claudio.
- Updated French language file, provided by Jaques.
- Updated Hellenic (Greek) language file, provided by Access-=-Denied Networks
- Updated Spanish and Spanish (Argentina) language files, provided by Fernando Bernardini
- New Portuguese language file, provided by Mario Seabra
- New Bulgarian language file, provided by lachko
- New Turkish language file, provided by Sinan Ussakli
- New Slovenian language file, provided by gape
- New Slovak language file, provided by Rado
- New Romanian language file, provided by Dan Gheorghitza
- New Chinese language file (gb2312 encoding), provided by Crocodile King
- New Czech language file, provided by Hermes Trismegistos

## January 13, 2003 (1.3.7sr1)

Security issues:

1. Javascript code could be used in the homepage link of a user's profile (reported by Jin Yean Tan).
2. Javascript code could be injected in several URLs so that these could then be used for a cross-site scripting attack (reported by Jin Yean Tan).
3. Anybody could delete comments, provided they knew the comment id.
4. A StoryAdmin could manipulate any story, even if permissions should have prevented that. The same applied to Admins for links, events, polls, topics, and blocks (reported by Kobaz).

- The new user notification email was always sent out, even if 'user' was not listed in $_CONF['notification'].
- In admin/database.php, added a check to test if function is_executable() is available (since it is not available on Windows).
- {copyright_notice} in the site's footer (footer.thtml) will now use the current year for the copyright notice. You can override this by setting $_CONF['copyrightyear'] to the year you want.
  Also, new variables {lang_copyright} and {current_year} as well as {site_name} and {site_slogan} are now available in footer.thtml so that you can build a customised copyright notice from them.
- Fixed incomplete links to search results from poll comments.
- Fixed wrong link to the week view from the last week of the month view.
- Fixed bug where links was not using the date field - being stored as null.
- Fixed image resizing when using ImageMagick.
- Added the actual and max. image dimensions in the error message that is displayed when an image exceeds the max. image dimensions and no imagelib is configured.
- The Admin menu will now be displayed for users which have Admin access to a plugin but not to a core Geeklog Admin feature.
- The redirect in index.php (when a site is called up with a URL other than the one configured in $_CONF['site_url']) now checks for the existence of $HTTP_SERVER_VARS['HTTP_HOST']. Also, the server name comparison is done case-insensitive now.
- New config option $_CONF['emailstoriesperdefault']: Set to 1 if new users should be subscribed to the daily digest automatically. Defaults to 0 (no automatic subscribtion), thus restoring the behaviour of Geeklog prior to 1.3.7.
- Removed some unused / outdated files (include and etc directories)
- Updated URLs to point to www.geeklog.net and lists.geeklog.net instead of the now outdated places on Sourceforge.
- Updated Dutch language file, provided by R.F. van der Veen
- New Danish language files (for Geeklog and for the 静的ページプラグイン), provided by Steen Broelling

## December 16, 2002 (1.3.7)

- In all Admin editors, the hard-coded default group permissions have been changed from 3 (read/write) to 2 (read-only).
- Make sure an error message is displayed when a StoryAdmin tries to edit a story s/he does not have access to.
- Hide topics from the Admin's list of stories that the current (Story)Admin has no access to.
- Tom Willet found a problem in admin/user.php that sometimes mangled user names, especially on sites hosted on sourceforge.net.
- Fixed an SQL error when using single quotes in a block title.
- When updating events in the master calendar, make sure copies of such events in the personal calendars are updated as well (including deleting them when the original event is removed from the master calendar).
- Fixed PRIMARY KEY for table personal_events, so that more than one user can add an event to his/her personal calendar.
- New Hellenic (Greek) language file, provided by Access-=-Denied Networks
- New Spanish language file, provided by LeChuck
- Updated Polish language file, provided by Robert Stadnik
- Updated Italian language file, provided by quess65
- Updated Japanese language file, provided by Yusuke Sakata

## December 3, 2002 (1.3.7rc1)

- Modifed savesubmission() to better handle Plugin return - Bug ID 642106
- Modified Comment Plugin API Comment call - PLG_handlePluginComment now passes $operation to indicate a 'save' or 'delete'.
- Fixed problems with the portal.php redirect for links (bug #579221).
- Fixed a problem when uploading images with certain versions of Opera.
- When deleting a topic, also remove stories for that topic from the submission queue.
- Added a redirect in index.php when the site was called up with the "wrong" URL (i.e. not the one that has been set in $_CONF['site_url']), thus fixing the "www vs. non-www" problem where people showed up in Who's Online but did not get the User Functions block.
- The topic selection in the daily digest now defaults to "on" for all topics, i.e. when the daily digest is activated ($_CONF['emailstories'] = 1) and a user has not selected any topics yet, s/he will receive a digest for all topics. This ensures that new topics are automatically added to the daily digest (bug #573305).
- Fixed a permission problem with the daily digest where users could get a digested version of a story they didn't have access to.
- Fixed permission problems in the statistics where story titles, links, and events where listed even when the current user did not have access to them.
- Added the Top Ten Links to the links page (only when links are displayed per category).
- When sending emails, Geeklog now uses \r\n in the mail headers which should resolve problems under Windows.
- Resolved a couple of stripslashes() issues.
- The 静的ページプラグイン can now be uninstalled using the "delete" option from the plugin editor. Note that this will only remove the plugin's tables and data from the database, not remove any files.
- Added a simple email notification when a new story, link, or event has been submitted or a new user has registered. See $_CONF['notification'] for details
- Added a separate set of config variables for the max. dimensions of user photos ($_CONF['max_photo_width'] etc.).
- Fixed a problem when resizing GIF images using the netpbm tools.
- Check the topic permissions when presenting a list of topics in the Admin story editor (since the StoryAdmin may not have access to all topics).
- Removed the Normal / Archive / Refreshing drop down menus from the admin story and poll editors since they're not used anyway.
- In the links section, do not display link categories when the current user does not have access to the links in those categories (bug #612869).
- Fixed problems when using quotes in the title of an HTML-formatted comment (including confusing error messages and wrong speed limit alerts).
- Changed the way how Geeklog checks if it's currently displaying the site's front page, thus fixing the problem with disappearing "homeonly" blocks.
- Fixed double line spacing in HTML-formatted comments and [code] sections when running on PHP 4.2.0 and up.
- Fixed problems with slashes and HTML entities in emails sent out by Geeklog (Send story to friend, daily digest, Admin mail utility).
- Added new config variable 'showfirstasfeatured' which, when set to 1, will render the first story on _any_ page like it was a featured story.
- Added admin/plugins/newpluginlist.thtml and newlistitem.thml template files for the list of plugins not installed yet. These files are optional, i.e. the list will be formatted using hard-coded HTML when they don't exist.
- Removed unused template file admin/plugins/installform.thtml.
- The plugin menu will now list all plugins which exist in the file system but haven't been installed (yet) with a link to their install script for easy installation (based on code provided by Blaine Lang).
- New plugin API function PLG_callCommentForm() and improvements for the use of comments in plugins, provided by Blaine Lang.
- The Older Stories block did not take stories into account which were to be published in the future. Therefore, the block sometimes listed stories that were still on the first index page.
- Added variable {contributedby_photo} (user photo of story author) for use in story templates.
- Users couldn't disable display of the Older Stories block in their preferences
- The contents of the Older Stories block was deleted whenever you changed it (e.g. moving it from the left to the right column).
- The static pages editor displayed a blank page when the title and/or content field of a new static page were not filled in (will display an error message now).
- Implemented fixes for plugins using the submission queue, suggested by Vincent Furia.
- Following the link "X stories in last 24 hours" from the What's New block will now display only the new stories on the index page.
- When $_CONF['searchloginrequired'] = 2, the search is completely blocked for anonymous users (1 will only block the advanced search).
- Added a check to test for a valid date format when searching by date.
- Added $_CONF['skip_preview'] to allow submission of comments and stories without previewing (defaults to off).
- Search queries with less than 3 characters are now rejected to reduce server load.
- (Event)Admins couldn't add events directly to their personal calendar (found & fixed by Kenn Osborne).
- Fixed a nasty bug in SEC_inGroup() (in lib-security.php) that let a user admin change the password of a root user, so that effectively every user admin could become a root user ...
- Topics are now sorted alphabetically by the topic name instead of by topic id.
- Added several new variables which can be used in the story template files.
- New config options $_CONF['dateonly'] and $_CONF['timeonly'] which hold the format string for day + month (to be used in the Upcoming Events and Older Stories blocks) and the time (to be used for event details).
- Fixed calls to unknown function printErrorMsgs in the file upload class.
- New options in config.php:
  - $_CONF['upcomingeventsrange'] = no. of days to look ahead for upcoming events
  - $_CONF['emailstoryloginrequired'] = disallow "send story be email" for anonymous users
  - $_CONF['hideemailicon'], $_CONF['hideprintericon'] = hide email / printer icon from stories (and from Story Options block)
  - $_CONF['hidenewstories'], $_CONF['hidenewcomments'], $_CONF['hidenewlinks'] = hide new stories / comments / links from What's New block
- User photos are now resized according to the image dimensions in config.php (if an imagelib is configured - otherwise images exceeding those dimensions are rejected).
- Added a check for the proper permissions on the admin page of the 静的ページプラグイン.
- Plugins can now return "false" (or an empty array) from plugin_cclabel_<plugin-name> so that the plugin's icon does not show up in moderation.php if the user does not have the proper access rights for the plugin. Changed the 静的ページプラグイン to do exactly that.
- Fixed problems when using multiple [code] ... [/code] sections.
- PHP blocks which return an empty string are not displayed any more. This allows PHP blocks to "hide" themselves.
- Searching for links caused an SQL error on installs that were upgraded from Geeklog 1.1 (missing "date" field in links table). However, links don't use that field anyway, so searching by date was removed (the "date" field will be added when upgrading the database to 1.3.7).
  Also, the search results are now sorted by link title.
- The calendar displayed an empty last week (in month view) for some months, e.g. November 2002.
- COM_pollResults() will not use the side block templates when called from pollbooth.php (thus allowing different block layouts for the poll results in a side block and in pollbooth.php).
- Allow for theme-based topic icons by using the $_THEME_URL variable as the base directory for topic icons (if that variable is set).
- Fixed display (or lack thereof) of $ signs in portal blocks.
- lib-common.php didn't use $_CONF['path_language'] to include the default language file.
- What's Related block
  - content is now set for all user submitted stories (previously, links where only added in stories submitted by the Admin or user submissions edited by the Admin)
  - block is not displayed when it's empty
  - now uses COM_makeList() (i.e. the list.thtml and listitem.thtml template files) instead of hard-coded <li>tags
- The What's Related and Story Options blocks can now be used independent of each other in the article/article.thtml template file - use {whats_related}, {story_options} or {whats_related_story_options}.
- Theme authors can now use the $_BLOCK_TEMPLATE "hack" for the What's Related and Story Options blocks as well (using 'whats_related_block' and 'story_options_block' as the block names).
- Fixed the "noboxes" feature where all blocks (with the exception of the section, login / user functions, and admin blocks) are hidden.
- Changed admin/link/listitem.thtml so that the URLs in the Admin's list of links are clickable.
- Fixed an SQL error when calling search.php and there were no stories and no comments in the system.
- Fixed an SQL error in the user profile when there were no stories and no polls in the system.
- Fixed date bug when previewing stories to be posted around the noon hour in the admin story editor.
- Added sanity checks in admin/story.php to prevent possible loss of stories when using an incomplete language file (or manipulating the URL).
- Fixed a variable in admin/plugins/editor.ththml of the Smooth Blue theme.
- Fixed a typo and a grammatical error in english.php
- Fixed problems with the "static page as frontpage" hack:
  - will now check if the 静的ページプラグイン is installed and enabled
  - uses sp_format (i.e. display blocks as specified in the static pages editor)
  - added a missing stripslashes() call
  New: When you have $_SP_CONF['in_block'] == 1 and the label of the static page is neither empty nor "nonews" then that label is used as the block title for the static page.
- The "userevent" table is back in lib-database.php. Geeklog doesn't use this table any more, but the name is needed when upgrading from old versions.

### Localisation:

- New Chinese language file (Big 5 encoding), provided by Jacky Chan
- New Swedish language file, provided by Markus Berg
- Updated Dutch language file, provided by R. F. van der Veen
- Updated French language file, provided by Florent Guiliani
- The German language file now uses the proper national special characters (umlauts) instead of HTML entities.
- New Polish language file for the 静的ページプラグイン, provided by Robert Stadnik
- New Spanish language file for the 静的ページプラグイン, provided by gorka

## September 20, 2002 (1.3.6)

- Images in stories can now be resized automatically during upload, provided you have either ImageMagick or netpbm installed. See the image settings in config.php for details.
- If you create a static page with the title "Frontpage" then the content of this static page will be displayed above the first story on the front page of your site. If you additionally set the label of this static page to "nonews", then the static page will completeley replace the news on the front page of your site. You may want to wrap static pages in a block - set $_SP_CONF['in_block'] = 1;
  in /path/to/geeklog/plugins/staticpages/config.php
- A user assigned only to the Mail Admin group wasn't able to use the "Mail Users" function.
- The filter to disable Javascript onXXX events also changed certain links in HTML postings. This should be fixed now.
- The poll uses a POST instead of a GET request now to at least prevent primitive manipulation attempts ...
- Events on the same day were displayed in the order they were entered, not in the order they were scheduled (occured in day, week, and month view).
- The user function and admin blocks weren't using the proper templates when the theme was using the $_BLOCK_TEMPLATE trick, as outlined in http://www.geeklog.net/article.php?story=20020429092841722.
- When the first character of the content of a block is a '<' it is now assumed that the block contains HTML and nl2br() is not applied to the block content. This allows proper HTML usage and even the use of Javascript in blocks.
- Sanity checks have been added to the admin editors (including the editor for static pages) to prevent possible damage to the database in case of incomplete translations (language files) or invalid IDs.
- The delete button in the plugin editor, which was unused since the removal of the automated plugin install (in Geeklog 1.3.4), will now cause a function plugin_uninstall_<plugin name> to be called. This allows plugins to uninstall themselves (if possible).
- The author's name was missing from emailed stories. Also changed it so that the author's name is only included when $_CONF['contributedbyline'] == 1.
  The daily digest now also includes the author's name.
- Fixed the "1054: Unknown column 'deleted' in 'where clause'" SQL error that some people were getting when logging out.
- Submitted stories will now pick up the permissions from the topic they were posted under (instead of using default permissions).
- Added new features story.submit, link.submit, event.submit which, when assigned to a group, allow members of that group to post directly (skipping the submission queue) even when the submissione queue is active.
- Fixed issues with backslashes in block titles, as suggested by Neil Darlow.
- The page navigation is now wrapped in a <div class="pagenav"> so that it can be formatted by a theme using CSS.
  Because of this change, the template files admin/user/userslist.thtml and links/links.thtml had to be changed, because they wrapped the page navigation in a <p>.
- Submission of links and events by anonymous users failed when the link submission queues were switched off.
- Anonymous users were able to submit comments even when $_CONF['loginrequired'] was set to 1.
- Fixed a search bug introduced in 1.3.6rc1 when searching by author.
- When updating from an earlier version, the install script will no longer try to rename the staticpage table when no prefix is used in the database.
- PLG_getUserOptions() will no longer return empty menu options.
- Updated Italian language file, provided by quess65
- Changed some wording in the German language file
- Fixed spelling errors in the English language file

## August 28, 2002 (1.3.6rc1)

- Problems with using the dollar sign in stories, comments, and their titles have been fixed.
- Fresh installations now have a "Are you secure?" block pre-installed that only the Admin can see and which does some (very simple) tests whether the site is secure or not.
- Fixed the page navigation in (admin's) user list.
- Using the preview in the admin story editor will now keep the topic icon and the time will not revert from pm to am any more.
- The links section now includes a list of the link categories at the top. The list of links is now also separated into pages (10 links per page by default, configurable in config.php).
  To get back the old (pre-1.3.6) style of the links section, just set both $_CONF['linkcols'] and $_CONF['linksperpage'] (in config.php) to 0. These changes are based on code provided by Tom Willett.
- Fixed the SQL syntax for some requests ("count(*) AS count" instead of "count(*) count") which seems to have caused problems with some (older) versions of MySQL.
- A proper error message is now displayed when attempting to use "Mail Users" but not filling out all the fields.
- Editing a portal block shouldn't make it disappear any more ...
- The somewhat random order of poll answers has been fixed.
- The site can be disabled by setting $_CONF['site_enabled'] = false; in config.php. $_CONF['site_disabled_msg'] can either contain a message to be displayed in that case or a URL (has to start with http:) to which all requests will be redirected.
- Fixed various access rights / privacy issues where users could see (but not access) information even when they shouldn't ...
  - Search returns only those stories, comments, links, and events to which the user has the proper access rights
  - What's New block counts stories and comments according to access rights now (this should also fix the problems some people had when New Comments were not displayed for anonymous users). New Links also take access rights into account.
  - Upcoming events are only visible to those with the proper rights.
  - Topics are not available for submissions without proper rights.
  - Topic selection in the user preferences also follows access rights.
  - "Last 10 comments" (and the new "Last 10 stories" too, of course) in profile takes proper rights into account
- Story display and paged navigation weren't working properly when some stories were only accessible to certain users.
- Fixed a bug where users weren't able to use the site when their theme had been removed (until they cleared their cookies).
- New installations now have only two default accounts: The Admin account (as before) and a Moderator account that has access to the story, links, and events submission queues.
- The Older Stories block should work again.
- The submission queues for stories, links, events, and users can now be switched off separately (in config.php), i.e. items submitted by users will then be visible to everybody immediately.
- The database backup is more verbose now, especially when there are problems (changes provided by Blaine Lang).
- Fixed a bug where the admin's user photo overwrote a user's photo when the admin was editing the user's account information.
- Group editor:
  - Could not create new groups when using a non-english language file.
  - Once you've added one group to another (by checking off an option from the "Security Groups" list), there was no way to uncheck it again.
  - The message after saving/deleting a group said that the topic(!) had been saved/deleted ...
- Changes in search:
  - Should be faster now.
  - Search by date did not work (mostly because the date format recommended to be used in a search is really YYYY-MM-DD and not MM-DD-YYYY).
  - List of authors is now sorted by username.
  - Search results for links are now routed via portal.php, too, so that the links are counted when clicked.
  - When no results are returned for a search, then the search form will now be displayed below that message again.
- The 静的ページプラグイン uses the table prefix now (databases created with Geeklog 1.3.5 or older need to be upgraded).
- A user submission queue has been added. When activated in config.php ($_CONF['usersubmission'] = 1;), new users will not get their password emailed until they are approved by an admin.
  You can, however, let users from certain domains be approved automatically by adding their domain names to the comma-separated list of domains in $_CONF['allow_domains'].
- Fixed problems with quotes in poll question and answers.
- The default value for the number of stories per page for a new user is now taken from $_CONF['limitnews'] (was hard-coded to 10).
- The user profile has been extended to include
  - last 10 stories by that user
  - total number of stories and comments posted by that user
  - link to search for all postings by that user
- The title of an article is now displayed in the page title (again).
- New configuration option $_CONF['allow_user_language'] to allow / prevent to change the language. When set to 0, the option to switch the language is hidden from the user preferences.
- The message "You have successfully logged out" should not show up any more when you log out and log in again.
- The blocks stating that the search returned no results (e.g. for links) are now switched off by default but can be switched on again with the new configuration variable $_CONF['showemptysearchresults'].
- Fixed the list of authors in the search form (did not list all authors).
- Fixed search results for links and events: They always displayed only one result, even when there where more hits. Also, when searching for authors, no hits amongst the links and events will be returned (since they have no author).
- In the admin menu, the count of available submissions is now displayed according to the admin's access rights (e.g. don't count story submissions for someone who's only a link admin).
- Links in the What's New block are now counted when clicked (for the site statistics).
- Fixed a stray "(N/A)" that would show up in the admin menu for admins which were not static pages admins.
- You can now block anonymous users from accessing any part of a Geeklog site or you can block them from certain parts, e.g. block anonymous access to the calendar (via a new set of XXXloginrequired flags in config.php).
  Please note that $_CONF['loginrequired'] is now used to require login to all areas. To require login for submissions, use $_CONF['submitloginrequired'].
- New RDF/RSS parser, provided by Roger Webster. This should now properly import even those RDF feeds which Geeklog previously refused to display.
- Updated language files:
  - Italian, provided by quess65
  - Japanese, provided by Yusuke Sakata
  - Polish, provided by Robert Stadnik
- Various fixes for the consistent use of $_CONF['site_admin_url'] instead of $_CONF['site_url']/admin, provided by Gene Wood.
- The 静的ページプラグイン can now wrap static pages in a block (available as an option in staticpages.cfg)
- You can now use [code] ... [/code] in stories and comments (HTML formatted only) to mark portions of the text as containing code of any form (HTML, PHP, any other programming language). Geeklog will then reproduce this section verbatim, i.e. not interpreting any special characters in that section.
- Fixed type pulldown menu in search when more than one plugin was used.
- Signatures in comments are working again.
- The daily digest uses $_CONF['shortdate'] now
- New configuration variable $_CONF['emailstorieslength'] to specify the length of stories sent in the daily digest: 0 = only the title and a link to the story are included, 1 = entire introtext is included (default), any other number = cut off text after that amount of characters.
- The selection of the user theme is now hidden from the user's preferences when 'allow_user_themes' is turned off in config.php
- The links "Add To My Calendar" are now hidden when personal calendars are turned off in config.php
- Fixed a bug where the number of submissions was displayed in the sections block even when that was turned off.
- New variable $_CONF['adminhtml'] allows (Story)Admin to use a wider variety of HTML tags than the ordinary user.
- Fixed COM_exportRDF so that only articles that anonymous users have access to show up.
- Search: User drop down only shows users that have posted a comment or a story.
- Fixed bug with double quotes in title of story submission.
- The upcoming events block uses the list templates now.
- The story option block uses the list templates now.
- The (Event)Admin could not delete events (delete button was missing).
- The calendar class reverted to using the english day and month names as soon as you called setCalendarMatrix().
- Added {edit_link} in story templates in Classic theme.
- All admin editors have the save / cancel / delete buttons at the bottom now.
- The link to the plugin homepage did not work from the plugin editor.
- Added $_CONF['default_charset'] in config.php and $LANG_CHARSET in the language files to specify a character set to be used for the web pages (use {charset} in header.thtml) and email sent by Geeklog.
- Changes in the themes and the admin editors, moving lots of hard-coded english texts to the language files.
  This affects most of the files in the admin and calendar directories within the themes directories.
- The 静的ページプラグイン will now pick the language automatically, based on the user / default setting for the language. Currently, only English and German language files are included.
- New variables that can be used in footer.thtml: {execution_textandtime}, {powered_by}.

## July 8, 2002 (1.3.5sr2)

- New installation instructions (now back in docs/install.html). Please note that some of the other documentation may be out of date ...
- Display of stories in older stories block was off by one day.
- Number of guest users in Who's online block should now be reset properly.
- Added some scripts in admin/install to help with the installation:
  - info.php just does a phpinfo()
  - check.php will check the file and directory permissions
  - configinfo.php will display the contents of config.php
  Note: It is now even more important that you remove the install directory after the installation went through (or at least block read access to this directory).
- Disable all onXXX Javascript events in HTML postings (stories and comments).
- Fill in user name and email address when writing an email to a user (via the 'send email' form from the user profile).
- Make sure that the first comment to a story has the 'title' field filled in (previously, only comments to comments took over the title).
- Cut off the subject at the first linefeed when sending email to a user, thus preventing the injection of additional email headers.
- Added a test for register_globals=off in the install script (and display a warning if it is off). Also added a hint what the current path is and tries to guess the /path/to/geeklog.
- Fixed the "12pm bug": Posting a story between 12 and 1 pm would result in the story being posted with a date in 1969.
- Use mysql_connect() instead of mysql_pconnect() in MySQL class.
- The redirect after submitting a story always went to /index.php
- HTML tags are now stripped out of search queries.
- Removed the logging of all search queries to error.log.
- Fixed a wrong link from personal events in the upcoming events block.
- The "Home" link in the section block was not active on pages > 1. It was, however, always active on the home page when the Geeklog site was not located in the DocumentRoot.

## June 10, 2002 (1.3.5sr1)

- This release addresses security issues recently discovered by the people at olympos.org. These issues allow for the injection of malicious javascript code (which could be used to access the admin's cookie) and the injection of MySQL code which could be used to access and even damaged the database (under certain circumstances). Details will be available in a report on the Bugtraq list shortly after this release is out.
- The following bugs from the 1.3.5 release have also been fixed:
  - missing field 'emailfromadmin' in userprefs table (fresh installs only)
  - fixed a typo that prevented the page navigation from working
  - fixed batch user import
  - fixed logo size and path to search in XSilver theme
  - optimized size of image files in XSilver theme
  - fixed path to search in Clean theme

## April 24, 2002 (1.3.5)

- Change installation so that server configuration is manual, DB configuration is scripted
- Search page now properly generates the right link to search comments
- Comments to polls now show up in whats new block
- You can now specify the order the poll results show up in in config.php. You can either sort by voteorder (highest number of votes -> lowest) or by the order they were saved in admin/poll.php
- You can now move /admin somewhere else in web tree. This should help out folk where ISP's use /admin for their administration stuff.
- if you go to submit.php as an admin we will try to send you to the admin/ page for the type of thing you are trying to submit (e.g. story, link, event)
- fixed calendar.php so month view now shows events spanning multiple days on months other than the current
- admin/event.php now saves am/pm and allday properly
- PollAdmin group can now properly add a new poll.
- fixed SEC_getUserGroups() so that it always returns an array even if no groups are returned (e.g. empty array
- fixed moderation.php so post mode is saved properly from storysubmission to story table.
- killed 1064 bug in admin/event.php
- set error_reporting() so uninitialized variables don't show up (common in poorly configured PHP installs)
- gldefault blocks now actually use permissions assigned to them in admin/block.php
- Added all sorts of shit to english.php. Translators will need to really take their time with this file.
- Added $_CONF['maximagesperarticle'] to config.php
- install.php was reworked a bit for upcoming release
- lib-common.php has changed. can't even begin to note all the changes there
- admin/user.php has a very simple batch import utility. You can now create multiple accounts by importing a tab-delimited file. See that page for file format specs
- story.php was reworked a bit to be simplified and to correctly do paging (old paging feature had a bug where one article would never show up.
- admin/user.php now allows for paging and searching. Check it out, you'll see what I mean ;-)
- blocks can now be disabled in admin/block.php
- added support for images in articles
- complete overhauled upload.class.php for ease of use, better security, better logging and for use in putting images in articles.
- fixed bug in users.php that allows accounts with same email addresses yet different usernames to be created.
- New strings in english.php (and german.php):
  - $LANG02: 15 (moved from calendar_event.php)
  - $LANG04: 74, 75, 76 (moved from usersettings.php)
  - $LANG08: 31, 32, 33, 34 (moved from lib-common.php)
  These strings need to be added to the other language files!
- Fixed user selection of emailed topics (usersettings.php) and removed the hard coded texts for the daily digest from lib-common.php (again).
- Slightly changed display of event block: The type of event is no longer underlined and the event date is displayed as 03-Apr etc.
- Added Russion Translation
- Fixed bug #531483 where $_CONF['commentsloginrequired'] was set to 'on' or 'off' instead of '1' or '0'.
- Fixed bug #529621 and added the variable layout_url in COM_endBlock in lib-common.php
- (Sort of) fixed bug #530142: {geeklog_blocks} is now set to an empty string in lib-common.php
- Fixed bug #531018: {contributedby_use} had an 'r' too many in lib-common.php
- There have been lots of minor changes in the themes so that they now contain valid HTML. Nearly all those change fall into one of the following categories:
  - changed '&' in URLs to '&amp;'
  - added alt="" to <img> tags
  - changed the script tags to &lt;script type="text/javascript"&gt;
  - changed the DOCTYPE to HTML 4.01 (there is a bug in the HTML 4.0 specification which prevents the use of 'name' attributes in forms).
  - added '#' signs in front of colour values (mostly in the Classic theme)
  These kinds of changes have also been applied to index.php and lib-common.php
- During those changes for valid HTML, some typos were corrected:
  - Classic/header.thtml: added a missing <b> before {welcome_message}
  - Classic/storytext.thtml: added a missing 'n' in {end_contributedby_anchortag}
  - Yahoo/header.thml referred to a non-existent file "spec.gif"
  - Yahoo/footer.thml: there was an extra quote after align="right"
  - Digital_Monochrom/admin/plugins/editor.thml: file was missing - copied over from the Classic theme)
  - Digital_Monochrom/footer.thtml: added a missing ';' after &nbsp
- admin/install/install.php had two <body> tags but was missing the </head>

## March 7, 2002

- Fixed broken older stories block (lib-common.php)
- Fixed problems with saving rights to a group in admin/group.php (admin/group.php)
- Fixed bug in admin/user that would reset user's settings when admin made a change (admin/user.php)
- Fixed bug in index.php. There were two FOR loops, one nested inside the other both interating on the variable $i. This caused problems only for users who went into display preferences and selected only the topics they wanted to get articles for (index.php)
- Fixed bug in story admin that would prevent the date edit from prepopulating right when admin hit the preview button (admin/story.php)
- Modified admin/plugin.php to reflect change in how plugins are installed. Because of platform dependance issues, all plugins will have a simple but manual installation process. This should work across all platforms. (admin/plugin.php, layout/Yahoo/admin/plugins/pluginlist.thtml, layout/Classic/admin/plugins/pluginlist.thtml, layout/Digital_Monochrome/admin/plugins/pluginlist.thtml)
- Alter the database to force all stories to show on the frontpage by default. This will make the moderation of articles work as expected. Before if you approved an article it would show up only in the topic and not on the frontpage (mysql_tableanddata.sql, table.sql, mysql_1.3.3_to_1.3.4.sql)

## March 1, 2002

- Admins can now manually edit the publish date of an article. This include the ability to set the date for a time in the future. In that case the article is completely ignored by COM_exportRDF, stats.php, search.php and the email digest
- Rudimentary support for database backups (one per day at most). There is no restore capability at this time.
- Modified the display preference so we store the blocks a user doesn't want to see instead of the ones they do want to see. This will allow any new block to show up by default as expected.
- Removed hardcoded english from COM_emailUserTopics
- Fixed minor security bug with whats new block. It would display items the user didn't have access too (however, if they click them they would correctly get the access denied message)
- Topic administration page now default the group to 'Topic Admin' properly
- Topic administration now save anonymous permissions properly

## February 22, 2002

- Removed some outdated themes (hence the 1.3.2-1 version number)

## February 22, 2002

- Added Canadian French, German and Polish translations
- Fixed bug that kept front page with multiple polls from working right
- Added missing help field to block table
- Added block to usersettings where user can pick topics to receive articles for in an email digest
- Fixed bug with the contact link in the header of some themes
- Fixed bug that caused the admin block to disappear
- Fixed bug that caused save of story as admin to go to http://someurl/draft_flag
- Fixed bad relative paths in calendar
- block type now defaults properly when showing prepopulated data

## January 11, 2001

- Two security fixes, one major one. This release addes a users MD5 password to a cookie that is checked when using the permanent cookie. Prior to this you could change the permanent cookie to any user and get their access rights. Second security fix addresses an orphaned group_assignments record that, one new Geeklog installations, would give the very first user to register with the site access to the GroupAdmin and UserAdmin groups
- In admin/block.php you can now specify the URL to a help file. This is usefully in providing site help to your users
- Many bugfixes to the calendar in both the UI and the administration
- Added who's online block
- Fixed bug that was keeping users registration date from being saved.
- Fixed bugs in usersettings.php that keep user options from saving
- Added two database indexes that really speed things up
- Coded some performance-related enhancements
- Fixed bug that kept user-defined themes from working
- Fixed bug in links.php that caused the first link category to report over and over
- Started updating some of the documents

## November XX, 2001

- Added user-defined themes via PHPLib's template class library
- Update the Geeklog security model from numeric Security Levels to a *nix-like model that can be used by plugins
- Added support for plugins. Plugins can be downloaded from http://geeklog.sourceforge.net and uploaded and installed remotely or manually
- Updated most places where dates are used to use the user-defined format in their display preferences
- Updated session management to use a long-term cookie that is fully configurable. If desired, users can specify how long their long-term cookie will persist for.
- Update blocks so that admins can specify the side and order a block shows up on.
- Seperated common.php into the following libraries: lib-database.php, lib-common.php, lib-sessions.php lib-security.php
- Started moving Geeklog to use PHP's OO features with the addition of a timer class, a calendar class, a MySQL database class.
- Fixed bug with output of Geeklog RDF file that allowed story drafts to be included.
- Updated most of the codebase to use the Geeklog Coding Standard (a subset of the PEAR standard).

## August 21, 2001

- Updated configuration documentation
- Added the ability for article author's username to be hidden (via 'contributedbyline' option in config.php)
- Fixed a bug with the Google-like paging feature where it would only work if the GeekLog site was in the root dir
- Fixed a bug which caused slashes to appear before apostrophes in the older stuff block and in the search results
- Fixed overlapping/bad HTML in index.php and common.php
- Fixed the bug in the sections block that showed submission cue numbers to non-logged in people
- Added workaround for problem where users (after following link in e-mail after registration) would still see the login page after logging in
- Created phrase IDs for previously hard-coded English in common.php and story.php
- Fixed a bug which caused draft stories to be counted as new stories in the What's New block
- Fixed a bug with the upcoming events block where it would only work if the GeekLog site was in the root dir
- Stroked the cat

## August 17, 2001

- Released 1.3b
- Added in support for plugins and has been test for *nix and *should* work for windows
- A few bug fixes

## August 3, 2001

- Released 1.2.2
- Added the ability for admins to save drafts of stories
- Fixed a bug with in calendar_event.php when adding event to user calendar
- Fixed a bug with the search bar in header.php

## August 1, 2001

- Released 1.2.1
- a few minor bug fixes
- Added google-like paging feature
- fixed all references to newsgeeks to point to geeklog.org
- when you login when on users.php you are routed to index.php when successfully logged in instead of back to users.php

## July 19, 2001

- Released 1.2 stable.
- Added personalized calendars
- Fixed a number of bugs from 1.2b
- Fixed MySQL 3.23 incompatibility issues
- Added alt_header.php which is the same as header.php minus the left hand side

## May 29, 2001

Released 1.2b. Changes are below:

- Fixed security error in usersettings.php with PGP key
- Now allows posts that don't go to front page
- Added new calendar
- Whether the count of stories and submissions shows up in the Sections block is driven in config.php
- Add ability to sort topics in Section block by number or alpha (specified in config.php)
- Renamed header.inc and footer.inc to have the php extension to avoid letting nosy people see the code
- Added field called limitnews to topics table. This is the same as limitnews in the config.php but applys to only that topic (i.e. you can control the number of stories that show up in each topic
- changed userindex.maxstories to default to null. This is so that the order of precedence for the number for articles that show up will be 1) userindex.maxstories 2) topic.limitnews 3) $CONF["limitnews"]
- added config variable called $CONF["minnews"] which specifies the minimum number of stories per page regardless of topic (i.e. it overrides topics.limitnews)
- an anonymous user can now email a story to a friend and they can enter some text to accompany the message
- fixed bug that allowed users to post comments to non-existent articles through article.php
- added the Get Geeklog Articles in Your Mailbox feature. This is dependent on cron and a shelled php script. This can be turned off in the config file
- session management has been improved
- moved "appears on homepage" setting on poll administraction screen to the top of the form to keep from having to scroll down all the way.
- Added messages to various user actions (i.e. notification that submission was sent, confirmation that user data was saved, etc)
- Added Upcoming events block
- Fixed MySQL 3.23 incompatibilities
- added account creation date to user table along with other useful information (aim, yim, etc)
- added email gl users/admins feature
- fixed checkhtml function so that strings to gain extra spaces
- added file custom_code.php. This is where admins should put all custom code (not addon code). GL admins should never touch common.php moving forward
- added version checking system to let admins check for current version
- added $CONF["OS"] for use by Geeklog Addons (Use PHP OS variable). It represents the operating system that Geeklog is running on and is useful for producing useful error messages should a user be trying to use an addon that is OS specific

## September 24, 2000

Tar'ed it up and shipped 1.1 out the door!

## September 24, 2000

- Date in moderation now shows the correct submission date.
- Maxstories now counts a feature as a story.
- Saving user information now returns you the the edit screen.

## September 18, 2000

- Fixed comment post mode preview bug.
- If a block is empty, it will not be displayed.
- Fixed a user creation error.
- Fixed the submission scripts to add and remove slashes in all the right places.

## September 13, 2000

- Added a limit check to index.php to ensure stories are displayed.
- If block order is between 1 and 9 it is a default block. Anything greater than 9 will not be displayed without the user configuring thier settings for it.
- Added bolding to the display preferences screen for default blocks.

## September 12, 2000

- If a user sets maxstories to less than 5, max stories will be 5.
- If a story id and poll id are the smae they will share comments and the poll will be displayed on the stories article page.
- Poll results box is now linked to comments.
- Added stripslashes to the links description.
- Made HTML the default posting format.
- Updated the user authentication to address a login bug.
- Added a 404 script.
- Updated the admin user editor to create all the new user tables when creating a user.
- Updated the What's Releated function to better parse for links.
- Updated comment functions to update the comment counter more often.
- Finished the addition of a "smart" style sheet! It will now format the font size according to the users browser an platform.

## September 9, 2000

- Updated some missing to language in english.php. Thanks to Hidekazu SHIOZAWA.
- Updated the stats script.
- Added post modes, the user can now select plain text or HTML.
- Added user preferences for date format.

## September 8, 2000

- Fixed a few more issues surronding the $CONF["site_url"] placement. Thanks to Hidekazu SHIOZAWA.
- Added sig to user accounts.
- Added a system hit counter
- Fixed a poll comment bug.
- Comments can now be enabled on a per story basis.
- Comments can now be enabled on a per poll basis.

## September 7, 2000

- Fixed the // uri issue.
- Fixed a few issues surronding the $CONF["site_url"] placement in links.
- Began work on new user customization system!
  - Index Configuration
  - Comment Configuration
  - Story Configuation
  - User Configuration
- Fixed the link submission script so it now actually works.

## September 6, 2000

- Updated the email story to a friend to use the db widgets.
- Fixed the "More by author" search links from the article page.
- Fixed the article editor to be able to delete submissions.
- Fixed translation issues by adding two more strings to english.php. Added $LANG01[61] and $LANG01[62].
- Fixed a formating error on the links page.
- Fixed the admin user editor to allow blanking on non-essential fields.
- Removed moderation option from config. If you want an unmoderated site there are better applications out there like UBB and FreeLinks.
- Updated the user profile page to put all descriptors at the top of the cell for the about and PGP key boxes.
- Updated INSTALL.HTML

## September 5, 2000

- Olderstuff() will now parse special charactors.
- Fixed the admin story editor to properly parse the special charactors in the text for editing.
- Fixed article() to stripslashes from the title.

## September 4, 2000

- Fixed a logout bug effecting Netscape users.
- Fixed a change password bug effecting Netscape users.
- Fixed references to speck.gif, spec.gif was referenced incorrectly.
- Fixed the story submission to correctly record the user instead of Anonymous.
- Added multiple previews when submitting a story.
- Update to english.php
- Updated the blockparser to use str_replace() instead of strtr(). The use of strtr() was causing issues on some platforms using earlier versions of PHP4.
- Added a sample httpd.conf Apache configuration file to the distribution.
- Updated INSTALL.HTML
- Updated README

## September 1, 2000

Fixed a bug in the database upgrade scripts.

## RELEASE!!! 1.0!!! - August 29, 2000

Tar'ed it up and shipped 1.0 out the door!

## August 29, 2000

Fixed a bug in the command and control center which didn't allow the display to be completely updated after a batch moderation.

## August 28, 2000

- Completed the command and control center functionality.
- Completed new search engine.
- Fixed language display bug in story submission form.

## August 27, 2000

- Fixed a login bug that occoured under FreeBSD.

## August 26, 2000

- Fixed a bug that allowed anyone logged in to delete a comment.

## August 22, 2000

- Fixed a nasty delete everything bug with the link editor.
- Continued with search engine update.

## August 21, 2000

- Fixed a bug with the link counter.
- Reworked the olderstuff block.
- Updated the search engine.
- Fixed the speed limit warnings so they show the number of seconds since the last post.
- Updated the index page to show date of last comment.

## August 20, 2000

- Cleaned out now defuct class settings.
- Comments can now be set to force login to post.
- Block list is now sorted by type
- Email forms updated.
- Fixed the no from info bug in the password email.
- Fixed the topic editor background bug.
- Postions of the olderstuff and poll blocks is now configurable.
- Olderstuff block can now be turned off.
- Olderstuff block now shows 2x the news limit.
- Updated the install instructions.

## August 19, 2000

- Modified the polls, you can now set then maximum number of possible answers in config.php.
- Fixed edit link bug.
- Updared english.php for the new admin files.
- Modified the cookies to have a configurable expiration time for users and admins. This can be set in config.php.

## August 18, 2000

- Reworked the default interface.
- Fixed numerous bugs.

## August 14, 2000

- Began moving portions of the HTML in to blocks
- Updated the english.php file.

## August 13, 2000

- Updated how polls are shown.
- Updated the poll adminstration interface, this was the last old piece of code to be re-worked.

## August 12, 2000

- Completed new submission forms.
- Completed added base path to all references.
- Completed scripts for user account creation.
- Completed comment intergration with user accounts.
- Added comment posting speed limit.

## August 11, 2000

- Completed new story editor and managment functions.
- Completed database widgets.
- Began work on reworking the poll editor and managment.
- Removed the following functions that have become obsolete:
  - countx
  - topicsel
  - getTopic
  - saveuser
  - rot13
- Removed the following array used to set premissions in older versions - $ADMIN
- Began work on intergrating comments with user accounts.

## August 7, 2000

- More work on user accounts and database widgets.
- Minor cosmetic fixes.
- Began re-working the administration forms.

## August 7, 2000

- More work on new submission engine and database widgets.
- Implemented submission speed limit.

## August 6, 2000

- Added command and contol center to admin and moderate submissions.
- Added ability for users to submit links.
- Added ability for users to submit events.
- Began intergrating user accounts.
- Began intergration of a help system.

## August 5, 2000

- Created new database function templates. Began updating all the scripts to use these new database calls.

## BETA RELEASE!!! 0.5!!! - August 3, 2000

- Tar'ed it up and shipped 0.5 BETA out the door!

## August 2, 2000

- Getting ready for 0.5 release!!
- Parent links no longer show up on top level comments.
- Story moderation now show the "new story" button even if no stories exist.
- Story contribution preview now displays the date correctly.
- Comment preview now displays the date correctly.
- Made the log path configurable.
- Fixed false "no stories" error in index.php.
- Fixed the topic highlighting in showtopics.
- Fixed comments so that the posting and delete work properly again.
- Events (calander) now properly parses special charactors.
- Links now properly parses special charactors.
- Mail to a friend should work better now.

## July 30, 2000

- Moved all date functions to using strftime and locale settings for display of dates and times in local languages and formats. These are also configurable in the config.php file.

## July 27, 2000

- Finished move admin strings to english.php.

## July 26, 2000

- Added the featured article functionality.
- Fixed a special charactors problem in the comments, you can now use special charactors.
- Made some changes to the email story function to provide a statement on this isn't spam!
- Added parent function to comments.

## July 25, 2000

- Began moving strings from the admin files in to english.php
- Finished up printable story and email story functions.
- More minor bug fixes to the comment engine.

## July 24, 2000

- Fixed encoding bugs in comments. Slashes are now being stripped properly.
- Fixed the comment control bar, the title and number of comments are now showing up correctly.
- Fixed the url encoding in the reply links. The title of a reply now copies over in to the form.
- Bought more vodka! The vodka shortage is over!
- Adjusted the comment spacing.
- Began to add the printable story and email story functions.

## July 23, 2000

- Added comment count to olderstuff block.
- Reworked the polls for better display
- Worked more on the comment engine, all comment modes (none, flat, threaded, nested) work at one level or another. This is really shaping up well and we have unchained the monkies from their typewriters... But no novel yet...
- Out of vodka and can't buy any more since it is illegal to sell alcohol on Sundays in Georgia.

## July 22, 2000

- Changed password functions to use md5, crypt() is becoming to unreliable. Running the dat

<editor problems, change log for 0.4.1.2 - 0.4.1.1 lost>

## BETA RELEASE!!! 0.4.1!!! - July 19, 2000

- Tar'ed it up and shipped 0.4.1 BETA out the door!

## July 19, 2000

- RDF fetch bug fixed. The rdfimport routine was not correctly identifying if the file open didn't work correctly.
- Poll Dispaly bug fixed. Poll wouldn't display if there wern't at least two user defined blocks.
- Added word count to the read more display.
- Move all strings for public side functions to a resource bundle called english.php. Geeklog can now be translated. If you do translate Geeklog please send me your resource file! Great thanks goes to Mischa Polivanov for his work on this project!
- When moderating a story, it now returns you to the submissions que when your done.

## BETA RELEASE!!! 0.4.0!!! - July 8, 2000

- Tar'ed it up and shipped 0.4.0 BETA out the door!

## July 8, 2000

- Update the poll to restrict votes by IP. This function only creates a table of IP addresses pollids and timestamps, votes are NOT tracked!
  Addresses are deleted after an admin specified peroid of time set with the config.php variable $CONF["polladdresstime"].
- Added $CONF["pollcookietime"] to config.php to allow you to set the amount of time the poll cookies will exist for the user.
- Changed poll to only show a % in the smaller index window. Graphs are now only on the full view of the results.
- Added SQL query interface for admins. This was added for those that don't have shell access or shell access isn't alaways avaiable for troubleshooting. Be VERY careful with this!
- Fixed a really nasty bug with the RDF import HTTP calls! This was causing the server to lock up under certian circumstances.
- Update showblocks() to now order polls and olderstuff as well. Here's the new method:
  - show blockoder = 0 to 1
  - show the polls
  - show blockorder = 2
  - show olderstuff
  - show remaining blocks
- Reworked the calendar layout a bit.
- Added two new doc files dbschema.html and dbschema.png to document the database.

## July 5, 2000

- New admin menu as well as more admin checks in editing of stories and blocks. In stories only the owner or someone with a seclev of 200 or higher can edit a story. Blocks seclev's are now being enforced.
- More stats stuff
- Access logging is now working! It reports on admin access and illegal operations in /logs/access.log
- Found some more bugs released to stricter PHP syntax guidelines in blocks.php and users.php. They've been fixed!
- Added the beginings for threaded comments, but it is NOT working yet.
- Refined different aspects of the database, this is going to be the bigest DB update script yet!
- Calendar has been rewored as events, since I can see Security Geeks using this functionality for things other than a calendar. Hmm, what is he thinking?
- Adding CSS references where needed when I find them.

## July 4, 2000

- Added additional security checks for admins as well as adding additional admin tracking.
- REMOVAL: function isAdmin() is being removed.
- Created a new story format and parser. The story text is now broken in to two blocks, an introtext block and bodytext block. Introtext is all that is displayed on the index page.
  Both introtext and bodytext are displayed on an article page. There are many other neat things that have changed to go along with this, too many to mention! An example is "read more" is only displayed when there is data in bodytext.
- Added comment and poll stats to the stats page.

## BETA RELEASE!!! 0.3.0!!! - July 3, 2000

- Tar'ed it up and shipped 0.3.0 BETA out the door!

## July 3, 2000

- Fixed poll division by zero error. (xix)
- Added the calander. This also involved adding lines to config.php and style.css.
- Added next a previous links to the stories list. Security Geeks has almost 2000 stories now. We needed a better way to view this information without killing the SQL server!
- Fixed a parsing bug on the contrib form. (richpav)
- Fixed a bug in which votes were not being saved if the first answer has 0 votes in the poll editor. (richpav)

## July 2, 2000

- Fixed a rouge <xmp> tag in contrib.php.
- Added a new function to check email addresses.
- Fixed a problem with the checking of <a href=> tags. (frank)
- Moved more of the layout to CSS. Giving some though to creating a CSS editor for the site.
- Added additional error checking on submissions.
- Evaluated the security of the file layout, file premissions, cookies and made some minor changes
- Added the RDF import capibilty to the blocks. Woo-hoo! Half way there to 0.3.0!
- Fixed a bunch of function calls that are now considered errors in PHP 4.0.1pl2 (richpav)

## BETA RELEASE!!! 0.2.1!!! - July 1, 2000

- Tar'ed it up and shipped 0.2.1 BETA out the door! The bugs fixed here are pretty signifant. This has none of the 0.3.0 features.

## July 1, 2000

- Cleaned up the all of the PHP scripts and added missing ;'s. (macole)
- Fixed some table layouts for comment and story submissions.

## June 30, 2000

- Fixed an bug in the story submit functions. It seems addslashes was droped when putting in the content checking. It's back now!
- Added a line to display the allowable HTML in the story editor and submission form.

## BETA RELEASE!!! 0.2.0!!! - June 29, 2000

- Tar'ed it up and shipped 0.2.0 BETA out the door!

## June 29, 2000

- Bugs Found Score: Women:28 Men:13
- Security hole regarding user cookies. The user cookie contined the site key, this 33% is part of the information needed to forge a admin site key. This has been fixed.
- Also fixed a problem in the user cookie where some of Jason's (the other Jason) info for his site was coded in there.
- Added the ability to specify your own salt value for the encryptor.
- Added filters that are admin configurable to strip out unwanted HTML tags and key words. These options are configurable in the config.php file.
- Blocks are now topic aware.
- Change sid to char(20) in the database tables stories and comments. This was in order to create compatibilty between stories, comments and polls.
- Poll comments!
- Added a blockorder field to the blocks table. You can now modify the display order of blocks.
- Fixed a bug in the link generation in stats.php.
- Changed the description field in the links tables from varchar(255) to text to allow for longer descriptions.
- Preview now uses article() function. Shows a true preview!
- Fixed a bug in comment.php that still may the user type in a user name email even if if the anonymous option was chosen. It never actually saved the info, just asked for it. Now it no longer asks. :-)

## June 28, 2000

- Correct setting of a user cookie in comment.php, contrib.php and profile.php. The cookie was not being set to remember a users infomation if they selected to do so.
- Fixed the CSS layout for the comment bar, this wasn't working properly under Netscape.
- Fixed an error in the change password function. It was displaying a error even when the change was successful.
- Made total votes a caculated field in the poll editor, this is also a easy way to reset the count in the case of SQL errors.
- Fixed topic sorting bug, topics sort themselves now. This also involved a change to the config.php file in which $CONF["topicssort"] was changed to $CONF["topicsort"].
- Added feature to track which admin moderated a story and posted it to the site.

## BETA RELEASE!!! 0.1.0!!! - June 27, 2000

- Tar'ed it up and shipped 0.1.0 BETA out the door!

## June 27, 2000

- Added the ability to delete comments. NOTE: I do not plan on the abilty to edit comments. Just a personal thing, thats all.

## June 26, 2000

- Created search engine that searched stories, comments and links.
- Update comments and how they are displayed.
- Created new form for submitting comments.
- Enhansed a bunch of the forms.
- Removed some obsolete stuff, cleaned things up a bit.
- Added some additional error checking to submits. Also moved all error checking to the server side. I was testing the use of JavaScript but too many people like to turn it off! I know I do! :-)

## June 25, 2000

- Squashed 23 bugs with the help of my wife! Now if only Frank would get his bug reports in!
- Created interface for editing, creating and deleting links.
- Cleaned PHP procedures out of inc files.
- Updated and tested SQL statements to refelct DB changes.
- DB changes frozen for release and the beta testers rejoiced!

## June 24, 2000

- Created interface for editing, creating and deleting users.
- Figgin problem with polls deleting themselves seems to be fixed now.
- Created interface for editing, creating and deleting topics.
- Created interface for editing, creating and deleting blocks.
- Created interface for moderation, editing and posting of stories by admin. This worked out well!

## June 23, 2000

- Finished up additions to the datebase, need to change the forms now so the site can use the new fields. Some of the new feilds are for future use as well.
- Added descriptions to the Links page.
- Fixed the search page so its now formated correctly.
- Finished up the pollbooth functions (edit and delete).
- Optimized some of the HTML in the scripts, further optimization later!

## June 21, 2000

- Created a new layout format using all external CSS calls. Let the client do the work!
- Finished moving configuration to config.php
- Weeded out some functions in common.php. Move functions that are only used by one script to that script. Combined other similar functions in to one function. Smaller... Faster... More Stable!
- Only 6 more items on the to do list for 0.1.0.0

## June 20, 2000

- Created admin functions for the pollbooth. Seems the other authors on the site don't like hand entering SQL! I don't like them having shell accounts! -grin-
- Update the Header feild in the Stories block to be a little bigger. This should let wordy authors emblish their titles more!
- Created a more robust errorlog routine. Now has the options of output to a log, the screen or both!

## June 19, 2000

- Created a pollbooth for voting. All user functions are in pollbooth.php. There are no admin functions yet as I just love hand entering SQL!

## June 18, 2000

- Optimizations made to the SQL connections and calls. Too much done here to talk about, but part of it was moving the site configuration to a flat file. These changes should decrease the usage of the SQL server a great deal. This took up most of my day.
- Variable usage optimizations. Made many, many chnages in the way variables were being used. This should result in cleaner, faster code that _may_ use a little less memory?
  Hey, if I can save 2k per hit, thats a big deal! :-)
- Updated all code and tested to ensure php4 compatibility. So from now on only php4 will be run on the Geeks web servers. So I changed all the extentions and links from .php3 to .php to mark this moment.
- Restructured the directory layout so I can implement some new security settings on the files. Hmmm, I bet you wondering "what is this mad-man thinking?"

## June 17, 2000

- Initial announcement, running this new code on the Geeks web servers.
- Special thanks to Jason Hines and phpWebLog! His work inspired much of my efforts! Unfortunatly phpWebLog is taking a different direction that the Geeks sites needed. However, all the code I am writing here will be published in the hopes that Jason and others may find these functions useful. If you looking for a weblog software that is cool, configurable and supported by someone I would recommend you check out http://phpweblog.org and party on dudes!