はじめまして。
よろしくお願いします。
今、商品販売用ページを作成しており、ページ構成は、全商品一覧、商品カテゴリ一覧、商品詳細(1商品のみ表示)という構成で、商品詳細ページの記事1件毎にmetaタグのdescription、Keywordsを設定したく、過去ログを検索したところ、「metaタグの変更への利用について」という記事を見つけ、その手順を参考に各ファイルに設定していろいろ試してみたのですが、うまく行かず行き詰まってしまったためご教授いただきたく、書き込みいたします。
過去ログでは、以下のような手順が記述されてます。
---------------------------------
埋め込み側では単に
Code:
<cmsd:entry name="meta" design="default" />
デザイン定義側で、
Code:
<meta name="Description" content="{content用の項目名}" />
content用の項目名がもし"content"であれば(スキーマでそのように
指定しているならば)、
Code:
<meta name="Description" content="{content}" />
---------------------------------
そこで、各定義ファイルを下記のように設定しました。
---------------------------------
●埋め込み側:(例)page01.php
<head>タグ内に下記を記述
<cmsd:entry name="meta" design="default" />
<body>タグ内に下記を記述
<cmsd:entry name="page01" design="default" />
●デザイン定義側への設定:(例)page01.default.design.xsl
<xsl:template match="/entry">
<meta name="Description" content="{content}" />
<xsl:if test="headImg='1'">
<p><img src="head1.gif" width="767" alt="ヘッダー" /></p>
</xsl:if>
<xsl:if test="headImg='2'">
<p><img src="head2.gif" width="767" alt="ヘッダー" /></p>
</xsl:if>
・
・
・
●スキーマへの設定:(例)page01.schema.xml
<schema name="page01" caption="テンプレート1" >
<data name="content" type="text" caption="metaタグ" output="text1" />
---------------------------------
ところが、表示されたファイルのmetaタグが挿入されるはずのところに、
<data name="content" type="text" caption="metaタグ" output="text1"></data>
というように挿入されてしまいます。
また、どのように書き出されるのかがわからないため、
スキーマの設定でtype="textarea"にし、
管理画面からは、
<meta name="description" content="あいうえおかきくけこ">
<meta name="Keywords" CONTENT="キーワード1,キーワード2,キーワード3">
というように、HTMLタグごと入力してみましたが、
結果は同じでした。
どのようにしたら、各商品ページへ設定したmetaタグが挿入されるのでしょうか?
metaタグの変更について
Re: metaタグの変更について
stktkさん、初めまして。
おそらく…
name="meta"
じゃないような気が…
この部分は、cmsdesignerのエントリフォルダ名が入るので
だと思うのですが、どうでしょう?
おそらく…
コード: 全て選択
埋め込み側では単に
Code:
<cmsd:entry name="meta" design="default" />
じゃないような気が…
この部分は、cmsdesignerのエントリフォルダ名が入るので
コード: 全て選択
<cmsd:entry name="page01" design="default" />
最後に編集したユーザー miya on 2009年7月03日(金) 14:51 [ 編集 1 回目 ]
<cmsd:entry name="page01" design="default" />
というように、スキーマ名をpage01にすると、
下記のように、<body>内に表示される内容が、
<head>内にも表示されてしまいます(挿入されたmetaタグの後ろ)。
【設定】
--------------------------------------------
ヘッダー → phpに記述
--------------------------------------------
商品タイトル → デザイン定義に記述
--------------------------------------------
商品詳細 → デザイン定義に記述
--------------------------------------------
フッター → phpに記述
--------------------------------------------
【表示結果】
--------------------------------------------
商品タイトル
--------------------------------------------
商品詳細
--------------------------------------------
ヘッダー
--------------------------------------------
商品タイトル
--------------------------------------------
商品詳細
--------------------------------------------
フッター
--------------------------------------------
そこで、もしかしたらデザイン定義には、metaタグ挿入の設定はいらないのかも?と思い、
試しに削除してみたのですが、状況は変わりませんでした。
確認なのですが、デザイン定義ファイルは、
<body>内に表示するためのものと、
metaタグ挿入用のものと2つ必要ということではないですよね?
このエントリを作成するのに必要なファイルは、
下記の3ファイルのみの構成で間違いないでしょうか?
・デザイン定義ファイル 1ファイル(page01.default.design.xsl)
・スキーマ設定ファイル 1ファイル(page01.schema.xml)
・埋め込み側ファイル(表示用) 1ファイル(page01.php) → ここにmetaタグと商品詳細挿入用の埋め込みを定義
長くなって申し訳ないのですが、
念のため、下記にソースコードを記述しておきます。
お忙しいところ、たいへん申し訳ありませんが、よろしくお願いします。
------------------------------------------------------------------
●page01.default.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="html" encoding="EUC-JP" omit-xml-declaration="yes" />
<xsl:template match="/entry">
<ヘッダー><br />
<↓↓↓ここからメインコンテンツが表示↓↓↓>
<xsl:value-of select="readText" disable-output-escaping="yes" />
<↑↑↑メインコンテンツここまで↑↑↑>
</xsl:template>
</xsl:stylesheet>
●page01.schema.xml
<?xml version="1.0" encoding="UTF-8"?>
<schema name="page01" caption="テンプレート1" >
<data name="content" type="text" caption="metaタグ" output="text1" />
<data name="readText" type="textarea" caption="説明文" output="html2" />
</schema>
●page01.php
<?php require_once( "cmsdesigner/include/view.php.inc" ); // encoding="euc-jp" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<meta name="Robots" content="noindex, nofollow">
<cmsd:entry name="page01" design="default" />
<META http-equiv="Content-Script-Type" content="text/javascript">
<title>test</title>
</head>
<body>
<cmsd:entry name="page01" design="default" />
</body>
</html>
<?php cmsd_end_template(); ?>
というように、スキーマ名をpage01にすると、
下記のように、<body>内に表示される内容が、
<head>内にも表示されてしまいます(挿入されたmetaタグの後ろ)。
【設定】
--------------------------------------------
ヘッダー → phpに記述
--------------------------------------------
商品タイトル → デザイン定義に記述
--------------------------------------------
商品詳細 → デザイン定義に記述
--------------------------------------------
フッター → phpに記述
--------------------------------------------
【表示結果】
--------------------------------------------
商品タイトル
--------------------------------------------
商品詳細
--------------------------------------------
ヘッダー
--------------------------------------------
商品タイトル
--------------------------------------------
商品詳細
--------------------------------------------
フッター
--------------------------------------------
そこで、もしかしたらデザイン定義には、metaタグ挿入の設定はいらないのかも?と思い、
試しに削除してみたのですが、状況は変わりませんでした。
確認なのですが、デザイン定義ファイルは、
<body>内に表示するためのものと、
metaタグ挿入用のものと2つ必要ということではないですよね?
このエントリを作成するのに必要なファイルは、
下記の3ファイルのみの構成で間違いないでしょうか?
・デザイン定義ファイル 1ファイル(page01.default.design.xsl)
・スキーマ設定ファイル 1ファイル(page01.schema.xml)
・埋め込み側ファイル(表示用) 1ファイル(page01.php) → ここにmetaタグと商品詳細挿入用の埋め込みを定義
長くなって申し訳ないのですが、
念のため、下記にソースコードを記述しておきます。
お忙しいところ、たいへん申し訳ありませんが、よろしくお願いします。
------------------------------------------------------------------
●page01.default.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="html" encoding="EUC-JP" omit-xml-declaration="yes" />
<xsl:template match="/entry">
<ヘッダー><br />
<↓↓↓ここからメインコンテンツが表示↓↓↓>
<xsl:value-of select="readText" disable-output-escaping="yes" />
<↑↑↑メインコンテンツここまで↑↑↑>
</xsl:template>
</xsl:stylesheet>
●page01.schema.xml
<?xml version="1.0" encoding="UTF-8"?>
<schema name="page01" caption="テンプレート1" >
<data name="content" type="text" caption="metaタグ" output="text1" />
<data name="readText" type="textarea" caption="説明文" output="html2" />
</schema>
●page01.php
<?php require_once( "cmsdesigner/include/view.php.inc" ); // encoding="euc-jp" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<meta name="Robots" content="noindex, nofollow">
<cmsd:entry name="page01" design="default" />
<META http-equiv="Content-Script-Type" content="text/javascript">
<title>test</title>
</head>
<body>
<cmsd:entry name="page01" design="default" />
</body>
</html>
<?php cmsd_end_template(); ?>
Re: metaタグの変更について
先日
× この部分は、cmsdesignerのスキーマ名が入るので
と書いたのですが、間違いです(汗)
正解はこちら↓になります。
○ この部分は、cmsdesignerのエントリフォルダ名が入るので
先日投稿した分は修正しておきました。
頂いたソースコードで試してみました。
これで試してみてください。
━━━━【追加】━━━━━━━━━━━━━━━━━━━━━━━━━
●page01.meta.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="html" encoding="EUC-JP" omit-xml-declaration="yes" />
<xsl:template match="/entry">
<meta name="keywords" content="{content}" />
</xsl:template>
</xsl:stylesheet>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
そして、埋め込みファイルの、メタタグ部分を
<cmsd:entry name="page01" design="meta" />
とします。
━━━━━【変更】━━━━━━━━━━━━━━━━━━━━━━━━
●page01.php
<?php require_once( "cmsdesigner/include/view.php.inc" ); // encoding="euc-jp" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<meta name="Robots" content="noindex, nofollow">
<cmsd:entry name="page01" design="meta" />
<META http-equiv="Content-Script-Type" content="text/javascript">
<title>test</title>
</head>
<body>
<cmsd:entry name="page01" design="default" />
</body>
</html>
<?php cmsd_end_template(); ?>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
先程試したのですが、これで動きました
× この部分は、cmsdesignerのスキーマ名が入るので
と書いたのですが、間違いです(汗)
正解はこちら↓になります。
○ この部分は、cmsdesignerのエントリフォルダ名が入るので
先日投稿した分は修正しておきました。
二つ必要です。確認なのですが、デザイン定義ファイルは、
<body>内に表示するためのものと、
metaタグ挿入用のものと2つ必要ということではないですよね?
頂いたソースコードで試してみました。
これで試してみてください。
━━━━【追加】━━━━━━━━━━━━━━━━━━━━━━━━━
●page01.meta.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="html" encoding="EUC-JP" omit-xml-declaration="yes" />
<xsl:template match="/entry">
<meta name="keywords" content="{content}" />
</xsl:template>
</xsl:stylesheet>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
そして、埋め込みファイルの、メタタグ部分を
<cmsd:entry name="page01" design="meta" />
とします。
━━━━━【変更】━━━━━━━━━━━━━━━━━━━━━━━━
●page01.php
<?php require_once( "cmsdesigner/include/view.php.inc" ); // encoding="euc-jp" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<meta name="Robots" content="noindex, nofollow">
<cmsd:entry name="page01" design="meta" />
<META http-equiv="Content-Script-Type" content="text/javascript">
<title>test</title>
</head>
<body>
<cmsd:entry name="page01" design="default" />
</body>
</html>
<?php cmsd_end_template(); ?>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
先程試したのですが、これで動きました