Joomla!の生産性を向上させる各種の機能拡張

  Joomla! は広範に用いられているWebポータル用のコンテンツ管理システム(CMS:Content Management System)の1つであり、インストールおよびメンテナンスが簡単なことと、多数のコンポーネントとモジュールおよび、Webサイトで必要とされるあらゆる機能を満たすMambotが用意されていることがその特長だと言える。これらすべての機能拡張はオープンソース化されており、それはCMS本体も例外ではない。本稿ではこのうち、特に有用度の高いいくつかの機能拡張を紹介することにする。

 Joomla!のセットアップ終了後、最初にインストールしておくべきものの1つが JoomlaPack だ。これはバックアップ用のソフトウェアで、設定オプションの数は限られているものの、非常時に備えてファイルとデータベースをバックアップしておくという本来の目的は遺漏無く果たしてくれる。JoomlaPackの場合、データベースやサイト上のファイル群を個別ないしは一括してバックアップできるが、除外すべきディレクトリ(/tempなど)は設定パネルにて指定可能となっている。なおバックアップの終了後におけるアーカイブファイルのダウンロードは、JoomlaPackの設定画面から行うことになる。JoomlaPackの唯一の欠点は、 JoomlaCloner などの同種アプリケーションとは異なり、スケジュール指定した自動バックアップができないことだけだ。

 ユーザによる記事やニュースの投稿を受け付けるタイプのポータルを運営する場合において、セキュアなアクセスの確立に役立つのが MyContent である。このコンポーネントをインストールし、メニューへのリンクを構成しておくと、一部の特殊ユーザや登録ユーザのみによるアクセスだけを許可するリンクパーミッションを設定できるようになる。こうしたリンクをクリックすると指定しておいたテキストエディタが開かれるので、個々のユーザはこのエディタを介して投稿記事を入力すればいいが、最終的にサイトに掲載されるのは管理者による許可を経た後になるという仕組みだ。こうしたフロントエンドでのアクセス制限を課す方式は、バックエンドで専用のアクセスアカウントを管理するよりも好ましい手法だと言えるだろう。この場合、記事を投稿するユーザはバックエンドでのログインをする必要がなく、管理者にとっては.htaccessパスワードの共有に関する追加指定の負担から解放されるからだ。

 こうしたMyContentと同等の機能を提供するものに、最近リリースされた jp Submissionary が存在する。このコンポーネントも、ユーザがポータルに投稿するテキストやイメージの入力を受け付けて、管理者による許可を経た後にサイトコンテンツとして掲載させるという方式になっている。同コンポーネントの長所としては、読み込み速度が速い点および、他のJavaScriptモジュールがMyContentとコンフリクトする際にも使用できる点を挙げることができる。ただしjp Submissionaryの場合、フォーマット機能が貧弱であり、またアップロードできるイメージ数が投稿文章のイントロ部と本文テキスト用の2つだけに制限されるという短所も有している。

 サイトの利用ユーザに使用させるテキストエディタの候補としては Joomla! Content Editor (JCE)がお勧めである。Joomla!本体にも基本的なフォーマット機能を有したテキストエディタが用意されてはいるが、設定オプションの豊富さにおいてはJCEの比ではない。JCEの設定ウィンドウでは、エディタの縦横サイズを始め、その他の多様なオプションを指定できるからだ。例えばボタン用イメージの表示位置すらも、JCE Layout Managerでのドラッグアンドドロップによって変更することができてしまう。その他にこのエディタは言語ファイル機能もサポートしており、その設定と使用もごく簡単に行えるようになっている。現状でJCE Language Packがサポートしているのは、日本語、オランダ語、チェコ語、フランス語、スペイン語、ドイツ語、カタロニア語、ブラジル語である。

 JCEの特長は、ユーザフレンドリな構成を取っていることと、プラグインの使用をサポートしていることだ。例えばImageManagerおよびAdvanced Linkというプラグインを使用すると、イメージ挿入時にJoomla! Media Managerとエディタの間を切り替える作業に煩わされなくなる。ImageManagerは、イメージのアップロードと管理をエディタウィンドウから直接可能にするためのプラグインである。Advanced Linkは、テキスト中への通常リンクの挿入および、インサイトカテゴリ、セクション、アーティクルリンクの作成機能を提供するためのプラグインである。例えば既存カテゴリ中にリンクを挿入する場合、Advanced Linkのウィンドウ下部にあるドロップダウンリストから項目を選ぶと、該当するURLパスの検出はエディタ側で処理されるようになっている。

 こうしたパス管理については sh404SEF を使用すると、立ち上げ後のポータルに対するインデックス化およびURLに分かりやすい名称を付けるための処理を簡単化することができる。これはいわゆるSEF(Search-Engine-Friendly)コンポーネントの一種であり、PHPのURLを意味のあるテキストに自動的に変換すると同時に不要なキャラクタを削除してくれるのだが、ファイルサフィックスを末尾に追加する機能も有している。また何百もの記事が掲載されているサイトの場合、そのリネーム処理をすべてsh404SEFの判断任せとする訳にはいかないケースもあるだろうが、そうした場合は特定のカテゴリのみを処理対象に指定することができる。その他同コンポーネントには、404エラーの表示ページをカスタマイズする機能も用意されている。なおURL文字列を固有な形式で作成するコンポーネントも存在するため、sh404SEFの場合は、 VirtueMart Community Builder FireBoard のフォーラムコンポーネント、 DOCman Remository Letterman iJoomla:magazine など利用頻度の高いものに対する個別設定ができるようになっている。

 sh404SEFが特に優れているのは、管理者が.htaccessファイルの設定に関わりたくない場合に、そうした操作が免除される点である。これに対して他の多くのSEFコンポーネントでは、mod_rewriteを有効化して.htaccessファイル中でその宣言をしておかなくてはならない。またsh404SEFでは、ApacheのPathInfo機能を用いたURLのリモデリングも可能となっている。なお一部のコンポーネントでは、イメージファイルおよび設定のパスに対するサードパーティ製ソフトウェアによる書き換えを奨励していないものもあるが、sh404SEFではSEFによるURL変換の対象外とさせるものをユーザ指定することができる。

 Joomla!用の有用なSEFコンポーネントとしては、その他に JoomSEO ARTIO JoomSEF および、かつて使われていたOpenSEFを作り直した NuSEF などが存在している。いずれもsh404SEFの基本機能にいくつかのオプションを追加しただけのものではあるが、これらの場合は主として.htaccessファイルの使用が前提となる点が大きく異なっている。

