News+Blog - 最新エントリー
CORESERVER というレンタルサーバーで WordPress を利用していると、そのサイトに定期的に接続できなくなります。
そのとき、サーバーの障害を疑いますが、同一レンタルサーバー上の他のサイトが動作しているときは、データベーステーブルの最適化で回復します。
CORESERVER 上で WordPress を運用していると、 MySQL のオーバーヘッドがある程度の量になるとアクセスができなくなるようです。
他のレンタルサーバーではこのような現象に遭遇したことがありませんので多分 CORESERVER 特有の現象のように思えます。
phpMyAdmin を使い、トラブルの都度最適化を行ってきましたが、何か良い手段が無いか探してみました。
プラグイン WP-DBmanager、データベースのバックアップと最適化ができるそうです。
これで、週一回のDBバックアップ&メールでファイル送信、3日毎にDB最適化、2週毎にDB修復を行ってくれるようです。(全てデフォルト値、それぞれ変更可能)
WP-DBmanager インストールのポイント
1.プラグインを有効化すると、『警告"Your backup folder MIGHT be visible to the public"が表示されました。』が表示される。
DBバックアップフォルダの wp-content/backup-db が誰でもアクセス可能な状態ある警告。
wp-content/plugins/wp-dbmanager/htaccess.txt を .htaccess にリネームして wp-content/backup-db に移動しろと言っているので、それを実行しようとすると、FTP で wp-content/backup-db が開けない。
これは backup-db の"所有者"と"グループ"が"apache"だから。
所有者変更は面倒なのでFTPで backup-db を削除して、再度 FTP で backup-db を作成し、パーミッション707、書込み可能に変更する。
その後、先ほどの .htaccess を移動する。
2.Database > Backup DB 画面のエラー
DB Options の設定が必要。
coreserver は以下を設定する
"Path To mysqldump:"
/usr/local/mysql/bin/mysqldump
"Path To mysql:"
/usr/local/mysql/bin/mysql
この設定後も画面上に"which: no mysql in…"と表示されますが、問題無いようなので気にしない。
3.DBバックアップファイルが0バイト
WP-DBmanager はセーフモードでは動かない、で coreserver の php はセーフモードで動作しているから。
admin.php をCGIで動作させる為、wp-admin下に、.htaccessを設置する。
4.日本語化
日本語化ができる。
WP-DBManager 日本語版 から「WP-DBManager[v2.20] 日本語版」をダウンロードし、その中の wp-dbmanager-ja.mo 、 wp-dbmanager-ja.po をプラグイン WP-DBManager のルートにコピーする。
そのとき、サーバーの障害を疑いますが、同一レンタルサーバー上の他のサイトが動作しているときは、データベーステーブルの最適化で回復します。
CORESERVER 上で WordPress を運用していると、 MySQL のオーバーヘッドがある程度の量になるとアクセスができなくなるようです。
他のレンタルサーバーではこのような現象に遭遇したことがありませんので多分 CORESERVER 特有の現象のように思えます。
phpMyAdmin を使い、トラブルの都度最適化を行ってきましたが、何か良い手段が無いか探してみました。
プラグイン WP-DBmanager、データベースのバックアップと最適化ができるそうです。
これで、週一回のDBバックアップ&メールでファイル送信、3日毎にDB最適化、2週毎にDB修復を行ってくれるようです。(全てデフォルト値、それぞれ変更可能)
WP-DBmanager インストールのポイント
1.プラグインを有効化すると、『警告"Your backup folder MIGHT be visible to the public"が表示されました。』が表示される。
DBバックアップフォルダの wp-content/backup-db が誰でもアクセス可能な状態ある警告。
wp-content/plugins/wp-dbmanager/htaccess.txt を .htaccess にリネームして wp-content/backup-db に移動しろと言っているので、それを実行しようとすると、FTP で wp-content/backup-db が開けない。
これは backup-db の"所有者"と"グループ"が"apache"だから。
所有者変更は面倒なのでFTPで backup-db を削除して、再度 FTP で backup-db を作成し、パーミッション707、書込み可能に変更する。
その後、先ほどの .htaccess を移動する。
2.Database > Backup DB 画面のエラー
DB Options の設定が必要。
coreserver は以下を設定する
"Path To mysqldump:"
/usr/local/mysql/bin/mysqldump
"Path To mysql:"
/usr/local/mysql/bin/mysql
この設定後も画面上に"which: no mysql in…"と表示されますが、問題無いようなので気にしない。
3.DBバックアップファイルが0バイト
WP-DBmanager はセーフモードでは動かない、で coreserver の php はセーフモードで動作しているから。
admin.php をCGIで動作させる為、wp-admin下に、.htaccessを設置する。
<files admin.php>
AddHandler application/x-httpd-phpcgi .php
</files>
4.日本語化
日本語化ができる。
WP-DBManager 日本語版 から「WP-DBManager[v2.20] 日本語版」をダウンロードし、その中の wp-dbmanager-ja.mo 、 wp-dbmanager-ja.po をプラグイン WP-DBManager のルートにコピーする。
スマートフォンは「PC向けWebサイト」をそのまま閲覧できるけれど、やはりスマートフォンで閲覧するなら「スマートフォン向けサイト」は快適。
そこでXOOPSサイトのスマートフォン対応を検討してみました。
HypCommonFunc の機能の1つである携帯対応レンダラーでスマートフォンおよびガラケーにも対応できます。
とりあえず「スマートフォン向けサイト」らしくする為だけなら、その設定は簡単です。
XOOPS 2 系、XCL2.2、XCL2.1 に対応できます。
携帯用テーマセット と 携帯用テンプレートセット は機種別に設定できそうなので、次回はその辺りをいろいろトライしてみる予定です。
そこでXOOPSサイトのスマートフォン対応を検討してみました。
HypCommonFunc の機能の1つである携帯対応レンダラーでスマートフォンおよびガラケーにも対応できます。
とりあえず「スマートフォン向けサイト」らしくする為だけなら、その設定は簡単です。
XOOPS 2 系、XCL2.2、XCL2.1 に対応できます。
携帯用テーマセット と 携帯用テンプレートセット は機種別に設定できそうなので、次回はその辺りをいろいろトライしてみる予定です。
カレンダーモジュール「chaCalendar」を利用して営業日カレンダーを追加しました。
日付の背景が赤の日が休業日です。
休業日は電話連絡は避け、メール、FAXあるいはお問い合わせフォームでご連絡してください。
緊急時はこの限りではありません。
会社不在の場合、電話は携帯に転送され連絡が取れます。
日付の背景が赤の日が休業日です。
休業日は電話連絡は避け、メール、FAXあるいはお問い合わせフォームでご連絡してください。
緊急時はこの限りではありません。
会社不在の場合、電話は携帯に転送され連絡が取れます。
長らくライブ画像配信に COREGA製 CG-WLNC11MN を使ってきましたが、無線LANルーターを PR-S00NE + SC-32SE に替えたら動作が不安定に。
原因は電波強度不足でした。
このネットワークカメラ、価格コムのクチコム投稿に『アンテナ配線が自然に外れ?、それで無線到達距離が出なくなることがある』とあったので、確認してみようとバラしてみました。
しかしケース開けに失敗して完全に破壊!
十分使ったから良いかと気を取り直して、新しいネットワークカメラを調達しました。
PLANEX製 CS-W05N 、COREGA製 CG-WLNCPTGL の2台ですが、どちらもWEB公開用には難があるモノでした。
原因は電波強度不足でした。
このネットワークカメラ、価格コムのクチコム投稿に『アンテナ配線が自然に外れ?、それで無線到達距離が出なくなることがある』とあったので、確認してみようとバラしてみました。
しかしケース開けに失敗して完全に破壊!
十分使ったから良いかと気を取り直して、新しいネットワークカメラを調達しました。
PLANEX製 CS-W05N 、COREGA製 CG-WLNCPTGL の2台ですが、どちらもWEB公開用には難があるモノでした。
いつの間にかIEで lightbox が動作しなくなっていました。調べてみるとIE9では lightbox に不具合がでるとか。
この不具合は、prototype.js の最新版との差し替えで解決します。
Prototype JavaScript framework
この不具合は、prototype.js の最新版との差し替えで解決します。
Prototype JavaScript framework
クロネコwebコレクト対応メモ
クロネコwebコレクトは決済結果データをPOSTする機能がありますが、利用するには企業認証型のSSL証明書が必須となっています。対応するショップは個人事業主で、決済結果データは利用できません。
今回のクロネコwebコレクト対応は決済結果データ利用無しの為、クロネコ@ペイメントモジュールの改造で済みました。
以下はクロネコwebコレクト対応項目です。
・Zen-Cart日本語版(v1.3.0.2-l10n-jp-6)+携帯モジュール(v0.9-2)用
・決済結果データ利用無し
・クロネコ@ペイメントモジュールの改造で対応
1.ファイル名変更
kuroneko_at_payment のままでも良いのですが、区別の為にファイル名を kuroneko_web_collect にリネーム
/includes/languages/english/modules/payment/kuroneko_web_collect.php
/includes/languages/japanese/modules/payment/kuroneko_web_collect.php
/includes/modules/payment/kuroneko_web_collect.php
/includes/templates/template_default/templates/tpl_checkout_success_default.php
/includes/templates/zen_mobile/templates/tpl_checkout_success_default.php
/includes/templates/template_default/buttons/japanese/button_kuroneko_web_collect.gif
2.定数名など置換
kuroneko_at_payment → kuroneko_web_collect
KURONEKO_AT_PAYMENT → KURONEKO_WEB_COLLECT
クロネコ@ペイメント → クロネコwebコレクト
に置換
3.リンクボタンを"クロネコwebコレクト"用に変更
/includes/templates/template_default/buttons/japanese/button_kuroneko_web_collect.gif
4.コメント変更
/includes/languages/english/modules/payment/kuroneko_web_collect.php
/includes/languages/japanese/modules/payment/kuroneko_web_collect.php
クロネコ@ペイメントの文言をクロネコwebコレクトの文言に変更する。
5.送信先デフォルトURL変更と携帯用追加及びPC/携帯で判断しそれぞれ送信先URLを設定するロジックを追加
/includes/modules/payment/kuroneko_web_collect.php
6. form をクロネコwebコレクト用に変更
/includes/modules/payment/kuroneko_web_collect.php
送信パラメータがPC/携帯で異なるので、PC/携帯でそれぞれ処理を分離し変更
購入者カナ氏名追加
姓名セパレートを全角スペースに変更
UTF-8ページからShift-jisコード送信ロジック追加(PCのみ)
7.テンプレート変更
/includes/templates/template_default/templates/tpl_checkout_success_default.php
/includes/templates/zen_mobile/templates/tpl_checkout_success_default.php
「顧客への商品の通知=尋ねない」 に設定するとkuronekoモジュール呼び出しがそのブロック内にある為表示されない。
kuronekoモジュール呼び出しをそのブロック外に移動。(PC、携帯ともに)
このときリンクの見落としを考慮してPCと携帯で移動先を変える。
携帯は「gift certificate- send or spend box」下
PCは「product notifications box」下
クロネコwebコレクトは決済結果データをPOSTする機能がありますが、利用するには企業認証型のSSL証明書が必須となっています。対応するショップは個人事業主で、決済結果データは利用できません。
今回のクロネコwebコレクト対応は決済結果データ利用無しの為、クロネコ@ペイメントモジュールの改造で済みました。
以下はクロネコwebコレクト対応項目です。
・Zen-Cart日本語版(v1.3.0.2-l10n-jp-6)+携帯モジュール(v0.9-2)用
・決済結果データ利用無し
・クロネコ@ペイメントモジュールの改造で対応
1.ファイル名変更
kuroneko_at_payment のままでも良いのですが、区別の為にファイル名を kuroneko_web_collect にリネーム
/includes/languages/english/modules/payment/kuroneko_web_collect.php
/includes/languages/japanese/modules/payment/kuroneko_web_collect.php
/includes/modules/payment/kuroneko_web_collect.php
/includes/templates/template_default/templates/tpl_checkout_success_default.php
/includes/templates/zen_mobile/templates/tpl_checkout_success_default.php
/includes/templates/template_default/buttons/japanese/button_kuroneko_web_collect.gif
2.定数名など置換
kuroneko_at_payment → kuroneko_web_collect
KURONEKO_AT_PAYMENT → KURONEKO_WEB_COLLECT
クロネコ@ペイメント → クロネコwebコレクト
に置換
3.リンクボタンを"クロネコwebコレクト"用に変更
/includes/templates/template_default/buttons/japanese/button_kuroneko_web_collect.gif
4.コメント変更
/includes/languages/english/modules/payment/kuroneko_web_collect.php
/includes/languages/japanese/modules/payment/kuroneko_web_collect.php
クロネコ@ペイメントの文言をクロネコwebコレクトの文言に変更する。
5.送信先デフォルトURL変更と携帯用追加及びPC/携帯で判断しそれぞれ送信先URLを設定するロジックを追加
/includes/modules/payment/kuroneko_web_collect.php
6. form をクロネコwebコレクト用に変更
/includes/modules/payment/kuroneko_web_collect.php
送信パラメータがPC/携帯で異なるので、PC/携帯でそれぞれ処理を分離し変更
購入者カナ氏名追加
姓名セパレートを全角スペースに変更
UTF-8ページからShift-jisコード送信ロジック追加(PCのみ)
7.テンプレート変更
/includes/templates/template_default/templates/tpl_checkout_success_default.php
/includes/templates/zen_mobile/templates/tpl_checkout_success_default.php
「顧客への商品の通知=尋ねない」 に設定するとkuronekoモジュール呼び出しがそのブロック内にある為表示されない。
kuronekoモジュール呼び出しをそのブロック外に移動。(PC、携帯ともに)
このときリンクの見落としを考慮してPCと携帯で移動先を変える。
携帯は「gift certificate- send or spend box」下
PCは「product notifications box」下
テンプレートモンスターのZen-Cart用テンプレート(#24654)をZen-Cart日本語版(v1.3.0.2-l10n-jp-6)にインストールしました。Zen-Cart1.3.8 英語版用なので、若干カスタマイズが必要でした。
Zen-Cart用テンプレート(#24654)
テンプレートモンスターのZen-Cart用テンプレートのインストール方法
readme.txtに従ってインストールします。
そのままショップ画面をアクセスすると、以下のエラーが表示されますのでその対応を行います。
1.Fatal error: Call to undefined function: zen_get_generated_category_path_rev() in
zen_get_generated_category_path_rev関数が1.3.0では未定義な為のエラー。
/includes/functions/functions_categories.php に1.3.8から該当関数をコピー&ペーストする。
2.Fatal error: Call to undefined function: zen_get_new_date_range() in
zen_get_new_date_range関数が1.3.0では未定義の為のエラー。
/includes/functions/functions_lookups.php に1.3.8から該当関数をコピー&ペーストする。
3.メーカーを選ぶと以下のエラーが発生する
Warning: require(includes/modules/FILENAME_PRODUCT_LISTING_ALPHA_SORTER.php) [function.require]: failed to open stream: No such file or directory in C:\xampp\htdocs\zencart\includes\templates\theme228\templates\tpl_index_product_list.php on line 166
Fatal error: require() [function.require]: Failed opening required 'includes/modules/FILENAME_PRODUCT_LISTING_ALPHA_SORTER.php' (include_path='.;C:\xampp\php\pear\') in C:\xampp\htdocs\zencart\includes\templates\theme228\templates\tpl_index_product_list.php on line 166
FILENAME_PRODUCT_LISTING_ALPHA_SORTER が1.3.0では未定義の為のエラー。
/includes/filenames.php に
加えて、 product_listing_alpha_sorter.php を /includes/modules/ 下にコピーする。
4. banner2 と banner4 が表示しない
トップページのみ表示するように、 /includes/templates/theme228/common/tpl_main_page.php で $this_is_home_page をチェックしているが、1.3.0では $this_is_home_page が未定義の為表示されない。
/includes/init_includes/init_category_path.php に1.8.3から $this_is_home_page の定義部分をコピー&ペーストする。
の末尾に以下追加
5.商品一覧でカテゴリーイメージが表示されない
定数 PRODUCT_LIST_CATEGORIES_IMAGE_STATUS が未定義な為
1.8.3の /zc_install/sql/mysql_zencart.sql の該当部分を使い、phpmyadminでDBにインサートする。
6.商品詳細でカテゴリ名とカテゴリーイメージが表示されない
$category_icon_display_image と $category_icon_display_name が未定義な為。
/includes/modules/category_icon_display.php に1.8.3の定義部分をコピー&ペーストする。
7. No.6 で PRODUCT_INFO_CATEGORIES_IMAGE_STATUS も未定義なので1.8.3の /zc_install/sql/mysql_zencart.sql の該当部分を使い、phpmyadminでDBにインサートする。
8.おすすめ商品のタイトルが複数行になると、表示が不揃いになるので、タイトルが一行に収まるように変更
/includes/modules/theme228/featured_products.php
9.カートで支払い情報入力でエラー
Fatal error: Call to undefined method payment::in_special_checkout() in C:\xampp\htdocs\kesela2\includes\templates\theme228\templates\tpl_checkout_payment_default.php on line 39
関数in_special_checkout()が未定義。
/includes/classes/payment.php に1.8.3の定義部分をコピー&ペーストする。
10.配送先変更ボタンが機能しない
$editShippingButtonLink が未定義な為。
Classic Template と同じように決め打ちに変更。
/includes/templates/theme228/templates/tpl_checkout_confirmation_default.php
11.配送先変更ボタンが表示しない(お届け先と配送方法を記入してください画面)
$displayAddressEdit、$editShippingButtonLink が未定義な為。
Classic Template と同じように決め打ちに変更。
/includes/templates/theme228/templates/tpl_checkout_shipping_default.php
12.カートを空にしたときエラーが発生する
1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SQL_SHOW_SHOPPING_CART_EMPTY' at line 1
in:
[SQL_SHOW_SHOPPING_CART_EMPTY]
定数や変数の未定義による。
/includes/templates/theme228/templates/tpl_shopping_cart_default.php
定数や変数参照部分をコメントアウトする。
書き出してみると「若干カスタマイズ」ではなかったですね!
Zen-Cart用テンプレート(#24654)
テンプレートモンスターのZen-Cart用テンプレートのインストール方法
readme.txtに従ってインストールします。
そのままショップ画面をアクセスすると、以下のエラーが表示されますのでその対応を行います。
1.Fatal error: Call to undefined function: zen_get_generated_category_path_rev() in
zen_get_generated_category_path_rev関数が1.3.0では未定義な為のエラー。
/includes/functions/functions_categories.php に1.3.8から該当関数をコピー&ペーストする。
2.Fatal error: Call to undefined function: zen_get_new_date_range() in
zen_get_new_date_range関数が1.3.0では未定義の為のエラー。
/includes/functions/functions_lookups.php に1.3.8から該当関数をコピー&ペーストする。
3.メーカーを選ぶと以下のエラーが発生する
Warning: require(includes/modules/FILENAME_PRODUCT_LISTING_ALPHA_SORTER.php) [function.require]: failed to open stream: No such file or directory in C:\xampp\htdocs\zencart\includes\templates\theme228\templates\tpl_index_product_list.php on line 166
Fatal error: require() [function.require]: Failed opening required 'includes/modules/FILENAME_PRODUCT_LISTING_ALPHA_SORTER.php' (include_path='.;C:\xampp\php\pear\') in C:\xampp\htdocs\zencart\includes\templates\theme228\templates\tpl_index_product_list.php on line 166
FILENAME_PRODUCT_LISTING_ALPHA_SORTER が1.3.0では未定義の為のエラー。
/includes/filenames.php に
define('FILENAME_PRODUCT_LISTING_ALPHA_SORTER','product_listing_alpha_sorter');
を追加する。加えて、 product_listing_alpha_sorter.php を /includes/modules/ 下にコピーする。
4. banner2 と banner4 が表示しない
トップページのみ表示するように、 /includes/templates/theme228/common/tpl_main_page.php で $this_is_home_page をチェックしているが、1.3.0では $this_is_home_page が未定義の為表示されない。
/includes/init_includes/init_category_path.php に1.8.3から $this_is_home_page の定義部分をコピー&ペーストする。
の末尾に以下追加
// determine whether the current page is the home page or a product listing
//$this_is_home_page = ($current_page=='index' && ((int)$cPath == 0 || $show_welcome == true));
$this_is_home_page = ($current_page=='index' && (!isset($_GET['cPath'])) && (!isset($_GET['manufacturers_id'])) && (!isset($_GET['typefilter'])) );
5.商品一覧でカテゴリーイメージが表示されない
定数 PRODUCT_LIST_CATEGORIES_IMAGE_STATUS が未定義な為
1.8.3の /zc_install/sql/mysql_zencart.sql の該当部分を使い、phpmyadminでDBにインサートする。
INSERT INTO configuration (`configuration_title`, `configuration_key`, `configuration_value`, `configuration_description`, `configuration_group_id`, `sort_order`, `last_modified`, `date_added`, `use_function`, `set_function`) VALUES( '商品一覧でカテゴリイメージを表示', 'PRODUCT_LIST_CATEGORIES_IMAGE_STATUS', 'true', 'カテゴリ内商品一覧でカテゴリ画像を表示しますか', 8, 52, NULL, now(), NULL, 'zen_cfg_select_option(array(''true'', ''false''), ');
6.商品詳細でカテゴリ名とカテゴリーイメージが表示されない
$category_icon_display_image と $category_icon_display_name が未定義な為。
/includes/modules/category_icon_display.php に1.8.3の定義部分をコピー&ペーストする。
7. No.6 で PRODUCT_INFO_CATEGORIES_IMAGE_STATUS も未定義なので1.8.3の /zc_install/sql/mysql_zencart.sql の該当部分を使い、phpmyadminでDBにインサートする。
INSERT INTO configuration (`configuration_title`, `configuration_key`, `configuration_value`, `configuration_description`, `configuration_group_id`, `sort_order`, `last_modified`, `date_added`, `use_function`, `set_function`) VALUES( '[前へ] [次へ] - カテゴリ名と画像の表示設定', 'PRODUCT_INFO_CATEGORIES_IMAGE_STATUS', '2', 'カテゴリの画像とカテゴリ名の表示設定<br />0 = カテゴリ名と画像を常に表示<br />1 = カテゴリ名だけを表示<br />2 = カテゴリ名と対象がある場合だけ画像を表示<br />', 18, 20, NULL, now(), NULL, 'zen_cfg_select_drop_down(array(array(''id''=>''0'', ''text''=>''Category Name and Image Always''), array(''id''=>''1'', ''text''=>''Category Name only''), array(''id''=>''2'', ''text''=>''Category Name and Image when not blank'')),');
8.おすすめ商品のタイトルが複数行になると、表示が不揃いになるので、タイトルが一行に収まるように変更
/includes/modules/theme228/featured_products.php
$products_name = '<a href="' . zen_href_link(zen_get_info_page($featured_products->fields['products_id']), 'cPath=' . $productsInCategory[$featured_products->fields['products_id']] . '&products_id=' . $featured_products->fields['products_id']) . '">' . $featured_products->fields['products_name'] . '</a>';
↓ $products_name = '<a href="' . zen_href_link(zen_get_info_page($featured_products->fields['products_id']), 'cPath=' . $productsInCategory[$featured_products->fields['products_id']] . '&products_id=' . $featured_products->fields['products_id']) . '">' . mb_strimwidth ($featured_products->fields['products_name'], 0, 26, "…") . '</a>';
9.カートで支払い情報入力でエラー
Fatal error: Call to undefined method payment::in_special_checkout() in C:\xampp\htdocs\kesela2\includes\templates\theme228\templates\tpl_checkout_payment_default.php on line 39
関数in_special_checkout()が未定義。
/includes/classes/payment.php に1.8.3の定義部分をコピー&ペーストする。
10.配送先変更ボタンが機能しない
$editShippingButtonLink が未定義な為。
Classic Template と同じように決め打ちに変更。
/includes/templates/theme228/templates/tpl_checkout_confirmation_default.php
<div class="buttonRow forward"><?php echo '<a href="' . $editShippingButtonLink . '">' . zen_image_button(BUTTON_IMAGE_EDIT_SMALL, BUTTON_EDIT_SMALL_ALT) . '</a>'; ?></div>
↓<div class="buttonRow forward"><?php echo '<a href="' . zen_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL') . '">' . zen_image_button(BUTTON_IMAGE_EDIT_SMALL, BUTTON_EDIT_SMALL_ALT) . '</a>'; ?></div>
11.配送先変更ボタンが表示しない(お届け先と配送方法を記入してください画面)
$displayAddressEdit、$editShippingButtonLink が未定義な為。
Classic Template と同じように決め打ちに変更。
/includes/templates/theme228/templates/tpl_checkout_shipping_default.php
<?php if ($displayAddressEdit) { ?>
<div class="buttonRow forward"><?php echo '<a href="' . $editShippingButtonLink . '">' . zen_image_button(BUTTON_IMAGE_CHANGE_ADDRESS, BUTTON_CHANGE_ADDRESS_ALT) . '</a>'; ?></div>
<?php } ?>
↓<div class="buttonRow forward"><?php echo '<a href="' . zen_href_link(FILENAME_CHECKOUT_SHIPPING_ADDRESS, '', 'SSL') . '">' . zen_image_button(BUTTON_IMAGE_CHANGE_ADDRESS, BUTTON_CHANGE_ADDRESS_ALT) . '</a>'; ?></div>
12.カートを空にしたときエラーが発生する
1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SQL_SHOW_SHOPPING_CART_EMPTY' at line 1
in:
[SQL_SHOW_SHOPPING_CART_EMPTY]
定数や変数の未定義による。
/includes/templates/theme228/templates/tpl_shopping_cart_default.php
定数や変数参照部分をコメントアウトする。
書き出してみると「若干カスタマイズ」ではなかったですね!
PCモニタが真っ黒になって数秒後に元に戻るという事象が発生していました。
一日中使っていても発生しないときもありますが、一度発生すると何回か繰り返し発生します。
使っているモニタ(DEL 30インチ)がヘタって来たかなと思っていましたが、試しにググってみたら結構な数がヒットしました。
それによるとディスプレイドライバの問題とか。
最新Release 260.89をインストールして様子をみることにします。
PCのスペック
OS:Windows7 Professional 64bit
CPU:Corei7 860
ディスプレイアダプター:NVIDIA GeForce 8600 GT
モニター:Dell 3007WFP×2
一日中使っていても発生しないときもありますが、一度発生すると何回か繰り返し発生します。
使っているモニタ(DEL 30インチ)がヘタって来たかなと思っていましたが、試しにググってみたら結構な数がヒットしました。
それによるとディスプレイドライバの問題とか。
最新Release 260.89をインストールして様子をみることにします。
PCのスペック
OS:Windows7 Professional 64bit
CPU:Corei7 860
ディスプレイアダプター:NVIDIA GeForce 8600 GT
モニター:Dell 3007WFP×2
中国語?や謎の言語等、英数字以外の文字を含む SPAM が増え、それで日本語が含まれていることを要求する protector のプラグイン postcommon_post_need_multibyte.php を擦り抜け、書き込まれてしまう SPAM が多くなってきました。
その対策として、 protector のプラグイン postcommon_post_need_multibyte.php を平仮名が含まれることを要求する仕様にハックしてみました。
今のところ、このハック適用後、全ての SPAM が拒否できています。
protector-3.4 postcommon_post_need_multibyte.php の29行辺りを以下のようにハック。
その対策として、 protector のプラグイン postcommon_post_need_multibyte.php を平仮名が含まれることを要求する仕様にハックしてみました。
今のところ、このハック適用後、全ての SPAM が拒否できています。
protector-3.4 postcommon_post_need_multibyte.php の29行辺りを以下のようにハック。
if( strlen( $data ) > $check_length ) {
// if( strlen( $data ) == mb_strlen( $data ) ) {
if( ! mb_ereg_match(".*[あ-ん]", $data) ) {
$this->protector->message .=
"No multibyte character was found ($data)\n" ;
RSS feed を利用すると、自分のウェブサイトに、お気に入りの Blog サイトの更新情報などを表示することができます。例えば、サイト間でのリンクを動的に生成することができます。通常 Blog サイト側のプロキシ処理が必要ですが、”Google Ajax Feeds API“を使うと簡単に RSS feed をウェブサイトに統合できます。
以下の通り、極めて簡単に実現できます。
Googleアカウントでログイン。Google AJAX Feed API への登録 から、RSSを表示させたいサイトのURLを入力し 「APIキーを生成」ボタンをクリックします。
APIキーが生成されサンプルウェブページが表示されます。これを自分のサイトのに埋め込めばとりあえずエントリタイトルが表示されます。
Ajaxの学習ならAjaxTower を参考に目的の仕様を作りあげました。
【仕様】
・エントリの表題を表示する
・そのエントリの表題をクリックするとエントリ本文を表示する
・表示するエントリの表題は3件
・キャッシュの強制書き換え(キャッシュ騙し)を行う
<head>~</head>の間で、JavaScriptを読み込みます。以下です。
そして、<body>~</body>で、外部RSSを表示したい箇所に以下を挿入します。
feed_api.jsのソースコード
これでイケました。
以下の通り、極めて簡単に実現できます。
Googleアカウントでログイン。Google AJAX Feed API への登録 から、RSSを表示させたいサイトのURLを入力し 「APIキーを生成」ボタンをクリックします。
APIキーが生成されサンプルウェブページが表示されます。これを自分のサイトのに埋め込めばとりあえずエントリタイトルが表示されます。
Ajaxの学習ならAjaxTower を参考に目的の仕様を作りあげました。
【仕様】
・エントリの表題を表示する
・そのエントリの表題をクリックするとエントリ本文を表示する
・表示するエントリの表題は3件
・キャッシュの強制書き換え(キャッシュ騙し)を行う
<head>~</head>の間で、JavaScriptを読み込みます。以下です。
<script type="text/javascript" src="http://www.google.com
/jsapi?key=APIキー"></script>
<script type="text/javascript" src="./feed_api.js"></script>そして、<body>~</body>で、外部RSSを表示したい箇所に以下を挿入します。
<div id="feed"></div>
feed_api.jsのソースコード
google.load("feeds", "1");
function initialize() {
var feedurl = "RSS feed の URL" + (new Date()).getTime();
var feed = new google.feeds.Feed(feedurl);
feed.setNumEntries(3);
feed.load(dispfeed);
function dispfeed(result){
if (!result.error){
var container = document.getElementById("feed");
var htmlstr = "";
for (var i = 0; i < result.feed.entries.length; i++) {
var entry = result.feed.entries[i];
htmlstr +=
'<h3>・<a href="' + entry.link + '">' + entry.title + '</a></h3>';
}
container.innerHTML = htmlstr;
}else{
alert(result.error.code + ":" + result.error.message);
}
}
}
google.setOnLoadCallback(initialize);これでイケました。
