カテゴリー : Joomla!1.5

Joomla!1.5.x PHPのエラー表示設定(error_reporting())

テンプレートやプログラムを変更して表示してみると、ブラウザの画面、まっしろ。「あー、エラーだな」って、己のタイプミスを「くっそー」などとつぶやきつつ修正するよりは、「定義されてないメソッドをコールしてるぞ、カス」、とエラーを出してくれた方がなんだか嬉しい。

Joomla!1.5.xでエラー表示させるのは、ルートディレクトリの「configuration.php」ファイルで、「$error_reporting=E_ALL」のようにセットすれば良いようだ。

新しいバージョン1.5.8が出たので早速アップデートしたのだが、迂闊にもパッチを施したファイルを保存してなかった。1か月経ってないが、モー忘れてるよ…orz。

スラドで誰かが書いてたなぁ、

後悔先に立たず、後悔役に立たず、後悔後を絶たず

って。

Joomla!1.5.7 メニューを利用せず記事へリンクするにはーその2

SEFで、「/compnent/content/article/xxxx(記事のID)」のように指定して記事を表示することは確認した。

その他、メニューを利用すると「/メニューの別名」で記事の表示が可能である。ただし、別のメニューにぶら下がっていると、「/上メニューの別名/下メニューの別名」のように指定する。

さて最近、「/セクション名/カテゴリ名で記事の表示ができない」、と言うことが書かれているのを見た。URLの指定をいくつか試してみるとどうやら

  • /メニューの別名/セクション名またはカテゴリ名/記事のID

で、記事が表示できる事が分かった(前回、怪しいと言っていたところです)。メニューの別名は、一番上のHOMEにぶら下がっているメニュー項目 で、メニュータイプがcontentコンポーネント(記事)のブログレイアウト表示なら、どのメニューでも良いようだ。また、次のセクション名、カテゴリ 名は、登録されているものなら何を指定してもいいようだ。

「/セクション名の別名」や「/セクション名の別名/カテゴリ名の別名」では、記事の表示はできないようだ。

うーん、こりゃ改善の余地があるように感じるなぁ。で、取り敢えずペンディング(^_^;)。

Joomla!1.5.7 メニューを利用せず記事へリンクするには

Joomla!の利用を始めたばかりなので、分からないことが多い。お作法なところもあるようで、一通り慣れるまでに少々時間がかかりそうだ。

そんな1つに、Joomla!で記事を入力するとき、

* 記事は、必ずセクションとカテゴリを入力しなければならない

がある。最初、迂闊にデータを入力して保存をしようとしたら、「セクションが入力されていない」、と怒られてしまった。とりあえず何か設定して、後で変更すれば良いのだが、最初は何も登録していないので誰もが1回は怒られるのではないだろうか(^_^)。

さて、入力した記事をメニュー項目のリンクとして表示するには、管理画面でメニュー項目を作成し、パラメータに記事を指定すれば良い。が、もう少し詳細を見ると重要なことに気付く。

メニューの作成では、メニュータイプと称して

* コンポーネント
* タスク
* ビューとレイアウト

の指定をしているのである。

入力した記事を表示するには、「記事ー記事ースタンダード記事レイアウト」を選択するが、これは「com_content」というコンポーネントを利用し、「display」タスクで「article」ビューの「default」レイアウトを利用して記事を表示する、と言う処理になる。

MVC(Model View Controller)のJoomla!では、ディスパッチャにより制御が「com_content」のコントローラに渡され、デフォルトの「display」タスクから「article」ビューでモデルを利用してビジネスロジックの処理を行ない、処理結果の記事データが「default」レイアウトへ渡され表示処理される。

「com_content」コンポーネントには「article」の他、複数のビューがある。「archive」、「category」、「section」、「frontpage」である。またそれぞれのビューが複数のレイアウトを持っている。例えば「article」では、記事を1件表示する「default」と、フロントエンドで記事を入力する「form」というレイアウトである。

メニュータイプは、これらのどれを使うかを決めているのである。って、こんなこと知らなくても使えますが(^_^;)。

さて、最初のお題に戻って、メニューを使わずに記事を表示するためのリンク方法だが、リンク先に

/index.php?option=com_content&id=xxxxx(記事のID)

または

/index.php?option=com_content&alias=name(記事の別名)

または

/component/content/article/xxxxx(記事のID)

など指定して表示できた。他にもあるが、怪しいのでペンディングとする。

また余談であるが、SEF(Search Engine Friendly)指定の処理は、コンポーネントディレクトリにある「router.php」が受け持っているとのこと(リンクは後ほど)。

P.S.
使えるようになるのに、どんだけぇー orz

Joomla!1.5.7 TinyMCEエディタ入力タグ(HTML)の拡張

Joomla!で記事を入力するときにお世話になるのが、JavaScriptで提供されているエディタのTinyMCEである。TinyMCEは、スウェーデンのMOXIECODE社が開発し、GPLライセンスでWordpressなどのブログ用入力エディタとして取り入れられている。

