EC-CUBE4系のプラグインがインストールできない!

Gutenbergを愛せない…

EC-CUBE4系でプラグインを入れようと、いつものようにオーナーズストアで購入して…と、これまでやってきてた手順ですすめていくと、プラグインのダウンロードのとこに、「インストールについて」と、リンクが

クリックすると、どうやら今度からインストールは「EC-CUBE内の管理画面からやって!」とのこと

WPみたいになったのね、と管理画面から入れたいプラグインを検索し、設定しようとすると、「システムエラー」!!

オーナーズストアからも入れられず、EC-CUBEの管理画面からも入れられず…

インストールについて」に書いてある、インストールNGだった場合はあーだのこーだのを見たものの、ひっかかりそうなところがない(と思った)

そこで大Googleさんにお伺いをたてたところ、PHPのバージョンが、最新じゃなくて「 7.1.28 」くらいに落とすと大丈夫とのお告げ

で、PHPのバージョンをおとしてみる

OK!

無事プラグインがインストールできました♪

Warning: count(): Parameter must be an array or an object that implements Countable in~

PHPを7.2にしたら、今まで問題なかったプラグインに対して、Warning: count(): Parameter must be an array or an object that implements Countable in~ などというエラーが…

count関数が変数の中を数えられないって???

こんなことこれまでなかったのに
いきなり数えるの拒否?

どうやら、PHP7.2で count()関数の仕様が変更になったようです
どうやらcountで数えたい変数の中身がNULLだとエラーになるようになったようです

なので、countしたい変数がNULLじゃなかったら、countしてよ♪
と、if文で追記してエラー回避

 

例)$serrchが空じゃなかったらcountしてよね!

			if ( count( $search ) === 1 ) {
				$settings = $this->create_ghost_settings( $settings );
			} else {
				$settings[ $this->ID ] = $this->create_ghost_settings( $settings[ $this->ID ] );
			}
		

		if ( ! empty( $search ) ) {

			if ( count( $search ) === 1 ) {
				$settings = $this->create_ghost_settings( $settings );
			} else {
				$settings[ $this->ID ] = $this->create_ghost_settings( $settings[ $this->ID ] );
			}
		
		} else {
        	$search = 0;
    	}

 

 

最近EC-CUBE3(もうEC-CUBE4が出たけれど)で、記述が間違っていないはずなのにどうしてもエラーが出ることが
原因はタブだった…
くせでブランクを半角ではなくタブ使っていたのが原因
タブはダメって知っていたのに実践できていなかった
無駄な時間を費やしてしまいました

EC-CUBE3.016 動的Blockを静的twingに記載する時に詰まった話

動的Blockを作って、それをtwingに書いたのに反応しない…

コントローラーにスペルミスがあるのか、何度も見直すも特にミスは見つけられず

子供がカゼひいてるから、うつったのかと悩む

で、解決

twingにtwingを読み込むのに、管理画面からえいっとしない場合、↓を記載していたのだけれど

{{ include('Block/ブロックのファイル名.twig', ignore_missing = true) }}

 

動的Blockをtwingに記載するには、↓と書くらしい

 
{% if app.config.http_cache.enabled %}
	{{ render_esi(path('block_ブロックのファイル名')) }}
{% else %}
	{{ render(path('block_ブロックのファイル名')) }}
{% endif %}

 

まだまだ勉強中です

※ワンコの後ろの毒々しい柄のブツは、わんこコタツ…こたつぶどん変えたいけど時間がなくて作ってあげれてない

 

infiniteslide.jsが急に動かなくなった!

infiniteslide.jsでスライドさせてたところが動かなくなってた!

デバック見て順番に書き換えしてみました

【1】infiniteslide.js
バージョンアップしてみたけれど関係なかった

【2】css3-mediaqueries.js
Google Codeへのリンク先のファイルがなくなっていた
2016.1.25に閉鎖へ、GitHubに移行していくことになっていた(気がついていなかったなんてダメダメじゃん!!)

↓ここからダウンロードして差し替え

GitHub ? livingston/css3-mediaqueries-js: CSS3 Media Queries Shim

でも関係ない。だって最新のFirefoxだし。Chomeでは動いてるし

【3】ループがいっぱいが嫌だって…

$(function(){
    $('.infiniteslide').infiniteslide();
});

$(window).load(function(){
    $('.infiniteslide').infiniteslide();
});

に変更で解決!

↓参考にさせていただきました

【jQueryプラグインinfiniteSlide.js】が上手く動かないとき

 

 

 

 

