single.php内でのページ分岐について教えてください。
フォーラム › テンプレート(テーマ) › single.php内でのページ分岐について教えてください。
-
投稿者投稿
-
2010年11月25日 9:14 AM #50095mikkun参加者
商品ページ毎のページ上部(商品内容の上部)に商品毎のコメントを追加しようと試行錯誤行なっております。
当初は、single_item.php内でと思いましたが、実際の表示での位置的な絡みで、<div class=”storycontent”>内に入ってしまわないため、
商品タイトル<h2></h2>の直ぐ下に配置したいと言う事もあり、single.phpでの改編を試みています。
そこで、<h2><?php the_title(); ?></h2>の直下に以下の様に
<?php
if(usces_the_itemCode(‘商品コード’)) {
$html .= “あいうえお”;
} else {
$html .= “かきくけこ”;
}
?>
ifで分岐するにあたり、商品コード毎に実行するようにしたいのですが
商品コードのタグ(コード)はどの様に引っ張ってくれば良いのでしょうか?
現在は、$html .= “あいうえお”; となっておりますが、最終的には
include(‘http://www.***’);をあてて、ページ毎の商品毎に作る簡易紹介欄をあててみたいと考えています。
その他、何か良い方法も含めてご教授頂ければ幸いです。
どうぞ、宜しくお願いいたします。
2010年11月26日 1:25 AM #60876nanbuキーマスターこんにちは。
usces_the_itemCode() は商品コードを返すテンプレートタグなので、
if( '商品コード' == usces_the_itemCode('return') ){
とすれば商品コードごとに分岐させる事ができます。
但し、global $post が有効でなければいけません。
単に
<?php usces_the_itemCode(); ?>
として商品コードが表示されればglobal $post はOKです。
2010年11月26日 10:31 AM #60877mikkun参加者nanbu 様
ご返答頂きありがとうございます。
早速ですが、
<?php usces_the_itemCode(); ?>
<?php if( ‘T01’ == usces_the_itemCode(‘return’) ) {
$html .= “あいうえお”;
} elseif( ‘T02’ == usces_the_itemCode(‘return’) ) {
$html .= “かきくけこ”;
} else {
$html .= “さしすせそ”;
}
?>
と言うタグをsingle.php内に入れ、商品コードは表示されたのですが、実際にif が効いてない状態です。
全商品ページにて各々の商品コードが表示されるに留まっております。
恐らく、<?php usces_the_itemCode(); ?>での引数でそのまま商品コード
のみ表示されているだけだと思われます。
仮に、
<?php
usces_the_itemCode();
if( ‘T01’ == usces_the_itemCode(‘return’) ) {
$html .= “あいうえお”;
} elseif( ‘T02’ == usces_the_itemCode(‘return’) ) {
$html .= “かきくけこ”;
} else {
$html .= “さしすせそ”;
}
?>
も同様の結果でした。(当然ですが。。。)
何か足りないのでしょうか?
2010年11月27日 3:41 AM #60878nanbuキーマスター失礼しました。先頭に以下のコードを追加してください。
<?php usces_the_item(); usces_have_skus(); ?>
2010年11月27日 5:47 AM #60879mikkun参加者nanbu 様
ご返答ありがとう御座います。
<?php usces_the_item(); usces_have_skus(); ?>
<?php usces_the_itemCode(); ?>
<?php
if( ‘T01’ == usces_the_itemCode(‘return’) ) {
$html .= “あいうえお”;
} elseif( ‘T02’ == usces_the_itemCode(‘return’) ) {
$html .= “かきくけこ”;
} else {
$html .= “さしすせそ”;
}
?>
上記の様な感じで追加すると言う事でしょうか?
前回同様に商品コードは表示されるものの if は効いていないようです(汗
2010年11月27日 6:50 AM #60880nanbuキーマスター記述はそれで大丈夫です。
$html を出力していますか?
2010年11月27日 8:05 AM #60881mikkun参加者nanbu 様
ご返信ありがとうございます。
てっきり $html .=””; で行けるのかと思いつつ、
不思議にも思ってました(汗
一応はタグとして、
<?php usces_the_item(); usces_have_skus(); ?>
<?php usces_the_itemCode(‘return’); ?>
<?php
if( ‘T01’ == usces_the_itemCode(‘return’) ) {
print<<<EOF
あいうえお
EOF;
} elseif( ‘T02’ == usces_the_itemCode(‘return’) ) {
include(‘http://www.***’);
} else {
print<<<EOF
さしすせそ
EOF;
}
?>
で、一応動作が確認できました。
single_item.php内では$htmlで書き出し?している様に見ていて
不思議だなぁ~と思いつつ、
print<<<EOF
EOF;
で普通に表示が出来ました。
まだまだ色々と改変して最終的にはwelcartサイトでも公表させて頂こうと思っています。
今後もご質問する事もあると思いますが宜しくお願いします。
また、このようなカートを本当にありがとう御座います。
2010年11月28日 6:17 PM #60882mikkun参加者nanbu 様
もう一つ教えていただけますでしょうか?
single_item.php内のitem_image及び簡易?商品詳細とSKUフォームの
間に、先にお伺いしたものを挿入する場合は下記のような感じでの挿入で宜しいでしょうか?
$html .= ‘</div>’.”n”;
// 商品詳細補助
usces_the_item(); usces_have_skus();
usces_the_itemCode(‘return’);
if( ‘N01’ == usces_the_itemCode(‘return’) ) {
include(‘http://www.***/item_p/N01_u.php’);
} elseif( ‘N02’ == usces_the_itemCode(‘return’) ) {
include(‘http://www.***/item_p/N02_u.php’);
} elseif( ‘N03’ == usces_the_itemCode(‘return’) ) {
include(‘http://www.***/item_p/N03_u.php’);
} else {
include(‘http://www.kita-marche.com/item_p/none.php’);
}
$html .= ‘<div class=”skuform”>’.”n”;
$html .= ‘<table class=”skumulti”>’.”n”;
とお伺いしつつ。。。表示されなかったのでお伺いをしているまでなのですが、アドバイスを是非宜しくお願いいたします。
ちなみに、通常Smartyで制作してあるサイトの商品詳細をそのまま移行できないかと試行錯誤していて、同じphpと言う概念から include でページをそのまま引用して使用しようと考えている最中です。
一部、EC-CUBE を使用しておりましたのでそのままデータを有効活用できないかと試行錯誤行なっております。
Welcartに移行するにあたり当初は全て作り直しも検討しましたが、商品詳細などに関しては少々面倒なので苦肉の策?で行なっております。
お手間を取らせて申し訳ありませんが宜しくお願いいたします。
2010年11月29日 1:40 AM #60883nanbuキーマスター>ちなみに、通常Smartyで制作してあるサイトの商品詳細をそのまま移行できないかと試行錯誤していて、同じphpと言う概念から include でページをそのまま引用して使用しようと考えている最中です。
そう言う事でしたら、分岐を外してしまって、include したファイルが正常に表示されるかどうかの確認をまず行なってみてはどうでしょうか。うまく行かない原因を絞り込んでテストしていくと糸口が見つかるかもしれません。
-
投稿者投稿
- このトピックに返信するにはログインが必要です。