他のCMSでは当たり前に使用できるTinyMCEを、Geeklogのコアコードに触らずに使用できるよう、プラグイン化に挑戦してみた。初期設定では、記事編集でFCKeditorを使用している場合を除き、すべてのtextareaタグでTinyMCEを使用できる。プラグインとして、ひろろんさんに教えてもらったtinyBrowserプラグインを同梱しているので、画像の挿入/編集も簡単。ダウンロードはこちらからどうぞ。
例によって、アルファ版なのでバグがたくさんありそうだが、人柱&フィードバック希望。
----- edit -----
(2010年 3月 6日追記)
最初のベータ版であるバージョン0.2.0を公開した。数々のバグが修正されていて、FCKeditorの代役が務まる程度にはなっていると思う。
Geeklog SNSで話題になっていたPingの送信タイミング(Geeklogの場合は手動)を改善できるかもと思って、プラグインを試作してみた。
以上の仕様で制作したつもりだが、なにぶんアルファ版なので例によって不具合はありそう。特に記事が多いサイトでは、PHPの実行時間内にPing送信が終わらない可能性があるので、そのつもりで使ってみて欲しい。ダウンロードはこちらからどうぞ。なお、このプラグインをインストールした時点で、既に公開日時に達している記事については、既にPingを送信したと見なすのでそのつもりで。
SNSでの私の戯言を気に留めてくださったみるくさんが冬にふさわしいGeeklog用テーマの新作「snow」を発表された。
「一面銀世界の中で、一箇所だけ常緑樹か一輪の花が咲いていて、寒々とした世界の中でただそこだけが生命の息吹を感じさせる」という茫洋としたイメージを十分に具象化しつつ、WAIproCSSバージョン2.4.0をベースにしているので、例によってアクセシビリティへの配慮も十分である。当サイトもさっそくデフォルトのテーマをsnowにした。わがままな私の願いを聞き入れてくださったみるくさんに心から感謝します。
美的センスのない自分がふだんGeeklogのテーマについて書くことはないのだが、みるくさんが今回発表された「naturalgreen」テーマを初めて見たときは、思わず感心してしまった。
白を背景に、清々しく爽やかなグリーンのグラデーションと若葉の画像をアクセントにしたテーマは見ているだけでリフレッシュされる。それだけでなく、みるくさんがコツコツと完成度を高めている、アクセシビリティに配慮したWAIproCSSテーマをベースにしているので、実用性も高い。Geeklogを使っている人はぜひ、一度はご覧になってほしい。
AugeさんがSNSで紹介していたGeeklog用のSocialShareプラグインが面白そうなので、当サイトにもインストールしてみた。各記事の下部に表示されている「共有する」のアイコンがそれ。シンプルだけど、あると便利。
例によって、AugeさんがGLTMatrixのこのページとこのページで懇切丁寧に説明されているので、ぜひ、ご一読のほどを。
まだアルファ版のレベルだが、バージョン0.2.0を公開した。変更点は以下の通り。
今年の春に試験的に実装していたTwitter用ライブラリを核にしたGeeklog用のプラグインを仮公開した。まだ、アルファ版の段階でバグが多いことが予想されるため、そのつもりで使って欲しい。自分のタイムラインとfollowingを混在して表示できるが、当サイトの右ブロックには自分のタイムラインしか表示していない。
Geeklog-1.5.0以降、PHP-5.0.0以降が必要だが、MySQLのバージョンは問わない。自分が書いた記事や掲示板での発言を自動的にTwitterに投稿する機能もあるし、bit.lyのアカウントを持っていれば、投稿データ中のURLを自動的に短縮することもできる。ダウンロードはこちらからどうぞ。
-- Edit --
さっそくdengenさんからバグの指摘を頂いた。非公開領域/plugins/twitter/functions.incの153行目を
. $base_uri . '/twitter/js/twitter.js">';
から
. $base_uri . '/js/twitter.js">';
へ修正してほしい。これをしないと、つぶやくときに文字数がカウントダウンしない。dengenさんに感謝します。
現在のGeeklogで検索対象になるのは、記事と検索APIを実装しているプラグインのみ。つまり、公開領域/docs/にあるhtmlドキュメントは検索されていない。ドキュメントの翻訳にかかわった者としてはもったいないの一言に尽きる。そこで、検索APIを調べてみると、カスタム検索関数を追加できるよう設計されていることがわかった。APIのシグネチャを調べて実装したのが、こちらのカスタム検索関数。対象のhtmlファイルを力ずくで検索するのであまり格好いい方法ではないが、ないよりはましと思う。
GeeklogのTwitterクライアントを実装するのに必要なクラスライブラリをTwitterの公式ドキュメントを元に作成したが、肝心のクライアントの構想が定まらない。自分のサイトにpublic_timelineをそのまま表示するのは無意味だし、自分のつぶやきだけを表示しても寂しいし、Friends(follower/following)を追加表示するのも意味があるようなないような...
GeeklogがHTMLのレンダリングに使用しているのはPHPLIBのTemplateクラスで、Dirkさんが何かのカンファレンスでその制作者に出会ったときに「まだそんなもの使っているの? Smartyを使えよ。」と言われたほどの代物。軽量だが、変数置換などの最低限の機能しかないため、条件分岐やループ構造を単体では実現できず、PHPコードでレンダリングしなければならない。
開発時期が古いためか、コードを読んでも「なぜそんな実装?」と突っ込みたくなる箇所が多い。
このような状況で、JoeさんさんがCaching Template Library(CTL)を開発・公開した。オリジナルのTemplateクラスに、1. 条件分岐やループ構造を追加 2. デフォルトの変数を定義 3. テンプレートをPHPコードにコンパイル・キャッシュして、実行速度アップを狙った優れものである。MediaGallery-1.6.xはこのCTLがないとインストールすることすらできない。
上記1., 2.はありがたいが、モジュール版PHPが多い日本のホスティングサービスでは、パーミッションの関係で3.でつまずくことが多い。それと、これは私見だが、Geeklogのように各テンプレートファイルのサイズが小さい場合には、コンパイル・キャッシュの恩恵をあまり受けられないように思う。
そこで、CTLからキャッシュ機能を抜き、代わりにdengenさんが提唱しているTemplateクラスの高速化(file()をfile_get_contents()で、preg_replace()をstr_replace()に置き換えるなど。)と木下さんが実装したOverRide機能(該当テンプレートファイルがない場合、デフォルトのテーマに自動的にフォールバックする機能)を追加したKZ_Templateクラスを開発した。ダウンロードはこちらから。まだ、開発段階なので、いろいろバグが残っていると思われるが、Geeklogのコアファイルを改変しなくても使えるので、それなりの価値はあると思う。