昨日、某ホームセンター駐車場で、日陰とはいえ車の中にワンコを見つけびっくり!
「はぁはぁワンワンはぁはぁワンワン!」
と、暑そうに吠え続けていたので、これまずいよね?と思い、携帯からお店に車のナンバー電話しようと、お店のHPを探していたら、飼い主らしき、おばぁちゃんが帰ってきました
おばぁちゃんだったから連れていくのが大変だった?
でも、でも、ほんのちょっとでも締め切った車の中は、長毛ワンコにはとんでもない暑さだと思う…
おばぁちゃんだから、エアコン入れっぱで外出はありえないと思うのかな…

わたしは、この連日の暑さに考えてしまう..
留守中、知らないうちにエアコン故障したらどうしたらいいの??
うちの子、蒸されてしまう!
毎日怖いんだけどな

CSS3の縦書きをIEで解除する時に詰まったショボイ話

css3が使い勝手が良くて楽しく過ごしていたら、やっぱりIEでつまづいてしまいました…

ちょっと縦書きでも使ってみようかと、↓おきまりの文言を追加してみた

	-webkit-writing-mode:vertical-rl;
	-ms-writing-mode:tb-rl;
	writing-mode:vertical-rl;

で、スマホで縦書きもなんだなぁ、と解除してみた

【正】

	-webkit-writing-mode:horizontal-tb;
	-ms-writing-mode:lr-tb;
	writing-mode:horizontal-tb;

ここからがショボイ話

最初IEだけ解除されないから、メディアクエリが効かない???と、明後日の方向で調べまくったけど解決できず、時間だけがたっていって…

何を間違えていたかというと、IE用の解除表示をてっきり↓と思ってたら

【誤】

-ms-writing-mode:tb-rl;

【正】

-ms-writing-mode:lr-tb;

単純な記述間違いでした…

EC-CUBE2.13.5をレスポンシブにしようとしたらクーポンプラグインでエラーが出た

タイトル長い…

うちのわんこも長い…
最近ふすまと冷え冷え大理石の間に頭をぽっこり入れて寝るのがブームらしい

 

諸事情によりEC-CUBE3ではなくEC-CUBE2.135をレスポンシブにするにあたり、テンプレートを変更してみたら、クーポンプラグインの表示がエラーをはじきまくり

仕方がないのでエラー個所をつぶしていくことに

どうやら、クーポンが表示する個所を指定するのに、プラグイン側が、「このidのこのclassのこのタグのここんとこ!」的な指定をしているため、そのタグがないよ、というエラー

 

その前に、このクーポンプラグイン、【オーナーズストア】→【プラグイン管理】→【プラグイン管理】で、インストールして「有効」にしただけでは使えない
「使い方」とかどっかに書いてあったのかもしれないけど、見ていないのエラーログ見たら、以下の3ファイルのパーミッションを「644」に変えろって

・html/管理画面ディレクトリ/contents/plg_Coupon_coupon.php
・html/管理画面ディレクトリ/contents/plg_Coupon_product_select.php
・html/管理画面ディレクトリ/contents/plg_Coupon_coupon_input.php

 

次に、プラグインの
/data/downloads/plugin/Coupon/Coupon.php の、338行目あたりを見ると、ご親切に「カスタマイズしてある場合は要注意」と書いてある(ありがとうございます)個所を修正

 

・shopping/payment.tpl
・shopping/confirm.tpl
・mypage/history.tpl

↑だけをさわる【簡単バージョン】か、

・shopping/payment.tpl
・shopping/confirm.tpl
・mypage/history.tpl
・/data/downloads/plugin/Coupon/Coupon.php
・/data/Smarty/templates/使用テンプレート/shopping/plg_Coupon_payment.tpl
・/data/Smarty/templates/使用テンプレート/shopping/plg_Coupon_confirm.tpl
・/data/Smarty/templates/使用テンプレート/mypage/plg_Coupon_history.tpl

↑を変更する【推奨バージョン】か

 

【簡単バージョン】
空タグが多くなるので微妙だけど楽

「shopping/confirm.tpl」は、
#undercolumn #undercolumn_shopping の下に .delivname の table を作って、tr を 5つ作っておいたらOK
つまり、↓こんな感じでしょうか

「値引き」の記述
<table border="0" cellspacing="0" cellpadding="0" class="delivname">
<tr style="display:none;"><td>&nbsp;</td></tr>
<tr style="display:none;"><td>&nbsp;</td></tr>
<tr style="display:none;"><td>&nbsp;</td></tr>
<tr style="display:none;"><td>&nbsp;</td></tr>
<tr style="display:none;"><td>&nbsp;</td></tr>
</table>
「送料」の記述

 

「mypage/history.tpl」は、
#mycontents_area .mycondition_area の下に .delivname の table を作って、tr を 6つ作っておいたらOK
つまり、↓こんな感じでしょうか

