CMSDesignerからのCSS更新

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
shige
パワーユーザー
記事: 40
登録日時: 2006年4月04日(火) 14:25

CMSDesignerからのCSS更新

投稿記事 by shige » 2009年11月05日(木) 11:22

いつもお世話になっております。shigeです。

また一点質問をさせてください。
CMSDesignerから更新した内容を、CSSファイルに反映することは可能でしょうか?

たとえば、スタイルシート側に記述されているバックグラウンド画像指定や、見出し画像等の指定をCMSから切り替えて、動的にデザインを変更する・・というようなケースです。

更新される側の拡張子をPHPにする関係上、上記の様なことは無理がありますでしょうか?

tsu
パワーユーザー
記事: 208
登録日時: 2006年1月16日(月) 12:00
お住まい: さいたま

投稿記事 by tsu » 2009年11月06日(金) 15:36

CMSDを通さずフルパスで指定すれば表示可能と思いますが、パスが丸見えなのであまりおすすめできません

通す場合はいけたような、いけなかったような、、、

miya
パワーユーザー
記事: 85
登録日時: 2006年3月25日(土) 09:20
お住まい: 東京都

Re: CMSDesignerからのCSS更新

投稿記事 by miya » 2009年12月07日(月) 15:09

shigeさん、こんにちは。
shige さんが書きました:CMSDesignerから更新した内容を、CSSファイルに反映することは可能でしょうか?

たとえば、スタイルシート側に記述されているバックグラウンド画像指定や、見出し画像等の指定をCMSから切り替えて、動的にデザインを変更する・・というようなケースです。
こちら↓の方法で実現可能じゃないでしょうか?
http://cms.al-design.jp/phpbb/viewtopic.php?t=322

商品Aと商品Bがあり、オススメ設定で商品Bだけのcssを変更したい場合

Aの場合のcss(通常)を、「default」
Bの場合のcss(おすすめ)「osusume」
を用意しておき、xsl:attribute でcssを切り替えることが出来るかもしれません。


例えば、スキーマファイルに

コード: 全て選択

<data name="syouhin" type="text" caption="商品名" />
<data name="strong" type="menu" caption="おすすめ表示">
<menuitem id="default">通常表示</menuitem>
<menuitem id="osusume">おすすめ</menuitem>
</data>
という設定があって、デザイン定義ファイルを

コード: 全て選択

<div> 
<xsl:attribute name="class"> 
<xsl:if test="strong='default'">default</xsl:if> 
<xsl:if test="strong='osusume'">osusume</xsl:if> 
</xsl:attribute>
<xsl:value-of select="syouhin" />
</div>
にした場合


●通常表示の場合

コード: 全て選択

<div class="default">
商品A
</div>
●おすすめ表示の場合

コード: 全て選択

<div class="osusume">
商品B
</div>
になると思います。
まだ試していないのですが。。。

shige
パワーユーザー
記事: 40
登録日時: 2006年4月04日(火) 14:25

投稿記事 by shige » 2009年12月07日(月) 15:43

tsuさま、miyaさま、ご回答いただきありがとうございます。

なるほど。
miyaさまにご提示いただいた内容でhtml側のclss指定を動的に変更することにより、適用されるスタイルシートを切り替えて表示することが出来そうですね。
この方法でもいろいろ解決する部分がありそうです!ありがとうございます。

もう一つ想定していたのは、cssファイル内の記述内容自体をCmsdesignerで更新する。というケースで、たとえば下記の様なスタイルシート記述内容が、

コード: 全て選択

#container_top{
	width: 100%;
	color:#333;
	position:relative;
	min-height: 100%;
	background-image: url(../../common_imgs/top_bg.jpg);  
	margin: 0 auto;
	padding: 0;
	background-repeat: repeat-x;
	text-align: center;
}
となっていた場合に、
background-image: url(../../common_imgs/top_bg.jpg);  <<ここのファイル名(top_bg.jpg)をCMSDesignerから指定する。

というように、BG画像をCMSで指定出来れば便利だなと思っていたのですが、おそらく無理な様な気がしてきています。。

ご回答ありがとうございました!

miya
パワーユーザー
記事: 85
登録日時: 2006年3月25日(土) 09:20
お住まい: 東京都

Re: CMSDesignerからのCSS更新

投稿記事 by miya » 2009年12月07日(月) 18:38

shigeさん、こんにちは。

それはもっと簡単かもしれません。

例えば、このようなスキーマがあったとして

コード: 全て選択

<data name="imgfile" type="text" caption="イメージファイルのパス" />
cssを外部ファイルじゃなくて埋め込みにして
マニュアル6.3.12 エントリ項目の直接出力 を利用して

コード: 全て選択

background-image: url(../../common_imgs/<cmsd:entry name="abcd" dataname="imgfile" />);
というようにすれば、可能だと思います :D

返信