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