■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

coreテンプレートからcssをテーマへコピーするには

funi > coreテンプレートからcssをテーマへコピーするには @ 2015/3/10 13:18
いつもお世話になっております。
メールフォームのcssを改変したくて下記を参考にしましたが解決できなかったので質問させて頂ければと思います。
http://forum.basercms.net/modules/newbb/viewtopic.php?topic_id=273&forum=4

チケットは既に終了(実装済み)となっていたので、管理画面からコピー可能かと思い
URL (前略)/admin/theme_files/index/core/Mail/css

[core:Mail] スタイルシート 一覧
現在の位置:/lib/Baser/Plugin/Mail/Vendor/css/  [書込不可] へと進んだのですが

データが見つかりませんでした。

と表示されます。

coreテンプレートにある他のプラグインなども全て スタイルシート 一覧 xxx/Vendor/css/ ではcssが表示されず参照することが出来ません。
※Javascript 一覧 xxx/Vendor/js/ も同様です。

管理画面での操作が違うのかとも思ったのですが、解決策が見つけられずファイル検索にて
/lib/Baser/Plugin/Mail/webroot/css/ に style.cssがあることを確認しました。

そこで、このスタイルシートを手動で
/app/webroot/themed/{テーマ名}/mail/css/ へコピーしても問題がないか?
それとも、サーバーの自動インストールでbasercmsを構築したため
/webroot/css/ とは別に存在する /Vendor/css/ が抜け落ちたりしているのか? がわからず途方にくれています。

根本的に解釈が間違ってることもあるかもしれませんが、ご教授頂ければ幸いです。
大変お手数かとは存じますが、何卒よろしくお願いします。

■ BaserCMS Ver:3.0.6.1 〜 4.1.0.1
■ サーバー名:lolipop
■ スマートURLの利用:ON
■ 設置フォルダ:サブフォルダ、サブドメイン等
■ 利用しているDB:SQLite

