画像メニューの作り方

2012年5月10日 at 13:24

http://fujiiyuuki.blogspot.jp/2010/03/concrete5.html

お世話になっております。
メニューに画像を使いたいのですが、
上記のような記事がありました。

古いバージョンの記事で、属性の追加?
というのが良く分かりません。

現在の最新バージョンで実現するにはどうすればよいかご教授願えませんでしょうか?

よろしくお願いします

タグ:

Re: 画像メニューの作り方

2012年5月10日 at 15:15
「ページとテーマ」>「ページタイプ」>「ページ属性情報追加」

最新版では管理画面の「ページ & テーマ」>「属性」です。

ページ編集画面の「ページ設定」>「カスタム項目」

最新版ではツールバーの「編集」にマウスを乗せると表示されるメニューの「設定」>「カスタム属性」です。

$picOn = $_c->getAttribute('pic_on');
$picOff = $_c->getAttribute('pic_off');

最新版ではこう書き換えてください

$page = Page::getCurrentPage();
$picOn = $page->getAttribute('pic_on');
$picOff = $page->getAttribute('pic_off');
 

Re: 画像メニューの作り方

2012年5月10日 at 19:51
お世話になります

1. ページ追加属性追加

「ページとテーマ」>「ページタイプ」>「ページ属性情報追加」
から「ファイル/画像」形式で通常状態のメニュー画像と当該画面表示中のメニュー画像を設定する属性を追加。

2. 画像設定

ページ編集画面の「ページ設定」>「カスタム項目」から1.で設定した画像設定項目を追加して、ファイルを設定。

3. カスタムテンプレート追加

autonavのカスタムテンプレートを追加する。

/concrete/blocks/autonav/view.php

/blocks/autonav/templates/image_navigation.php
などとして、編集

2は画像ファイルというのを指定しました。
3でview.phpをサンプルどおりのフォルダにコピーすると、
カスタムテンプレートで指定できるようになりました。


ですが、$picon= という表記がありませんが・・・どこを書き換えればいいのでしょう?
どこか間違っているのでしょうか?

出来れば順を追ってもう少し詳しくご指導お願いします。
 

Re: 画像メニューの作り方

2012年5月10日 at 20:08
$pic_on = $page->getAttribute('pic_on');

このように記述することで、 $pic_on という引数にカスタム属性「pic_on」で設定した画像を代入することができます。もともとオートナビブロックに無いことをしているので、どこにも見当たらないのは当然で、問題ありません。

挙げていただいたURLの解説とは異なりますが、画像として出力するにはこのように書くことができます。

<?php list($pic_on_width, $pic_on_height) = getimagesize($pic_on->getPath()); ?>
<img src="<?php echo $pic_on->getRelativePath(); ?>" width="<?php echo $pic_on_width; ?>" height="<?php echo $pic_on_height; ?>">

…というカスタマイズを行なっていくのはPHPの知識が必要になりますので、よく分からなければ記事ブロックでメニューを作るのもオススメです。
 

画像メニュー?

2012年5月10日 at 21:05
お世話になります。

view.phpの記述に追加すると言うことですね。

学生時代はプログラムをやっていましたが、20年も離れていてちんぷんかんぷんです。
オートで出来ないかと思いマシたが、
記事ブロックに画像を張ってリンクするというのが分かりやすいかもしれません

ちなみにサンプルを見ると各項目には画像が付いていませんが、
私は勘違いしているかもしれません。
メニュー項目をテキストではなくそれぞれ別の画像にしたかったのですが・・・
 

Re: 画像メニューの作り方

2012年5月11日 at 11:43
メニュー項目をテキストではなくそれぞれ別の画像にしたかったのですが・・・

それぞれ別の画像にする方法ですよ。各ページのカスタム属性で設定した画像を取得し、ページのタイトルを文字で出力する代わりに、画像を出力するカスタマイズです。