画像データの操作性の改善

 Joomla!用のMambot群全体の傾向としては、テキストのプレフォーマット処理、コンテンツアイテムへのビデオファイルの挿入、画像の操作など、コンテンツ装飾に関係するものが多い。その中でもイメージ表示関連の処理については、 Multithumb というボットでたいていの用途は間に合うはずだ。例えばGD Graphics LibraryあるいはImageMagickがインストールされているWebサーバの場合、Multithumbを用いると、記事中に挿入した全イメージのサムネイルを自動作成させることができる。また通常のブラウザウィンドウ上で表示する画像に対して、ポップアップやアニメーションなどの効果を付けることも可能だ。サムネイルの拡張オプションでは、JPEGの画質設定、縦横サイズの固定値、枠線のスタイルとサイズ、ウォーターマーク用ファイルおよび背景色の指定が行える。また簡易的なギャラリを作成したければ、1つのフォルダ中にイメージ群をアップロードしておき、記事中に必要な画像を挿入する際には、その部分の代替テキストを「mt_gallery」に置き換えるという作業をしておけばいい。これは対応するイメージが何であるかをMultithumbに通知するディレクティブとして機能し、指定されたすべての画像を収集する形で1つのギャラリが形成される。こうしてギャラリに収録される各イメージに対しては、専用のテキストファイルを用意することで、個々の画像別に解説を表示させることもできる。例えば画像ファイルが、picture01.jpg、picture02.jpg、picture03.jpgという名称であれば、解説テキスト用のファイルはpicture01.jpg.txtという名前にして、その中に下記のようなテキストを記入しておけばいい。

