こんばんは。
CMSD初心者なのですが、ご指導頂ければ幸いです。
URLリンクをテキストリンクで表示するのではなく、「画像ボタン」を表示してリンクするようにしたいと考えております。
現在のデザイン定義(一部抜粋)は、以下のとおりです。(テキストリンクの状態)
<tr>
<th class="midashi">リンク</th>
<td class="text_even"><xsl:value-of select="url" disable-output-escaping="yes" /></td>
</tr>
試しに、下記のような方法を試してみましたが、
うまくいきませんでした。。。
<a href="{url}" target="_blank"><img src="images/×××.gif"></a>
ご回答をお待ちしております。
宜しくお願い致します。
画像ボタンにリンクを付けたい
tsu さん
早速のご連絡有り難うございます。
ご指摘頂いたとおり、XMLの閉じタグを入れたら「画像ボタン」は表示出来ました♪
しかし、下記のような症状が出てしまいます。
・管理画面でURLを入力しない(リンク無し)場合
画像ボタンをクリックすると、なぜかリンク設定をしていないのに、弊社サイトのページが表示されていまします。
http://www.弊社サイト.jp/aaa.php
URLを入力しない場合は、上記のような動きにならないようにしたいです。
またリンク指定が無い場合は、画像ボタンを非表示にすることは出来ますか?
現在、設定しているスキーマは以下のとおりです。
現在、設定しているデザイン定義は以下のとおりです
現状で、リンク項目以外の部分は、正しく動作しているのですが。。。
分かりづらい説明で申し訳御座いませんが、ご指導頂ければ幸いです。
宜しくお願い致します。
早速のご連絡有り難うございます。
ご指摘頂いたとおり、XMLの閉じタグを入れたら「画像ボタン」は表示出来ました♪
しかし、下記のような症状が出てしまいます。
・管理画面でURLを入力しない(リンク無し)場合
画像ボタンをクリックすると、なぜかリンク設定をしていないのに、弊社サイトのページが表示されていまします。
http://www.弊社サイト.jp/aaa.php
URLを入力しない場合は、上記のような動きにならないようにしたいです。
またリンク指定が無い場合は、画像ボタンを非表示にすることは出来ますか?
現在、設定しているスキーマは以下のとおりです。
コード: 全て選択
<?xml version="1.0" encoding="UTF-8"?>
<schema name="aaa" caption="商品用スキーマ" >
<data name="itemname" type="textarea" output="text2" caption="商品名" />
<data name="manufacturer" type="text" output="text2" caption="メーカー名" />
<data name="price" type="text" output="text2" caption="メーカー希望価格" />
<data name="price_02" type="text" output="text2" caption="販売価格" />
<data name="url" type="textarea" output="text2" caption="リンク" />
<data name="comment" type="textarea" output="text2" caption="コメント" autolink="True" />
<data name="photo" type="img" caption="画像" />
</schema>
現在、設定しているデザイン定義は以下のとおりです
コード: 全て選択
<table>
<tr>
<th class="midashi">商品名</th>
<td class="text_odd"><xsl:value-of select="itemname" disable-output-escaping="yes" /></td>
</tr>
<tr>
<th class="midashi">メーカー名</th>
<td class="text_even"><xsl:value-of select="manufacturer" /></td>
</tr>
<tr>
<th class="midashi">メーカー希望価格</th>
<td class="text_odd"><xsl:value-of select="price" /></td>
</tr>
<tr>
<th class="midashi">販売価格(税込み)</th>
<td class="text_price"><xsl:value-of select="price_02" /></td>
</tr>
<tr>
<th class="midashi">リンク</th>
<td class="text_odd"><a href="{url}" target="_blank"><img src="images/abc.gif" /></a></td>
</tr>
<tr>
<th class="midashi">コメント</th>
<td class="text_even"><xsl:value-of select="comment" disable-output-escaping="yes" /></td>
</tr>
</table>
分かりづらい説明で申し訳御座いませんが、ご指導頂ければ幸いです。
宜しくお願い致します。
なんで御社のurlが自動で出力されているのかはよくわかりませんが、
〜の中身があったら表示〜の中身が無かったら非表示という方法で対応可能です
リファレンスマニュアルの5.5.6を後で読んでみてください
例
こんな感じでurlの値が空じゃなければ<a href〜を表示とします
空だったら表示しませんのでこれを入れてあげればいいと思います
空の場合の表示を別にしたいのであればnot()を外して空だったら〜という処理を書けばOKです
追記
閉じタグ忘れてたorz
〜の中身があったら表示〜の中身が無かったら非表示という方法で対応可能です
リファレンスマニュアルの5.5.6を後で読んでみてください
例
コード: 全て選択
<xsl:if test="not(url='')">
<a href="{url}" target="_blank"><img src="images/abc.gif" /></a>
</xsl:if>
空だったら表示しませんのでこれを入れてあげればいいと思います
空の場合の表示を別にしたいのであればnot()を外して空だったら〜という処理を書けばOKです
コード: 全て選択
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="EUC-JP" omit-xml-declaration="yes" />
<xsl:template match="/entrylist">
entry一覧(テスト)
<xsl:for-each select="entry">
<table>
<tr>
<th class="midashi">商品名</th>
<td class="text_odd"><xsl:value-of select="itemname" disable-output-escaping="yes" /></td>
</tr>
<tr>
<th class="midashi">メーカー名</th>
<td class="text_even"><xsl:value-of select="manufacturer" /></td>
</tr>
<tr>
<th class="midashi">メーカー希望価格</th>
<td class="text_odd"><xsl:value-of select="price" /></td>
</tr>
<tr>
<th class="midashi">販売価格(税込み)</th>
<td class="text_price"><xsl:value-of select="price_02" /></td>
</tr>
<tr>
<th class="midashi">リンク</th>
<td class="text_odd">
<xsl:if test="not(url='')"><!--#1 urlの中身が空じゃなければ処理 -->
<a href="{url}" target="_blank"><img src="images/abc.gif" /></a>
</xsl:if><!--#1 ここまで -->
</td>
</tr>
<tr>
<th class="midashi">コメント</th>
<td class="text_even"><xsl:value-of select="comment" disable-output-escaping="yes" /></td>
</tr>
</table>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
閉じタグ忘れてたorz