JSのslideDownやslideToggleがうまく動かないとき

slideDownやslideToggleがうまく動かないとき

スライドするところがshow()を使ったときみたいにパッと表示される場合

表示する要素がblockでなければなりません。

inlineだとパッと表示されます。

これの解決に2時間ほどかかりました・・・

はぁ。

EC-CUBE2のシーケンス一覧

前回のブログ「EC-CUBE2の規格登録でエラー」でシーケンスの更新を書きました。
他のシーケンスの重複でエラーが出たと報告があったのでシーケンスの値を全てチェックして更新しました。

EC-CUBE2で使われているシーケンスは下記になります。

dtb_api_account_api_account_id_seq
dtb_api_config_api_config_id_seq
dtb_best_products_best_id_seq
dtb_bloc_bloc_id_seq
dtb_category_category_id_seq
dtb_class_class_id_seq
dtb_classcategory_classcategory_id_seq
dtb_coupon_coupon_id_seq
dtb_coupon_products_coupon_products_id_seq
dtb_coupon_used_coupon_used_id_seq
dtb_csv_no_seq
dtb_csv_sql_sql_id_seq
dtb_customer_customer_id_seq
dtb_deliv_deliv_id_seq
dtb_holiday_holiday_id_seq
dtb_kiyaku_kiyaku_id_seq
dtb_mail_history_send_id_seq
dtb_mailmaga_template_template_id_seq
dtb_maker_maker_id_seq
dtb_member_member_id_seq
dtb_module_update_logs_log_id_seq
dtb_news_news_id_seq
dtb_order_detail_order_detail_id_seq
dtb_order_order_id_seq
dtb_other_deliv_other_deliv_id_seq
dtb_pagelayout_page_id_seq
dtb_payment_payment_id_seq
dtb_plugin_hookpoint_plugin_hookpoint_id_seq
dtb_plugin_plugin_id_seq
dtb_products_class_product_class_id_seq
dtb_products_product_id_seq
dtb_review_review_id_seq
dtb_send_history_send_id_seq
dtb_tax_rule_tax_rule_id_seq

上記の値をチェック

修正が必要なら値を更新

EC-CUBE2の規格登録でエラー

EC-CUBEの規格登録をしようとしたら下記のエラーが出た件

*—————————————————————*
SQL: [INSERT INTO dtb_classcategory(name,class_id,creator_id,rank,create_date,update_date,classcategory_id)
SELECT $1,$2,$3,$4,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,$5]
PlaceHolder: [array (
0 => ‘テストデータ’,
1 => ’92’,
2 => ‘2’,
3 => 3,
4 => 96,
)]
MDB2 Error: unknown error
_doQuery: [Error message: Could not execute statement]
[Last executed query: EXECUTE mdb2_statement_pgsql_2977d07f3499f15f5f700e51693c3dfbbe8b622f1d (‘テストデータ’, ’92’, ‘2’, 3, 96)]
[Native message: ERROR: 重複キーが一意性制約”dtb_classcategory_pkey”に違反しています
DETAIL: キー (classcategory_id)=(96) はすでに存在します]
*—————————————————————*

EC-CUBE 2.x
PostgreSQL

classcategory_idがかぶっているよというエラーです。

PostgreSQLで状況を確認します。(phpPgAdmin)

まずはシーケンスの状況を確認します。

last_valueの値がclasscategory_idの最後の値です。
これが96になっています。

classcategory_idのMAXの値を調べます。

240と値が返ってきました。

last_valueの値を変える必要があります。

下記のエラーが出ました。

「リードオンリーのトランザクションでは setval() を実行できません」

phpPgAdminでは実行ができないようなので、SSHでサーバーに繋げて直接PostgreSQLから実行します。

最後に規格登録の動作確認をして登録できればOKです。

JavaScriptで日付の取得

JSでの日付の取得など備忘録

結果:Date 2018-07-14T08:00:35.771Z

このままだと使いづらいので下記のように個別で取得します。

ifなどで判定する場合はちょっと注意
数値型なので+すると足し算をしてしまうので、文字列に変換(toString())してから結合させる

CakePHP2.xでデバッグキットを使う

CakePHP2.xでデバッグキットを使いたい~

デバッグキットをダウンロードします。

https://github.com/cakephp/debug_kit/tree/2.2

ダウンロードファイルを解凍したら「DebugKit」に名前を変更して、
cakephpのpluginsフォルダに移動させます。

bootstrap.phpに下記を追加

次に/app/Controller/AppController.phpに下記を追加

/app/View/Layouts/default.ctp の sql_dump 部分を削除

以上です。

XAMPPでWordPress導入時のhtaccess

XAMPPにWordPressを導入したけど、TOPページ以外にアクセスするとTOPに飛ばされてしまう場合の対処方法

htaccessのRewriteEngineの設定を正しく行うと解消されます。

例えば下記のURLだとすると…
http://localhost/wordpress/

RewriteBase
RewriteRule

上記2箇所の設定を調整する。

以上です。

[JQuery]data属性の取り扱い

HTML5からdataという独自属性が使えるようになりました。
data-* とdata-の後に好きな名前と値を設定が出来ます。

(例)

その独自属性をjqueryで取得する方法。

data()を使って内容を取得する。
取得したデータは連想配列として取得します。

結果

個別に指定でひとつだけ取得も可

結果

独自に値が設定できるので便利かも~

[EC-CUBE2]複数配送設定を無効にする

EC-CUBE2で「お届け先ごと送料無料プラグイン」と「送料無料対象商品設定」の両方を入れると思った動作をしないパターンがある。

どちらを優先するか悩んだ末、複数配送を使う人が少数ということもあり、複数配送設定をOFFにできるか調査した。

設定は簡単で、管理画面から「システム設定」→「パラメータ設定」の中にある「USE_MULTIPLE_SHIPPING」をfalseに設定する。

これで複数配送の設定が無効になります。

[EC-CUBE2]商品についての問合せ

商品についてのお問合せで本文にどの商品についての問合せなのかを記載する。

商品詳細ページ
問合せフォーム

上記2種類のテンプレートを編集します。

▼商品詳細ページ
/data/Smarty/templates/default/products/detail.tpl

▼問合せフォーム
/data/Smarty/templates/default/contact/index.tpl

textareaタグの間に下記を追加。

[EC-CUBE2]隠し商品

隠し商品リンクの依頼がありました。
前回はカテゴリーごとでしたが、今回は商品単体です。

今回のサーバーはjsonが使えるので、jsonで対応します。

■検索処理の修正
修正ファイル
/data/config/config.php
/data/class/pages/products/LC_Page_Products_List.php

修正ファイルはカテゴリーのやつと同じ

▼config.php

ここに非表示の商品IDの値を設定する。
配列をjson_encodeした値を設定する。

▼LC_Page_Products_List.php

375行目あたりのlfGetSearchConditionメソッドに処理を追加します。
下記の処理に追加します。
・$searchCondition[‘where’] = SC_Product_Ex::getProductDispConditions(‘alldtl’);の位置を移動させます。
・}else{の処理を追加します。