「手数料」の記述
<table border="0" cellspacing="0" cellpadding="0" class="delivname">
<tr style="display:none;"><td>&nbsp;</td></tr>
<tr style="display:none;"><td>&nbsp;</td></tr>
<tr style="display:none;"><td>&nbsp;</td></tr>
<tr style="display:none;"><td>&nbsp;</td></tr>
<tr style="display:none;"><td>&nbsp;</td></tr>
<tr style="display:none;"><td>&nbsp;</td></tr>
</table>
「合計」の記述

 

お支払方法・お届け時間等の設定(shopping/payment.tpl)は表示されているのでcssで調整でいけるかな

 

【推奨バージョン】
やっぱりやるからには美しいタグで

まずは「/data/downloads/plugin/Coupon/Coupon.php」
クーポン関係の挿入個所を、必要なタグは、 .com_coupon の前に挿入してね!と変更

//クーポン利用確認画面(購入確認画面)
if (strpos($filename, 'shopping/confirm.tpl') !== false) {
     //indexの指定はカスタマイズしてある場合は要注意(デフォルトのec-cubeに対応)
     $objTransform->select('.com_coupon')->insertBefore(file_get_contents($template_dir . 'default/shopping/plg_Coupon_confirm.tpl'));
}
//購入履歴画面
if (strpos($filename, 'mypage/history.tpl') !== false) {
//indexの指定はカスタマイズしてある場合は要注意(デフォルトのec-cubeに対応)
     $objTransform->select('.com_coupon')->insertBefore(file_get_contents($template_dir . 'default/mypage/plg_Coupon_history.tpl'));
}

※クーポン利用画面がcssの変更でいけそうなのでさわらない

 

「shopping/confirm.tpl」は、
「送料」の上あたりにクーポンの記述を入れたいので変更

変更前
<small>送料:</small><strong><!--{$arrForm.deliv_fee|number_format}-->円</strong><br />
↓
変更後
<small class="com_coupon">送料:</small><strong><!--{$arrForm.deliv_fee|number_format}-->円</strong><br />

 

「mypage/history.tpl」は、
「合計」の上あたりにクーポンの記述を入れたいので変更

変更前
<div><small>合計:</small><span class="price text-bold"><!--{$tpl_arrOrderData.payment_total|number_format}-->円</span></div>
↓
変更後
<div class="com_coupon"><small>合計:</small><span class="price text-bold"><!--{$tpl_arrOrderData.payment_total|number_format}-->円</span></div>

 

「/data/Smarty/templates/使用テンプレート/shopping/plg_Coupon_confirm.tpl」は、以下に差し替え

<!--{*2011.11.27 SEED_KN クーポン機能*}-->
<!--{if $arrForm.coupon_check != "" && $arrForm.coupon_check != "0" }-->
<small>クーポン利用:</small><strong>-<!--{$arrForm.coupon_discount_price|number_format}-->円<!--{*(<!--{<!--{$arrForm.coupon_discount_percent|number_format}-->}-->%)*}--></strong><br />
<!--{/if}-->
<!--{*2011.11.27 SEED_KN クーポン機能*}-->

 

「/data/Smarty/templates/使用テンプレート/mypage/plg_Coupon_history.tpl」は、以下に差し替え

<!--{*2013.03.04 SEED クーポン機能*}-->
<div><small>クーポン利用:</small><!--{assign var=key value="coupon_discount_price"}--><!--{$tpl_arrOrderData[$key]*-1|number_format|h}-->円</div>
<!--{*2013.03.04 SEED クーポン機能*}-->

 

これで妙な空タグもなくOK

WordPress The Events Calendarプラグイン!

カレンダーを表示するプラグイン The Events Calendar すばらしすぎです!

何がって、カスタマイズし放題!!

 

・デフォルト表示の色がサイトに合わなくても、cssファイルで大幅修正可能

・表示したくないものもcssで修正可能!

・そして何より、設定されているタグ類の使用方法が公開されているので、WPの外で使うことも可能!

 

トップページにがっつりカレンダーを表示するのではなくて、よくある新着情報のような形で表示させ、カレンダーで見たかったらこっち、直接記事を見たかったらこっち、のようにカスタマイズもできるし

 

↓とても参考にさせていただきました
【WordPress】ウィジェットでなくトップページにそのままイベントカレンダーを表示できるプラグイン

 

追記するなら、The Events Calendarは、
投稿タイプ = tribe_events   タクソノミー = tribe_events_cat
です。

 

【スラッグの取得】

$cateslugs = tribe_get_event_cat_slugs( $post->ID );
echo $cateslugs[0];

 

【ターム名の取得】

$terms = get_the_terms( $post->ID , 'tribe_events_cat' );
foreach ( $terms as $term ) {
	echo $term->name;
}

 

 

 

 

 

Yahooショップで1つの商品を複数カテゴリーに登録する

楽天ならカテゴリーをいくつか作って、商品ページ作ったら、↓の「表示先カテゴリ」欄の1~5に属するカテゴリーの「カテゴリー名」を入れたらいいものを…

