トップのテンプレートを別にするのってどう?

MOS

人気の記事:

コメント

  1. ページによって体裁が変わることが本当にCMSなのか?という教条主義的な部分は投げっぱなしジャーマンにしておいて、ニーズはあると思います。

    XOOPSなどにしても「こういうもの」として我慢していた部分があるので、なんとかして欲しいなぁ。

    CMSの意味を真面目に考えると

    ・トップページ表示専用のセクションを用意する

    が正解の気がしますが、むずかしそうだなぁ。

  2. kamkam より:

    おそらく4.6でできるのでは。

    4.6まだでておりませんが、マルチテンプレートが可能だったような…

  3. kamkamさん

    おお!それは素晴らしいです。

  4. ranpou より:

    最近、会社のホームページをフリーのWebデザイナーの方に発注したのですが、その方がやりやすいCMSを使ってくれと言ったらMamboになりました。で、トップページとそれい以降のデザインを変えて欲しいということを伝えていたのですが、CMSの仕様上トップページだけテンプレートを変えることはできないと断られました。

    で、こちらの書き込みを見て詳しく知りたくなったのですが、4.6までは待てないので

    ・トップページ表示専用のセクションを用意する

    というのが大変気になります。

    具体的にどういうことなのですか教えていただけないでしょうか。また、もしも実際にそういうことをしているサイトをご存知でしたら、是非ともうちが発注してるWebデザイナーに見せたいのですが、リンクを教えていただけないでしょうか。

    例えば

    http://k164.jpn.ph/

    こちらのように、最悪トップを全く別HTMLにしてしまうとかも考えてますが、CMSの意味無くなってきちゃって...

    Mambo以外のCMSでも、そういったマルチテンプレート可能なものをご存知であればお教えください。

    よろしくお願いいたします。

  5. pino より:

    ranpouさんこんばんわ

    > ・HOMEにモジュールを置かないようにする

    > ・トップページ表示専用のセクションを用意する

    当時、何を思って上記を書いたのか覚えてませんが、、

    対応方法だけご提案してみます。

    index.phpに下記を追記して、Mamboのchange_template機能を使ったかのように見せる対応です。

    if ($option == ” OR $option == ‘com_frontpage’) {

      $_REQUEST[‘mos_change_template’] = ‘ms_teamwork’;

    } else {

      $t = new mosTemplate( $database );

      $t->load( 0 );

      $_REQUEST[‘mos_change_template’] = $t->cur_template;

    }

    上記を『// do we have a valid Itemid yet??』の上に記述して、

    『ms_teamwork』をテンプレート名に変更します。

    > 是非ともうちが発注してるWebデザイナーに見せたいのですが、リンクを教えていただけないでしょうか。

    残念ながら、こちらは存じません。

  6. ranpou より:

    ありがとうございます!

    トップとそれ以外でテンプレートが確かに変更できました。

    Webデザイナーさんにも説明して、トップとデザインを変更する方向ですすめてもらうことになりました。

    elseででてくる$tの役割とか理解できてないのですが、他のページも、いくつかのテンプレートを切り替えるという場合は、elseifでどんどん場合分けするってことですよね?

    elseif ($option == ‘com_weblinks’) {

    $_REQUEST[‘mos_change_template’] = ‘yops_boxed_blue_lt’;

    }

    とかを加える感じで良いのでしょうか。

  7. pino より:

    elseの$tは、管理画面からデフォルトで指定されている値を取得してセットしています。

    mos_change_templateは一度リクエストを行うと、値がCookieに書き出されて、これ以降mos_change_templateをリクエストしなくても、自動的に前のテンプレートを表示させるようになっています。

    よって、2階層目以降は管理画面から指定したデフォルトテンプレートを表示し、トップだけ別のテンプレートを表示させるようにするには、elseの対応が必須になるわけです。

    いくつかのテンプレートを切り替える場合は、おっしゃる通り

    else ifで追記していけば対応できると思います。

  8. ranpou より:

    なるほど、ご丁寧な回答ありがとうございます。

    大変助かりました。