2014年6月19日木曜日

drupal theme テーマ

まっさらな状態からページを作りたいのだけど。

---------------------------------------------------
まずは結果から---ここから

とりあえず解決(理解はしていないけど)。

modules\system\page.tpl.php
から
sites\all\themes\themename\templates
にコピーした
page.tpl.phpの140行目
<?php print render($page['content']); ?>
を削除するだけでcontentが消えた(最初からそうすれば良かったのに・・・)。
その周りの必要ない部分も、削除すればページから消える。

ここまでは納得。

ここでオーバーライドに関しての疑問。

最初は、page.tpl.phpに書かれているコードを全部削除した。
そうすれば、白紙のpage.tpl.phpによってオーバーライドされると思っていた。
そしたら、それがうまくいかず、
真っ白なページにコンテンツだけが表示された。

最初に書いたようにphpコードの書かれている全体から、削除したいところだけ削除するとちゃんとそこの部分がオーバーライドされて、ページ上の表示がなくなる。

page.tpl.phpを白紙にしてしまうと真っ白なページにコンテントだけが表示される、というのはどういうことが起こっているのだろう?

参照渡しとか、そういうことが関わってきているのか?
contentに関してはブロックでの操作もいうことをきかない。など、そこいら辺、自分は理解不足。
とりあえず、page.tpl.phpに関しては普通にやれば普通にコントロールができることがわかったので今日はここまで。


結果---ここまで
---------------------------------------------------


例えば、何らかのコンテンツを追加すると、
admin/structure/block
で、全部、指定を解除してもその作ったコンテンツが真ん中に表示されてしまう。

で、

themesファイル内の.infoファイルの
ブロックを定義するところの
regions[.......
をとりあえず、全部削ってみたけれどコンテンツは消えない。

一つ一つを単独で削ってみると、
例えばsideber secoundなどは消えるけど、ホームページを表示させたときにエラーが出る。
(でも、このエラーはtemplates\page.tpl.phpのsidebar_secondを定義しているところのエラーだから、そこを削除すればいいだけ。)
contentsはDemonstrate block regionsでの表示はなくなるけど、ホームページを表示させたときにエラーは出ずに(エラーが出ないということは"contents"はpage.tpl.phpで定義されていないということ。)そのまま何もなかったかのように表示されてしまう。


sites\all\themes\themename\templates
にオーバーライドするために
modules\system\page.tpl.php
からコピーした
page.tpl.php
上の文字を全部削除して空白にしてもホームページは真っ白にはならずに、コンテンツだけは表示されてしまう。

admin/structure/block

Main page content
でコンテントの位置を指定できる。
が、指定を外しても、メインの位置(だったかな?)にコンテンツが戻って表示されてしまう。

まぁ、何にしても何らかのコンテンツは追加するのだからまっさらな状態を作るっていうことは意味のないことなのか?
いや、そんなことはない。それぞれのコンテンツの表示を自分でコントロールできないと思うように表示できない。

っていうか、コントロールできるはずだよなぁ。

コンテンツだけなんで特別なんだ?

0 件のコメント:

コメントを投稿