Yahooでは、商品ページにそんな設定箇所がないので、まずは1つのカテゴリーに所属させて商品ページを作って、地道に他のカテゴリーと結び付けていく…

1. 【ページ編集】のサイドメニュー「カテゴリーページ作成」でカテゴリーAを作る
2. 1で作ったカテゴリーAをクリックした状態で、サイドメニュー「商品ページ作成」をクリック
3. 普通に商品ページAを作成
4. 【ページ編集】の「カテゴリーページ作成」でカテゴリーBを作る
5. 【商品管理】のサイドメニュー「カテゴリリスト」で、3で作った商品ページAをクリック
6. 表示された「商品一覧」の中の商品ページAの左にある「選択」の□をチェック
7. 「商品一覧」の上部メニュー「リンク」をクリック
8. これまで作成されたカテゴリーの一覧が表示されるので、2個目に所属させたいカテゴリーの左の「選択」の○にチェック
9. 「確認」をクリック→「更新」をクリック

商品ページAが10個くらいのカテゴリーに所属してたら、地道に上記1~9を繰り返す…
商品数が多かったらCSVで一気に上げた方が早い

EC-CUBE3.013 WordPressの新着情報をトップページに表示

EC-CUBE3.013の同階層にWordpressをインストールして、その新着情報をショップのトップページに表示してみようかな、と
EC-CUBE2系ではPHPタグが普通に使えたので、「require (‘wp-load.php’);」でwordpressのタグを埋め込んで、うにゃうにゃと表示させていたのだけれど…

Symfony…苦手

でも↓こういうのを見つけた
TwigPHPExtension.php

twigの中で強引にPHPの関数を頭に「php_」を入れることで使えるようにしちゃう荒技

1.「src/Eccube/Twig/Extension/EccubeExtension.php」の「public function getFunctions()」に以下を追記

new \Twig_SimpleFunction('php_*', array($this,'phpFunctions'),array('is_safe' => array('html'))),

2.続いて「class EccubeExtension extends \Twig_Extension」内に以下を追記

public function phpFunctions()
    {
        $arg_list = func_get_args();
        $function = array_shift($arg_list);
 
        if(is_callable($function)){
            return call_user_func_array($function, $arg_list);
        }

        $errMsg = 'Called to an undefined function : <b>php_' . $function . "</b> ";
        trigger_error($errMsg, E_USER_NOTICE);
        return NULL;
    }

3.サーバー内のどこでもいいので、以下のような内容の「news.php」ファイルを作成
 ※「wp-load.php」のパスを間違えないように

<?php
$webroot = $_SERVER['DOCUMENT_ROOT'];
require ($webroot.'/wp-load.php'); ?>
<style type="text/css">
#top_info {
	padding:0 10px 15px 18px;
	width:100%;
}
#top_info span {
	padding-right:15px;
}
#top_info li {
	line-height:2;
}
#top_info li a {
	text-decoration:none;
	color:#666;
	display:block;
}
#top_info li a:hover {
	color:#333;
}
</style>
                <ul id="top_info">
				<?php 
				$newslist = get_posts( array(
					'category_name' => 'information',
					'posts_per_page' => 5
				));
				foreach( $newslist as $post ):
					setup_postdata( $post );
				?>
                    <li><a href="<?php the_permalink(); ?>" target="_blank"><span><?php the_time('Y.n.d'); ?></span>
					<?php the_title(); ?></a></li>
				<?php
                    endforeach;
                    wp_reset_postdata();
                ?>
                </ul>

4.EC-CUBE内の新着情報を表示するブロック「app/template/default/Block/news.twig」を以下に書き換え

<div class="col-sm-9 news_contents">
    <div id="news_area">
        <h2 class="heading01">新着情報</h2>
        <div class="accordion">
            <div class="newslist">
			{{ php_file_get_contents('http://ドメイン名/news.php') }}
            </div>
        </div>
    </div>
</div>

いつかSymfonyを好きになれる日が来るのかな…

EC-CUBE3.013 URLの変更(ドメイン直下に)

1.本家サイトからダウンロードしたEC-CUBE3を解凍して、以下だけアップロード

	app
	html
	src
	vender
	autoload.php
	cli-config.php

2.「http://○○○/html/」にアクセスし、インストール

3.サーバーの以下をダウンロードして、変更後、アップロード

「index.php」

require __DIR__.'/../autoload.php'; を require __DIR__.'/autoload.php';

「index_dev.php」

'/../autoload.php' を '/autoload.php'
'/../app/config/eccube/config_dev.yml' を '/app/config/eccube/config_dev.yml'
'/../app/cache/profiler' を '/app/cache/profiler'

「/app/config/eccube/path.yml」

「root_urlpath:」の「/html」を削除