Joomla!1.5

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