<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ECCUBE | 相模原市ホームページ制作 ロックストリーム</title>
	<atom:link href="https://rockstream-jp.com/category/blog/eccube/feed/" rel="self" type="application/rss+xml" />
	<link>https://rockstream-jp.com</link>
	<description>相模原市WEBサイト制作・カスタム・修復</description>
	<lastBuildDate>Wed, 23 Jan 2019 13:47:25 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/>
<atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/>
<atom:link rel="self" href="https://rockstream-jp.com/category/blog/eccube/feed/"/>
	<item>
		<title>【ECCUBE2.13】contactで国とZipcodeを取得する方法</title>
		<link>https://rockstream-jp.com/eccube2-13-contact-country-zipcode/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=eccube2-13-contact-country-zipcode</link>
					<comments>https://rockstream-jp.com/eccube2-13-contact-country-zipcode/#respond</comments>
		
		<dc:creator><![CDATA[zassy]]></dc:creator>
		<pubDate>Tue, 04 Apr 2017 14:29:13 +0000</pubDate>
				<category><![CDATA[ECCUBE2.13]]></category>
		<guid isPermaLink="false">https://rockstream-jp.com/?p=3965</guid>

					<description><![CDATA[<p>備忘録です。 ECCUBE2.13から国選択と（海外用)Zipcode入力欄が追加されていますが、 問合せ（cotact）で国とZ...</p>
The post <a href="https://rockstream-jp.com/eccube2-13-contact-country-zipcode/">【ECCUBE2.13】contactで国とZipcodeを取得する方法</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-contact-country-zipcode%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91contact%E3%81%A7%E5%9B%BD%E3%81%A8Zipcode%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-contact-country-zipcode%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91contact%E3%81%A7%E5%9B%BD%E3%81%A8Zipcode%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-contact-country-zipcode%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91contact%E3%81%A7%E5%9B%BD%E3%81%A8Zipcode%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-contact-country-zipcode%2F&#038;title=%E3%80%90ECCUBE2.13%E3%80%91contact%E3%81%A7%E5%9B%BD%E3%81%A8Zipcode%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95" data-a2a-url="https://rockstream-jp.com/eccube2-13-contact-country-zipcode/" data-a2a-title="【ECCUBE2.13】contactで国とZipcodeを取得する方法"></a></p><p>備忘録です。</p>
<p>ECCUBE2.13から国選択と（海外用)Zipcode入力欄が追加されていますが、<br />
問合せ（cotact）で国とZipcodeを取得するソースコードが入っていません。</p>
<p>せっかく、海外用として使いたいのに、肝心のソースコードが入っていないのでは困りますよね？</p>
<p>試行錯誤の上、contact.tplで取得できたのでソースコードを記載します。</p>
<pre class="brush: xml; title: ; notranslate">
■Zipcode：&lt;!--{$arrForm.zipcode.value}--&gt;
■Country ：&lt;!--{$arrCountry&#x5B;$arrForm.country_id.value]}--&gt;
</pre>
<p>返信メールでは下記のように表示されました。<br />
■Zipcode：2222222<br />
■Country ：Japan</p>
<p class="mb30">もし、国とZipcode取得でお困りの方は参考にしてください。</p>
<p>
<a href="https://px.a8.net/svt/ejp?a8mat=2HO4KZ+75SPPU+50+2HH8I9" target="_blank"><br />
<img fetchpriority="high" decoding="async" border="0" width="728" height="90" alt="" src="http://www21.a8.net/svt/bgt?aid=150611507433&wid=001&eno=01&mid=s00000000018015029000&mc=1"></a><br />
<img decoding="async" border="0" width="1" height="1" src="http://www19.a8.net/0.gif?a8mat=2HO4KZ+75SPPU+50+2HH8I9" alt=""></p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-contact-country-zipcode%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91contact%E3%81%A7%E5%9B%BD%E3%81%A8Zipcode%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-contact-country-zipcode%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91contact%E3%81%A7%E5%9B%BD%E3%81%A8Zipcode%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-contact-country-zipcode%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91contact%E3%81%A7%E5%9B%BD%E3%81%A8Zipcode%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-contact-country-zipcode%2F&#038;title=%E3%80%90ECCUBE2.13%E3%80%91contact%E3%81%A7%E5%9B%BD%E3%81%A8Zipcode%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95" data-a2a-url="https://rockstream-jp.com/eccube2-13-contact-country-zipcode/" data-a2a-title="【ECCUBE2.13】contactで国とZipcodeを取得する方法"></a></p>The post <a href="https://rockstream-jp.com/eccube2-13-contact-country-zipcode/">【ECCUBE2.13】contactで国とZipcodeを取得する方法</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></content:encoded>
					
					<wfw:commentRss>https://rockstream-jp.com/eccube2-13-contact-country-zipcode/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【ECCUBE】【WordPress】ECCUBEのブロックでWPの投稿記事を表示２</title>
		<link>https://rockstream-jp.com/eccube-wp-bloc-post2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=eccube-wp-bloc-post2</link>
					<comments>https://rockstream-jp.com/eccube-wp-bloc-post2/#respond</comments>
		
		<dc:creator><![CDATA[zassy]]></dc:creator>
		<pubDate>Mon, 16 Jan 2017 11:40:49 +0000</pubDate>
				<category><![CDATA[ECCUBE2.13]]></category>
		<category><![CDATA[固定ページ]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[投稿記事]]></category>
		<category><![CDATA[feed]]></category>
		<guid isPermaLink="false">https://rockstream-jp.com/?p=3526</guid>

					<description><![CDATA[<p>備忘録です。 以前、ECCUBEのブロックでWPの投稿記事を表示という記事を書きましたが、 WPのバージョンアップで、いちいちファ...</p>
The post <a href="https://rockstream-jp.com/eccube-wp-bloc-post2/">【ECCUBE】【WordPress】ECCUBEのブロックでWPの投稿記事を表示２</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-wp-bloc-post2%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E3%80%90WordPress%E3%80%91ECCUBE%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A7WP%E3%81%AE%E6%8A%95%E7%A8%BF%E8%A8%98%E4%BA%8B%E3%82%92%E8%A1%A8%E7%A4%BA%EF%BC%92" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-wp-bloc-post2%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E3%80%90WordPress%E3%80%91ECCUBE%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A7WP%E3%81%AE%E6%8A%95%E7%A8%BF%E8%A8%98%E4%BA%8B%E3%82%92%E8%A1%A8%E7%A4%BA%EF%BC%92" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-wp-bloc-post2%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E3%80%90WordPress%E3%80%91ECCUBE%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A7WP%E3%81%AE%E6%8A%95%E7%A8%BF%E8%A8%98%E4%BA%8B%E3%82%92%E8%A1%A8%E7%A4%BA%EF%BC%92" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2Feccube-wp-bloc-post2%2F&#038;title=%E3%80%90ECCUBE%E3%80%91%E3%80%90WordPress%E3%80%91ECCUBE%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A7WP%E3%81%AE%E6%8A%95%E7%A8%BF%E8%A8%98%E4%BA%8B%E3%82%92%E8%A1%A8%E7%A4%BA%EF%BC%92" data-a2a-url="https://rockstream-jp.com/eccube-wp-bloc-post2/" data-a2a-title="【ECCUBE】【WordPress】ECCUBEのブロックでWPの投稿記事を表示２"></a></p><p>備忘録です。</p>
<p>以前、<a href="https://rockstream-jp.com/eccube-wp-bloc-post/">ECCUBEのブロックでWPの投稿記事を表示</a>という記事を書きましたが、<br />
WPのバージョンアップで、いちいちファイルの変更が必要であることがわかりました。</p>
<p>そこで、iframeで表示するというアナログな方法を試してみました。</p>
<p>1.新着情報を読み込むための固定ページ用テンプレート（page-blognews.php）を作成</p>
<div>2.page-blognews.phpに下記を記述<br />※任意でCSS調整</div>
<pre class="brush: xml; title: ; notranslate">
&lt;?php
/*
Template Name: ニューステンプレート
*/
?&gt;

/*外部CSSの読み込み、または内部CSSを記述*/

&lt;?php if (have_posts()) : // WordPress ループ
while (have_posts()) : the_post(); // 繰り返し処理開始 ?&gt;
&lt;div id=&quot;post-&lt;?php the_ID(); ?&gt;&quot; &lt;?php post_class(); ?&gt;&gt;
&lt;!--?php the_content(); ?--&gt;
&lt;/div&gt;

&lt;?php endwhile; // 繰り返し処理終了
else : // ここから記事が見つからなかった場合の処理 ?&gt;
&lt;div class=&quot;post&quot;&gt;
&lt;h2&gt;記事はありません&lt;/h2&gt;
&lt;p&gt;お探しの記事は見つかりませんでした。&lt;/p&gt;
&lt;/div&gt;&lt;!-- .post --&gt;
&lt;?php endif; ?&gt;

&lt;div&gt;
&lt;?php query_posts('cat=2&amp;showposts=3'); ?&gt;
&lt;?php if(have_posts()) : while(have_posts()) : the_post(); ?&gt;
    &lt;div&gt;
        &lt;div&gt;
            &lt;?php if ( has_post_thumbnail() ) : ?&gt;
            &lt;p&gt;&lt;a href=&quot;&lt;?php the_permalink(); ?&gt;&quot; target=&quot;_top&quot;&gt;&lt;?php the_post_thumbnail('top-small'); ?&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;?php endif; ?&gt;
            &lt;p&gt;&lt;a href=&quot;&lt;?php the_permalink(); ?&gt;&quot; target=&quot;_top&quot;&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;span class=&quot;date&quot;&gt;&lt;?php the_date(&quot;Y.n.j&quot;); ?&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;p&gt;&lt;?php the_excerpt(); ?&gt;&lt;/p&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;?php endwhile; endif; ?&gt;
&lt;?php wp_reset_query(); ?&gt;
&lt;/div&gt;
</pre>
<div class="mb20">※注意点<br />リンクをtarget="_top"にしないとiframe内で表示されてしまいます。<br />
ヘッダー、フッターを読み込まないようにしてください。</div>
<p>3.固定ページ（newblog）を作成してテンプレートで「ニューステンプレート」を指定</p>
<p>4.ECCUBEでブロック作成</p>
<div>5.ブロックで下記を記述　iframeで読み込み<br />※任意でCSS調整</div>
<pre class="brush: xml; title: ; notranslate">
&lt;div&gt;
    &lt;h2&gt;新着ブログ&lt;/h2&gt;
    &lt;iframe src=&quot;http://www.yourdomein/blog/newblog&quot; style=&quot;width:100%;height:auto;min-height:***px;&quot;&gt;
    &lt;/iframe&gt;
    &lt;p&gt;&lt;a href=&quot;http://www.yourdomein/blog/&quot;&gt;過去の記事&lt;/a&gt;&lt;/dp&gt;
&lt;/div&gt;
</pre>
<p>6.ブロックを任意の場所に移動</p>
<p>この方法でも同じように表示できます。<br />また、WPがバージョンアップしてもファイルを変更する必要がありません。<br />
決してスマートな方法とは言えませんが、困ったときには試してみてください。</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-wp-bloc-post2%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E3%80%90WordPress%E3%80%91ECCUBE%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A7WP%E3%81%AE%E6%8A%95%E7%A8%BF%E8%A8%98%E4%BA%8B%E3%82%92%E8%A1%A8%E7%A4%BA%EF%BC%92" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-wp-bloc-post2%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E3%80%90WordPress%E3%80%91ECCUBE%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A7WP%E3%81%AE%E6%8A%95%E7%A8%BF%E8%A8%98%E4%BA%8B%E3%82%92%E8%A1%A8%E7%A4%BA%EF%BC%92" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-wp-bloc-post2%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E3%80%90WordPress%E3%80%91ECCUBE%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A7WP%E3%81%AE%E6%8A%95%E7%A8%BF%E8%A8%98%E4%BA%8B%E3%82%92%E8%A1%A8%E7%A4%BA%EF%BC%92" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2Feccube-wp-bloc-post2%2F&#038;title=%E3%80%90ECCUBE%E3%80%91%E3%80%90WordPress%E3%80%91ECCUBE%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A7WP%E3%81%AE%E6%8A%95%E7%A8%BF%E8%A8%98%E4%BA%8B%E3%82%92%E8%A1%A8%E7%A4%BA%EF%BC%92" data-a2a-url="https://rockstream-jp.com/eccube-wp-bloc-post2/" data-a2a-title="【ECCUBE】【WordPress】ECCUBEのブロックでWPの投稿記事を表示２"></a></p>The post <a href="https://rockstream-jp.com/eccube-wp-bloc-post2/">【ECCUBE】【WordPress】ECCUBEのブロックでWPの投稿記事を表示２</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></content:encoded>
					
					<wfw:commentRss>https://rockstream-jp.com/eccube-wp-bloc-post2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【ECCUBE】【WordPress】ECCUBEのブロックでWPの投稿記事を表示</title>
		<link>https://rockstream-jp.com/eccube-wp-bloc-post/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=eccube-wp-bloc-post</link>
					<comments>https://rockstream-jp.com/eccube-wp-bloc-post/#respond</comments>
		
		<dc:creator><![CDATA[zassy]]></dc:creator>
		<pubDate>Mon, 19 Dec 2016 03:14:59 +0000</pubDate>
				<category><![CDATA[ECCUBE2.13]]></category>
		<category><![CDATA[投稿]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[ECCUBE]]></category>
		<guid isPermaLink="false">https://rockstream-jp.com/?p=2660</guid>

					<description><![CDATA[<p>備忘録です。 ECCUBEのブロックでWordpressの投稿記事を表示する方法です。 参考サイト EC-CUBEの話(1) Fe...</p>
The post <a href="https://rockstream-jp.com/eccube-wp-bloc-post/">【ECCUBE】【WordPress】ECCUBEのブロックでWPの投稿記事を表示</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-wp-bloc-post%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E3%80%90WordPress%E3%80%91ECCUBE%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A7WP%E3%81%AE%E6%8A%95%E7%A8%BF%E8%A8%98%E4%BA%8B%E3%82%92%E8%A1%A8%E7%A4%BA" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-wp-bloc-post%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E3%80%90WordPress%E3%80%91ECCUBE%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A7WP%E3%81%AE%E6%8A%95%E7%A8%BF%E8%A8%98%E4%BA%8B%E3%82%92%E8%A1%A8%E7%A4%BA" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-wp-bloc-post%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E3%80%90WordPress%E3%80%91ECCUBE%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A7WP%E3%81%AE%E6%8A%95%E7%A8%BF%E8%A8%98%E4%BA%8B%E3%82%92%E8%A1%A8%E7%A4%BA" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2Feccube-wp-bloc-post%2F&#038;title=%E3%80%90ECCUBE%E3%80%91%E3%80%90WordPress%E3%80%91ECCUBE%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A7WP%E3%81%AE%E6%8A%95%E7%A8%BF%E8%A8%98%E4%BA%8B%E3%82%92%E8%A1%A8%E7%A4%BA" data-a2a-url="https://rockstream-jp.com/eccube-wp-bloc-post/" data-a2a-title="【ECCUBE】【WordPress】ECCUBEのブロックでWPの投稿記事を表示"></a></p><p>備忘録です。</p>
<p>ECCUBEのブロックでWordpressの投稿記事を表示する方法です。</p>
<p>参考サイト<br />
<a href="https://blog.re-fine.jp/?p=37" target="_blank">EC-CUBEの話(1) Feedを使わずにWordPressの記事をブロックに表示</a><br />
<a href="http://evoluone.com/web/2089" target="_blank">ECCUBEとWordPressを連携させる方法</a></p>
<p>まず、ECCUBEをインストールしているのと同じディレクトに「blog」を作成してWPをインストール</p>
<p>WPインストール後、「EC-CUBEの話(1) Feedを使わずに～」を参考にソースコードを貼り付けようと思いましたが、<br />
phpのソースがECCUBEに準じていない箇所があったため修正してから貼り付け</p>
<p>wp_newsブロックを作成</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!-- TOP_wordpress_include_01 --&gt;//別に書かなくていい。
&lt;!--{php}--&gt;
require_once('./blog/wp-load.php');//これが重要。
&lt;!--{/php}--&gt;
&lt;div id=&quot;infoarea&quot; class=&quot;mr10&quot;&gt;
    &lt;div class=&quot;info_tit&quot;&gt;&lt;a href=&quot;/blog/&quot;&gt;&lt;span class=&quot;white&quot;&gt;新着ニュース&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
    &lt;div class=&quot;info_themewrp&quot;&gt;		
    &lt;!--{php}--&gt;
    $posts = get_posts('numberposts=3&amp;category=1');// よく見るでしょ。 件数とブログカテゴリの取得
    global $post;
    &lt;!--{/php}--&gt;
    &lt;!--{php}--&gt;
    if($posts): foreach($posts as $post): setup_postdata($post);  &lt;!--{/php}--&gt;
        &lt;div class=&quot;info_theme&quot;&gt;
        &lt;!--{php}--&gt; if (has_post_thumbnail()) : &lt;!--{/php}--&gt;
            &lt;div class=&quot;info_img&quot;&gt;&lt;!--{php}--&gt; the_post_thumbnail(72, 72, true); &lt;!--{/php}--&gt;&lt;/div&gt;&lt;!--{php}--&gt; endif; &lt;!--{/php}--&gt;// サムネイルがあれば
            &lt;div class=&quot;info_tit_text mb10&quot;&gt;&lt;!--{php}--&gt; echo date(&quot;Y.m.d&quot;, strtotime($post-&gt;post_date)); &lt;!--{/php}--&gt;//日付表示 
            &lt;!--{php}--&gt; the_tags( '&lt;span class=&quot;sc_name_tag&quot;&gt; ', '&lt;/span&gt;' ); &lt;!--{/php}--&gt;//タグ表示&lt;/div&gt;
	    &lt;div class=&quot;info_text&quot;&gt;&lt;a href=&quot;&lt;!--{php}--&gt; the_permalink();&lt;!--{/php}--&gt;&quot;&gt;&lt;!--{php}--&gt; the_title();&lt;!--{/php}--&gt;&lt;/a&gt;&lt;/div&gt;
	    &lt;!--{php}--&gt;the_excerpt();&lt;!--{/php}--&gt;
        &lt;/div&gt;
    &lt;!--{php}--&gt; endforeach; &lt;!--{/php}--&gt;
    &lt;!--{php}--&gt; endif; &lt;!--{/php}--&gt;	
    &lt;/div&gt;	
&lt;/div&gt;
</pre>
</p>
<p>これでサイトをチェックしてみるとWPのログイン画面が表示されてしまいました。</p>
<p>そこで、「ECCUBEとWordPressを連携させる方法」を参考にWPのファイルを書き換え<br />
config.php<br />DB_NAMEなどをWP_DB_NAMEに書き換え</p>
<pre class="brush: xml; title: ; notranslate">
// ** MySQL 設定 - こちらの情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('WP_DB_NAME', 'データベース名');
 
/** MySQL データベースのユーザー名 */
define('WP_DB_USER', 'ユーザー名');
 
/** MySQL データベースのパスワード */
define('WP_DB_PASSWORD', 'パスワード');
 
/** MySQL のホスト名 */
define('WP_DB_HOST', 'ホスト名');
</pre>
<p>wp-includes/load.phpも同様に書き換え</p>
<pre class="brush: xml; title: ; notranslate">
function require_wp_db() {
global $wpdb;

require_once( ABSPATH . WPINC . '/wp-db.php' );
if ( file_exists( WP_CONTENT_DIR . '/db.php' ) )
require_once( WP_CONTENT_DIR . '/db.php' );

if ( isset( $wpdb ) )
return;

$wpdb = new wpdb( WP_DB_USER, WP_DB_PASSWORD, WP_DB_NAME, WP_DB_HOST ); //ここを書き換え
}
</pre>
<p>これで無事表示されましたが、//のコメントアウトが全て表示されてしまったので削除。<br />
CSSで調整していません。とりあえず、そのままです。</p>
<div class="mb40">
<script type="text/javascript">amazon_ad_tag ="rockstream-22"; amazon_ad_width ="728"; amazon_ad_height ="90"; </script><script src="https://ir-jp.amazon-adsystem.com/s/ads.js"></script>
</div>
<p><a href="https://rockstream-jp.com/wp-content/uploads/2016/12/eccube_wp_post-1-1.jpg" data-rel="lightbox-image-0" data-rl_title="" data-rl_caption="" title=""><img decoding="async" src="https://rockstream-jp.com/wp-content/uploads/2016/12/eccube_wp_post-1-225x300.jpg" alt="" width="225" height="300" class="alignnone size-medium wp-image-2662" srcset="https://rockstream-jp.com/wp-content/uploads/2016/12/eccube_wp_post-1-225x300.jpg 225w, https://rockstream-jp.com/wp-content/uploads/2016/12/eccube_wp_post-1-768x1025.jpg 768w, https://rockstream-jp.com/wp-content/uploads/2016/12/eccube_wp_post-1-767x1024.jpg 767w, https://rockstream-jp.com/wp-content/uploads/2016/12/eccube_wp_post-1.jpg 1345w" sizes="(max-width: 225px) 100vw, 225px" /></a></p>
<p>2017/1/12 追記<br />
この方法だとWPがバージョンアップ（自動更新）されるときに、wp-includes/load.phpが書き換わってしまうので問題があることがわかりました。<br />
面倒ですが、バージョンアップがあった場合には、wp-includes/load.phpを毎回書き換える必要があります。</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-wp-bloc-post%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E3%80%90WordPress%E3%80%91ECCUBE%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A7WP%E3%81%AE%E6%8A%95%E7%A8%BF%E8%A8%98%E4%BA%8B%E3%82%92%E8%A1%A8%E7%A4%BA" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-wp-bloc-post%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E3%80%90WordPress%E3%80%91ECCUBE%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A7WP%E3%81%AE%E6%8A%95%E7%A8%BF%E8%A8%98%E4%BA%8B%E3%82%92%E8%A1%A8%E7%A4%BA" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-wp-bloc-post%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E3%80%90WordPress%E3%80%91ECCUBE%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A7WP%E3%81%AE%E6%8A%95%E7%A8%BF%E8%A8%98%E4%BA%8B%E3%82%92%E8%A1%A8%E7%A4%BA" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2Feccube-wp-bloc-post%2F&#038;title=%E3%80%90ECCUBE%E3%80%91%E3%80%90WordPress%E3%80%91ECCUBE%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A7WP%E3%81%AE%E6%8A%95%E7%A8%BF%E8%A8%98%E4%BA%8B%E3%82%92%E8%A1%A8%E7%A4%BA" data-a2a-url="https://rockstream-jp.com/eccube-wp-bloc-post/" data-a2a-title="【ECCUBE】【WordPress】ECCUBEのブロックでWPの投稿記事を表示"></a></p>The post <a href="https://rockstream-jp.com/eccube-wp-bloc-post/">【ECCUBE】【WordPress】ECCUBEのブロックでWPの投稿記事を表示</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></content:encoded>
					
					<wfw:commentRss>https://rockstream-jp.com/eccube-wp-bloc-post/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【ECCUBE2.13】おすすめ商品２を追加</title>
		<link>https://rockstream-jp.com/eccube2-13-bestproduct2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=eccube2-13-bestproduct2</link>
		
		<dc:creator><![CDATA[zassy]]></dc:creator>
		<pubDate>Thu, 30 Jun 2016 02:12:41 +0000</pubDate>
				<category><![CDATA[ECCUBE2.13]]></category>
		<guid isPermaLink="false">https://rockstream-jp.com/?p=1447</guid>

					<description><![CDATA[<p>備忘録です。 管理画面に「おすすめ商品２」の入力欄追加とブロックを作成します。 DBに以下を追加します。 INSERT INTO ...</p>
The post <a href="https://rockstream-jp.com/eccube2-13-bestproduct2/">【ECCUBE2.13】おすすめ商品２を追加</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-bestproduct2%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E5%95%86%E5%93%81%EF%BC%92%E3%82%92%E8%BF%BD%E5%8A%A0" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-bestproduct2%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E5%95%86%E5%93%81%EF%BC%92%E3%82%92%E8%BF%BD%E5%8A%A0" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-bestproduct2%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E5%95%86%E5%93%81%EF%BC%92%E3%82%92%E8%BF%BD%E5%8A%A0" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-bestproduct2%2F&#038;title=%E3%80%90ECCUBE2.13%E3%80%91%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E5%95%86%E5%93%81%EF%BC%92%E3%82%92%E8%BF%BD%E5%8A%A0" data-a2a-url="https://rockstream-jp.com/eccube2-13-bestproduct2/" data-a2a-title="【ECCUBE2.13】おすすめ商品２を追加"></a></p><p>備忘録です。</p>
<p>管理画面に「おすすめ商品２」の入力欄追加とブロックを作成します。</p>
<p>DBに以下を追加します。</p>
<pre class="brush: xml; title: ; notranslate">
INSERT INTO mtb_constants (id, rank, name, remarks) VALUES ('RECOMMEND_NUM2', (SELECT max(rank)+1 FROM mtb_constants), 3, 'おすすめ商品表示数2');

INSERT INTO dtb_bloc (device_type_id, bloc_id, bloc_name, tpl_path, filename, create_date, update_date, php_path, deletable_flg, plugin_id) VALUES (10, (SELECT max(bloc_id)+1 FROM dtb_bloc WHERE device_type_id = 10), 'おすすめ商品(2)', 'recommend2.tpl', 'recommend2', now(),	now(), 'frontparts/bloc/recommend2.php', 0, NULL);

INSERT INTO dtb_csv (no, csv_id, col, disp_name, rank, rw_flg, status, create_date, update_date, mb_convert_kana_option, size_const_type, error_check_types)
             VALUES (nextval('dtb_csv_no_seq'), 5, 'rcmd2_id', 'おすすめ商品ID-2', NULL, 1, 2, now(), now(), 'n', 'INT_LEN', 'NUM_CHECK,MAX_LENGTH_CHECK');
INSERT INTO dtb_csv (no, csv_id, col, disp_name, rank, rw_flg, status, create_date, update_date, mb_convert_kana_option, size_const_type, error_check_types)
             VALUES (nextval('dtb_csv_no_seq'), 5, 'rcmd2_text', 'おすすめコメント2', NULL, 1, 2, now(), now(), 'KVa', 'LTEXT_LEN', 'MAX_LENGTH_CHECK');
</pre>
</p>
<p>【管理画面】<br />
SC_Helper_BestProducts_Ex.php</p>
<pre class="brush: xml; title: ; notranslate">
{
    public static $arrRcmdBlocks = array(
        array('name' =&gt; 'オススメ商品管理', 'num' =&gt; RECOMMEND_NUM),
        array('name' =&gt; 'オススメ商品(2)管理', 'num' =&gt; RECOMMEND_NUM2),
    );

    /**
     * おすすめ商品の削除.
     *
     * @param  integer $best_id おすすめ商品ID
     * @return void
     */
    public function deleteBestProducts($best_id)
    {
        // ここではランクを意識せずに削除
        // ※ランク付きレコードの削除では他のブロックのおすすめ商品が繰り上がってきてしまうため
        $objQuery =&amp; SC_Query_Ex::getSingletonInstance();
        $objQuery-&gt;delete('dtb_best_products', 'best_id = ?', array($best_id));
    }


    /**
     * おすすめ商品一覧の取得.
     *
     * @param  integer $block_id  ブロックID
     * @return array
     */
    public function getProductsByBlock($block_id = 0)
    {
        $arrProducts = array();
        if(($block_id &gt;= 0) &amp;&amp; ($block_id &lt; count(self::$arrRcmdBlocks))){
            $objQuery =&amp; SC_Query_Ex::getSingletonInstance();
            $objProduct = new SC_Product_Ex();
            
            $start_rank = 1;
            for($idx = 0; $idx &lt;  $block_id; $idx++){
                $start_rank += self::$arrRcmdBlocks&#x5B;$idx]&#x5B;'num'];
            }
            $end_rank = $start_rank + self::$arrRcmdBlocks&#x5B;$block_id]&#x5B;'num'] - 1;
            
            // 商品取得
            $col = 'best_id, category_id, rank, product_id, title, comment, create_date, update_date';
            $table = 'dtb_best_products';
            $where = 'del_flg = 0 AND rank &gt;= ? AND rank &lt;= ?';
            $objQuery-&gt;setOrder('rank');
            $objQuery-&gt;setLimitOffset(self::$arrRcmdBlocks&#x5B;$block_id]&#x5B;'num']);
            $arrProducts = $objQuery-&gt;select($col, $table, $where, array($start_rank, $end_rank));
            
            $objQuery =&amp; SC_Query_Ex::getSingletonInstance();
            if (count($arrProducts) &gt; 0) {
                // 商品一覧を取得
                // where条件生成&amp;セット
                $arrProductId = array();
                $where = 'product_id IN (';
                foreach ($arrProducts as $key =&gt; $val) {
                    $arrProductId&#x5B;] = $val&#x5B;'product_id'];
                }
                // 取得
                $arrTmp = $objProduct-&gt;getListByProductIds($objQuery, $arrProductId);
                foreach ($arrTmp as $key =&gt; $arrRow) {
                    $arrProductList&#x5B;$arrRow&#x5B;'product_id']] = $arrRow;
                }
                // 商品情報にマージ
                foreach (array_keys($arrProducts) as $key) {
                    $arrRow =&amp; $arrProducts&#x5B;$key];
                    if (isset($arrProductList&#x5B;$arrRow&#x5B;'product_id']])) {
                        $arrRow = array_merge($arrRow, $arrProductList&#x5B;$arrRow&#x5B;'product_id']]);
                    } else {
                        // 削除済み商品は除外
                        unset($arrProducts&#x5B;$key]);
                    }
                }
            }
        }
        
        return $arrProducts;
    }

}
</pre>
</p>
<p>LC_Page_Admin_Contents_Recommend_Ex.php</p>
<pre class="brush: xml; title: ; notranslate">
{
    /**
     * Page を初期化する.
     *
     * @return void
     */
    function init()
    {
        parent::init();
        
        $this-&gt;arrRcmdBlocks = SC_Helper_BestProducts_Ex::$arrRcmdBlocks;
        
        //最大登録数の表示
        $this-&gt;tpl_disp_max = 0;
        foreach($this-&gt;arrRcmdBlocks as $val){
            $this-&gt;tpl_disp_max += $val&#x5B;num];
        }
    }

    /**
     * Page のプロセス.
     *
     * @return void
     */
    function process()
    {
        parent::process();
    }

    /**
     * Page のアクション.
     *
     * @return void
     */
    function action() {
        parent::action();
    }

    /**
     * パラメーターの初期化を行う
     * @param Object $objFormParam
     */
    public function lfInitParam(&amp;$objFormParam)
    {
        $objFormParam-&gt;addParam('おすすめ商品ID', 'best_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));
        $objFormParam-&gt;addParam('商品ID', 'product_id', INT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'));
        $objFormParam-&gt;addParam('カテゴリID', 'category_id', INT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'));
        $objFormParam-&gt;addParam('ランク', 'rank', INT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'));
        $objFormParam-&gt;addParam('コメント', 'comment', LTEXT_LEN, 'KVa', array('MAX_LENGTH_CHECK'));
    }
}
</pre>
</p>
<p>recommend.tpl</p>
<pre class="brush: xml; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
function lfnCheckSubmit( fm ){
    var err = '';

    if ( ! fm&#x5B;&quot;product_id&quot;].value ){
        err += '商品を選択して下さい。';
    }

    /*
    if ( fm&#x5B;&quot;comment&quot;] &amp;&amp; !fm&#x5B;&quot;comment&quot;].value ){
        if ( err ) err += '';
        err += 'コメントを入力して下さい。';
    }
    */

    if ( err ){
        alert(err);
        return false;
    } else {
        if(window.confirm('内容を登録しても宜しいですか')){
                fm.submit();
                return true;
        }
    }
}

function lfnCheckSetItem( rank ){
    var flag = true;
    var checkRank = '&lt;!--{$checkRank|h}--&gt;';
    if ( checkRank ){
        if ( rank != checkRank ){
            if( ! window.confirm('さきほど選択したおすすめ商品(&lt;!--{$checkRank|h}--&gt;)の情報は破棄されます。宜しいでしょうか')){
                flag = false;
            }
        }
    }

    if ( flag ){
        eccube.openWindow('./recommend_search.php?rank=' + rank,'search','615','600',{menubar:'no'});
    }
}

function lfnSortItem(mode,data){
    var flag = true;
    var checkRank = '&lt;!--{$checkRank|h}--&gt;';
    if ( checkRank ){
        if( ! window.confirm('さきほど選択した&lt;!--{$checkRank|h}--&gt;位の情報は破棄されます。宜しいでしょうか')){
            flag = false;
        }
    }

    if ( flag ){
        document.form1&#x5B;&quot;mode&quot;].value = mode;
        document.form1&#x5B;&quot;best_id&quot;].value = data;
        document.form1.submit();
    }
}
&lt;/script&gt;

&lt;div id=&quot;admin-contents&quot; class=&quot;contents-main&quot;&gt;
  &lt;!--{section name=cnt loop=$tpl_disp_max}--&gt;

  &lt;!--{if $smarty.section.cnt.first}--&gt;
    &lt;!--{foreach from=$arrRcmdBlocks key=key item=val name=blk}--&gt;
    &lt;!--{if $smarty.foreach.blk.first}--&gt;&lt;ul style=&quot;margin:0 0 20px; line-height:1.7em;&quot;&gt;&lt;!--{/if}--&gt;
      &lt;li&gt;&lt;a href=&quot;#blk&lt;!--{$smarty.foreach.blk.index}--&gt;&quot;&gt;&lt;!--{$val.name}--&gt;&lt;/a&gt;&lt;/li&gt;
    &lt;!--{if $smarty.foreach.blk.last}--&gt;&lt;/ul&gt;&lt;!--{/if}--&gt;
    &lt;!--{/foreach}--&gt;
    &lt;!--{assign var=&quot;block_idx&quot; value=0}--&gt;
    &lt;!--{assign var=&quot;block_num&quot; value=1}--&gt;
    &lt;!--{assign var=&quot;block_limit&quot; value=1}--&gt;
  &lt;!--{/if}--&gt;

  &lt;!--{if $block_num == $block_limit}--&gt;
    &lt;h3 style=&quot;border:solid 1px #ccc; margin: 0 0 10px;&quot;&gt;&lt;a name=&quot;blk&lt;!--{$block_idx}--&gt;&quot; name=&quot;blk&lt;!--{$block_idx}--&gt;&quot;&gt;&lt;/a&gt;&lt;!--{$arrRcmdBlocks&#x5B;$block_idx].name}--&gt;&lt;/h3&gt;
    &lt;!--{assign var=&quot;block_limit&quot; value=$block_limit+$arrRcmdBlocks&#x5B;$block_idx].num}--&gt;
    &lt;!--{assign var=&quot;block_idx&quot; value=$block_idx+1}--&gt;
  &lt;!--{/if}--&gt;

    &lt;div class=&quot;recommend-product &lt;!--{if $arrItems&#x5B;$smarty.section.cnt.iteration].status == &quot;2&quot;}--&gt;hidden&lt;!--{/if}--&gt;&quot;&gt;
        &lt;table class=&quot;list center recommend-table&quot;&gt;
            &lt;col width=&quot;13%&quot; /&gt;
            &lt;col width=&quot;73%&quot; /&gt;
            &lt;col width=&quot;7%&quot; /&gt;
            &lt;col width=&quot;7%&quot; /&gt;
            &lt;tr&gt;
                &lt;th&gt;順位&lt;/th&gt;
                &lt;th&gt;商品/コメント&lt;/th&gt;
                &lt;th&gt;編集&lt;/th&gt;
                &lt;th&gt;削除&lt;/th&gt;
                &lt;th&gt;並び替え&lt;/th&gt;
            &lt;/tr&gt;

            &lt;tr&gt;
                &lt;td&gt;おすすめ商品(&lt;!--{$smarty.section.cnt.iteration}--&gt;)&lt;/td&gt;
                    &lt;!--{if $arrItems&#x5B;$smarty.section.cnt.iteration].product_id}--&gt;
                        &lt;td&gt;
                            &lt;div class=&quot;clearfix table-wrap&quot;&gt;
                                &lt;div class=&quot;table-img&quot;&gt;
                                    &lt;!--{if $arrItems&#x5B;$smarty.section.cnt.iteration].product_id}--&gt;
                                        &lt;img src=&quot;&lt;!--{$smarty.const.IMAGE_SAVE_URLPATH}--&gt;&lt;!--{$arrItems&#x5B;$smarty.section.cnt.iteration].main_list_image|sfNoImageMainList|h}--&gt;&quot; alt=&quot;&lt;!--{$arrItems&#x5B;$smarty.section.cnt.iteration].name|h}--&gt;&quot; width=&quot;100&quot; height=&quot;100&quot; /&gt;
                                    &lt;!--{/if}--&gt;
                                &lt;/div&gt;
                                &lt;div class=&quot;table-detail&quot;&gt;
                                    &lt;div class=&quot;detail-name&quot;&gt;
                                        商品名： &lt;!--{$arrItems&#x5B;$smarty.section.cnt.iteration].name|h}--&gt;
                                    &lt;/div&gt;
                                    &lt;div class=&quot;detail-form&quot;&gt;
                                        &lt;form name=&quot;form&lt;!--{$smarty.section.cnt.iteration}--&gt;&quot; id=&quot;form&lt;!--{$smarty.section.cnt.iteration}--&gt;&quot; method=&quot;post&quot; action=&quot;?&quot;&gt;
                                            &lt;input type=&quot;hidden&quot; name=&quot;&lt;!--{$smarty.const.TRANSACTION_ID_NAME}--&gt;&quot; value=&quot;&lt;!--{$transactionid}--&gt;&quot; /&gt;
                                            &lt;input type=&quot;hidden&quot; name=&quot;mode&quot; value=&quot;regist&quot; /&gt;
                                            &lt;input type=&quot;hidden&quot; name=&quot;best_id&quot; value=&quot;&lt;!--{$arrItems&#x5B;$smarty.section.cnt.iteration].best_id|h}--&gt;&quot; /&gt;
                                            &lt;input type=&quot;hidden&quot; name=&quot;product_id&quot; value=&quot;&lt;!--{$arrItems&#x5B;$smarty.section.cnt.iteration].product_id|h}--&gt;&quot; /&gt;
                                            &lt;input type=&quot;hidden&quot; name=&quot;category_id&quot; value=&quot;&lt;!--{$category_id|h}--&gt;&quot; /&gt;
                                            &lt;input type=&quot;hidden&quot; name=&quot;rank&quot; value=&quot;&lt;!--{$arrItems&#x5B;$smarty.section.cnt.iteration].rank|h}--&gt;&quot; /&gt;
                                            &lt;span class=&quot;attention&quot;&gt;&lt;!--{$arrErr&#x5B;$smarty.section.cnt.iteration].comment}--&gt;&lt;/span&gt;
                                            &lt;textarea class=&quot;top&quot; name=&quot;comment&quot; cols=&quot;45&quot; rows=&quot;4&quot; style=&quot;width: 586px; height: 80px; &lt;!--{$arrErr&#x5B;$smarty.section.cnt.iteration].comment|sfGetErrorColor}--&gt;&quot; &lt;!--{$arrItems&#x5B;$smarty.section.cnt.iteration].product_id|sfGetEnabled}--&gt;&gt;&lt;!--{&quot;\n&quot;}--&gt;&lt;!--{$arrItems&#x5B;$smarty.section.cnt.iteration].comment|h}--&gt;&lt;/textarea&gt;
                                        &lt;/form&gt;
                                    &lt;/div&gt;
                                &lt;/div&gt;
                            &lt;/div&gt;
                        &lt;/td&gt;
                    &lt;!--{else}--&gt;
                        &lt;td class=&quot;AlignLeft&quot;&gt;
                            &lt;a class=&quot;btn-action-m&quot; href=&quot;javascript:;&quot; onclick=&quot;lfnCheckSetItem('&lt;!--{$smarty.section.cnt.iteration}--&gt;'); return false;&quot; target=&quot;_blank&quot;&gt;&lt;span class=&quot;btn-next&quot;&gt;商品を選択する&lt;/span&gt;&lt;/a&gt;
                            &lt;form name=&quot;form&lt;!--{$smarty.section.cnt.iteration}--&gt;&quot; id=&quot;form&lt;!--{$smarty.section.cnt.iteration}--&gt;&quot; method=&quot;post&quot; action=&quot;?&quot;&gt;
                                &lt;input type=&quot;hidden&quot; name=&quot;&lt;!--{$smarty.const.TRANSACTION_ID_NAME}--&gt;&quot; value=&quot;&lt;!--{$transactionid}--&gt;&quot; /&gt;
                                &lt;input type=&quot;hidden&quot; name=&quot;mode&quot; value=&quot;regist&quot; /&gt;
                                &lt;input type=&quot;hidden&quot; name=&quot;best_id&quot; value=&quot;&lt;!--{$arrItems&#x5B;$smarty.section.cnt.iteration].best_id|h}--&gt;&quot; /&gt;
                                &lt;input type=&quot;hidden&quot; name=&quot;product_id&quot; value=&quot;&lt;!--{$arrItems&#x5B;$smarty.section.cnt.iteration].product_id|h}--&gt;&quot; /&gt;
                                &lt;input type=&quot;hidden&quot; name=&quot;category_id&quot; value=&quot;&lt;!--{$category_id|h}--&gt;&quot; /&gt;
                                &lt;input type=&quot;hidden&quot; name=&quot;rank&quot; value=&quot;&lt;!--{$arrItems&#x5B;$smarty.section.cnt.iteration].rank|h}--&gt;&quot; /&gt;
                            &lt;/form&gt;
                        &lt;/td&gt;
                    &lt;!--{/if}--&gt;
                &lt;td&gt;
                    &lt;!--{if $arrItems&#x5B;$smarty.section.cnt.iteration].product_id}--&gt;
                        &lt;a href=&quot;javascript:;&quot; onclick=&quot;lfnCheckSetItem('&lt;!--{$smarty.section.cnt.iteration}--&gt;'); return false;&quot; target=&quot;_blank&quot;&gt;
                            編集
                        &lt;/a&gt;
                    &lt;!--{else}--&gt;
                        - -
                    &lt;!--{/if}--&gt;
                &lt;/td&gt;
                &lt;td&gt;
                    &lt;!--{if $arrItems&#x5B;$smarty.section.cnt.iteration].product_id}--&gt;
                            &lt;a href=&quot;javascript:;&quot; onclick=&quot;return eccube.insertValueAndSubmit( document.form&lt;!--{$smarty.section.cnt.iteration}--&gt;, 'mode', 'delete', '削除します。宜しいですか' )&quot;&gt;削除&lt;/a&gt;
                    &lt;!--{else}--&gt;
                        - -
                    &lt;!--{/if}--&gt;
                &lt;/td&gt;
                &lt;td&gt;
                    &lt;!--{* 移動 *}--&gt;
                    &lt;!--{if $smarty.section.cnt.iteration != 1 &amp;&amp; $arrItems&#x5B;$smarty.section.cnt.iteration].product_id}--&gt;
                        &lt;a href=&quot;?&quot; onclick=&quot;lfnSortItem('up',&lt;!--{$arrItems&#x5B;$smarty.section.cnt.iteration].best_id}--&gt;); return false;&quot;&gt;上へ&lt;/a&gt;&lt;br /&gt;&amp;nbsp;
                    &lt;!--{/if}--&gt;
                    &lt;!--{if $smarty.section.cnt.iteration != $tpl_disp_max &amp;&amp; $arrItems&#x5B;$smarty.section.cnt.iteration].product_id}--&gt;
                        &lt;a href=&quot;?&quot; onclick=&quot;lfnSortItem('down',&lt;!--{$arrItems&#x5B;$smarty.section.cnt.iteration].best_id}--&gt;); return false;&quot;&gt;下へ&lt;/a&gt;
                    &lt;!--{/if}--&gt;
                &lt;/td&gt;
            &lt;/tr&gt;
        &lt;/table&gt;
        &lt;div class=&quot;btn-area&quot;&gt;
            &lt;a class=&quot;btn-action&quot; href=&quot;javascript:;&quot; onclick=&quot;lfnCheckSubmit(document.form&lt;!--{$smarty.section.cnt.iteration}--&gt;); return false;&quot;&gt;&lt;span class=&quot;btn-next&quot;&gt;この内容で登録する&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;!--▲おすすめ商品&lt;!--{$smarty.section.cnt.iteration}--&gt;--&gt;
    &lt;!--{assign var=&quot;block_num&quot; value=$block_num+1}--&gt;
  &lt;!--{/section}--&gt;
&lt;/div&gt;
</pre>
</p>
<p>これでコンテンツ管理＞おすすめ商品管理にオススメ商品(2)管理が表示されます。</p>
<p>【フロント】<br />
LC_Page_FrontParts_Bloc_Recommend2_Ex.phpを追加</p>
<pre class="brush: xml; title: ; notranslate">
require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Recommend.php';

/**
 * Recommend のページクラス(拡張).
 *
 * LC_Page_FrontParts_Bloc_Recommend をカスタマイズする場合はこのクラスを編集する.
 *
 * @package Page
 * @author LOCKON CO.,LTD.
 * @version $Id: LC_Page_FrontParts_Bloc__Ex.php -1   $
 */
class LC_Page_FrontParts_Bloc_Recommend2_Ex extends LC_Page_FrontParts_Bloc_Recommend
{
    /**
     * Page を初期化する.
     *
     * @return void
     */
    function init()
    {
        parent::init();
    }

    /**
     * Page のプロセス.
     *
     * @return void
     */
    function process()
    {
        parent::process();
    }

    /**
     * おすすめ商品検索.
     *
     * @return array $arrBestProducts 検索結果配列
     */
    public function lfGetRanking()
    {
        $objRecommend = new SC_Helper_BestProducts_Ex();

        // おすすめ商品取得
        $arrRecommends = $objRecommend-&gt;getProductsByBlock(1);

        return $arrRecommends;
    }
}
</pre>
</p>
<p>recommend2.tplを追加</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!--{strip}--&gt;
    &lt;!--{if count($arrBestProducts) &gt; 0}--&gt;
        &lt;div class=&quot;block_outer clearfix&quot;&gt;
            &lt;div id=&quot;recommend_area&quot;&gt;
                &lt;h2&gt;おすすめ商品(2)&lt;/h2&gt;
                &lt;div class=&quot;block_body clearfix&quot;&gt;
                    &lt;!--{foreach from=$arrBestProducts item=arrProduct name=&quot;recommend_products&quot;}--&gt;
                        &lt;div class=&quot;product_item clearfix&quot;&gt;
                            &lt;div class=&quot;productImage&quot;&gt;
                                &lt;a href=&quot;&lt;!--{$smarty.const.HTTP_URL}--&gt;products/detail&lt;!--{$arrProduct.product_id|u}--&gt;.html&quot;&gt;
                                    &lt;img src=&quot;&lt;!--{$smarty.const.IMAGE_SAVE_URLPATH}--&gt;&lt;!--{$arrProduct.main_list_image|sfNoImageMainList|h}--&gt;&quot; style=&quot;max-width: 80px;max-height: 80px;&quot; alt=&quot;&lt;!--{$arrProduct.name|h}--&gt;&quot; /&gt;
                                &lt;/a&gt;
                            &lt;/div&gt;
                            &lt;div class=&quot;productContents&quot;&gt;
                                &lt;h3&gt;
                                    &lt;a href=&quot;&lt;!--{$smarty.const.HTTP_URL}--&gt;products/detail&lt;!--{$arrProduct.product_id|u}--&gt;.html&quot;&gt;&lt;!--{$arrProduct.name|h}--&gt;&lt;/a&gt;
                                &lt;/h3&gt;
                                &lt;p class=&quot;sale_price&quot;&gt;
                                    &lt;!--{$smarty.const.SALE_PRICE_TITLE}--&gt;(税込)： &lt;span class=&quot;price&quot;&gt;&lt;!--{$arrProduct.price02_min_inctax|number_format}--&gt; 円&lt;/span&gt;
                                &lt;/p&gt;
                                &lt;p class=&quot;mini comment&quot;&gt;&lt;!--{$arrProduct.comment|h|nl2br}--&gt;&lt;/p&gt;
                            &lt;/div&gt;
                        &lt;/div&gt;
                        &lt;!--{if $smarty.foreach.recommend_products.iteration % 2 === 0}--&gt;
                            &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;
                        &lt;!--{/if}--&gt;
                    &lt;!--{/foreach}--&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;!--{/if}--&gt;
&lt;!--{/strip}--&gt;
</pre>
</p>
<p>html/frontparts/bloc/recommend2.phpを追加</p>
<pre class="brush: xml; title: ; notranslate">
require_once realpath(dirname(__FILE__)) . '/../../require.php';
require_once CLASS_EX_REALDIR . 'page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Recommend2_Ex.php';

$objPage = new LC_Page_FrontParts_Bloc_Recommend2_Ex();
$objPage-&gt;blocItems = $params&#x5B;'items'];
$objPage-&gt;init();
$objPage-&gt;process();
</pre>
</p>
<p>ブロックに「おすすめ商品(2)」が追加されます。</p>
<p>商品を追加して表示を確認後、CSSで調整して完了です。</p>
<p>
<a href="https://px.a8.net/svt/ejp?a8mat=2HO4KZ+75SPPU+50+2HH8I9" target="_blank"><br />
<img decoding="async" border="0" width="728" height="90" alt="" src="http://www21.a8.net/svt/bgt?aid=150611507433&wid=001&eno=01&mid=s00000000018015029000&mc=1"></a><br />
<img decoding="async" border="0" width="1" height="1" src="http://www19.a8.net/0.gif?a8mat=2HO4KZ+75SPPU+50+2HH8I9" alt=""></p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-bestproduct2%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E5%95%86%E5%93%81%EF%BC%92%E3%82%92%E8%BF%BD%E5%8A%A0" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-bestproduct2%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E5%95%86%E5%93%81%EF%BC%92%E3%82%92%E8%BF%BD%E5%8A%A0" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-bestproduct2%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E5%95%86%E5%93%81%EF%BC%92%E3%82%92%E8%BF%BD%E5%8A%A0" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-bestproduct2%2F&#038;title=%E3%80%90ECCUBE2.13%E3%80%91%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E5%95%86%E5%93%81%EF%BC%92%E3%82%92%E8%BF%BD%E5%8A%A0" data-a2a-url="https://rockstream-jp.com/eccube2-13-bestproduct2/" data-a2a-title="【ECCUBE2.13】おすすめ商品２を追加"></a></p>The post <a href="https://rockstream-jp.com/eccube2-13-bestproduct2/">【ECCUBE2.13】おすすめ商品２を追加</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【ECCUBE2.13】パンくずリストを設置</title>
		<link>https://rockstream-jp.com/eccube2-13-breadcrumb/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=eccube2-13-breadcrumb</link>
		
		<dc:creator><![CDATA[zassy]]></dc:creator>
		<pubDate>Wed, 29 Jun 2016 12:40:30 +0000</pubDate>
				<category><![CDATA[ECCUBE2.13]]></category>
		<category><![CDATA[パンくず]]></category>
		<guid isPermaLink="false">https://rockstream-jp.com/?p=1445</guid>

					<description><![CDATA[<p>備忘録です。 ECCUBE2.13でパンくずリストを表示する方法です。 参考サイト EC-CUBE でパンくず 【1】デザイン管理...</p>
The post <a href="https://rockstream-jp.com/eccube2-13-breadcrumb/">【ECCUBE2.13】パンくずリストを設置</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-breadcrumb%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E3%83%91%E3%83%B3%E3%81%8F%E3%81%9A%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E8%A8%AD%E7%BD%AE" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-breadcrumb%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E3%83%91%E3%83%B3%E3%81%8F%E3%81%9A%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E8%A8%AD%E7%BD%AE" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-breadcrumb%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E3%83%91%E3%83%B3%E3%81%8F%E3%81%9A%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E8%A8%AD%E7%BD%AE" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-breadcrumb%2F&#038;title=%E3%80%90ECCUBE2.13%E3%80%91%E3%83%91%E3%83%B3%E3%81%8F%E3%81%9A%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E8%A8%AD%E7%BD%AE" data-a2a-url="https://rockstream-jp.com/eccube2-13-breadcrumb/" data-a2a-title="【ECCUBE2.13】パンくずリストを設置"></a></p><p>備忘録です。</p>
<p>ECCUBE2.13でパンくずリストを表示する方法です。</p>
<p>参考サイト<br />
<a href="http://cmz.wp.xdomain.jp/?p=485" target="_blank">EC-CUBE でパンくず</a></p>
<p>【1】デザイン管理でパンくずブロックを作成</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=&quot;topicPath&quot;&gt;
    &lt;a href=&quot;&lt;!--{$smarty.const.TOP_URL}--&gt;&quot;&gt;TOP&lt;/a&gt;
    &lt;!--{if $arrTopicPath}--&gt;
        &lt;!--{foreach from=$arrTopicPath item=topic}--&gt;
                &amp;nbsp;&amp;gt;&amp;nbsp;
                &lt;!--{if $topic.url}--&gt;
                    &lt;a href=&quot;&lt;!--{$topic.url}--&gt;&quot;&gt;&lt;!--{$topic.title|h}--&gt;&lt;/a&gt;
                &lt;!--{else}--&gt;
                    &lt;!--{$topic.title|h}--&gt;
                &lt;!--{/if}--&gt;
        &lt;!--{/foreach}--&gt;
    &lt;!--{elseif $tpl_title}--&gt;
            &amp;nbsp;&amp;gt;&amp;nbsp;&lt;!--{$tpl_title|h}--&gt;
    &lt;!--{/if}--&gt;
&lt;/div&gt;
</pre>
</p>
<p>【2】商品一覧画面のパンくず<br />
data/class_extends/page_extends/products/LC_Page_Products_List_Ex.php </p>
<pre class="brush: xml; title: ; notranslate">
class LC_Page_Products_List_Ex extends LC_Page_Products_List
{
    /**
     * Page のアクション.
     *
     * @return void
     */
    function action()
    {
        parent::action();

        // パンくずリスト取得
        $this-&gt;arrTopicPath = $this-&gt;lfTopicPath(
                 $this-&gt;mode
                ,$this-&gt;arrSearchData&#x5B;'category_id']
                ,$this-&gt;arrSearchData&#x5B;'name']
        );
    }

    /**
     * パンくずリスト取得
     *
     * @return array
     */
    function lfTopicPath( $mode, $category_id, $category_name )
    {
        $arrRet = array();
        if( $mode == 'search' ){
            $arrRet&#x5B;] = array('title' =&gt; $category_name . ' の検索結果');
        }
        elseif( empty($category_id) ){
            $arrRet&#x5B;] = array('title' =&gt; '全商品');
        }
        else{
            $objDb = new SC_Helper_DB_Ex();
            $arrCatId = $objDb-&gt;sfGetParentCategories( $category_id );
            foreach( $arrCatId as $cat ){
                if( $cat&#x5B;'id'] == $category_id ){
                    $arrRet&#x5B;] = array('title' =&gt; $cat&#x5B;'name']);
                }
                else{
                    $arrRet&#x5B;] = array(
                         'url' =&gt; './list.php?category_id=' . $cat&#x5B;'id']
                        ,'title' =&gt; $cat&#x5B;'name']
                    );
                }
            }
        }
        return $arrRet;
    }
}
</pre>
</p>
<p>【3】商品詳細画面のパンくず<br />
data/class_extends/page_extends/products/LC_Page_Products_Detail_Ex.php</p>
<pre class="brush: xml; title: ; notranslate">
class LC_Page_Products_Detail_Ex extends LC_Page_Products_Detail
{
    /**
     * Page のアクション.
     *
     * @return void
     */
    function action()
    {
        parent::action();

        // パンくずリスト取得
        $this-&gt;arrTopicPath = $this-&gt;lfTopicPath( $this-&gt;tpl_product_id );
    }

    /**
     * パンくずリスト取得
     *
     * @return array
     */
    function lfTopicPath( $product_id )
    {
        $arrRet = array();
        $objDb = new SC_Helper_DB_Ex();
        $arrCategory_id = $objDb-&gt;sfGetCategoryId( $product_id );
        $category_id = $arrCategory_id&#x5B;0];
        $arrCatId = $objDb-&gt;sfGetParentCategories( $category_id );
        foreach( $arrCatId as $cat ){
            $arrRet&#x5B;] = array(
                 'url' =&gt; './list.php?category_id=' . $cat&#x5B;'id']
                ,'title' =&gt; $cat&#x5B;'name']
            );
        }
        $arrRet&#x5B;] = array('title' =&gt; $this-&gt;tpl_subtitle);
        return $arrRet;
    }
}
</pre>
</p>
<p>【4】共通関数<br />
data/class_extends/helper_extends/SC_Helper_DB_Ex.php</p>
<pre class="brush: xml; title: ; notranslate">
class SC_Helper_DB_Ex extends SC_Helper_DB
{
    /**
     * 指定カテゴリIDの親カテゴリID・名称リスト（自身含む）を取得する.
     *
     * @param  integer $category_id カテゴリID
     * @return array  カテゴリID・名称の配列
     */
    public function sfGetParentCategories( $category_id )
    {
        $arrRet = array();
        // 商品が属するカテゴリIDを縦に取得
        $objQuery =&amp; SC_Query_Ex::getSingletonInstance();
        $arrCatID = $this-&gt;sfGetParents(
                 'dtb_category'
                ,'parent_category_id'
                ,'category_id'
                ,$category_id
        );
        foreach( $arrCatID as $id ){
            // カテゴリ名称を取得
            $sql = 'SELECT category_name FROM dtb_category WHERE category_id = ?';
            $catName = $objQuery-&gt;getOne( $sql, array($id) );
            $arrRet&#x5B;] = array(
                 'id' =&gt; $id
                ,'name' =&gt; $catName
            );
        }
        return $arrRet;
    }
}
</pre>
</p>
<p>【5】ブロックを設置して完了</p>
<p>いくつかパンくずの参考サイトはあるのですが、2.13で使えたのはこれだけでした。<br />
恐らく、あとのサイトは2.11～2.12くらいまでのソースコードではないかと思います。</p>
<p>
<a href="https://px.a8.net/svt/ejp?a8mat=2HO4KZ+75SPPU+50+2HH8I9" target="_blank"><br />
<img decoding="async" border="0" width="728" height="90" alt="" src="http://www21.a8.net/svt/bgt?aid=150611507433&wid=001&eno=01&mid=s00000000018015029000&mc=1"></a><br />
<img decoding="async" border="0" width="1" height="1" src="http://www19.a8.net/0.gif?a8mat=2HO4KZ+75SPPU+50+2HH8I9" alt=""></p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-breadcrumb%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E3%83%91%E3%83%B3%E3%81%8F%E3%81%9A%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E8%A8%AD%E7%BD%AE" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-breadcrumb%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E3%83%91%E3%83%B3%E3%81%8F%E3%81%9A%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E8%A8%AD%E7%BD%AE" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-breadcrumb%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E3%83%91%E3%83%B3%E3%81%8F%E3%81%9A%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E8%A8%AD%E7%BD%AE" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2Feccube2-13-breadcrumb%2F&#038;title=%E3%80%90ECCUBE2.13%E3%80%91%E3%83%91%E3%83%B3%E3%81%8F%E3%81%9A%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E8%A8%AD%E7%BD%AE" data-a2a-url="https://rockstream-jp.com/eccube2-13-breadcrumb/" data-a2a-title="【ECCUBE2.13】パンくずリストを設置"></a></p>The post <a href="https://rockstream-jp.com/eccube2-13-breadcrumb/">【ECCUBE2.13】パンくずリストを設置</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【ECCUBE2.13】商品詳細の関連商品（その他オススメ商品）にステータスアイコンを表示</title>
		<link>https://rockstream-jp.com/eccube2-13detailrecommendstatus/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=eccube2-13detailrecommendstatus</link>
		
		<dc:creator><![CDATA[zassy]]></dc:creator>
		<pubDate>Fri, 27 May 2016 03:29:56 +0000</pubDate>
				<category><![CDATA[ECCUBE2.13]]></category>
		<category><![CDATA[ECCUBE]]></category>
		<category><![CDATA[ステータスアイコン]]></category>
		<category><![CDATA[関連商品]]></category>
		<guid isPermaLink="false">https://rockstream-jp.com/?p=1365</guid>

					<description><![CDATA[<p>以前にカスタムをしましたが、忘れないように備忘録として残します。 参考サイト [EC-CUBE 2.12.2] 商品詳細のその他オ...</p>
The post <a href="https://rockstream-jp.com/eccube2-13detailrecommendstatus/">【ECCUBE2.13】商品詳細の関連商品（その他オススメ商品）にステータスアイコンを表示</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13detailrecommendstatus%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E5%95%86%E5%93%81%E8%A9%B3%E7%B4%B0%E3%81%AE%E9%96%A2%E9%80%A3%E5%95%86%E5%93%81%EF%BC%88%E3%81%9D%E3%81%AE%E4%BB%96%E3%82%AA%E3%82%B9%E3%82%B9%E3%83%A1%E5%95%86%E5%93%81%EF%BC%89%E3%81%AB%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3%E3%82%92%E8%A1%A8%E7%A4%BA" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13detailrecommendstatus%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E5%95%86%E5%93%81%E8%A9%B3%E7%B4%B0%E3%81%AE%E9%96%A2%E9%80%A3%E5%95%86%E5%93%81%EF%BC%88%E3%81%9D%E3%81%AE%E4%BB%96%E3%82%AA%E3%82%B9%E3%82%B9%E3%83%A1%E5%95%86%E5%93%81%EF%BC%89%E3%81%AB%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3%E3%82%92%E8%A1%A8%E7%A4%BA" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13detailrecommendstatus%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E5%95%86%E5%93%81%E8%A9%B3%E7%B4%B0%E3%81%AE%E9%96%A2%E9%80%A3%E5%95%86%E5%93%81%EF%BC%88%E3%81%9D%E3%81%AE%E4%BB%96%E3%82%AA%E3%82%B9%E3%82%B9%E3%83%A1%E5%95%86%E5%93%81%EF%BC%89%E3%81%AB%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3%E3%82%92%E8%A1%A8%E7%A4%BA" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2Feccube2-13detailrecommendstatus%2F&#038;title=%E3%80%90ECCUBE2.13%E3%80%91%E5%95%86%E5%93%81%E8%A9%B3%E7%B4%B0%E3%81%AE%E9%96%A2%E9%80%A3%E5%95%86%E5%93%81%EF%BC%88%E3%81%9D%E3%81%AE%E4%BB%96%E3%82%AA%E3%82%B9%E3%82%B9%E3%83%A1%E5%95%86%E5%93%81%EF%BC%89%E3%81%AB%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3%E3%82%92%E8%A1%A8%E7%A4%BA" data-a2a-url="https://rockstream-jp.com/eccube2-13detailrecommendstatus/" data-a2a-title="【ECCUBE2.13】商品詳細の関連商品（その他オススメ商品）にステータスアイコンを表示"></a></p><p>以前にカスタムをしましたが、忘れないように備忘録として残します。</p>
<p>参考サイト<br />
<a href="http://ec-cube.nakweb.com/blog/1700.html" target="_blank">[EC-CUBE 2.12.2] 商品詳細のその他オススメ商品にステータスアイコンを表示させたい</a></p>
<p>data/class/pages/products/LC_Page_Products_Detail.php の 関連商品情報表示 の下あたりに、関連商品ステータス取得コードを追加</p>
<p>参考サイトですと最後の商品だけアイコンが表示されてしまうので、<br />
修正をしています。</p>
<pre class="brush: xml; title: ; notranslate">
//関連商品情報表示
$this-&gt;arrRecommend = $this-&gt;lfPreGetRecommendProducts($product_id);

//関連商品の商品ステータスを取得
if(count($this-&gt;arrRecommend) &gt; 0){
    $this-&gt;recommendProductStatus = array();
    foreach($this-&gt;arrRecommend as $val){
        $this-&gt;recommendProductStatus += $objProduct-&gt;getProductStatus($val&#x5B;'product_id']);
    }
}
</pre>
</p>
<p>data/Smarty/templates/default/products/detail.tpl の関連商品部分のコードを以下のような感じで修正</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!--▼関連商品--&gt;
&lt;!--{if $arrRecommend}--&gt;
    &lt;div id=&quot;whobought_area&quot;&gt;
        &lt;h2&gt;&lt;img src=&quot;&lt;!--{$TPL_URLPATH}--&gt;img/title/tit_product_recommend.jpg&quot; alt=&quot;その他のオススメ商品&quot; /&gt;&lt;/h2&gt;
        &lt;!--{foreach from=$arrRecommend item=arrItem name=&quot;arrRecommend&quot;}--&gt;
            &lt;div class=&quot;product_item&quot;&gt;
                &lt;div class=&quot;productImage&quot;&gt;
                    &lt;a href=&quot;&lt;!--{$smarty.const.P_DETAIL_URLPATH}--&gt;&lt;!--{$arrItem.product_id|u}--&gt;&quot;&gt;
                        &lt;img src=&quot;&lt;!--{$smarty.const.ROOT_URLPATH}--&gt;resize_image.php?image=&lt;!--{$arrItem.main_list_image|sfNoImageMainList|h}--&gt;&amp;amp;width=65&amp;amp;height=65&quot; alt=&quot;&lt;!--{$arrItem.name|h}--&gt;&quot; /&gt;&lt;/a&gt;
                &lt;/div&gt;
                &lt;!--{assign var=price02_min value=`$arrItem.price02_min_inctax`}--&gt;
                &lt;!--{assign var=price02_max value=`$arrItem.price02_max_inctax`}--&gt;
                &lt;div class=&quot;productContents&quot;&gt;
                    &lt;!--▼商品ステータス追加--&gt;
                    &lt;!--{assign var=ps value=$recommendProductStatus&#x5B;$arrItem.product_id]}--&gt;
                    &lt;!--{if count($ps) &gt; 0}--&gt;
                    &lt;ul class=&quot;status_icon clearfix&quot;&gt;
                        &lt;!--{foreach from=$ps item=status}--&gt;
                            &lt;li&gt;
                                &lt;img src=&quot;&lt;!--{$TPL_URLPATH}--&gt;&lt;!--{$arrSTATUS_IMAGE&#x5B;$status]}--&gt;&quot; width=&quot;60&quot; height=&quot;17&quot; alt=&quot;&lt;!--{$arrSTATUS&#x5B;$status]}--&gt;&quot; id=&quot;icon&lt;!--{$status}--&gt;&quot; /&gt;
                            &lt;/li&gt;
                        &lt;!--{/foreach}--&gt;
                    &lt;/ul&gt;
                    &lt;!--{/if}--&gt;
                    &lt;!--▲商品ステータス--&gt;

                    &lt;h3&gt;&lt;a href=&quot;&lt;!--{$smarty.const.P_DETAIL_URLPATH}--&gt;&lt;!--{$arrItem.product_id|u}--&gt;&quot;&gt;&lt;!--{$arrItem.name|h}--&gt;&lt;/a&gt;&lt;/h3&gt;
                    &lt;p class=&quot;sale_price&quot;&gt;&lt;!--{$smarty.const.SALE_PRICE_TITLE}--&gt;(税込)：&lt;span class=&quot;price&quot;&gt;
                        &lt;!--{if $price02_min == $price02_max}--&gt;
                            &lt;!--{$price02_min|number_format}--&gt;
                        &lt;!--{else}--&gt;
                            &lt;!--{$price02_min|number_format}--&gt;～&lt;!--{$price02_max|number_format}--&gt;
                        &lt;!--{/if}--&gt;円&lt;/span&gt;&lt;/p&gt;
                    &lt;p class=&quot;mini&quot;&gt;&lt;!--{$arrItem.comment|h|nl2br}--&gt;&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;&lt;!--{* /.item *}--&gt;
            &lt;!--{if $smarty.foreach.arrRecommend.iteration % 2 === 0}--&gt;
                &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;
            &lt;!--{/if}--&gt;
        &lt;!--{/foreach}--&gt;
    &lt;/div&gt;
&lt;!--{/if}--&gt;
&lt;!--▲関連商品--&gt;
</pre>
</p>
<p>実際には、Exファイルをカスタムしています。</p>
<p>ステータスアイコンの位置は任意で移動してください。</p>
<p>
<a href="https://px.a8.net/svt/ejp?a8mat=2HO4KZ+75SPPU+50+2HH8I9" target="_blank"><br />
<img decoding="async" border="0" width="728" height="90" alt="" src="http://www21.a8.net/svt/bgt?aid=150611507433&wid=001&eno=01&mid=s00000000018015029000&mc=1"></a><br />
<img decoding="async" border="0" width="1" height="1" src="http://www19.a8.net/0.gif?a8mat=2HO4KZ+75SPPU+50+2HH8I9" alt=""></p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13detailrecommendstatus%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E5%95%86%E5%93%81%E8%A9%B3%E7%B4%B0%E3%81%AE%E9%96%A2%E9%80%A3%E5%95%86%E5%93%81%EF%BC%88%E3%81%9D%E3%81%AE%E4%BB%96%E3%82%AA%E3%82%B9%E3%82%B9%E3%83%A1%E5%95%86%E5%93%81%EF%BC%89%E3%81%AB%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3%E3%82%92%E8%A1%A8%E7%A4%BA" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13detailrecommendstatus%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E5%95%86%E5%93%81%E8%A9%B3%E7%B4%B0%E3%81%AE%E9%96%A2%E9%80%A3%E5%95%86%E5%93%81%EF%BC%88%E3%81%9D%E3%81%AE%E4%BB%96%E3%82%AA%E3%82%B9%E3%82%B9%E3%83%A1%E5%95%86%E5%93%81%EF%BC%89%E3%81%AB%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3%E3%82%92%E8%A1%A8%E7%A4%BA" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13detailrecommendstatus%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E5%95%86%E5%93%81%E8%A9%B3%E7%B4%B0%E3%81%AE%E9%96%A2%E9%80%A3%E5%95%86%E5%93%81%EF%BC%88%E3%81%9D%E3%81%AE%E4%BB%96%E3%82%AA%E3%82%B9%E3%82%B9%E3%83%A1%E5%95%86%E5%93%81%EF%BC%89%E3%81%AB%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3%E3%82%92%E8%A1%A8%E7%A4%BA" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2Feccube2-13detailrecommendstatus%2F&#038;title=%E3%80%90ECCUBE2.13%E3%80%91%E5%95%86%E5%93%81%E8%A9%B3%E7%B4%B0%E3%81%AE%E9%96%A2%E9%80%A3%E5%95%86%E5%93%81%EF%BC%88%E3%81%9D%E3%81%AE%E4%BB%96%E3%82%AA%E3%82%B9%E3%82%B9%E3%83%A1%E5%95%86%E5%93%81%EF%BC%89%E3%81%AB%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3%E3%82%92%E8%A1%A8%E7%A4%BA" data-a2a-url="https://rockstream-jp.com/eccube2-13detailrecommendstatus/" data-a2a-title="【ECCUBE2.13】商品詳細の関連商品（その他オススメ商品）にステータスアイコンを表示"></a></p>The post <a href="https://rockstream-jp.com/eccube2-13detailrecommendstatus/">【ECCUBE2.13】商品詳細の関連商品（その他オススメ商品）にステータスアイコンを表示</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【ECCUBE2.13】商品ステータス２を追加してみました。</title>
		<link>https://rockstream-jp.com/eccube-product-status/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=eccube-product-status</link>
		
		<dc:creator><![CDATA[zassy]]></dc:creator>
		<pubDate>Mon, 23 May 2016 12:39:01 +0000</pubDate>
				<category><![CDATA[ECCUBE2.13]]></category>
		<category><![CDATA[商品ステータス２]]></category>
		<category><![CDATA[ステータスアイコン]]></category>
		<category><![CDATA[商品ステータス追加]]></category>
		<guid isPermaLink="false">https://rockstream-jp.com/?p=1351</guid>

					<description><![CDATA[<p>今回のカスタムでは、クライアントさんから、 もうひとつ別で商品ステータスが増やせないかという要望がありました。 しかし、ステータス...</p>
The post <a href="https://rockstream-jp.com/eccube-product-status/">【ECCUBE2.13】商品ステータス２を追加してみました。</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-product-status%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E5%95%86%E5%93%81%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%EF%BC%92%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-product-status%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E5%95%86%E5%93%81%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%EF%BC%92%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-product-status%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E5%95%86%E5%93%81%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%EF%BC%92%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2Feccube-product-status%2F&#038;title=%E3%80%90ECCUBE2.13%E3%80%91%E5%95%86%E5%93%81%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%EF%BC%92%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82" data-a2a-url="https://rockstream-jp.com/eccube-product-status/" data-a2a-title="【ECCUBE2.13】商品ステータス２を追加してみました。"></a></p><p>今回のカスタムでは、クライアントさんから、<br />
もうひとつ別で商品ステータスが増やせないかという要望がありました。</p>
<p>しかし、ステータスアイコンの追加方法については、<br />
いろいろと検索でヒットしますが、<br />
別で商品ステータスを用意するカスタムについては全く見つかりませんでした。</p>
<p>そこで、過去にプログラマーさんに依頼したカスタマイズを参考にして、<br />
自分で商品ステータス２を実装しました。<br />
カスタムは2.13.5です。</p>
<p>カスタマイズイメージ<br />
※画像では通常のステータスが商品ステータス2になっています。<br />
<img decoding="async" src="https://rockstream-jp.com/wp/wp-content/uploads/2016/05/status.jpg" alt="status" width="727" height="77" class="alignnone size-full wp-image-1360" /></p>
<p>以下のファイルをカスタマイズします。<br />
管理画面<br />
・SC_Products.php<br />
・LC_Page_Admin_Products_Product.php<br />
・product.tpl<br />
・confirm.tpl</p>
<p>フロント<br />
・LC_Page_Products_Detail.php<br />
・LC_Page_Products_list.php<br />
・detail.tpl<br />
・list.tpl</p>
<p>説明しやすいようにclassファイルにしていますが、<br />
実際には、class_exファイルをカスタムしました。</p>
<p>【DB】<br />
dtb_product_status2を追加</p>
<pre class="brush: xml; title: ; notranslate">
CREATE TABLE IF NOT EXISTS `dtb_product_status2` (
  `status2_id` smallint(6) NOT NULL,
  `product_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `dtb_product_status2`
 ADD PRIMARY KEY (`status2_id`);
 ADD PRIMARY KEY (`product_id`);
</pre>
</p>
<p>mtb_status2を追加</p>
<pre class="brush: xml; title: ; notranslate">
CREATE TABLE IF NOT EXISTS `mtb_status2` (
  `id` smallint(6) NOT NULL DEFAULT '0',
  `name` text,
  `rank` smallint(6) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `mtb_status2`
 ADD PRIMARY KEY (`id`);
</pre>
</p>
<p>mtb_status_image2を追加</p>
<pre class="brush: xml; title: ; notranslate">
CREATE TABLE IF NOT EXISTS `mtb_status_image2` (
  `id` smallint(6) NOT NULL DEFAULT '0',
  `name` text,
  `rank` smallint(6) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `mtb_status_image2`
 ADD PRIMARY KEY (`id`);
</pre>
</p>
<p>【管理画面ファイルのカスタマイズ】</p>
<p>data/class/SC_Product.php<br />
商品ステータス2の箇所を追加</p>
<pre class="brush: xml; title: ; notranslate">
    /**
     * 商品IDをキーにした, 商品ステータスIDの配列を取得する.
     *
     * @param array 商品ID の配列
     * @return array 商品IDをキーにした商品ステータスIDの配列
     */
    public function getProductStatus($productIds)
    {
        if (empty($productIds)) {
            return array();
        }
        $objQuery =&amp; SC_Query_Ex::getSingletonInstance();
        $cols = 'product_id, product_status_id';
        $from = 'dtb_product_status';
        $where = 'del_flg = 0 AND product_id IN (' . SC_Utils_Ex::repeatStrWithSeparator('?', count($productIds)) . ')';
        $productStatus = $objQuery-&gt;select($cols, $from, $where, $productIds);
        $results = array();
        foreach ($productStatus as $status) {
            $results&#x5B;$status&#x5B;'product_id']]&#x5B;] = $status&#x5B;'product_status_id'];
        }

        return $results;
    }

    /**
     * 商品IDをキーにした, 商品ステータス2のIDの配列を取得する.
     *
     * @param array 商品ID の配列
     * @return array 商品IDをキーにした商品ステータス2のIDの配列
     */
    function getProductStatus2($productIds) {
        if (empty($productIds)) {
            return array();
        }
        $objQuery =&amp; SC_Query_Ex::getSingletonInstance();
        $cols = 'product_id, status2_id';
        $from = 'dtb_product_status2';
        $where = 'product_id IN (' . SC_Utils_Ex::repeatStrWithSeparator('?', count($productIds)) . ')';
        $productStatus = $objQuery-&gt;select($cols, $from, $where, $productIds);
        $results = array();
        foreach ($productStatus as $status) {
            $results&#x5B;$status&#x5B;'product_id']]&#x5B;] = $status&#x5B;'status2_id'];
        }
        return $results;
    }

    /**
     * 商品ステータスを設定する.
     *
     * TODO 現在は DELETE/INSERT だが, UPDATE を検討する.
     *
     * @param integer $productId        商品ID
     * @param array   $productStatusIds ON にする商品ステータスIDの配列
     */
    public function setProductStatus($productId, $productStatusIds)
    {
        $val&#x5B;'product_id'] = $productId;
        $val&#x5B;'creator_id'] = $_SESSION&#x5B;'member_id'];
        $val&#x5B;'create_date'] = 'CURRENT_TIMESTAMP';
        $val&#x5B;'update_date'] = 'CURRENT_TIMESTAMP';
        $val&#x5B;'del_flg'] = '0';

        $objQuery =&amp; SC_Query_Ex::getSingletonInstance();
        $objQuery-&gt;delete('dtb_product_status', 'product_id = ?', array($productId));
        foreach ($productStatusIds as $productStatusId) {
            if ($productStatusId == '') continue;
            $val&#x5B;'product_status_id'] = $productStatusId;
            $objQuery-&gt;insert('dtb_product_status', $val);
        }
    }

    /**
     * 商品ステータス2を設定する.
     *
     * @param integer $productId 商品ID
     * @param array $productStatusIds ON にする商品ステータス2のIDの配列
     */
    function setProductStatus2($productId, $productStatusIds, &amp;$objQuery=null) {
    	$cmt = 0;
    	if($objQuery == null){
    		$objQuery =&amp; SC_Query_Ex::getSingletonInstance();
    		$objQuery-&gt;begin();
    		$cmt = 1;
    	}
    	$val&#x5B;'product_id'] = $productId;

    	$objQuery =&amp; SC_Query_Ex::getSingletonInstance();
    	$objQuery-&gt;delete('dtb_product_status2', 'product_id = ?', array($productId));
    	foreach ($productStatusIds as $statusId) {
    		if ($statusId == '') continue;
    		$val&#x5B;'status2_id'] = $statusId;
    		$objQuery-&gt;insert('dtb_product_status2', $val);
    	}
    	if($cmt){
    		$objQuery-&gt;commit();
    	}
    }
</pre>
</p>
<p>data/class/pages/admin/products/LC_Page_Admin_Products_Product.php</p>
<p>商品ステータス2を追加</p>
<pre class="brush: xml; title: ; notranslate">
    /**
     * Page を初期化する.
     *
     * @return void
     */
    public function init()
    {
        parent::init();
        $this-&gt;tpl_mainpage = 'products/product.tpl';
        $this-&gt;tpl_mainno = 'products';
        $this-&gt;tpl_subno = 'product';
        $this-&gt;tpl_maintitle = '商品管理';
        $this-&gt;tpl_subtitle = '商品登録';

        $masterData = new SC_DB_MasterData_Ex();
        $this-&gt;arrProductType = $masterData-&gt;getMasterData('mtb_product_type');
        $this-&gt;arrDISP = $masterData-&gt;getMasterData('mtb_disp');
        $this-&gt;arrSTATUS = $masterData-&gt;getMasterData('mtb_status');
        $this-&gt;arrSTATUS_IMAGE = $masterData-&gt;getMasterData('mtb_status_image');
        /*## 商品ステータス2を追加 ADD BEGIN ##*/
        $this-&gt;arrSTATUS2 = $masterData-&gt;getMasterData('mtb_status2');
	$this-&gt;arrSTATUS_IMAGE2 = $masterData-&gt;getMasterData('mtb_status_image2');
        /*## 商品ステータス2を追加 ADD END ##*/
        $this-&gt;arrDELIVERYDATE = $masterData-&gt;getMasterData('mtb_delivery_date');
        $this-&gt;arrMaker = SC_Helper_Maker_Ex::getIDValueList();
        $this-&gt;arrAllowedTag = $masterData-&gt;getMasterData('mtb_allowed_tag');
    }

（中略）

    /**
     * パラメーター情報の初期化
     *
     * @param  SC_FormParam_Ex $objFormParam SC_FormParamインスタンス
     * @param  array  $arrPost      $_POSTデータ
     * @return void
     */
    public function lfInitFormParam(&amp;$objFormParam, $arrPost)
    {
        $objFormParam-&gt;addParam('商品ID', 'product_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));
        $objFormParam-&gt;addParam('商品名', 'name', STEXT_LEN, 'KVa', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
        $objFormParam-&gt;addParam('商品カテゴリ', 'category_id', INT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'));
        $objFormParam-&gt;addParam('公開・非公開', 'status', INT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'));
        $objFormParam-&gt;addParam('商品ステータス', 'product_status', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));
        
        /*## 商品ステータス2を追加 ADD BEGIN ##*/
        $objFormParam-&gt;addParam('商品ステータス2', 'product_status2', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));
        /*## 商品ステータス2を追加 ADD END ##*/
        
        if (!$arrPost&#x5B;'has_product_class']) {
            // 新規登録, 規格なし商品の編集の場合
            $objFormParam-&gt;addParam('商品種別', 'product_type_id', INT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'));
            $objFormParam-&gt;addParam('ダウンロード商品ファイル名', 'down_filename', STEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
            $objFormParam-&gt;addParam('ダウンロード商品実ファイル名', 'down_realfilename', MTEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
            $objFormParam-&gt;addParam('temp_down_file', 'temp_down_file', '', '', array());
            $objFormParam-&gt;addParam('save_down_file', 'save_down_file', '', '', array());
            $objFormParam-&gt;addParam('商品コード', 'product_code', STEXT_LEN, 'KVa', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
            $objFormParam-&gt;addParam(NORMAL_PRICE_TITLE, 'price01', PRICE_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK', 'ZERO_START'));
            $objFormParam-&gt;addParam(SALE_PRICE_TITLE, 'price02', PRICE_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK', 'ZERO_START'));
            if (OPTION_PRODUCT_TAX_RULE) {
                $objFormParam-&gt;addParam('消費税率', 'tax_rate', PERCENTAGE_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'));
            }
            $objFormParam-&gt;addParam('在庫数', 'stock', AMOUNT_LEN, 'n', array('SPTAB_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK', 'ZERO_START'));
            $objFormParam-&gt;addParam('在庫無制限', 'stock_unlimited', INT_LEN, 'n', array('SPTAB_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'));
        }
        $objFormParam-&gt;addParam('商品送料', 'deliv_fee', PRICE_LEN, 'n', array('NUM_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK', 'ZERO_START'));
        $objFormParam-&gt;addParam('ポイント付与率', 'point_rate', PERCENTAGE_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK', 'ZERO_START'));
        $objFormParam-&gt;addParam('発送日目安', 'deliv_date_id', INT_LEN, 'n', array('NUM_CHECK'));
        $objFormParam-&gt;addParam('販売制限数', 'sale_limit', AMOUNT_LEN, 'n', array('SPTAB_CHECK', 'ZERO_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK', 'ZERO_START'));
        $objFormParam-&gt;addParam('メーカー', 'maker_id', INT_LEN, 'n', array('NUM_CHECK'));
        $objFormParam-&gt;addParam('メーカーURL', 'comment1', URL_LEN, 'a', array('SPTAB_CHECK', 'URL_CHECK', 'MAX_LENGTH_CHECK'));
        $objFormParam-&gt;addParam('検索ワード', 'comment3', LLTEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
        $objFormParam-&gt;addParam('備考欄(SHOP専用)', 'note', LLTEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
        $objFormParam-&gt;addParam('一覧-メインコメント', 'main_list_comment', MTEXT_LEN, 'KVa', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
        $objFormParam-&gt;addParam('詳細-メインコメント', 'main_comment', LLTEXT_LEN, 'KVa', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
        $objFormParam-&gt;addParam('save_main_list_image', 'save_main_list_image', '', '', array());
        $objFormParam-&gt;addParam('save_main_image', 'save_main_image', '', '', array());
        $objFormParam-&gt;addParam('save_main_large_image', 'save_main_large_image', '', '', array());
        $objFormParam-&gt;addParam('temp_main_list_image', 'temp_main_list_image', '', '', array());
        $objFormParam-&gt;addParam('temp_main_image', 'temp_main_image', '', '', array());
        $objFormParam-&gt;addParam('temp_main_large_image', 'temp_main_large_image', '', '', array());

        for ($cnt = 1; $cnt &lt;= PRODUCTSUB_MAX; $cnt++) {
            $objFormParam-&gt;addParam('詳細-サブタイトル' . $cnt, 'sub_title' . $cnt, STEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
            $objFormParam-&gt;addParam('詳細-サブコメント' . $cnt, 'sub_comment' . $cnt, LLTEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
            $objFormParam-&gt;addParam('save_sub_image' . $cnt, 'save_sub_image' . $cnt, '', '', array());
            $objFormParam-&gt;addParam('save_sub_large_image' . $cnt, 'save_sub_large_image' . $cnt, '', '', array());
            $objFormParam-&gt;addParam('temp_sub_image' . $cnt, 'temp_sub_image' . $cnt, '', '', array());
            $objFormParam-&gt;addParam('temp_sub_large_image' . $cnt, 'temp_sub_large_image' . $cnt, '', '', array());
        }

        for ($cnt = 1; $cnt &lt;= RECOMMEND_PRODUCT_MAX; $cnt++) {
            $objFormParam-&gt;addParam('関連商品コメント' . $cnt, 'recommend_comment' . $cnt, LTEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
            $objFormParam-&gt;addParam('関連商品ID' . $cnt, 'recommend_id' . $cnt, INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));
            $objFormParam-&gt;addParam('recommend_delete' . $cnt, 'recommend_delete' . $cnt, '', 'n', array());
        }

        $objFormParam-&gt;addParam('商品ID', 'copy_product_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));

        $objFormParam-&gt;addParam('has_product_class', 'has_product_class', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));
        $objFormParam-&gt;addParam('product_class_id', 'product_class_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));

        $objFormParam-&gt;setParam($arrPost);
        $objFormParam-&gt;convParam();
    }

（中略）

    /**
     * DBから商品データを取得する
     *
     * @param  integer $product_id 商品ID
     * @return string   商品データ配列
     */
    public function lfGetProductData_FromDB($product_id)
    {
        $objQuery =&amp; SC_Query_Ex::getSingletonInstance();
        $arrProduct = array();

        // 商品データ取得
        $col = '*';
        $table = &lt;&lt;&lt; __EOF__
            dtb_products AS T1
            LEFT JOIN (
                SELECT product_id AS product_id_sub,
                    product_code,
                    price01,
                    price02,
                    deliv_fee,
                    stock,
                    stock_unlimited,
                    sale_limit,
                    point_rate,
                    product_type_id,
                    down_filename,
                    down_realfilename
                FROM dtb_products_class
            ) AS T2
                ON T1.product_id = T2.product_id_sub
__EOF__;
        $where = 'product_id = ?';
        $objQuery-&gt;setLimit('1');
        $arrProduct = $objQuery-&gt;select($col, $table, $where, array($product_id));

        // カテゴリID取得
        $col = 'category_id';
        $table = 'dtb_product_categories';
        $where = 'product_id = ?';
        $objQuery-&gt;setOption('');
        $arrProduct&#x5B;0]&#x5B;'category_id'] = $objQuery-&gt;getCol($col, $table, $where, array($product_id));

        // 規格情報ありなしフラグ取得
        $objDb = new SC_Helper_DB_Ex();
        $arrProduct&#x5B;0]&#x5B;'has_product_class'] = $objDb-&gt;sfHasProductClass($product_id);

        // 規格が登録されていなければ規格ID取得
        if ($arrProduct&#x5B;0]&#x5B;'has_product_class'] == false) {
            $arrProduct&#x5B;0]&#x5B;'product_class_id'] = SC_Utils_Ex::sfGetProductClassId($product_id, '0', '0');
        }

        // 商品ステータス取得
        $objProduct = new SC_Product_Ex();
        $productStatus = $objProduct-&gt;getProductStatus(array($product_id));
        $arrProduct&#x5B;0]&#x5B;'product_status'] = $productStatus&#x5B;$product_id];
        
        /*## 商品ステータス2を追加 ADD BEGIN ##*/    
    	$objProduct = new SC_Product_Ex();
    	$productStatus2 = $objProduct-&gt;getProductStatus2(array($product_id));
    	$arrProduct&#x5B;0]&#x5B;'product_status2'] = $productStatus2&#x5B;$product_id];
    	/*## 商品ステータス2を追加 ADD END ##*/ 

        // 関連商品データ取得
        $arrRecommend = $this-&gt;lfGetRecommendProductsData_FromDB($product_id);
        $arrProduct&#x5B;0] = array_merge($arrProduct&#x5B;0], $arrRecommend);

        return $arrProduct&#x5B;0];
    }

（中略）

    /**
     * DBに商品データを登録する
     *
     * @param  SC_UploadFile_Ex  $objUpFile   SC_UploadFileインスタンス
     * @param  SC_UploadFile_Ex  $objDownFile SC_UploadFileインスタンス
     * @param  array   $arrList     フォーム入力パラメーター配列
     * @return integer 登録商品ID
     */
    public function lfRegistProduct(&amp;$objUpFile, &amp;$objDownFile, $arrList)
    {
        $objQuery =&amp; SC_Query_Ex::getSingletonInstance();
        $objDb = new SC_Helper_DB_Ex();

        // 配列の添字を定義
        $checkArray = array('name', 'status',
                            'main_list_comment', 'main_comment', 'main_comment2', 'main_comment3',
                            'deliv_fee', 'comment1', 'comment2', 'comment3',
                            'comment4', 'comment5', 'comment6', 
                            'sale_limit', 'deliv_date_id', 'maker_id', 'note');
        $arrList = SC_Utils_Ex::arrayDefineIndexes($arrList, $checkArray);

        // INSERTする値を作成する。
        $sqlval&#x5B;'name'] = $arrList&#x5B;'name'];
        $sqlval&#x5B;'status'] = $arrList&#x5B;'status'];
        $sqlval&#x5B;'main_list_comment'] = $arrList&#x5B;'main_list_comment'];
        $sqlval&#x5B;'main_comment'] = $arrList&#x5B;'main_comment'];
        $sqlval&#x5B;'main_comment2'] = $arrList&#x5B;'main_comment2'];
        $sqlval&#x5B;'main_comment3'] = $arrList&#x5B;'main_comment3'];
        $sqlval&#x5B;'comment1'] = $arrList&#x5B;'comment1'];
        $sqlval&#x5B;'comment2'] = $arrList&#x5B;'comment2'];
        $sqlval&#x5B;'comment3'] = $arrList&#x5B;'comment3'];
        $sqlval&#x5B;'comment4'] = $arrList&#x5B;'comment4'];
        $sqlval&#x5B;'comment5'] = $arrList&#x5B;'comment5'];
        $sqlval&#x5B;'comment6'] = $arrList&#x5B;'comment6'];
        $sqlval&#x5B;'deliv_date_id'] = $arrList&#x5B;'deliv_date_id'];
        $sqlval&#x5B;'maker_id'] = $arrList&#x5B;'maker_id'];
        $sqlval&#x5B;'note'] = $arrList&#x5B;'note'];
        $sqlval&#x5B;'update_date'] = 'CURRENT_TIMESTAMP';
        $sqlval&#x5B;'creator_id'] = $_SESSION&#x5B;'member_id'];
        $arrRet = $objUpFile-&gt;getDBFileList();
        $sqlval = array_merge($sqlval, $arrRet);

        for ($cnt = 1; $cnt &lt;= PRODUCTSUB_MAX; $cnt++) {
            $sqlval&#x5B;'sub_title'.$cnt] = $arrList&#x5B;'sub_title'.$cnt];
            $sqlval&#x5B;'sub_comment'.$cnt] = $arrList&#x5B;'sub_comment'.$cnt];
        }

        $objQuery-&gt;begin();

        // 新規登録(複製時を含む)
        if ($arrList&#x5B;'product_id'] == '') {
            $product_id = $objQuery-&gt;nextVal('dtb_products_product_id');
            $sqlval&#x5B;'product_id'] = $product_id;

            // INSERTの実行
            $sqlval&#x5B;'create_date'] = 'CURRENT_TIMESTAMP';
            $objQuery-&gt;insert('dtb_products', $sqlval);

            $arrList&#x5B;'product_id'] = $product_id;

            // カテゴリを更新
            $objDb-&gt;updateProductCategories($arrList&#x5B;'category_id'], $product_id);

            // 複製商品の場合には規格も複製する
            if ($arrList&#x5B;'copy_product_id'] != '' &amp;&amp; SC_Utils_Ex::sfIsInt($arrList&#x5B;'copy_product_id'])) {
                if (!$arrList&#x5B;'has_product_class']) {
                    //規格なしの場合、複製は価格等の入力が発生しているため、その内容で追加登録を行う
                    $this-&gt;lfCopyProductClass($arrList, $objQuery);
                } else {
                    //規格がある場合の複製は複製元の内容で追加登録を行う
                    // dtb_products_class のカラムを取得
                    $dbFactory = SC_DB_DBFactory_Ex::getInstance();
                    $arrColList = $objQuery-&gt;listTableFields('dtb_products_class');
                    $arrColList_tmp = array_flip($arrColList);

                    // 複製しない列
                    unset($arrColList&#x5B;$arrColList_tmp&#x5B;'product_class_id']]);     //規格ID
                    unset($arrColList&#x5B;$arrColList_tmp&#x5B;'product_id']]);           //商品ID
                    unset($arrColList&#x5B;$arrColList_tmp&#x5B;'create_date']]);

                    // 複製元商品の規格データ取得
                    $col = SC_Utils_Ex::sfGetCommaList($arrColList);
                    $table = 'dtb_products_class';
                    $where = 'product_id = ?';
                    $objQuery-&gt;setOrder('product_class_id');
                    $arrProductsClass = $objQuery-&gt;select($col, $table, $where, array($arrList&#x5B;'copy_product_id']));

                    // 規格データ登録
                    $objQuery =&amp; SC_Query_Ex::getSingletonInstance();
                    foreach ($arrProductsClass as $arrData) {
                        $sqlval = $arrData;
                        $sqlval&#x5B;'product_class_id'] = $objQuery-&gt;nextVal('dtb_products_class_product_class_id');
                        $sqlval&#x5B;'deliv_fee'] = $arrList&#x5B;'deliv_fee'];
                        $sqlval&#x5B;'point_rate'] = $arrList&#x5B;'point_rate'];
                        $sqlval&#x5B;'sale_limit'] = $arrList&#x5B;'sale_limit'];
                        $sqlval&#x5B;'product_id'] = $product_id;
                        $sqlval&#x5B;'create_date'] = 'CURRENT_TIMESTAMP';
                        $sqlval&#x5B;'update_date'] = 'CURRENT_TIMESTAMP';
                        $objQuery-&gt;insert($table, $sqlval);
                    }
                }
            }
        // 更新
        } else {
            $product_id = $arrList&#x5B;'product_id'];
            // 削除要求のあった既存ファイルの削除
            $arrRet = $this-&gt;lfGetProductData_FromDB($arrList&#x5B;'product_id']);
            // TODO: SC_UploadFile::deleteDBFileの画像削除条件見直し要
            $objImage = new SC_Image_Ex($objUpFile-&gt;temp_dir);
            $arrKeyName = $objUpFile-&gt;keyname;
            $arrSaveFile = $objUpFile-&gt;save_file;
            $arrImageKey = array();
            foreach ($arrKeyName as $key =&gt; $keyname) {
                if ($arrRet&#x5B;$keyname] &amp;&amp; !$arrSaveFile&#x5B;$key]) {
                    $arrImageKey&#x5B;] = $keyname;
                    $has_same_image = $this-&gt;lfHasSameProductImage($arrList&#x5B;'product_id'], $arrImageKey, $arrRet&#x5B;$keyname]);
                    if (!$has_same_image) {
                        $objImage-&gt;deleteImage($arrRet&#x5B;$keyname], $objUpFile-&gt;save_dir);
                    }
                }
            }
            $objDownFile-&gt;deleteDBDownFile($arrRet);
            // UPDATEの実行
            $where = 'product_id = ?';
            $objQuery-&gt;update('dtb_products', $sqlval, $where, array($product_id));

            // カテゴリを更新
            $objDb-&gt;updateProductCategories($arrList&#x5B;'category_id'], $product_id);
        }

        // 商品登録の時は規格を生成する。複製の場合は規格も複製されるのでこの処理は不要。
        if ($arrList&#x5B;'copy_product_id'] == '') {
            // 規格登録
            if ($objDb-&gt;sfHasProductClass($product_id)) {
                // 規格あり商品（商品規格テーブルのうち、商品登録フォームで設定するパラメーターのみ更新）
                $this-&gt;lfUpdateProductClass($arrList);
            } else {
                // 規格なし商品（商品規格テーブルの更新）
                $arrList&#x5B;'product_class_id'] = $this-&gt;lfInsertDummyProductClass($arrList);
            }
        }

        // 商品ステータス設定
        $objProduct = new SC_Product_Ex();
        $objProduct-&gt;setProductStatus($product_id, $arrList&#x5B;'product_status']);
        
        /*## 商品ステータス2を追加 ADD BEGIN ##*/
        $objProduct = new SC_Product_Ex();
        $objProduct-&gt;setProductStatus2($product_id, $arrList&#x5B;'product_status2'], $objQuery);
        /*## 商品ステータス2を追加 ADD END ##*/

        // 税情報設定
        if (OPTION_PRODUCT_TAX_RULE &amp;&amp; !$objDb-&gt;sfHasProductClass($product_id)) {
            SC_Helper_TaxRule_Ex::setTaxRuleForProduct($arrList&#x5B;'tax_rate'], $arrList&#x5B;'product_id'], $arrList&#x5B;'product_class_id']);
        }

        // 関連商品登録
        $this-&gt;lfInsertRecommendProducts($objQuery, $arrList, $product_id);

        $objQuery-&gt;commit();

        return $product_id;
    }
</pre>
</p>
<p>data/Smarty/templates/admin/products/product.tpl</p>
<p>商品ステータスの下に商品ステータス2を追加</p>
<pre class="brush: xml; title: ; notranslate">
        &lt;tr&gt;
            &lt;th&gt;商品ステータス&lt;/th&gt;
            &lt;td&gt;
                &lt;!--{html_checkboxes name=&quot;product_status&quot; options=$arrSTATUS selected=$arrForm.product_status separator='&amp;nbsp;&amp;nbsp;'}--&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;th&gt;商品ステータス2&lt;/th&gt;
            &lt;td&gt;
                &lt;!--{html_checkboxes name=&quot;product_status2&quot; options=$arrSTATUS2 selected=$arrForm.product_status2 separator='&amp;nbsp;&amp;nbsp;'}--&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
</pre>
</p>
<p>data/Smarty/templates/admin/products/confirm.tpl</p>
<p>・上部のforeachに商品ステータス2を追加<br />
・商品ステータスの下に商品ステータス2を追加</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!--{foreach key=key item=item from=$arrSearchHidden}--&gt;
    &lt;!--{if is_array($item)}--&gt;
        &lt;!--{foreach item=c_item from=$item}--&gt;
            &lt;input type=&quot;hidden&quot; name=&quot;&lt;!--{$key|h}--&gt;&#x5B;]&quot; value=&quot;&lt;!--{$c_item|h}--&gt;&quot; /&gt;
        &lt;!--{/foreach}--&gt;
    &lt;!--{else}--&gt;
        &lt;input type=&quot;hidden&quot; name=&quot;&lt;!--{$key|h}--&gt;&quot; value=&quot;&lt;!--{$item|h}--&gt;&quot; /&gt;
    &lt;!--{/if}--&gt;
&lt;!--{/foreach}--&gt;
&lt;!--{foreach key=key item=item from=$arrForm}--&gt;
    &lt;!--{if $key == 'product_status'}--&gt;
        &lt;!--{foreach item=statusVal from=$item}--&gt;
            &lt;input type=&quot;hidden&quot; name=&quot;&lt;!--{$key}--&gt;&#x5B;]&quot; value=&quot;&lt;!--{$statusVal|h}--&gt;&quot; /&gt;
        &lt;!--{/foreach}--&gt;
    &lt;!--{*# 商品ステータス2を追加 ADD BEGIN #*}--&gt;
    &lt;!--{elseif $key == 'product_status2'}--&gt;
        &lt;!--{foreach item=statusVal from=$item}--&gt;
            &lt;input type=&quot;hidden&quot; name=&quot;&lt;!--{$key}--&gt;&#x5B;]&quot; value=&quot;&lt;!--{$statusVal|h}--&gt;&quot; /&gt;
        &lt;!--{/foreach}--&gt;
    &lt;!--{*# 商品ステータス2を追加 ADD END #*}--&gt;
    
    &lt;!--{elseif $key == 'arrCategoryId'}--&gt;
        &lt;!--{* nop *}--&gt;
    &lt;!--{elseif $key == 'arrFile'}--&gt;
        &lt;!--{* nop *}--&gt;
    &lt;!--{else}--&gt;
        &lt;input type=&quot;hidden&quot; name=&quot;&lt;!--{$key}--&gt;&quot; value=&quot;&lt;!--{$item|h}--&gt;&quot; /&gt;
    &lt;!--{/if}--&gt;
&lt;!--{/foreach}--&gt;

(中略)

        &lt;tr&gt;
            &lt;th&gt;商品ステータス&lt;/th&gt;
            &lt;td&gt;
                &lt;!--{foreach from=$arrForm.product_status item=status}--&gt;
                    &lt;!--{if $status != &quot;&quot;}--&gt;
                        &lt;img src=&quot;&lt;!--{$TPL_URLPATH_PC}--&gt;&lt;!--{$arrSTATUS_IMAGE&#x5B;$status]}--&gt;&quot;&gt;
                    &lt;!--{/if}--&gt;
                &lt;!--{/foreach}--&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;th&gt;商品ステータス2&lt;/th&gt;
            &lt;td&gt;
                &lt;!--{foreach from=$arrForm.product_status2 item=status}--&gt;
                    &lt;!--{if $status != &quot;&quot;}--&gt;
                        &lt;img src=&quot;&lt;!--{$TPL_URLPATH_PC}--&gt;&lt;!--{$arrSTATUS_IMAGE2&#x5B;$status]}--&gt;&quot;&gt;
                    &lt;!--{/if}--&gt;
                &lt;!--{/foreach}--&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
</pre>
</p>
<p>管理画面のシステム設定＞マスターデータ管理で<br />
mtb_status2とmtb_status_image2にステータス名とimageを追加してください。<br />
（imageはimg/icon/ico_11.gifなどにするとわかりやすいです）
</p>
<p>【フロントのカスタム】</p>
<p>class/pages/products/LC_Page_Products_Detail.php</p>
<p>商品ステータス2を追加</p>
<pre class="brush: xml; title: ; notranslate">
    /**
     * Page を初期化する.
     *
     * @return void
     */
    function init()
    {
        parent::init();
        $masterData = new SC_DB_MasterData_Ex();
        $this-&gt;arrSTATUS = $masterData-&gt;getMasterData('mtb_status');
        $this-&gt;arrSTATUS_IMAGE = $masterData-&gt;getMasterData('mtb_status_image');
        /*## 商品ステータス2を追加 ## ADD BEGIN*/
        $this-&gt;arrSTATUS2 = $masterData-&gt;getMasterData('mtb_status2');
	$this-&gt;arrSTATUS_IMAGE2 = $masterData-&gt;getMasterData('mtb_status_image2');
        /*## 商品ステータス2を追加 ADD END ##*/
        $this-&gt;arrDELIVERYDATE = $masterData-&gt;getMasterData('mtb_delivery_date');
        $this-&gt;arrRECOMMEND = $masterData-&gt;getMasterData('mtb_recommend');

        // POST に限定する mode
        $this-&gt;arrLimitPostMode&#x5B;] = 'cart';
        $this-&gt;arrLimitPostMode&#x5B;] = 'add_favorite';
        $this-&gt;arrLimitPostMode&#x5B;] = 'add_favorite_sphone';
        $this-&gt;arrLimitPostMode&#x5B;] = 'select';
        $this-&gt;arrLimitPostMode&#x5B;] = 'select2';
        $this-&gt;arrLimitPostMode&#x5B;] = 'selectItem';
    }

(中略)

    /**
     * Page のAction.
     *
     * @return void
     */
    public function action()
    {
        //決済処理中ステータスのロールバック
        $objPurchase = new SC_Helper_Purchase_Ex();
        $objPurchase-&gt;cancelPendingOrder(PENDING_ORDER_CANCEL_FLAG);

        // 会員クラス
        $objCustomer = new SC_Customer_Ex();

        // パラメーター管理クラス
        $this-&gt;objFormParam = new SC_FormParam_Ex();
        // パラメーター情報の初期化
        $this-&gt;arrForm = $this-&gt;lfInitParam($this-&gt;objFormParam);
        // ファイル管理クラス
        $this-&gt;objUpFile = new SC_UploadFile_Ex(IMAGE_TEMP_REALDIR, IMAGE_SAVE_REALDIR);
        // ファイル情報の初期化
        $this-&gt;objUpFile = $this-&gt;lfInitFile($this-&gt;objUpFile);
        $this-&gt;mode = $this-&gt;getMode();

        $objProduct = new SC_Product_Ex();

        // プロダクトIDの正当性チェック
        $product_id = $this-&gt;lfCheckProductId($this-&gt;objFormParam-&gt;getValue('admin'), $this-&gt;objFormParam-&gt;getValue('product_id'), $objProduct);

        $objProduct-&gt;setProductsClassByProductIds(array($product_id));

        // 規格1クラス名
        $this-&gt;tpl_class_name1 = $objProduct-&gt;className1&#x5B;$product_id];

        // 規格2クラス名
        $this-&gt;tpl_class_name2 = $objProduct-&gt;className2&#x5B;$product_id];

        // 規格1
        $this-&gt;arrClassCat1 = $objProduct-&gt;classCats1&#x5B;$product_id];

        // 規格1が設定されている
        $this-&gt;tpl_classcat_find1 = $objProduct-&gt;classCat1_find&#x5B;$product_id];
        // 規格2が設定されている
        $this-&gt;tpl_classcat_find2 = $objProduct-&gt;classCat2_find&#x5B;$product_id];

        $this-&gt;tpl_stock_find = $objProduct-&gt;stock_find&#x5B;$product_id];
        $this-&gt;tpl_product_class_id = $objProduct-&gt;classCategories&#x5B;$product_id]&#x5B;'__unselected']&#x5B;'__unselected']&#x5B;'product_class_id'];
        $this-&gt;tpl_product_type = $objProduct-&gt;classCategories&#x5B;$product_id]&#x5B;'__unselected']&#x5B;'__unselected']&#x5B;'product_type'];

        // 在庫が無い場合は、OnLoadしない。(javascriptエラー防止)
        if ($this-&gt;tpl_stock_find) {
            // 規格選択セレクトボックスの作成
            $this-&gt;js_lnOnload .= $this-&gt;lfMakeSelect();
        }

        $this-&gt;tpl_javascript .= 'eccube.classCategories = ' . SC_Utils_Ex::jsonEncode($objProduct-&gt;classCategories&#x5B;$product_id]) . ';';
        $this-&gt;tpl_javascript .= 'function lnOnLoad()
        {' . $this-&gt;js_lnOnload . '}';
        $this-&gt;tpl_onload .= 'lnOnLoad();';

        // モバイル用 規格選択セレクトボックスの作成
        if (SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE) {
            $this-&gt;lfMakeSelectMobile($this, $product_id, $this-&gt;objFormParam-&gt;getValue('classcategory_id1'));
        }

        // 商品IDをFORM内に保持する
        $this-&gt;tpl_product_id = $product_id;

        switch ($this-&gt;mode) {
            case 'cart':
                $this-&gt;doCart();
                break;

            case 'add_favorite':
                $this-&gt;doAddFavorite($objCustomer);
                break;

            case 'add_favorite_sphone':
                $this-&gt;doAddFavoriteSphone($objCustomer);
                break;

            case 'select':
            case 'select2':
            case 'selectItem':
                /**
                 * モバイルの数量指定・規格選択の際に、
                 * $_SESSION&#x5B;'cart_referer_url'] を上書きさせないために、
                 * 何もせずbreakする。
                 */
                break;

            default:
                $this-&gt;doDefault();
                break;
        }

        // モバイル用 ポストバック処理
        if (SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE) {
            switch ($this-&gt;mode) {
                case 'select':
                    $this-&gt;doMobileSelect();
                    break;

                case 'select2':
                    $this-&gt;doMobileSelect2();
                    break;

                case 'selectItem':
                    $this-&gt;doMobileSelectItem();
                    break;

                case 'cart':
                    $this-&gt;doMobileCart();
                    break;

                default:
                    $this-&gt;doMobileDefault();
                    break;
            }
        }

        // 商品詳細を取得
        $this-&gt;arrProduct = $objProduct-&gt;getDetail($product_id);

        // サブタイトルを取得
        $this-&gt;tpl_subtitle = $this-&gt;arrProduct&#x5B;'name'];

        // 関連カテゴリを取得
        $this-&gt;arrRelativeCat = SC_Helper_DB_Ex::sfGetMultiCatTree($product_id);

        // 商品ステータスを取得
        $this-&gt;productStatus = $objProduct-&gt;getProductStatus($product_id);
        
        /*## 商品ステータス2を追加 ## ADD BEGIN*/
        $this-&gt;productStatus2 = $objProduct-&gt;getProductStatus2($product_id);
        /*## 商品ステータス2を追加 ADD END ##*/

        // 画像ファイル指定がない場合の置換処理
        $this-&gt;arrProduct&#x5B;'main_image']
            = SC_Utils_Ex::sfNoImageMain($this-&gt;arrProduct&#x5B;'main_image']);

        $this-&gt;subImageFlag = $this-&gt;lfSetFile($this-&gt;objUpFile, $this-&gt;arrProduct, $this-&gt;arrFile);
        //レビュー情報の取得
        $this-&gt;arrReview = $this-&gt;lfGetReviewData($product_id);

        //関連商品情報表示
        $this-&gt;arrRecommend = $this-&gt;lfPreGetRecommendProducts($product_id);

        // ログイン判定
        if ($objCustomer-&gt;isLoginSuccess() === true) {
            //お気に入りボタン表示
            $this-&gt;tpl_login = true;
            $this-&gt;is_favorite = SC_Helper_DB_Ex::sfDataExists('dtb_customer_favorite_products', 'customer_id = ? AND product_id = ?', array($objCustomer-&gt;getValue('customer_id'), $product_id));
        }
    }
</pre>
</p>
<p>class/pages/products/LC_Page_Products_List.php</p>
<p>商品ステータス2を追加</p>
<pre class="brush: xml; title: ; notranslate">
    /**
     * Page を初期化する.
     *
     * @return void
     */
    function init()
    {
        parent::init();

        $masterData                 = new SC_DB_MasterData_Ex();
        $this-&gt;arrSTATUS            = $masterData-&gt;getMasterData('mtb_status');
        $this-&gt;arrSTATUS_IMAGE      = $masterData-&gt;getMasterData('mtb_status_image');
        /*## 商品ステータス2を追加 ## ADD BEGIN*/
        $this-&gt;arrSTATUS2           = $masterData-&gt;getMasterData('mtb_status2');
        $this-&gt;arrSTATUS_IMAGE2     = $masterData-&gt;getMasterData('mtb_status_image2');
        /*## 商品ステータス2を追加 ADD END ##*/
        $this-&gt;arrDELIVERYDATE      = $masterData-&gt;getMasterData('mtb_delivery_date');
        $this-&gt;arrPRODUCTLISTMAX    = $masterData-&gt;getMasterData('mtb_product_list_max');
    }

(中略)

    /**
     * 商品情報配列に商品ステータス情報を追加する
     *
     * @param  Array $arrProducts    商品一覧情報
     * @param  Array $arrStatus      商品ステータス配列
     * @param  Array $arrStatusImage スタータス画像配列
     * @return Array $arrProducts 商品一覧情報
     */
    public function setStatusDataTo($arrProducts, $arrStatus, $arrStatusImage)
    {
        foreach ($arrProducts&#x5B;'productStatus'] as $product_id =&gt; $arrValues) {
            for ($i = 0; $i &lt; count($arrValues); $i++) {
                $product_status_id = $arrValues&#x5B;$i];
                if (!empty($product_status_id)) {
                    $arrProductStatus = array(
                        'status_cd' =&gt; $product_status_id,
                        'status_name' =&gt; $arrStatus&#x5B;$product_status_id],
                        'status_image' =&gt;$arrStatusImage&#x5B;$product_status_id],
                    );
                    $arrProducts&#x5B;'productStatus']&#x5B;$product_id]&#x5B;$i] = $arrProductStatus;
                }
            }
        }

        return $arrProducts;
    }

    /**
     * 商品情報配列に商品ステータス2情報を追加する
     *
     * @param  Array $arrProducts2    商品一覧情報
     * @param  Array $arrStatus2      商品ステータス2配列
     * @param  Array $arrStatusImage2 スタータス画像2配列
     * @return Array $arrProducts 商品一覧情報
     */
    public function setStatusDataTo($arrProducts, $arrStatus2, $arrStatusImage2)
    {
        foreach ($arrProducts&#x5B;'productStatus2'] as $product_id =&gt; $arrValues) {
            for ($i = 0; $i &lt; count($arrValues); $i++) {
                $status2_id = $arrValues&#x5B;$i];
                if (!empty($status2_id)) {
                    $arrProductStatus2 = array(
                        'status_cd' =&gt; $status2_id,
                        'status_name' =&gt; $arrStatus2&#x5B;$status2_id],
                        'status_image2' =&gt;$arrStatusImage2&#x5B;$status2_id],
                    );
                    $arrProducts&#x5B;'productStatus2']&#x5B;$product_id]&#x5B;$i] = $arrProductStatus2;
                }
            }
        }

        return $arrProducts;
    }

(中略)

    /**
     *
     * @param  SC_Product_Ex $objProduct
     * @param SC_FormParam_Ex $objFormParam
     * @return void
     */
    public function doDefault(&amp;$objProduct, &amp;$objFormParam)
    {
        //商品一覧の表示処理
        $strnavi            = $this-&gt;objNavi-&gt;strnavi;
        // 表示文字列
        $this-&gt;tpl_strnavi  = empty($strnavi) ? '&amp;nbsp;' : $strnavi;

        // 規格1クラス名
        $this-&gt;tpl_class_name1  = $objProduct-&gt;className1;

        // 規格2クラス名
        $this-&gt;tpl_class_name2  = $objProduct-&gt;className2;

        // 規格1
        $this-&gt;arrClassCat1     = $objProduct-&gt;classCats1;

        // 規格1が設定されている
        $this-&gt;tpl_classcat_find1 = $objProduct-&gt;classCat1_find;
        // 規格2が設定されている
        $this-&gt;tpl_classcat_find2 = $objProduct-&gt;classCat2_find;

        $this-&gt;tpl_stock_find       = $objProduct-&gt;stock_find;
        $this-&gt;tpl_product_class_id = $objProduct-&gt;product_class_id;
        $this-&gt;tpl_product_type     = $objProduct-&gt;product_type;

        // 商品ステータスを取得
        $this-&gt;productStatus = $this-&gt;arrProducts&#x5B;'productStatus'];
        unset($this-&gt;arrProducts&#x5B;'productStatus']);
        // 商品ステータス2を取得
        $this-&gt;productStatus2 = $this-&gt;arrProducts&#x5B;'productStatus2'];
        unset($this-&gt;arrProducts&#x5B;'productStatus2']);
        $this-&gt;tpl_javascript .= 'eccube.productsClassCategories = ' . SC_Utils_Ex::jsonEncode($objProduct-&gt;classCategories) . ';';
        if (SC_Display_Ex::detectDevice() === DEVICE_TYPE_PC) {
            //onloadスクリプトを設定. 在庫ありの商品のみ出力する
            foreach ($this-&gt;arrProducts as $arrProduct) {
                if ($arrProduct&#x5B;'stock_unlimited_max'] || $arrProduct&#x5B;'stock_max'] &gt; 0) {
                    $js_fnOnLoad .= &quot;fnSetClassCategories(document.product_form{$arrProduct&#x5B;'product_id']});&quot;;
                }
            }
        }

        //カート処理
        $target_product_id = intval($this-&gt;arrForm&#x5B;'product_id']);
        if ($target_product_id &gt; 0) {
            // 商品IDの正当性チェック
            if (!SC_Utils_Ex::sfIsInt($this-&gt;arrForm&#x5B;'product_id'])
                || !SC_Helper_DB_Ex::sfIsRecord('dtb_products', 'product_id', $this-&gt;arrForm&#x5B;'product_id'], 'del_flg = 0 AND status = 1')) {
                SC_Utils_Ex::sfDispSiteError(PRODUCT_NOT_FOUND);
            }

            // 入力内容のチェック
            $arrErr = $this-&gt;lfCheckError($objFormParam);
            if (empty($arrErr)) {
                $this-&gt;lfAddCart($this-&gt;arrForm);

                // 開いているカテゴリーツリーを維持するためのパラメーター
                $arrQueryString = array(
                    'category_id' =&gt; $this-&gt;arrForm&#x5B;'category_id'],
                );

                SC_Response_Ex::sendRedirect(CART_URL, $arrQueryString);
                SC_Response_Ex::actionExit();
            }
            $js_fnOnLoad .= $this-&gt;lfSetSelectedData($this-&gt;arrProducts, $this-&gt;arrForm, $arrErr, $target_product_id);
        } else {
            // カート「戻るボタン」用に保持
            $netURL = new Net_URL();
            //該当メソッドが無いため、$_SESSIONに直接セット
            $_SESSION&#x5B;'cart_referer_url'] = $netURL-&gt;getURL();
        }

        $this-&gt;tpl_javascript   .= 'function fnOnLoad() {' . $js_fnOnLoad . '}';
        $this-&gt;tpl_onload       .= 'fnOnLoad(); ';
    }
</pre>
</p>
<p>商品詳細<br />
data/Smarty/templates/default/detail.tpl</p>
<pre class="brush: xml; title: ; notranslate">
                &lt;!--▼商品ステータス--&gt;
                &lt;!--{assign var=ps value=$productStatus&#x5B;$tpl_product_id]}--&gt;
                &lt;!--{if count($ps) &gt; 0}--&gt;
                    &lt;ul class=&quot;status_icon clearfix&quot;&gt;
                        &lt;!--{foreach from=$ps item=status}--&gt;
                        &lt;li&gt;
                            &lt;img src=&quot;&lt;!--{$TPL_URLPATH}--&gt;&lt;!--{$arrSTATUS_IMAGE&#x5B;$status]}--&gt;&quot; alt=&quot;&lt;!--{$arrSTATUS&#x5B;$status]}--&gt;&quot; id=&quot;icon&lt;!--{$status}--&gt;&quot; /&gt;
                        &lt;/li&gt;
                        &lt;!--{/foreach}--&gt;
                    &lt;/ul&gt;
                &lt;!--{/if}--&gt;
                &lt;!--▲商品ステータス--&gt;

                &lt;!--▼商品ステータス2--&gt;
                &lt;!--{assign var=ps value=$productStatus2&#x5B;$tpl_product_id]}--&gt;
                &lt;!--{if count($ps) &gt; 0}--&gt;
            	    &lt;div class=&quot;icon&quot;&gt;
                    &lt;!--{foreach from=$ps item=status}--&gt;
                    &lt;div class=&quot;item l-box&quot;&gt;
                      &lt;img src=&quot;&lt;!--{$TPL_URLPATH}--&gt;&lt;!--{$arrSTATUS_IMAGE2&#x5B;$status]}--&gt;&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&lt;!--{$arrSTATUS2&#x5B;$status]}--&gt;&quot;/&gt;
                    &lt;/div&gt;
                    &lt;!--{/foreach}--&gt;
                  &lt;/div&gt;
                &lt;!--{/if}--&gt;
                &lt;!--▲商品ステータス2--&gt;
</pre>
</p>
<p>商品一覧<br />
data/Smarty/templates/default/list.tpl</p>
<pre class="brush: xml; title: ; notranslate">
                    &lt;!--▼商品ステータス--&gt;
                    &lt;!--{if count($productStatus&#x5B;$id]) &gt; 0}--&gt;
                        &lt;ul class=&quot;status_icon clearfix&quot;&gt;
                            &lt;!--{foreach from=$productStatus&#x5B;$id] item=status}--&gt;
                                &lt;li&gt;
                                    &lt;img src=&quot;&lt;!--{$TPL_URLPATH}--&gt;&lt;!--{$arrSTATUS_IMAGE&#x5B;$status]}--&gt;&quot; alt=&quot;&lt;!--{$arrSTATUS&#x5B;$status]}--&gt;&quot;/&gt;
                                &lt;/li&gt;
                            &lt;!--{/foreach}--&gt;
                        &lt;/ul&gt;
                    &lt;!--{/if}--&gt;
                    &lt;!--▲商品ステータス--&gt;

                    &lt;!--▼商品ステータス2--&gt;
                    &lt;!--{if count($productStatus2&#x5B;$id]) &gt; 0}--&gt;
                        &lt;ul class=&quot;status_icon clearfix&quot;&gt;
                            &lt;!--{foreach from=$productStatus2&#x5B;$id] item=status}--&gt;
                                &lt;li&gt;
                                    &lt;img src=&quot;&lt;!--{$TPL_URLPATH}--&gt;&lt;!--{$arrSTATUS_IMAGE2&#x5B;$status]}--&gt;&quot; alt=&quot;&lt;!--{$arrSTATUS2&#x5B;$status]}--&gt;&quot;/&gt;
                                &lt;/li&gt;
                            &lt;!--{/foreach}--&gt;
                        &lt;/ul&gt;
                    &lt;!--{/if}--&gt;
                    &lt;!--▲商品ステータス2--&gt;
</pre>
</p>
<p>とりあえず、商品ステータスの下に表示をしていますが、<br />
位置は自由に変えてください。</p>
<p>
<a href="https://px.a8.net/svt/ejp?a8mat=2HO4KZ+75SPPU+50+2HH8I9" target="_blank"><br />
<img decoding="async" border="0" width="728" height="90" alt="" src="http://www21.a8.net/svt/bgt?aid=150611507433&wid=001&eno=01&mid=s00000000018015029000&mc=1"></a><br />
<img decoding="async" border="0" width="1" height="1" src="http://www19.a8.net/0.gif?a8mat=2HO4KZ+75SPPU+50+2HH8I9" alt="">
</p>
<p>
<a href="https://px.a8.net/svt/ejp?a8mat=2NUXSR+75SPPU+3GRY+68EPD" target="_blank"><br />
<img decoding="async" border="0" width="728" height="90" alt="" src="https://www25.a8.net/svt/bgt?aid=161007003433&wid=001&eno=01&mid=s00000016171001047000&mc=1"></a><br />
<img decoding="async" border="0" width="1" height="1" src="https://www16.a8.net/0.gif?a8mat=2NUXSR+75SPPU+3GRY+68EPD" alt=""></p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-product-status%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E5%95%86%E5%93%81%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%EF%BC%92%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-product-status%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E5%95%86%E5%93%81%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%EF%BC%92%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-product-status%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E5%95%86%E5%93%81%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%EF%BC%92%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2Feccube-product-status%2F&#038;title=%E3%80%90ECCUBE2.13%E3%80%91%E5%95%86%E5%93%81%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%EF%BC%92%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82" data-a2a-url="https://rockstream-jp.com/eccube-product-status/" data-a2a-title="【ECCUBE2.13】商品ステータス２を追加してみました。"></a></p>The post <a href="https://rockstream-jp.com/eccube-product-status/">【ECCUBE2.13】商品ステータス２を追加してみました。</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【ECCUBE】おすすめ商品をそのままランキングに転用</title>
		<link>https://rockstream-jp.com/eccube-recommendblock-rankingblock/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=eccube-recommendblock-rankingblock</link>
					<comments>https://rockstream-jp.com/eccube-recommendblock-rankingblock/#respond</comments>
		
		<dc:creator><![CDATA[zassy]]></dc:creator>
		<pubDate>Mon, 09 May 2016 08:29:23 +0000</pubDate>
				<category><![CDATA[ECCUBE2.13]]></category>
		<category><![CDATA[ランキング]]></category>
		<category><![CDATA[おすすめ]]></category>
		<category><![CDATA[ブロック]]></category>
		<guid isPermaLink="false">https://rockstream-jp.com/?p=3808</guid>

					<description><![CDATA[<p>備忘録です。 ランキングの追加カスタムやプラグインはあるのですが、 だたアナログ的におすすめ商品をそのままランキングに転用して数値...</p>
The post <a href="https://rockstream-jp.com/eccube-recommendblock-rankingblock/">【ECCUBE】おすすめ商品をそのままランキングに転用</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-recommendblock-rankingblock%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E5%95%86%E5%93%81%E3%82%92%E3%81%9D%E3%81%AE%E3%81%BE%E3%81%BE%E3%83%A9%E3%83%B3%E3%82%AD%E3%83%B3%E3%82%B0%E3%81%AB%E8%BB%A2%E7%94%A8" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-recommendblock-rankingblock%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E5%95%86%E5%93%81%E3%82%92%E3%81%9D%E3%81%AE%E3%81%BE%E3%81%BE%E3%83%A9%E3%83%B3%E3%82%AD%E3%83%B3%E3%82%B0%E3%81%AB%E8%BB%A2%E7%94%A8" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-recommendblock-rankingblock%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E5%95%86%E5%93%81%E3%82%92%E3%81%9D%E3%81%AE%E3%81%BE%E3%81%BE%E3%83%A9%E3%83%B3%E3%82%AD%E3%83%B3%E3%82%B0%E3%81%AB%E8%BB%A2%E7%94%A8" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2Feccube-recommendblock-rankingblock%2F&#038;title=%E3%80%90ECCUBE%E3%80%91%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E5%95%86%E5%93%81%E3%82%92%E3%81%9D%E3%81%AE%E3%81%BE%E3%81%BE%E3%83%A9%E3%83%B3%E3%82%AD%E3%83%B3%E3%82%B0%E3%81%AB%E8%BB%A2%E7%94%A8" data-a2a-url="https://rockstream-jp.com/eccube-recommendblock-rankingblock/" data-a2a-title="【ECCUBE】おすすめ商品をそのままランキングに転用"></a></p><p>備忘録です。</p>
<p>ランキングの追加カスタムやプラグインはあるのですが、<br />
だたアナログ的におすすめ商品をそのままランキングに転用して数値を出す方法です。</p>
<p>おすすめ商品のブロックに追加します。</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!--{if count($arrBestProducts) &gt; 0}--&gt;
    &lt;div class=&quot;block_outer clearfix&quot;&gt;
        &lt;div id=&quot;recommend_area&quot;&gt;
            &lt;h2&gt;&lt;img src=&quot;&lt;!--{$TPL_URLPATH}--&gt;img/title/tit_bloc_recommend.jpg&quot; alt=&quot;*&quot; class=&quot;title_icon&quot; /&gt;&lt;/h2&gt;
            &lt;div class=&quot;block_body clearfix&quot;&gt;
                &lt;!--{assign var=&quot;var&quot; value=&quot;1&quot;}--&gt; &lt;!--追加--&gt;
                &lt;!--{foreach from=$arrBestProducts item=arrProduct name=&quot;recommend_products&quot;}--&gt;
                    &lt;div class=&quot;product_item clearfix&quot;&gt;
                        &lt;span&gt;No.&lt;!--{$var}--&gt;&lt;/span&gt; &lt;!--追加 数値表示 CSSで修飾--&gt;
                        &lt;div class=&quot;productImage&quot;&gt;
                            &lt;a href=&quot;&lt;!--{$smarty.const.P_DETAIL_URLPATH}--&gt;&lt;!--{$arrProduct.product_id|u}--&gt;&quot;&gt;
                                &lt;img src=&quot;&lt;!--{$smarty.const.ROOT_URLPATH}--&gt;resize_image.php?image=&lt;!--{$arrProduct.main_list_image|sfNoImageMainList|h}--&gt;&amp;amp;width=80&amp;amp;height=80&quot; alt=&quot;&lt;!--{$arrProduct.name|h}--&gt;&quot; /&gt;
                            &lt;/a&gt;
                        &lt;/div&gt;
                        &lt;div class=&quot;productContents&quot;&gt;
                            &lt;h3&gt;
                                &lt;a href=&quot;&lt;!--{$smarty.const.P_DETAIL_URLPATH}--&gt;&lt;!--{$arrProduct.product_id|u}--&gt;&quot;&gt;&lt;!--{$arrProduct.name|h}--&gt;&lt;/a&gt;
                            &lt;/h3&gt;
                            &lt;p class=&quot;sale_price&quot;&gt;
                                &lt;!--{$smarty.const.SALE_PRICE_TITLE}--&gt;(税込)： &lt;span class=&quot;price&quot;&gt;&lt;!--{$arrProduct.price02_min_inctax|number_format}--&gt; 円&lt;/span&gt;
                            &lt;/p&gt;
                            &lt;p class=&quot;mini comment&quot;&gt;&lt;!--{$arrProduct.comment|h|nl2br}--&gt;&lt;/p&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;
                    &lt;!--{if $smarty.foreach.recommend_products.iteration % 2 === 0}--&gt;
                        &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;
                    &lt;!--{/if}--&gt;

                &lt;!--{assign var=&quot;var&quot; value=$var+1}--&gt; &lt;!--追加--&gt;
                &lt;!--{/foreach}--&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;!--{/if}--&gt;
</pre>
<p class="mb40">これで数値を取得して表示できます。<br />
ランキングブロックをカスタムで追加するよりも簡単です。</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-recommendblock-rankingblock%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E5%95%86%E5%93%81%E3%82%92%E3%81%9D%E3%81%AE%E3%81%BE%E3%81%BE%E3%83%A9%E3%83%B3%E3%82%AD%E3%83%B3%E3%82%B0%E3%81%AB%E8%BB%A2%E7%94%A8" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-recommendblock-rankingblock%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E5%95%86%E5%93%81%E3%82%92%E3%81%9D%E3%81%AE%E3%81%BE%E3%81%BE%E3%83%A9%E3%83%B3%E3%82%AD%E3%83%B3%E3%82%B0%E3%81%AB%E8%BB%A2%E7%94%A8" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube-recommendblock-rankingblock%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E5%95%86%E5%93%81%E3%82%92%E3%81%9D%E3%81%AE%E3%81%BE%E3%81%BE%E3%83%A9%E3%83%B3%E3%82%AD%E3%83%B3%E3%82%B0%E3%81%AB%E8%BB%A2%E7%94%A8" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2Feccube-recommendblock-rankingblock%2F&#038;title=%E3%80%90ECCUBE%E3%80%91%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E5%95%86%E5%93%81%E3%82%92%E3%81%9D%E3%81%AE%E3%81%BE%E3%81%BE%E3%83%A9%E3%83%B3%E3%82%AD%E3%83%B3%E3%82%B0%E3%81%AB%E8%BB%A2%E7%94%A8" data-a2a-url="https://rockstream-jp.com/eccube-recommendblock-rankingblock/" data-a2a-title="【ECCUBE】おすすめ商品をそのままランキングに転用"></a></p>The post <a href="https://rockstream-jp.com/eccube-recommendblock-rankingblock/">【ECCUBE】おすすめ商品をそのままランキングに転用</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></content:encoded>
					
					<wfw:commentRss>https://rockstream-jp.com/eccube-recommendblock-rankingblock/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【ECCUBE2.13】新規ページ作成エラーについて</title>
		<link>https://rockstream-jp.com/eccube2-13user-data-error/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=eccube2-13user-data-error</link>
		
		<dc:creator><![CDATA[zassy]]></dc:creator>
		<pubDate>Thu, 28 Apr 2016 03:17:02 +0000</pubDate>
				<category><![CDATA[ECCUBE2.13]]></category>
		<category><![CDATA[ECCUBE2.11～]]></category>
		<guid isPermaLink="false">https://rockstream-jp.com/?p=1307</guid>

					<description><![CDATA[<p>サーバーの仕様によりますが、一部サーバでは、デザイン管理で新規ページを作成後、アクセスするとInternal Server Err...</p>
The post <a href="https://rockstream-jp.com/eccube2-13user-data-error/">【ECCUBE2.13】新規ページ作成エラーについて</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13user-data-error%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E6%96%B0%E8%A6%8F%E3%83%9A%E3%83%BC%E3%82%B8%E4%BD%9C%E6%88%90%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13user-data-error%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E6%96%B0%E8%A6%8F%E3%83%9A%E3%83%BC%E3%82%B8%E4%BD%9C%E6%88%90%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13user-data-error%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E6%96%B0%E8%A6%8F%E3%83%9A%E3%83%BC%E3%82%B8%E4%BD%9C%E6%88%90%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2Feccube2-13user-data-error%2F&#038;title=%E3%80%90ECCUBE2.13%E3%80%91%E6%96%B0%E8%A6%8F%E3%83%9A%E3%83%BC%E3%82%B8%E4%BD%9C%E6%88%90%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6" data-a2a-url="https://rockstream-jp.com/eccube2-13user-data-error/" data-a2a-title="【ECCUBE2.13】新規ページ作成エラーについて"></a></p><p>サーバーの仕様によりますが、一部サーバでは、デザイン管理で新規ページを作成後、アクセスするとInternal Server Errorになります。</p>
<p>原因は、user_dataに作成されたphpのパーミッションが「666」になっているためです。<br />
パーミッションを「644」に変更すれば問題なく表示されますが、<br />
ユーザー側にいちいち変更してもらうことはほぼ不可能と思われます。</p>
<p>そこで、ファイル修正で対応をすることにしました。</p>
<p>参考サイト<br />
<a href="http://blog.s-giken.net/261.html" target="_blank">ECCUBEの新規追加ページがInternal Server Error・Not Foundに</a></p>
<p>修正するファイルは<br />
/data/class/helper/SC_Helper_FileManager.php<br />
です。</p>
<p><pre class="brush: xml; title: ; notranslate">
public function sfWriteFile($filename, $value)
    {
        if (!is_dir(dirname($filename))) {
            SC_Utils_Ex::recursiveMkdir(dirname($filename), 0777);
        }
        $fp = fopen($filename, 'w');
        if ($fp === false) {
            return false;
        }
        if (fwrite($fp, $value) === false) {
            return false;
        }
 
        //追加
        if ( ( pathinfo ( $filename, PATHINFO_EXTENSION) ) == &quot;php&quot; ) {
            chmod($filename, 0644);
        }
 
        return fclose($fp);;
    }
</pre>
</p>
<p>15～17行目のif ( ( pathinfo～～を追加することにより、新規作成でパーミッションが644になるようにしています。</p>
<p>最近はセキュリティ強化のため、このような仕様のサーバも増えているようです。</p>
<p>ちょっと面倒ですが、上記のように対応すると問題ないようです。</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13user-data-error%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E6%96%B0%E8%A6%8F%E3%83%9A%E3%83%BC%E3%82%B8%E4%BD%9C%E6%88%90%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13user-data-error%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E6%96%B0%E8%A6%8F%E3%83%9A%E3%83%BC%E3%82%B8%E4%BD%9C%E6%88%90%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2Feccube2-13user-data-error%2F&amp;linkname=%E3%80%90ECCUBE2.13%E3%80%91%E6%96%B0%E8%A6%8F%E3%83%9A%E3%83%BC%E3%82%B8%E4%BD%9C%E6%88%90%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2Feccube2-13user-data-error%2F&#038;title=%E3%80%90ECCUBE2.13%E3%80%91%E6%96%B0%E8%A6%8F%E3%83%9A%E3%83%BC%E3%82%B8%E4%BD%9C%E6%88%90%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6" data-a2a-url="https://rockstream-jp.com/eccube2-13user-data-error/" data-a2a-title="【ECCUBE2.13】新規ページ作成エラーについて"></a></p>The post <a href="https://rockstream-jp.com/eccube2-13user-data-error/">【ECCUBE2.13】新規ページ作成エラーについて</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【ECCUBE】商品検索ブロックを複製</title>
		<link>https://rockstream-jp.com/%e3%80%90eccube%e3%80%91%e5%95%86%e5%93%81%e6%a4%9c%e7%b4%a2%e3%83%96%e3%83%ad%e3%83%83%e3%82%af%e3%82%92%e8%a4%87%e8%a3%bd/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590eccube%25e3%2580%2591%25e5%2595%2586%25e5%2593%2581%25e6%25a4%259c%25e7%25b4%25a2%25e3%2583%2596%25e3%2583%25ad%25e3%2583%2583%25e3%2582%25af%25e3%2582%2592%25e8%25a4%2587%25e8%25a3%25bd</link>
		
		<dc:creator><![CDATA[zassy]]></dc:creator>
		<pubDate>Thu, 07 Apr 2016 02:34:24 +0000</pubDate>
				<category><![CDATA[ECCUBE2.13]]></category>
		<category><![CDATA[ECCUBE2.11～]]></category>
		<guid isPermaLink="false">https://rockstream-jp.com/?p=1157</guid>

					<description><![CDATA[<p>以前のカテゴリブロック複製とほぼ同じ方法で商品検索ブロックを複製します。 【classファイルのコピー】 \data\class\...</p>
The post <a href="https://rockstream-jp.com/%e3%80%90eccube%e3%80%91%e5%95%86%e5%93%81%e6%a4%9c%e7%b4%a2%e3%83%96%e3%83%ad%e3%83%83%e3%82%af%e3%82%92%e8%a4%87%e8%a3%bd/">【ECCUBE】商品検索ブロックを複製</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2F%25e3%2580%2590eccube%25e3%2580%2591%25e5%2595%2586%25e5%2593%2581%25e6%25a4%259c%25e7%25b4%25a2%25e3%2583%2596%25e3%2583%25ad%25e3%2583%2583%25e3%2582%25af%25e3%2582%2592%25e8%25a4%2587%25e8%25a3%25bd%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E5%95%86%E5%93%81%E6%A4%9C%E7%B4%A2%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E8%A4%87%E8%A3%BD" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2F%25e3%2580%2590eccube%25e3%2580%2591%25e5%2595%2586%25e5%2593%2581%25e6%25a4%259c%25e7%25b4%25a2%25e3%2583%2596%25e3%2583%25ad%25e3%2583%2583%25e3%2582%25af%25e3%2582%2592%25e8%25a4%2587%25e8%25a3%25bd%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E5%95%86%E5%93%81%E6%A4%9C%E7%B4%A2%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E8%A4%87%E8%A3%BD" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2F%25e3%2580%2590eccube%25e3%2580%2591%25e5%2595%2586%25e5%2593%2581%25e6%25a4%259c%25e7%25b4%25a2%25e3%2583%2596%25e3%2583%25ad%25e3%2583%2583%25e3%2582%25af%25e3%2582%2592%25e8%25a4%2587%25e8%25a3%25bd%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E5%95%86%E5%93%81%E6%A4%9C%E7%B4%A2%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E8%A4%87%E8%A3%BD" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2F%25e3%2580%2590eccube%25e3%2580%2591%25e5%2595%2586%25e5%2593%2581%25e6%25a4%259c%25e7%25b4%25a2%25e3%2583%2596%25e3%2583%25ad%25e3%2583%2583%25e3%2582%25af%25e3%2582%2592%25e8%25a4%2587%25e8%25a3%25bd%2F&#038;title=%E3%80%90ECCUBE%E3%80%91%E5%95%86%E5%93%81%E6%A4%9C%E7%B4%A2%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E8%A4%87%E8%A3%BD" data-a2a-url="https://rockstream-jp.com/%e3%80%90eccube%e3%80%91%e5%95%86%e5%93%81%e6%a4%9c%e7%b4%a2%e3%83%96%e3%83%ad%e3%83%83%e3%82%af%e3%82%92%e8%a4%87%e8%a3%bd/" data-a2a-title="【ECCUBE】商品検索ブロックを複製"></a></p><p>以前の<a href="https://rockstream-jp.com/%E3%80%90eccube%E3%80%91%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E8%A4%87%E8%A3%BD%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/">カテゴリブロック複製</a>とほぼ同じ方法で商品検索ブロックを複製します。</p>
<p>【classファイルのコピー】</p>
<p>\data\class\pages\frontparts\bloc\LC_Page_FrontParts_Bloc_SearchProducts.php<br />
のファイルをコピーして<br />
LC_Page_FrontParts_Bloc_SearchProducts2.php<br />
を作成</p>
<p>ファイルの該当箇所に「2」を追加して保存</p>
<p><pre class="brush: xml; title: ; notranslate">
/**
 * 検索ブロック のページクラス.
 *
 * @package Page
 * @author LOCKON CO.,LTD.
 * @version $Id:LC_Page_FrontParts_Bloc_SearchProducts.php 15532 2007-08-31 14:39:46Z nanasess $
 */
class LC_Page_FrontParts_Bloc_SearchProducts2 extends LC_Page_FrontParts_Bloc_Ex //ここ
{
</pre>
</p>
<p>【class_exファイルのコピー】</p>
<p>\data\class_extends\page_extends\frontparts\bloc\LC_Page_FrontParts_Bloc_SearchProducts_Ex.php<br />
のファイルをコピーして<br />
LC_Page_FrontParts_Bloc_SearchProducts2_Ex.php<br />
を作成</p>
<p>ファイルの該当箇所に「2」を追加して保存</p>
<p><pre class="brush: xml; title: ; notranslate">
/**
 * 検索ブロック のページクラス(拡張).
 *
 * LC_Page_FrontParts_Bloc_SearchProducts をカスタマイズする場合はこのクラスを編集する.
 *
 * @package Page
 * @author LOCKON CO.,LTD.
 * @version $Id$
 */
class LC_Page_FrontParts_Bloc_SearchProducts2_Ex extends LC_Page_FrontParts_Bloc_SearchProducts2 //ここ
{
</pre>
</p>
<p>【category.phpファイルのコピー】</p>
<p>\html\frontparts\bloc\search_products.php<br />
のファイルをコピーして<br />
search_products2.php<br />
を作成</p>
<p>ファイルの該当箇所に「2」を追加して保存</p>
<p><pre class="brush: xml; title: ; notranslate">
require_once realpath(dirname(__FILE__)) . '/../../require.php';
require_once CLASS_EX_REALDIR . 'page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_SearchProducts2_Ex.php'; //ここ
{

$objPage = new LC_Page_FrontParts_BLoc_SearchProducts2_Ex(); //ここ
{
$objPage-&gt;blocItems = $params&#x5B;'items'];
$objPage-&gt;init();
$objPage-&gt;process();
</pre>
</p>
<p>【ブロックの新規作成】</p>
<p>管理画面の新規ブロック作成で「商品検索２」、ファイル名「search_products2」で作成。</p>
<p>内容はとりあえず、「カテゴリ」ブロックのソースコードをそのままコピペしました。</p>
<p>【ファイルのアップロード】</p>
<p>新規作成したファイルをそれぞれのディレクトリにアップ</p>
<p>【DBの変更】</p>
<p>
テーブル：dtb_blocのphp_pathに<br />
「frontparts/bloc/search_products2.php」を追加<br />
deletable_flgは「0」にしました。</p>
<div class="mb20">
<a href="http://px.a8.net/svt/ejp?a8mat=2HO4KZ+75SPPU+50+2HLQJL" target="_blank"><br />
<img decoding="async" border="0" width="728" height="90" alt="" src="http://www22.a8.net/svt/bgt?aid=150611507433&wid=001&eno=01&mid=s00000000018015050000&mc=1"></a><br />
<img decoding="async" border="0" width="1" height="1" src="http://www17.a8.net/0.gif?a8mat=2HO4KZ+75SPPU+50+2HLQJL" alt="">
</div>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frockstream-jp.com%2F%25e3%2580%2590eccube%25e3%2580%2591%25e5%2595%2586%25e5%2593%2581%25e6%25a4%259c%25e7%25b4%25a2%25e3%2583%2596%25e3%2583%25ad%25e3%2583%2583%25e3%2582%25af%25e3%2582%2592%25e8%25a4%2587%25e8%25a3%25bd%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E5%95%86%E5%93%81%E6%A4%9C%E7%B4%A2%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E8%A4%87%E8%A3%BD" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frockstream-jp.com%2F%25e3%2580%2590eccube%25e3%2580%2591%25e5%2595%2586%25e5%2593%2581%25e6%25a4%259c%25e7%25b4%25a2%25e3%2583%2596%25e3%2583%25ad%25e3%2583%2583%25e3%2582%25af%25e3%2582%2592%25e8%25a4%2587%25e8%25a3%25bd%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E5%95%86%E5%93%81%E6%A4%9C%E7%B4%A2%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E8%A4%87%E8%A3%BD" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Frockstream-jp.com%2F%25e3%2580%2590eccube%25e3%2580%2591%25e5%2595%2586%25e5%2593%2581%25e6%25a4%259c%25e7%25b4%25a2%25e3%2583%2596%25e3%2583%25ad%25e3%2583%2583%25e3%2582%25af%25e3%2582%2592%25e8%25a4%2587%25e8%25a3%25bd%2F&amp;linkname=%E3%80%90ECCUBE%E3%80%91%E5%95%86%E5%93%81%E6%A4%9C%E7%B4%A2%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E8%A4%87%E8%A3%BD" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frockstream-jp.com%2F%25e3%2580%2590eccube%25e3%2580%2591%25e5%2595%2586%25e5%2593%2581%25e6%25a4%259c%25e7%25b4%25a2%25e3%2583%2596%25e3%2583%25ad%25e3%2583%2583%25e3%2582%25af%25e3%2582%2592%25e8%25a4%2587%25e8%25a3%25bd%2F&#038;title=%E3%80%90ECCUBE%E3%80%91%E5%95%86%E5%93%81%E6%A4%9C%E7%B4%A2%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E8%A4%87%E8%A3%BD" data-a2a-url="https://rockstream-jp.com/%e3%80%90eccube%e3%80%91%e5%95%86%e5%93%81%e6%a4%9c%e7%b4%a2%e3%83%96%e3%83%ad%e3%83%83%e3%82%af%e3%82%92%e8%a4%87%e8%a3%bd/" data-a2a-title="【ECCUBE】商品検索ブロックを複製"></a></p>The post <a href="https://rockstream-jp.com/%e3%80%90eccube%e3%80%91%e5%95%86%e5%93%81%e6%a4%9c%e7%b4%a2%e3%83%96%e3%83%ad%e3%83%83%e3%82%af%e3%82%92%e8%a4%87%e8%a3%bd/">【ECCUBE】商品検索ブロックを複製</a> first appeared on <a href="https://rockstream-jp.com">相模原市ホームページ制作 ロックストリーム</a>.]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
