ページリストのカスタムテンプレートに追加した画像アドオンの画像を表示させたい

2015年1月23日 at 7:04

バージョン:concrete5.6.3.2

いつもお世話になります。
表題の件ですが、標準で入っている画像ブロックではカスタムテンプレートに画像を表示できるのですが、
後から追加したアドオンの画像を表示させることができません。
現在試しているアドオンは
Fancy Image Links
http://www.concrete5.org/marketplace/addons/fancy-image-links/
になります。

やりたいことは、コンポーザーで登録していくページに拡大させたい画像と文章の登録をして
そのページの親のページにページリストブロックを配置してそのブロックのカスタムテンプレートでサムネイル用の画像を表示するといった感じです。
タイトルもしくは画像をクリックすると詳細ページに飛ぶというようにしたいです。
標準で入っているblog_index_thumbnail.phpを参考にカスタムテンプレートに入れてみましたがエラーが出てしまいます。

ページ頭の方に $imgHelper = Loader::Helper('image'); を入れ
画像を表示させたいところに以下を入れています。


表示されるエラー
Fatal error: Call to undefined method FancyImageLinksBlockController::getFileObject() in F:\htdocs\c5\blocks\page_list\templates\zoom.php on line 52

エラーが、FancyImageLinksBlockControllerメソッドの中にgetFileObject()が無いよ・・・
ということだと思うのですがどう対処していいのかわからずです。

アドオンは同等の機能があるものであればFancy Image Linksにこだわってはいませんので、
このアドオンならこうすればできるよーといったものがあればそちらでもいいのでお願いします。

タグ:

Re: ページリストのカスタムテンプレートに追加した画像アドオンの画像を表示させたい

2015年1月23日 at 9:50
FancyImageLinksBlockController クラスメソッドの中に getFileObject() が無いんです。そう、無いのでどうしようもないです。getFileObject() は画像ブロックの機能です。FancyImageLinksブロックを見てみましたが、同等のメソッドは存在しないようです。なので、2択ですね

1. 画像ブロックにFancyBoxのjQueryプラグインを組み込む
2. FancyImageLinksブロックにgetFileObject()メソッドを組み込む

Javascriptか、PHPか得意な方で実装していただければ。
 

Re: ページリストのカスタムテンプレートに追加した画像アドオンの画像を表示させたい

2015年1月23日 at 11:42
返信ありがとうございます。
画像ブロックにjQueryを組み込むと、後から修正で追加するかもしれない
Fancy Image Linksブロックと競合する可能性があるので、getFileObject()を
組み込む方向で頂いたヒントをもとにやってみました。

concrete>core>controllers>blocks>image.phpをチェックしたら

function getFileObject() {
return File::getByID($this->fID);
}

とあったのでFancy Image Linksのcontroller.phpに上記3行を入れたらできました。
いつも出来上がってみるとすごい単純なんですよね・・・
これでまたコンポーザーの利用の幅が広がります。
ありがとうございました!助かりました!