ブロックごとにcssまたはjsファイルを読み込まる件

2010年5月30日 at 16:19

初めまして。
会社のホームページを誰でも簡単に更新できるようにしたいと思い、
このconcrete5が一番の候補だとして使用させていただいております。

インストールしたサーバ情報は以下のとおりです。
concrete5のバージョン:最新
利用しているサーバのOS:FreeBSD 7.1-RELEASE-p8 i386
レンタルサーバ会社(プラン):さくらサーバ(pro)
利用ブラウザ:FireFox

掲題のことなのですが、
http://concrete5-japan.org/help/developer/block_custom_template/
を参照しながら、contentブロックに特定のcssファイルを読み込ませようとしているのですが、
/concrete/blocks/content
へview.css(中身はtekito{ background:gray; })を作成し、
ブロック追加>>記事
編集でhtmlソースからview.cssに書かれたクラスを適用させようとしましたが、
バックがグレイになってくれません。

次にカスタムテンプレートの方法でやってみようと思い、
blocks/content/templates/tekitocss/view.css
を作成し、
同様に、ブロックの、カスタムテンプレート>>tekitocss
を選択しましたが、以下のようなエラーが出て、view.cssが参照されていません。
Warning: include(/home/xxxxxxx/www/cite/blocks/content/templates/tekitocss/view.php) [function.include]: failed to open stream: No such file or directory in /home/xxxxxxx/www/cite/concrete/libraries/block_view.php on line 265

Warning: include() [function.include]: Failed opening '/home/xxxxxx/www/cite/blocks/content/templates/tekitocss/view.php' for inclusion (include_path='.:/usr/local/php/5.2.13/lib/php:/home/xxxxxx/www/cite/libraries/3rdparty:/home/xxxxxxx/www/cite/concrete/config/../libraries/3rdparty') in /home/xxxxxx/www/cite/concrete/libraries/block_view.php on line 265

私の理解ややり方にどこか間違いがありそうなのですが・・・
できればご教示頂きたく思います。
よろしくお願いいたします。

Re: ブロックごとにcssまたはjsファイルを読み込まる件

2010年5月30日 at 21:14
include(/home/xxxxxxx/www/cite/blocks/content/templates/tekitocss/view.php) [function.include]: failed to open stream: No such file or directory


とある様に、view.phpが無いというエラーです。
上記のケースでは、
/templates/tekitoucss/view.css
/templates/tekitoucss/view.php
が必要です。view.phpは元のview.phpと一緒で大丈夫です。

もしくは、templetesにファイルを作らずに、view.phpと同じディレクトリにview.cssを作成し、そのなかにtekitouクラスのスタイルを書けば良いはずです。
 

Re: Re: ブロックごとにcssまたはjsファイルを読み込ませる件

2010年5月30日 at 22:53
件名修正しました。

返信ありがとうございます。
view.phpを追加すると確かにエラーはなくなったのですが、
記事エディタのhtmlでview.cssで書いたクラスを適用させても
やはり反映されません。
同様にview.jsで書いた関数(ブラウザ名を表示させるもの)も反映されません。

一度編集を終え、ログアウトし、出来上がったページのソースを見てみると、
確かに、
<link rel="stylesheet" type="text/css" href="/testpage/blocks/content/view.css" />
<link rel="stylesheet" type="text/css" href="/testpage/concrete/blocks/content/templates/tekitocss/view.css" />
<script type="text/javascript" src="/testpage/concrete/blocks/content/templates/tekitocss/view.js"></script>

のように所定の場所からview.cssとview.jsが読み込まれており、
また、
<div id="blockStyles9" class="ccm-block-styles" >
<p><span style="color: #0000ff; font-size: medium;"><strong>
あなたのブラウザは
<script type="text/javascript"><!--
myFunc();
// --></script>
です </strong></span>
</p>
</div>
と関数も書いております。しかし、ブラウザ名が出てほしい部分が
「あなたのブラウザは です 」
となるのです。
どこか間違っておりますでしょうか・・・?
初歩的な質問で申し訳ございませんがよろしくお願いいたします。。

以下、view.jsのリストです

<script language="JavaScript">
<!--
function myFunc(){
document.write(navigator.appName);
}
// -->
</script>
 

Re: Re: Re: ブロックごとにcssまたはjsファイルを読み込ませる件

2010年5月30日 at 23:15
scriptタグの書き方がちょっと古い様な気がします。
テーマのDTDは何に設定されているのでしょうか?

view.jsの中身を
<script type="text/javascript">
alert('test');
</script>

にしても実行されませんか?

あと<p>の子要素として<script>ってOKなんでしたっけ?
こういうjavascriptの書き方をした事が無いのでよくわかりませんが
 

Re: Re: Re: Re: ブロックごとにcssまたはjsファイルを読み込ませる件

2010年5月30日 at 23:36
お早いお返事ありがとうございます。

ページソースの冒頭は
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">

となっております。
また、ソースは次のようにシンプルにしましたが、ブラウザ名が表示されません。
<div id="blockStyles10" class="ccm-block-styles" >
<p>あなたのブラウザは
<script type="text/javascript"><!--
myFunc();
// --></script>
です</p></div>
</div>

今気づいたのですが、
<div id="blockStyles10" class="ccm-block-styles" >
のようなコードが追加されるのですが、これは何でしょうか
 

Re: Re: Re: Re: Re: ブロックごとにcssまたはjsファイルを読み込ませる件

2010年5月30日 at 23:52
続けて申し訳ございません。

view.jsを以下のようにすると、ブラウザ名が表示されました。
<!--
function myFunc(){
document.write(navigator.appName);
}
// -->

<script>の定義をjsファイルにも書いてしまっていたようです。
cssの方ももう少し見てみます。

お手を取らせまして申し訳ございませんでした。
ありがとうございました。