日付ナビ、date_navブロックにカスタムテンプレート

2012年5月31日 at 16:04

はじめまして、初心者です。
知識的にはまだhtml&cssだけです。

現在仮想環境でいろいろ試してます。

以下、使用環境

Windows XP Professional SP3

XAMPP1.7.7の仮想環境下で、
Concrete5の5.5.2.1を使用中



日付ナビブロックにカスタムテンプレートを使用とすると、
正常な日付ナビブロックの表示がされません。

より正確には、カスタムテンプレート適用以前に、
blocks/にdate_navというフォルダを作った時点で、
日付ナビの表示に異常をきたします。

検証の結果、date_navというフォルダがblocks/内にあれば、
date_navフォルダ内が空であったり中身があったりに関わらず、
フォルダの存在だけで上記の表示異常が起こります。

添付画像のような表示異常です。
(左側正常時、右側エラー時)

ソースを見る限り、エラー時と通常時での違いはなさそうでした。



みなさんは同様の不都合おこりませんでしょうか?



ご意見お願い致します。

タグ:

Re: 日付ナビ、date_navブロックにカスタムテンプレート

2012年5月31日 at 16:57
blocks/date_nav というフォルダを作った時点で、こちらのフォルダのファイルが優先して使われます。そして、日付ナビの表示には concrete/blocks/date_nav/css/date_nav.css と concrete/blocks/date_nav/js/date_nav.js の2つのファイルが必要なのですが、この2つのファイルが「あえて入れていない」と解釈されます。
 

Re: 日付ナビ、date_navブロックにカスタムテンプレート

2012年5月31日 at 20:50
hissyさん

すばやいご回答ありがとうございます。

すみません、説明不足でした・・・

普通に、最初は
date_nav/templates/任意フォルダ名/view.php
とdate_navフォルダを放り込んだのにそうなったのでおかしいな、
という質問の趣旨でした。

この段階で、view.phpはデフォルトとのをコピペしただけですし、
もちろん、この方法(から入って)で他のブロックのカスタムテンプレートは機能しております。
(まぁ、カスタムテンプレートを適用前に表示が変わるのですから、
 他の原因があるのは明らかだと思います。)

で、この結果を踏まえ、date_navのフォルダ内を消していってどこが悪く働いているか検証していったところ、date_navフォルダがあるかないかで、表示エラーが出るかでないかが分かれたわけです。

ちなみに、この表示エラー状態で、無理やりさらにカスタムテンプレートを適用すると、
日付ブロックがぱっと二つになって、更新中のままになってしまう、というなんとも奇妙な現象も起こります。

がしかし、さらにむりやりブロックを選択などして進めると、更新中の状態は終わります。

そしてさらに、この日付ブロックが2つの状態で編集を保存すると、
日付ブロックが1つの状態で編集保存されたことになっています。

という感じですが、上記を今一度検証したところ、エラー表示の状態でカスタムテンプレートを適用し、カスタムテンプレートが適用されている状態で、あらゆる更新(ブロック自体の編集も含む)をすると、ぱっと2つにブロックが増える現象が起きるようです。これを繰り返せば、3つ、4つと増えていきます。ただ、結局、ページ編集を保存すると、1つに戻っています。

長文すみません。
 

Re: 日付ナビ、date_navブロックにカスタムテンプレート

2012年5月31日 at 20:56
ん?auto_nav?2つになる?
 

Re: 日付ナビ、date_navブロックにカスタムテンプレート

2012年5月31日 at 20:57
すみません、auto_navは単純に記述ミスですw