picture01.jpg Here is some text
picture02.jpg Another description
picture03.jpg And another one

 なお特定の記事においてのみMultithumbのデフォルト設定を変更したければ、テキストモードにて次のような指定をすることができる。

{multithumb thumb_width=200 thumb_height=150}

 こうした方式でイメージ関連のデフォルト設定をオーバーライドさせるに当たっては、カスタム設定用の文字列を生成するためのオンラインパラメータツールが用意されているので、それを利用すればいいだろう。

 このように多数の機能を備えたMultithumbであるが、特にサムネイルイメージについては単なるオリジナルの縮小版とするだけではなく、画像の一部だけを表示させたり、事前設定した背景に比率を合わせて縮めるという指定をすることもできるようになっている。

 Webサーバで使用するファイルを1つか2つ変更するだけなのに、いちいちgFTPを起動するのは億劫だという人間もいるだろう。そのような場合、Joomla!をバックエンドで既に運用している環境であれば、ファイル転送、パーミッション変更、ファイル編集、アップロード/ダウンロードといった機能を備えた joomlaXplorer というオンラインファイルマネージャを使用するのも1つの手である。またこのマネージャでは、ディスクスペースの空き容量がステータスバーに表示されるようになっている。インターネット接続に関する制限が薄く、Joomla!の管理セッションのタイムアウトに悩まされないという管理者であれば、このようにしてファイル編集をFTP無しで済ませることも可能であろう。

 多くのサイトでは、何らかの方式でユーザ間のコミュニケーションが取れるようにしているものである。Joomla!におけるそうした用途としては、フォーラムコンポーネントないしはコメントシステムをインストールしておくのが最適な選択肢であろう。後者の場合に私が利用するのは AkoComment Tweaked Special Edition である。様々な設定オプションおよびテーマ変更をサポートしているのがその特長だ。例えば投稿したニュース記事に対するユーザ間の意見交換を許可させたい場合は、同コンポーネントのインストール後に、ニュース、ニュース速報、投稿記事など、有効化させるセクションを指定しておけばいい。またその他の設定として、匿名でのコメント投稿や、登録ユーザによるコメントRSSフィードの使用を許可させるかや、1ページ上に表示させる最大コメント数および、CAPTCHAによるサイト保護を施すかを指定できる。特にスパマ連中はこちらが気を許せば必ず隙を突いてくるものなので、最後のオプションは可能な限り有効化しておくことをお勧めする。これはコメントを投稿するユーザには5桁の数値入力を強制させるという機能である。その他にもAkoComment Tweaked Special Editionでは、BBCodeおよびsmiley packもサポートされており、また当該サイトへのコメント投稿時に電子メールで管理者に自動通知するという機能も利用できる。また疑わしいコメントを見つけたユーザからの報告を受け付けるための専用リンクを用意しておくことも可能である。このように非常に多機能なコンポーネントなのではあるが、現状における最大の欠点として、コメントの投稿ユーザ本人による訂正を許可する機能が設けられていない点を挙げざるを得ない。何しろそうしたコメント変更の要望がユーザから出された場合は、管理者自らがログインしてJoomla!のバックエンドにアクセスし、該当する文章を1つ1つ訂正するしかないのだ。

 AkoComment Tweaked Special Editionを使用する場合は Last comments for AkoComment TSE の併用も検討すべきだろう。これは最新のコメントを指定したモジュール位置に表示させるためのコンポーネントである。この機能を利用すると、各自が投稿したコメントに対する2次コメントの有無を確認しようとする登録ユーザによる定期的なサイトチェックが非常に行い易くなり、わざわざ過去の記事やニュースをたどることなく、こうしたコメントに簡単にアクセスできるようになる。