goichi > Re: coreテンプレートからcssをテーマへコピーするには @ 2015/3/10 22:58
こんにちは(^^ 間違ってたらすみません。

引用:
coreテンプレートにある他のプラグインなども全て スタイルシート 一覧 xxx/Vendor/css/ ではcssが表示されず参照することが出来ません。
※Javascript 一覧 xxx/Vendor/js/ も同様です。

ちょっと仕様を確認しないといけないのですが、たしかに「Vendor」配下を見に行っているようです。ただ、もともとVendor配下にはCSSやJSなどが入っていませんので、コピーしようにもコピー元がないという状態だと思います。

引用:
/app/webroot/themed/{テーマ名}/mail/css/ へコピーしても問題がないか?

についてですが、出来るとするならver.3系統から少し変わっていますので、結果的に・・・

コピー元:/lib/Baser/Plugin/Mail/webroot/css/
コピー先:/app/webroot/theme/(お使いのテーマ)/Mail/css/

になっていると思います。
コピー自体は問題ありませんし、優先順位としてはテーマフォルダ内のcssが優先されると思いますので、ブラウザのキャッシュ等に左右されなければ、コピー先のCSSが適用されると思います。
funi > Re: coreテンプレートからcssをテーマへコピーするには @ 2015/3/11 12:12
goichi 様
早々のコメントありがとうございました。
パスがコピーした旧系のままで間違っていました。申し訳ありません。

ご指摘頂いたとおり手動にて追加し変更できるか試してみたいと思います。
コピー元:/lib/Baser/Plugin/Mail/webroot/css/
コピー先:/app/webroot/theme/(お使いのテーマ)/Mail/css/

尚、管理画面からのコピーについての詳細がわからないので、引き続き「質問」のままとさせて頂きたいと思います。

■ BaserCMS Ver:3.0.6.1 〜 4.1.0.1
■ サーバー名:lolipop
■ スマートURLの利用:ON
■ 設置フォルダ:サブフォルダ、サブドメイン等
■ 利用しているDB:SQLite

funi > Re: coreテンプレートからcssをテーマへコピーするには @ 2015/3/11 14:44
ご指摘頂いた通り
/app/webroot/theme/(テーマ名)/Mail/css/style.css へコピーを行い

管理画面の コンテンツテンプレート 一覧
現在の位置:/app/webroot/theme/(テーマ名)/Mail/css/ より
style.css の編集を行いました。

が、一向に反映されません。
デバッグモード(管理編集)のままですので、関係はないかと思いましたが念のためサーバーキャッシュを削除してみたのですが、やはり反映されません。
FTPにてファイル内容を確認しましたが、きちんと編集後の内容となっています。

1度ブラウザを閉じてキャッシュを削除してみたりもしましたが変化はありません。

何かお心当たりがあればご指導頂けますでしょうか。よろしくお願いします。

■ BaserCMS Ver:3.0.6.1 〜 4.1.0.1
■ サーバー名:lolipop
■ スマートURLの利用:ON
■ 設置フォルダ:サブフォルダ、サブドメイン等
■ 利用しているDB:SQLite

goichi > Re: coreテンプレートからcssをテーマへコピーするには @ 2015/3/12 19:27
すみません、掲示して頂いていた過去記事を、私も真に受けすぎたかも知れません。。。。
そもそも、テーマフォルダ内の/Mail/css/配下にスタイルシートを置いても、現バージョンでは読み込まないかも知れません。
あくまでもCSSは
/app/webroot/theme/テーマフォルダ/css/
配下にないとダメみたいな感じです(間違ってたらすみません。ただ、私の環境でもそこにないと読み込めませんでした)。

で、さらになのですが、お使いのテーマによっては、現在のコアに含まれる、
/lib/Baser/Mail/webroot/css/style.css
をそもそも使っていない可能性もあります。

例えばメールプラグインフォルダ内に含まれるstyle.cssを適用しようと思ったら、
<?php $this->BcBaser->css('Mail.style', array('inline' => true)); ?>

というような記述になると思いますが、そうした記述がテーマのテンプレートにあるでしょうか。。。。

ここから先は状況にもよるので、取り急ぎの解決策です。。。
今回、FTPをご利用になれる環境ということですので、
/lib/Baser/Plugin/
配下にある「Mail」フォルダごと以下にコピーします。(CSSファイルだけでなく、Mailフォルダごとすべて移動します)
/app/Plugin/
これでappフォルダ側の「Mail」が優先されますので、このフォルダ内のCSS、つまり、
/app/Plugin/Mail/webroot/css/style.css
を編集すればOKです。
(ただ、テーマ内でこのstyle.cssを使っていなければ、当然反映されませんのでご注意ください)





funi > Re: coreテンプレートからcssをテーマへコピーするには @ 2015/3/13 4:25
goichi 様
実際にお試しいただくなど、大変お手数をおかけして申し訳ありません。

現在までに私が理解している内容及び状況を整理させて頂くと

メールフォームのページのソースの中に以下のような箇所があります。 ← 追記
<div id="Alfa" >
<div id="ContentsBody" class="clearfix">
<link rel="stylesheet" type="text/css" href="/mail/css/style.css" />
<link rel="stylesheet" type="text/css" href="/css/admin/jquery-ui/ui.all.css" />

この style.css が /lib/Baser/Plugin/Mail/webroot/css/style.css と同じ内容であることは確認いたしました。
そこで、/mail/css/style.css がどこを指すかわかれば解決するかと思い、吐き出し元を確認し

現在の位置:/app/webroot/theme/(テーマ名)/Mail/default/index.php ※ に
$this->BcBaser->css(array('Mail.style', 'admin/jquery-ui/ui.all'), array('inline' => true));
$this->BcBaser->js(array('admin/jquery-ui-1.8.19.custom.min', 'admin/i18n/ui.datepicker-ja'), false);
といった記述があることがわかりました。
※現在のテーマはスケルトンを編集したものですので、オリジナルは空?のためコアテンプレートのコピーです。

ただ、Mail.style がどこを指すのかがわからなかったので いっそ /app/webroot/theme/(テーマ名)/Mail/css/style.css に向けようかとも思ったのですが、根本的な解決及び対処法(管理画面で css や js の編集が機能し反映される等)があるのではないかと思っていた次第です。

尚、取り急ぎの対策としてはメールのコンテンツテンプレートに共通のクラスなどを付与して
/app/webroot/theme/(テーマ名)/css/style.css に追記すれば解決することは理解しています。

---------------- ※ 状況説明 ここまで ※ ----------------

今回ご教授頂いた「Mail」フォルダごとコピーについてですが、既に編集済みのテンプレートなどへの影響はないのでしょうか?
管理画面から操作・編集できない(今回の場合 /app/Plugin/)対処法は、保守管理の都合上なるべく避けたいのですが、影響がないようであれば検討させて頂きたいと思います。

現在のシステムで出来ることや出来ないことと言ったことが把握し切れていないため色々とご面倒をおかけしているかと思いますが、もう少しお付き合い頂ければ幸いです。
何卒よろしくお願いします。

■ BaserCMS Ver:3.0.6.1 〜 4.1.0.1
■ サーバー名:lolipop
■ スマートURLの利用:ON
■ 設置フォルダ:サブフォルダ、サブドメイン等
■ 利用しているDB:SQLite

goichi > Re: coreテンプレートからcssをテーマへコピーするには @ 2015/3/13 10:03
引用:
実際にお試しいただくなど、大変お手数をおかけして申し訳ありません。

いえいえ、こちらこそいい加減な事をいって混乱させてしまいました、申し訳ありません。

引用:
今回ご教授頂いた「Mail」フォルダごとコピーについてですが、既に編集済みのテンプレートなどへの影響はないのでしょうか?

Mialテンプレートをどこで編集されているかによりますが、テーマフォルダ内のMailフォルダで編集されているならば、/app/Plugin/フォルダより優先順位が高いので影響ないと思います。

baserCMSでは、
「/lib/Baser/」 < 「/app/」 < 「テーマ」
というような優先順位になります。

とりあえず、コア(/lib/Baser/)以下にある「Mail」をフォルダごと「/app/Plugin/」に持ってくる手法自体は、プラグインのカスタマイズ時に行う常套手段です(コアより優先順位が高いので、コアをバージョンアップした際の上書き等を避ける意味もあります)。今回、CSSを読み込むのが目的、と考えると、少し大げさな気がしないではないですが、理屈の上ではCSSも読み込め、テーマ内のテンプレートにも影響しない、と言えると思います。

ただ、CSSの読み込みと管理画面での操作ということを考えたとき、やはりテーマのCSSフォルダにCSSファイルを設置して、それをテンプレート側で読み込むのが良いように思います(その場所にあるCAAファイルなら、管理画面から操作できると思います)。

以下、設置手順の一例を示します。

1.テーマフォルダ内にCSSを設置します。(sample.css)
/app/webroot/theme/テーマ/css/sample.css

2.Mailテンプレートを開きます。
Mailプラグインのテンプレートは・・・
/app/webroot/theme/テーマ/Mail/
に入っています。テンプレートはフォルダ単位になりますが、デフォルトでは「default」フォルダがあり、これが文字通りデフォルトのテンプレートになります。その中に入っているPHPファイルが、メールフォームの各画面(入力画面、確認画面、送信後の画面)を司ります。以下の作業でこの中にCSSを読み込む記述を行います。必要なファイルに(もしくは3つともに)記述してくだい。

3.CSSを読み込む関数
baserCMSの関数の中にCSSを読み込むための関数があります。以下をメールプラグインのテンプレートに記述してください。
<?php $this->BcBaser->css('sample', array('inline' => true)); ?>

記述中に「sample」とあるところがCSSファイル名です(拡張子は不要です)。テーマフォルダ内を最優先しますので、上記「1.」で記載した場所に「sample.css」を設置すれば、それを読み込み適用するはずです。

お役に立てなかったかも知れませんが、参考までに記載しておきます。m(__)m

funi > Re: coreテンプレートからcssをテーマへコピーするには @ 2015/3/13 10:49
goichi 様
色々とご説明頂きありがとうございました。

引用:
baserCMSでは、
「/lib/Baser/」 < 「/app/」 < 「テーマ」
というような優先順位になります。

おかげさまで、なんとなくではありますが仕様(の一部)を理解できたような気がします。

出来れば、他のテンプレートなどと同じように管理画面から一元管理出来るようにして頂ければという期待を残しつつ
ご教授頂いた方法や前回記載した方法などを検討して、時間が経ったり管理者が変わっても問題のない対処を行いたいと思います。

自分で解決できる範囲でやるべきかなと思いつつ質問を繰り返しましたが、丁寧にお答えいただきとても励みになりました。
色々な手法をご提案頂きましたことに重ねて御礼申し上げます。

ありがとうございました。

■ BaserCMS Ver:3.0.6.1 〜 4.1.0.1
■ サーバー名:lolipop
■ スマートURLの利用:ON
■ 設置フォルダ:サブフォルダ、サブドメイン等
■ 利用しているDB:SQLite

ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
21 人のユーザが現在オンラインです。 (21 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 21