デザイン定義にスタイルシート繁栄

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
smastu
アクティブユーザー
記事: 22
登録日時: 2012年5月15日(火) 08:00

デザイン定義にスタイルシート繁栄

投稿記事 by smastu » 2012年5月17日(木) 11:11

お世話になります。
今週からCMS Desingerを検討している初心者です。
スキーマ定義、エントリー定義、デザイン定義でウェブサイトへの
埋め込みが確認できたので埋め込まれた内容のデザインを
変更しようと考えてますがデザイン定義にスタイルシートを使い
装飾するにはどのようにするかお教えください。
よろしくお願いします。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: デザイン定義にスタイルシート繁栄

投稿記事 by webmaster » 2012年5月17日(木) 18:24

smatsuさん、CMS Designerのご利用ありがとうございます。webmasterです。

CMS Designerとスタイルシート(CSS)の関係は、ぱっと見てわかりにくいかと思います。
CMS Designerのデザイン構築においてCSSを適用する場合、以下のように考えて頂くとわかりやすいかもしれません。

例えば、yourpage.php というファイルにコンテンツを埋め込んだとします。

--- yourpage.php ---
<?php require_once( "cmsdesigner/include/view.php.inc" ); // encoding="euc-jp" ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<title>テストページです。</title>
</head>
<body>
テストページ<br>
<table border="1">
<tr>
<td> メニュー部分 </td>
<td><cmsd:entry name="public_diary" design="default" /> </td>
</tr>
</table>
</body></html>
<?php cmsd_end_template(); ?>
 上記のようになっていたとして、これに対応するデザイン定義ファイルが、次のようになっていたとします。
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" encoding="EUC-JP" omit-xml-declaration="yes" />

<xsl:template match="/entry">
<div class="diary_title" >
<xsl:value-of select="title" />
</div>
<div class="diary_body">
<xsl:value-of select="body" disable-output-escaping="yes" />
</div>
</xsl:template>

</xsl:stylesheet>
 すると、yourpage.phpをサーバ経由でブラウザで表示した際に、CMS Designerが、yourpage.php 内の「<cmsd:entry name="public_diary" design="default" />」の埋め込みタグの部分に、URLで指定したエントリIDに対応するエントリを、デザイン定義にあわせて次のように埋め込みます。
--- yourpage.php?eid=00001 の結果(例) ---
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<title>テストページです。</title>
</head>
<body>
テストページ<br>
<table border="1">
<tr>
<td> メニュー部分 </td>
<td>
<div class="diary_title" >
動物園に行きました
</div>
<div class="diary_body">
今日は動物園に行ってきました。楽しかったです。
</div>

</td>
</tr>
</table>
</body></html>
 つまり、デザイン定義に書いたHTMLに、エントリ内容が反映された上で、yourpage.phpの埋め込みタグ部分に出力されて、ブラウザで表示されることになります。
 この場合ですと、デザイン定義内で、日記のタイトル部分を「diary_title」というclass名で修飾しています。この部分は、デザイン定義側で、
<div class="diary_title" >
<xsl:value-of select="title" />
</div>
<div class="diary_body">
<xsl:value-of select="body" disable-output-escaping="yes" />
</div>
 のように記述しているので、このように出力された、ということです。もしこれを、
<h2>
<xsl:value-of select="title" />
</h2>
<p>
<xsl:value-of select="body" disable-output-escaping="yes" />
</p>
 とすれば、
<h2>
動物園に行きました
</h2>
<p>今日は動物園に行ってきました。楽しかったです。</p>
 のように出力されます。
 これに併せてcssファイルを作成し、yourpage.phpのヘッダで読み込めば、このページのコンテンツ部分に任意のスタイルを適用することが可能です。
 例えば以下のような感じで、任意のcssファイルを読み込むことになるかと思います。

--- yourpage.php ---
<?php require_once( "cmsdesigner/include/view.php.inc" ); // encoding="euc-jp" ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" href="yourstyle.css" type="text/css" />
<title>テストページです。</title>
</head>
<body>
 :
 以上、ご不明な点がございましたら細かいことでも結構ですのでご質問頂ければ幸いです。

smastu
アクティブユーザー
記事: 22
登録日時: 2012年5月15日(火) 08:00

Re: デザイン定義にスタイルシート繁栄

投稿記事 by smastu » 2012年5月21日(月) 16:00

webmaster様

返信、遅くなり申し訳ありません。
スタイルシートの使い方、判りました。有難う御座います。
何件か試して見て出来ました。
今後ともよろしくお願い致します。

返信