ドキュメントライブラリブロックの表示のカスタマイズについて

2019年4月12日 at 14:23

制作中のサイトにてドキュメントライブラリブロックを利用したいと考えております。
タイトル部分に設定されているフルサイズ画像へのリンクを、サムネイル部分にも設定したい等の要望があり、取り急ぎビューテンプレートの変更から試してみました。

以下を参考に
http://concrete5-japan.org/help/5-7/developer/working-with-blocks/working-with-existing-block-types/modifying-the-default-view-template-for-a-core-block-type/

concrete/blocks/document_library/view.php を application/blocks/document_library/view.php にコピーしたところ、編集モードでブロックの編集ができなくなりました。
ホバー時の緑色のボーダーや、クリック時のコンテキストメニューが表示されない状態です。

この問題は concrete/blocks/document_library/view.js もオーバーライドディレクトリへコピーすると改善するようですが、この方法で問題ないのでしょうか。
デフォルトのビューテンプレートをオーバーライドして利用されている方がおられましたら、手順などご教示いただけますと助かります。


また[ページあたりの表示件数]を空欄にしたまま編集モードを終了してしまうと以下エラーを生じ、ページへアクセスできなくなるようです。

Pagerfanta \ Exception \ LessThan1MaxPerPageException
No message

皆様のお手元ではいかがでしょうか。


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


# concrete5 バージョン
8.5.1

# PHP バージョン
7.2.6

# サーバー
エックスサーバー

タグ:

Re: ドキュメントライブラリブロックの表示のカスタマイズについて

2019年4月15日 at 19:47
私はデフォルトのビューテンプレートをオーバーライドして、
カスタマイズする方法を利用したことはありませんが、
代わりにデフォルトは残しつつ、部分的にカスタマイズするカスタムテンプレートを
いつも利用しています。

http://concrete5-japan.org/help/5-7/developer/working-with-blocks/working-with-existing-block-types/creating-additional-custom-view-templates/

やり方は似ているのですが、
違いはユーザー領域(/application以下)のフォルダ構成くらいで、
間にtemplatesというフォルダと任意のカスタマイズ名を持ったフォルダを用意し、
その配下にカスタマイズしたview.phpを配置します。
/application/blocks/document_library/templates/任意のカスタマイズ名/view.php
のような感じです。

あとはブロックを配置した際にカスタムテンプレートを選択するだけで、
こちらのほうが応用が利くかなと個人的には考えています。
(複数個所に配置するようなブロックを個別にカスタマイズできるため)



view.jsをオーバーライドしたら改善したようですが、オーバーライドしていない場合に、
developer toolで見ると、きっと読み込みエラーなどが発生しているかもしれませんね。

そちらを確認すれば、どういうことが起きているかわかるかと思います。

私もはっきりとは言えませんが、オーバーライドして改善されたならば、
それで正しいのだと思います。
(デフォルトのオーバーライドがどういう挙動をするのかわからないので、すみません)

たいてい、編集できなくなって、表示が薄くなったり、挙動がおかしいときは
JavaScriptの関連でエラーが発生しています。



また、ドキュメントライブラリの「ページあたりの表示件数」を
空欄にしたことはありませんでしたが、試しに空欄で更新してみたところ、
おっしゃるようなエラーと同じものが発生しました。

これは空欄にしないように制御するのが漏れていて、
空欄を想定していない状態になっているようです、バグ・・・なのかな。


長々とお伝えしましたが、私もConcrete5歴1年ちょいのため、
きちんと説明できず申し訳ありません。

ほんの少しでもお役に立てれば幸いです。
 

Re: ドキュメントライブラリブロックの表示のカスタマイズについて

2019年4月16日 at 10:39
DeaconBlues様

当方でもautonav、page_list、searchなどのブロックでは、カスタムビューテンプレート用のディレクトリを作成し利用しております。
とても便利な仕組みですよね。

これらのブロックではオーバーライドディレクトリにview.phpのみ設置した場合でも、本件のような状況は生じません。
知識が浅いため、なるべくconcrete5のルールに沿って運用したいと考えておりますが、いつもと異なる方法で解決として良いものか迷い、投稿させていただきました。

また[ページあたりの表示件数]が空欄の場合にエラーを生じる件、検証いただいたとのことでありがとうございます。
自分で運用する分には気を付ければ良いだけなのですが、今回は当方でconcrete5をお勧めし採用いただいたクライアント様への納品になりますので、concrete5の心証を損なわぬよう、お渡しする際は十分周知したいと思います。

ご回答いただきありがとうございました。