ヘッダーロゴ(画像)を各ページ違うものを使用したい。

2012年6月24日 at 0:43

サーバー
さくらインターネットスタンダードを使用

バージョン
concrete5.5.2.1

ヘッダーを画像に変更は出来ましたが
(フォーラムを参考にスタックでMy_Site_Name作成)

各ページに違うロゴを表示させることは可能でしょうか?

たとえば某化粧品会社などトップは会社のロゴですが
商品ページはその商品名のロゴがヘッダーロゴに表示しているみたいに
出来るのでしょうか?

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

タグ:

Re: ヘッダーロゴ(画像)を各ページ違うものを使用したい。

2012年6月24日 at 6:01
できます。
デフォルトのGreek Yogurtテーマを例にお話しますが、タイトル部分はSite Nameというグローバルエリアになっています。このSite Nameというグローバルエリアの内容は全ページに反映されますが、一部のみ変更したいという場合、テーマ内にテンプレートを一つ増やして、そのテンプレートではSite Nameというグローバルエリアを使わずSite Name 2という別の名前にしてしまえば、違うものを表示することができます。Site Name 2という名前は例えば、です。concrete5のテーマファイルではいくつでも好きにエリアを増やせます。

詳しくは ヘルプ > テーマの仕組みとデザイン > テーマのつくり方 を一度読んでみてください。
 

Re: ヘッダーロゴ(画像)を各ページ違うものを使用したい。

2012年6月24日 at 13:34
ありがとうございます。
greek Yogurをダウンロードして
greek Yogurt →elements→header.php

下記を変更

<?php
$a = new GlobalArea('Site Name2');
$a->display();
?>

そのページのみロゴを変更出来たのですが

全体公開をすると反映されません。
もちろん編集を更新しています。

管理者のみ反映される状態です。
何か間違っているのでしょうか?
 

Re: ヘッダーロゴ(画像)を各ページ違うものを使用したい。

2012年6月25日 at 6:17
その方法だと、全ページのヘッダーが Site Name2 というエリアになってしまうので意味が無いと思います…。
たとえば default.php を複製して hoge.php というテンプレートを作成し、 [code]$this->inc('elements/header.php');[/code] の部分を [code]$this->inc('elements/header2.php');[/code] と変更します。この状態で hoge というハンドルのページタイプの場合のみ、ヘッダーにheader2.phpの方が使われます。

「反映されない」系の症状は、とりあえずキャッシュをクリアしてみるようにしてください。
[管理画面 → システム&設定 → キャッシュをクリア]です。
 

Re: ヘッダーロゴ(画像)を各ページ違うものを使用したい。

2012年6月30日 at 2:02
返信遅くなりました。
先ほど出来ました!
ありがとうございます!

またキャッシュのクリアですが毎回行っていますが
なかなか反映されない場合があります。
ブラウザの一時ファイルを削除、もしくは更新で反映。
また更新を押すとログイン画面に戻ったり・・・
いろいろ勉強していきますので今後もよろしくお願いします!
 

Re: ヘッダーロゴ(画像)を各ページ違うものを使用したい。

2012年7月2日 at 10:29
ブラウザの一時ファイルはあまり関係ないと思います。concrete5のキャッシュが原因であることがほとんどです。開発中はキャッシュをオフにしておくのもいいでしょう。
ブラウザの一時ファイルを消去する際にcookieも消去してしまうと、ログイン情報が引き継がれませんので、ログイン画面になります。
 

Re: ヘッダーロゴ(画像)を各ページ違うものを使用したい。

2012年7月18日 at 13:44
ヘッダーロゴ(画像)は変更出来ましたが、

このページタイプのスタイルシートを作成するには、

hoge.phpに対して、hoge.cssを作成すればよろしいのでしょうか?

やってみたところ、うまくいきませんでした。
 

Re: ヘッダーロゴ(画像)を各ページ違うものを使用したい。

2012年7月18日 at 15:07
お使いのテーマによって異なるのですが、greek Yogurtの場合header.php に

<link rel="stylesheet" media="screen" type="text/css" href="<?php echo $this->getStyleSheet('main.css')?>" />

と書かれている部分があります。このmain.css を hoge.css に変更すれば適用されます。
しかし、header.php は、同じテーマのすべてのページタイプで読み込まれているのですべてのページタイプに適用されてしまいます。

特定のページタイプのみのCSSを適用する場合は
・独自にheader1.phpなどを別途用意して、$this->inc('elements/header1.php')に変更する。
・別のテーマとして作成する。
・hoge.php の タグのid名またはclass名を他のページタイプとかぶらない名前にし、main.cssに書き込む。

のどれかではないかと思います。
 

Re: ヘッダーロゴ(画像)を各ページ違うものを使用したい。

2012年7月19日 at 18:07
ご回答ありがとうございます。

結局、hoge.php の<div>タグに直接スタイルを設定することで解決しました。

ありがとうございました。
 

Re: ヘッダーロゴ(画像)を各ページ違うものを使用したい。

2015年8月30日 at 16:22
お世話になります。

こちらhissyさんの方法は5.7でも可能でしょうか。
 

Re: ヘッダーロゴ(画像)を各ページ違うものを使用したい。

2015年8月30日 at 17:37
可能です
 

Re: Re: ヘッダーロゴ(画像)を各ページ違うものを使用したい。

2015年8月31日 at 8:13
ありがとうございます。
同じようにやったのですが、実現しなかったので質問しました。
他の原因を探ってみます。
 

Re: ヘッダーロゴ(画像)を各ページ違うものを使用したい。

2012年7月19日 at 12:27
hissy さんのやり方は、header.php の中に記述している GlobalArea の方法ですね。
それ以外のアプローチもあります。

「ページ属性」を利用した方法。(対象:初級レベル)
・そのページの持つ属性にサムネイルなどの画像を持たせる事。
・本来の使用方法は、ブログなどのサムネール機能の事。

手順:
1、ダッシュボード⇒ページとテーマ⇒ページ属性管理で、新規に属性を追加する。

2、「ページ属性管理」のところで・・・「新規属性の追加」(選択:画像とファイル)

3、ハンドル:product_logo / 名前:Product-Logo (新規属性の編集ー任意名でOK!)
  設定:なし / 検索可能チェックの部分・・・任意

4、新しく作成したページへ行くか・・・ダッシュボード⇒サイトマップにて。
  ページ設定⇒「カスタム属性」⇒作成された属性を追加(Product-Logo)
  ここで、ページごとに画像が選べることが出来るので、好きなロゴ画像を選択追加。
  (プロダクト用の画像やロゴをあらかじめ用意しておく事。)

5、ご使用のテーマファイルのちょっとした php の追加。
 (例:YouThemes / default.php または、left-sidebar.php とか・・・)
 ※注意事項:新しく作成したページタイプの場合は、
  ダッシュボード⇒ページとテーマ⇒テーマ:選択されているテーマ⇒チェックにて
  テーマの検査で、新規作成した「ページタイプ」を有効化させること!


<?php
$imgHelper = Loader::Helper('image');

if($c->getAttribute('product_logo')) {
$imgHelper->outputThumbnail($c->getAttribute('product_logo'),100 ,100);
}
?>

※注意事項:ハンドル:product_logo 名を作成したハンドル名とあわせる。


上記のスクリプトをロゴを置きたい場所に記述する。はい出来上がり♪
それぞれのページごとにまるで、商品名やロゴなどが切り替わるようになります。