javascriptにCMSDを埋め込み動的表示

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
nagashima
パワーユーザー
記事: 44
登録日時: 2007年5月26日(土) 15:52
お住まい: 東京

javascriptにCMSDを埋め込み動的表示

投稿記事 by nagashima » 2007年9月11日(火) 00:10

お世話になります。

下記を参考に
http://cms.al-design.jp/phpbb/viewtopic.php?t=513
登録されたバナーをランダムに表示するものを下記の様に作っております。

通常であれば思ったとおりランダムにバナーが表示されるのですが、
ページナビゲーション表示で2ページ目以降に移動すると
バナーが表示されません。

ソースを表示するとcmsdの埋め込み部分が表示されていないので
cmsd部分がうまく読み込めていないのかなと思います。

どのようにすれば表示されるようになりますか?

埋め込み

コード: 全て選択

<head>
<script type="text/javascript">
<!-- ヘッダーバナー部
	jumpURL = new Array();
	imgURL  = new Array();
	<!-- ▼ソース表示すると下記2行部分が表示されていません。 -->
	<cmsd:entrylist name="banner-l" design="url" />
	<cmsd:entrylist name="banner-l" design="img1" />

	n = Math.floor(Math.random()*jumpURL.length);
-->
</script>

</head>

<body>
<!--## ▼ヘッダー部 ##-->
	<!-- ▼ヘッダーバナー部 -->
	<div id="h_banner">
		<script type="text/javascript">
			<!--
				document.write("<a href='"+jumpURL[n]+"' target='_blank'>");
				document.write("<img src='"+imgURL[n]+"' border='0'>");
				document.write("</a>");
			-->
		</script>
	</div>
	<!-- ▲ヘッダーバナー部 -->

デザイン定義(banner-l.list.url.design.xsl)

コード: 全て選択

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="xml" encoding="EUC-JP" omit-xml-declaration="yes" />
  <xsl:template match="/entrylist">

    <xsl:for-each select="entry">
		jumpURL[<xsl:value-of select="position() - 1" />] = "<xsl:value-of select="url" disable-output-escaping="yes" />";
	</xsl:for-each>

  </xsl:template>
</xsl:stylesheet>

デザイン定義(banner-l.list.img1.design.xsl)

コード: 全て選択

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="xml" encoding="EUC-JP" omit-xml-declaration="yes" />
  <xsl:template match="/entrylist">

    <xsl:for-each select="entry">
		imgURL[<xsl:value-of select="position() - 1" />] = "<xsl:value-of select="img1" disable-output-escaping="yes" />";
	</xsl:for-each>

  </xsl:template>
</xsl:stylesheet>
よろしくお願い致します。

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

Re: javascriptにCMSDを埋め込み動的表示

投稿記事 by webmaster » 2007年9月11日(火) 13:49

 nagashimaさん、ご質問ありがとうございます。
 とても興味深いご利用例で、参考になります。

 この例ですと、ページ切替の為の「pageno=2」などのパラメータが、banner-l
コンテンツにも与えられてしまい、2ページ目(デフォルトでは11件目〜20件目)の
banner-lコンテンツを表示しようとして、存在しない為何も表示されていないのでは
ないかと思います。

 これを防ぐ為に、banner-lのページ番号を固定してみて下さい。
 方法は次のようになります。

コード: 全て選択

<cmsd:entrylist name="banner-l" design="url" pageno="1" />
<cmsd:entrylist name="banner-l" design="img1" pageno="1" />
 これで、URLパラメータのpagenoの影響を受けずに、ページ番号が固定される
ようになります。
 また、デフォルト(規定)では1ページの表示件数は10件になっているので、
もし10件以上のバナーを登録することがある場合には、rowsを99999等の大きな
値にしておいて下さい。

コード: 全て選択

<cmsd:entrylist name="banner-l" design="url" pageno="1" rows="99999" />
<cmsd:entrylist name="banner-l" design="img1" pageno="1" rows="99999" />
 以上、一度お試しいただければ幸いです。

nagashima
パワーユーザー
記事: 44
登録日時: 2007年5月26日(土) 15:52
お住まい: 東京

Re: javascriptにCMSDを埋め込み動的表示

投稿記事 by nagashima » 2007年9月11日(火) 14:21

webmasterさん

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

お教え頂いた記述でできました。

「pageno=2」これが問題だったんですね。
まったく気づきもしていなかったのでとても助かりました。

rowsも設定しました。

ありがとうございました :o

返信