エディタには、挿入するタグに応じてアイコンが並んでおり、そのアイコンにマウスカーソルが移動すると、機能の名前がツールチップ表示される。もし、日本語表示されないようであれば、パラメータを変更する必要がある。

パラメータを変更するには、アドミニストレータ画面でメニューから「エクステンションープラグイン」を選択し、プラグインの一覧から「Editor – TinyMCE 2.0」を選択する。すると、画面右側にパラメータ編集のパネルが表示されるので、そこで変更して保存をすれば良い。
さて、ツールチップの日本語表示であるが、「言語自動選択」を「はい」に設定するか、いいえのまま、「ランゲージコード」に「ja」を設定する。これで保存すれば、以降の編集で日本語表示される。

tnymceprm

さて、いよいよ本題だ。

エディタで入力していると、文をうまくレイアウトできない時がある。そんなとき、「HTML」ボタンを押して直接HTMLで編集することがある。

ところが、入力しても削除されて反映されないタグが存在する。それは、TinyMCEエディタが余分な空白や、ページのデザインを壊してしまうようなタグの入力を削除するようになっているからである。

使用する上でその制限を変更したいとき、使用したいタグとアトリビュートをパラメータの「拡張要素」に登録すれば、エディタを起動する際、入力を許可するように設定できる。これを利用すれば、<style>や<script>も埋め込めるようになるのでお試しあれ

081117:<style> や<script>は、ブラックリストにデフォルトで登録されたタグのため、エディタの設定如何にかかわらずフィルタリングされることが、 1.5.8にバージョンアップして気が付いた。現在、回避方法確認中。記事の設定が効いているのかいないのか?

その設定方法であるが、先ずは何がデフォルトかというのと、全部を設定する場合の情報についてTinyMCEのwikiページに表示されているので、それを確認すると良い。表示内容は、HTMLソースにおけるJavaScriptの定数指定方法で書かれているので、そのままコピーしないように。

例えば、brタグにclear指定をしたいときなどwikiからコピーして、

br[class|clear<all?left?none?right|id|style|title]

のように設定する。複数設定する場合は、改行せず「,(カンマ)」で区切って入力する。

自分は今のところ、入れ替えをせずに済ましている。TinyMCEの最新版は、バージョンが3.2なので入れ替えを試してみたいのだが、プラグインの設定が大変そうなのでパスかな orz。

Joomla!1.5.7 日付表示の修正

能書きが長くなったので、トピックを切り替えた。理屈抜きが苦手なせいか、建前が多くて困ったものだ(^_^;)。

さて、Joomla!を1.5.7に切り替えたところ、日付表示がおかしくなった人はいないだろうか?検索しても見当たらなかったので、もしかすると自分だけかもしれない。まぁ、独り言だと思って気にしないで下さい(^_^)。

Joomla!は、各国語対応できるように作られている。メニューやコンテンツなどデータベースから取り出されたデータを、利用者に見てもらうよう にテンプレートを通して表示されるページがフロントエンドと呼ばれる。対してメニューを作ったり、記事を分類するセクションやカテゴリを登録、あるいは ユーザ管理やエクステンションの組み込みなどする管理画面がアドミニストレータ画面(バックエンドと呼ばれていたか定かでない)である。

日本語対応は、プログラムで利用される文字列とそれに対応する日本語文を、UTF-8形式のリストファイルとして供給すれば良い。日付表示の修正は、この日本語対応ファイルの中にパッチを当てる部分がある。

Joomla!じゃぱんから1.5.7日本語化作業中のデータをダウンロードして、ja-JP.iniファイルを見る。右上が1.5.6のもの、下が1.5.7のものである。左側の番号は、テキストエディタの行番号だ。

1-5-6ja-jp

1-5-7ja-jp

日付を編集するための変換方法が示されている。作業化中のファイルを「language/ja-JP」ディレクトリにコピーしたところ、改善されたのでこの部分が影響しているようだ。

ところで先にあげた、フロントエンドとアドミニストレータだが、各国語対応は大きく、この2つに対して行うようにできている。フロントエンドは 「language/ja-JP」ディレクトリ、アドミニストレータは「administrator/language/ja-JP」ディレクトリであ る。

自分は、Joomla!じゃぱんからの作業化中のものをアドミニストレータに、そして「ja-JP.ini」ファイルをフロントエンドの方へもコ ピーした。「ja-JP.ini」が共通かどうか確認していないので、いつでも元に戻せるように準備して作業を進めて下さい。責任は持ちません よー(^_^)。

後日談(081114):
アドミニとフロントエンドのデータ、結構違っていました m(_ _)m。

「/language/en-GB/en-GB.ini」ファイルの中身をUTF-8で日本語化し、「/language/ja-JP/ja-JP.ini」へ保存することで日本語化OK。その他のコンポーネントやモジュールなど同様の方法で可能。

旧ファイルと新ファイルのコンペア、未翻訳のメッセージ一覧を表示するツールは、必要になったら作ることにしよう(^_^;)。