2017年7月15日土曜日

Joomla3.7 で intro image の場所をタイトルの上に移してみる

Joomla core をいじくってレイアウトを変えると言うのはヒヤヒヤものなんですが、ブログレイアウトで intro image がタイトルの下にあるのはどうしてもゆるせん!!

と言うことで四苦八苦しながらトライしてみました。

まず、コアファイルをいじくる手始めにやらなくてはならないのは overrides を作ること

これは言ってみればWordPress の子テーマみたいなもんでしょうか。
直接コアファイルをいじるのは絶対避けねばならないのでこれは必須です。




Joomla! の場合 overrides ファイルを作ること事態はそんなに難しくありません。
エクステンション → テンプレート管理 → (手を加えたい)テンプレート を選んで
Create Overrides タブに行き、変更したいファイルをクリックすると勝手にファイルが複製されて、勝手にテンプレートの html フォルダーの下に作成されます。このファイルを書き換えてoverrides すればそれでコアファイルをいじらなくてもレイアウトを変えることができるんです!
かしこいですねーーーー

でも最初の問題はoverrides するファイルがどれなのかわからない、ということです。

変更を加えるファイルが何なのか知るためには、メニューに行き、変えたい記事をクリックします。

以下記事は Joomlashack の記事の要約です。

ラッキーなことに私の場合も変更したい記事がブログ記事だったので、上記のサイト通りにたどってみました。


この Link のところを見ると、いじくるファイルが分かります!
このリンクは次のように分けることができます

File: index.php
Component: option=com_content
View: view=category
Layout: layout=blog
Item: id=77

これはjoomlaのファイル構造と一致しています。
つまりjoomlaのroot 以下
components/com_content/views/category/templ/blog.php
とたどっていけばカスタマイズするファイルが見つかるというわけなのです。。。。

が、
php 初心者の私にはよくわからないのですが、実際に変更を加えるのは下記のように書かれているので blog_item.php だということです。



ここまでわかったところで、上記のようにテンプレート管理から Create Overrides タブに行き、自分が手を加えるファイルを選んでクリックします。(私の場合は Components の下の com_content / category)
そして Editor タブに行ってhtml → com_content → category → blog_item.php と開いてそのコードを変更します。

といっても、上記のサイトに出ていたコードと私の使っているjoomlaのバージョンが違うため
コードが全然違っていて、頭を抱えました。
四苦八苦しましたが、 intro image を扱っているコードは
<?php echo JLayoutHelper::render('joomla.content.intro_image', $this->item); ?>
と言うことを何とか割り出し、このコードをタイトルを示しているコード:
<?php echo JLayoutHelper::render('joomla.content.blog_style_default_item_title', $this->item); ?>
の上に張り付けることによってタイトルの上にイントロ画像が出るようになりましたーーー!



それにしても前のバージョンに比べてコードがシンプルになってるようで
進化してるんですねーー。

あぁPHPもっと勉強しよ!




0 件のコメント:

コメントを投稿