フォーラムおよびマルチメディア関連の機能

 クリック数を増やしてコミュニティ形成を促進させるための次善の方策は、フォーラムコンポーネントをインストールしておくことである。広範に用いられているフォーラムソリューションと言えば Simple Machine Forums Invision Power Board だが、Joomla!の場合はこれらを Joomla! SMF Forum Component などのJoomla!用ブリッジと組み合わせるのが一般的である。この場合のブリッジとは、ポータルとフォーラムで使用するデータベースを共通化させるためのもので、これによりアカウントを個別管理する負担を解消することができる。ただしJoomla!用のブリッジについては、初心者ユーザがインストールするのに難があるかもしれない。そうした場合の代替策としては、 Fireboard Forum を試してみてもいいだろう。こちらのインストールは非常に簡単であり、各種用途におけるJoomla!との親和性も高く、完成度の高いテンプレートやフォーラム用プラグインもいくつか付属している。特にテンプレートシステムについては、SMFをベースにしているための類似性が高いことが評価できる。もっとも専用のフォーラムシステム程の細かい設定は行えないので、使うとすれば中小規模のポータルが最適のはずだ。

 こうしたコンポーネントを利用すれば一般的なポータルで必要とされる大半の機能は揃うはずだが、マルチメディア系ファイルのサポートまでも視野に入れる場合はどうすればいいのだろうか?  そうした要望に関しては AllVideos Plugin を利用すると、ほぼ全種類のビデオファイルをコンテンツ中に取り込むことが可能になるだけでなく、その表示法までも指定することができるようになる。基本的な使用法としては、表示させたいものがYouTubeビデオであれば「{youtube}Video_ID{/youtube}」という構文での指定をコンテンツ中に記述しておくだけである。表示させる縦横サイズは、Joomla!バックエンドにおけるMambot設定として指定しておく。YouTubeの他、AllVideosでサポートされているビデオサービスは、Yahoo! Video、Google Videos、Vimeo、Metacafe、MySpace、MyVideo.de、iFilm、Jumpcutなどである。さらに、ローカルファイルとして用意した、AVI、MPEG、MOV、FLV、MP3、WMV、WMA、MP4、RM、RAMフォーマットの再生にも対応しており、その場合は「{avi}filename_without_extension{/avi}」といった形式のタグを記述すればいい。

 本稿で紹介したように、バックアップシステム、テキストエディタ、イメージ処理用プラグインなど、Joomla!には非常に多数の機能拡張が整備されており、各サイトの運用目的に則したCMSにカスタマイズすることができるようになっている。よって自分の実現したい要望が、写真サイトに投稿されたイメージ用のギャラリであれ、オンライン形態の営業目録で利用するディレクトリインデックスであれ、まず最初に行うべきはJoomla!の機能拡張ディレクトリを当たって、そうした要望を満たしてくれる機能拡張が無いかを探すことのはずである。

Linux.comでは毎週月曜日に、機能拡張、プラグイン、アドオンに関する新着記事を掲載している。自分で使用して便利だと感じたツールについて、その機能や操作上のヒントなどを1,000ワード以内にまとめた記事を投稿していただければ、採用された方にはもれなく100ドルをお支払いする(なお、既に同じテーマが最近取り上げられていたり掲載予定になっている可能性もあるので、事前に確認のメールを送って頂きたい)。

Razvan T. Colojaは、ルーマニアの雑誌エディタを務める傍ら、ルーマニア語のLinux/OSSポータルコミュニティサイトであるwww.mylro.orgにも管理者兼エディタの1人として参加している。同氏の執筆するLinuxおよびIT関連の記事は、これまでに150本以上がオンラインおよび通常形態の雑誌に掲載されている。

Linux.com 原文