2つになるというのは、更新作業をすると、ブロックが1つから2つに増えるのです。(まじめに
 

Re: 日付ナビ、date_navブロックにカスタムテンプレート

2012年5月31日 at 20:59
画像とあわせて説明すると、以下のような感じです。



画像1.
blocks/にdate_navがある段階でこの画像1のような表示異常になるが、とりあえずカスタムテンプレートを適用してみる。

画像2.
ブロックがなぜか2つに増える!そしてこの更新中状態で「固まる」

画像3.
更新中状態は無視して、ブロックの編集をしようとしてみる。

画像4.
アクセス拒否(もともと存在した側のブロックを編集しようとしたら、普通に編集はできますが、また更新時に2つが3つ増えますになります。)

画像5.
アクセス拒否のウィンドウを閉じると、とりあえず更新中状態は治まる。

画像6.
編集モード終了に移ってみる。

画像7.
あら不思議!2つだったブロックがまた1つに!w
(3つでも4つでも1つになります。表示上増えたように見えるだけ、というのはこの結果から明らかですね。)

という感じです。

伝わりましたでしょうか?
 

Re: 日付ナビ、date_navブロックにカスタムテンプレート

2012年6月7日 at 8:25
date_nav1というカスタムテンプレートに問題があるのではないでしょうか…。
block/date_nav というフォルダを作るとCSSとJavascriptが足りないとみなされ、それまでと表示が変わるのは前述のとおりです。
 

Re: Re: 日付ナビ、date_navブロックにカスタムテンプレート

2012年6月8日 at 20:30
やはり、同じ結果になるのですが・・・何か根本的な間違いがあるのでしょうか?

以下、具体的な指摘あればお願いします。

-----------------------------------------------------------------------------------------------------------------
特有のjavascriptや、cssを取り入れたい場合には・・・

/blocks/[ブロック名]/templates/[カスタムテンプレート名]/view.php
/blocks/[ブロック名]/templates/[カスタムテンプレート名]/view.css
/blocks/[ブロック名]/templates/[カスタムテンプレート名]/view.js

と保存して下さい。
-----------------------------------------------------------------------------------------------------------------
の方法でカスタムテンプレート使用しております。

今回、date_navの場合で言うと、まず、

concrete/blocks/date_nav

の中の

view.php

をそのまま

/blocks/[ブロック名]/templates/[カスタムテンプレート名]/

にコピペします。

この状態で、他のブロック(auto_nav, form, image)では問題なく動作しますが、
date_navの場合では例の表示不良が発生します。

ご指摘の通り、

CSSとJavascriptが足りないとみなされている、

とあったので、

concrete/blocks/date_nav

の中で言うと、cssに関しては、

concrete/blocks/date_nav/css/

のdate_nav.cssしかcssファイルはないので、
これもview.cssにリネームしたものを、

/blocks/[ブロック名]/templates/[カスタムテンプレート名]/

にコピペします。

また、jsに関しては、

concrete/blocks/date_nav/

直下のauto.jsと、

js/内にある、date_nav.jsの2種類がありますが、

一種類ずつ、view.jsにリネームして試してみました。

あるいは、両者の中身を一つのview.jsにまとめて試しました。


しかし、結果はどれも同じ表示不良の結果となりました…



という感じです。

hissyさんの環境では問題なく、表示されるでしょうか?

何度もすみません。
 

Re: 日付ナビ、date_navブロックにカスタムテンプレート

2012年6月8日 at 21:16
試してみましたが、下記のパターンのいずれもデフォルトの日付ナビと同じ表示、動作になります。

パターン1
concrete/blocks/date_nav/css/date_nav.css を
blocks/date_nav/css/date_nav.css にコピー
concrete/blocks/date_nav/js/date_nav.js を
blocks/date_nav/js/date_nav.js にコピー
concrete/blocks/date_nav/view.php を
blocks/date_nav/view.php にコピー

パターン2
concrete/blocks/date_nav/css/date_nav.css を
blocks/date_nav/templates/custom/css/date_nav.css にコピー
concrete/blocks/date_nav/js/date_nav.js を
blocks/date_nav/templates/custom/js/date_nav.js にコピー
concrete/blocks/date_nav/view.php を
blocks/date_nav/templates/custom/view.php にコピー

パターン3
concrete/blocks/date_nav/css/date_nav.css を
blocks/date_nav/templates/custom/view.css にコピー
concrete/blocks/date_nav/js/date_nav.js を
blocks/date_nav/templates/custom/view.js にコピー
concrete/blocks/date_nav/view.php を
blocks/date_nav/templates/custom/view.php にコピー
 

Re: 日付ナビ、date_navブロックにカスタムテンプレート

2012年6月8日 at 21:19
あー…カスタムテンプレート名は何になさってますか?

あと、auto.jsはブロック編集時に読み込まれるスクリプトですので、関係ありません。
 

Re: 日付ナビ、date_navブロックにカスタムテンプレート

2012年6月9日 at 15:45
カスタムテンプレート名は任意ですが、
半角英数のみですし、区切る場合はアンダーバー使用しております。
(2バイト文字、空白は使用しておりません。)

私の場合、パターン3でやっております。

もう一度試しましたが、結果は同じでしたね・・・環境自体に問題があるのでしょう。

再インストールぐらいしか解決方法はなさそうですね・・・

いろいろご回答ありがとうございます。
 

Re: 日付ナビ、date_navブロックにカスタムテンプレート

2012年6月11日 at 7:51
一応確認したいので、よろしければ当サイトのメッセージ機能で問題のカスタムテンプレートをお送りください。
 

Re: 日付ナビ、date_navブロックにカスタムテンプレート

2012年6月6日 at 22:17
yamanoiです。

blocks/date_navというフォルダを作っただけでは何も起こりません。
ですので、なにか勘違いしておられるのではないかと思います。
 

Re: 日付ナビ、date_navブロックにカスタムテンプレート

2012年6月8日 at 20:37
yamanoiさん

ご回答ありがとうございます。

私の環境下では、date_navファイルがblocks直下にあるかないかが、運命の分かれ道ですね・・・



ここまでの話の流れだと私の環境に何か不都合があるようですね・・・

といっても、同様の環境を2パソコンで作っておりますが、
どちらのパソコンでも同様の不都合が起こるのでどういうことやら・・・
(他の動作に関して今のところ問題もないので、インストールミスとかでもないと思うのですが。)