保護中: zencart:商品項目追加(メーカー名風)
Posted on 日曜日, 11 月 8th, 2009 at 2:56 PM関連記事
関連記事
その他の画面にて表示させる。例えば「新着一覧」。
DBの configuration を見ると ・・・・こんな感じw
configuration_id 409~492
configuration_title 商品画像を表示 ~ 複数商品の数量欄の有無・表示位置
configuration_key PRODUCT_NEW_LIST_IMAGE ~ PRODUCT_NEW_LISTING_MULTIPLE_ADD_TO_CART
configuration_value 1101 ~
configuration_description 商品画像を表示しますか? ~
configuration_group_id 21
sort_order 1 ~ 25
last_modified ~ 2007-08-05 23:15:56
date_added ~ 2007-07-30 23:55:02
use_function
set_function
--------------
追加してみるw 管理画面 「一般設定」「新着商品リストの設定」
configuration_id 未使用であれば、何番でもいいのでしょうw 「600」
configuration_title 表示タイトル
configuration_key 未使用ならば?何でも おk。「PRODUCT_NEW_LIST_●●●」
configuration_value お好みで。「2101」
configuration_description 表示詳細
configuration_group_id 21 新着一覧は 21なので 「21」
sort_order 表示順番 「26」
その他テキトーw
(おすすめは「22」全商品は「23」)
-------------
INSERT INTO `zen_configuration` (`configuration_id`, `configuration_title`, `configuration_key`, `configuration_value`, `configuration_description`, `configuration_group_id`, `sort_order`, `last_modified`, `date_added`, `use_function`, `set_function`) VALUES ('600', '●●●または●●●の表示', 'PRODUCT_NEW_LIST_●●●', '2101', '●●●を表示しますか?<br />
<br />
・0= off<br />
・1桁目:左か右か<br />
・2・3桁目:(他の表示項目との)ソート順<br />
・4桁目:表示後の改行(br)数<br />', '21', '26', NULL, '2009-09-07 14:39:32', NULL, NULL);
-----------
/modules/pages/products_new/header_php.php
p.products_new_up,
----------
/includes/templates/テンプレート/templates/tpl_modules_products_new_listing.php
に追加する。
テキトーに・・・・
if (PRODUCT_NEW_LIST_●●● != '0') {
}
if ($disp_sort_order->fields['configuration_key'] == 'PRODUCT_NEW_●●●' ) {
}
------
$before3days = date("Y-m-d.h:i:s",strtotime("-72 hours",time()));
if (PRODUCT_NEW_LIST_●●●)!= '0'and ($before3days < $products_new->fields['products_date_added'] )){
if($products_new->fields['products_new_up']== "1"){
$display_products_●●● = '<img src="/includes/templates/テンプレート/images/new_74.gif">';
} else {
$display_products_●●●= '<img src="/includes/templates/テンプレート/images/up_54.gif">';
}
} else {
$display_products_●●●= '';
}
-------------
$disp_sort_order = $db->Execute("select configuration_key, configuration_value from " . TABLE_CONFIGURATION . " where configuration_group_id='" . $group_id . "' and (configuration_value >= 1000 and configuration_value <= 1999) order by LPAD(configuration_value,11,0)");
関連記事
MySQL : 4.1.25
PHP : 5.2.8
Apache : 1.3.41
zencart:1.3.0.2
character set に ujis がなかった。(泣)
レンタルサーバーなのでmy.cnf などは無理そう。。zencartをUTF-8にする。
ぐぐればいろいろ情報があるようで感謝。
インストールする前に
mb-emulator/以外 EUCを全てUTF-8へ変更。zc_install/も admin/も
/includes/classes/db/mysql/query_factory.php
36行位に以下を追記
if (version_compare(mysql_get_server_info(), '4.1.0', '>=')) {
mysql_query('SET NAMES "utf8"', $this->link);}
~~~インストール~~~
管理画面でエラー+ログイン不可(IDとパスは正しいが画面変化なし)
admin側エラー
Fatal error: Call to a member function Execute() on a non-object in /usr/local/www/htdocs/テンプレート/public_html/includes/functions/strict_sessions.php on line 66
--対処--
/admin/includes/configure.php
77行目辺り
define('STORE_SESSIONS', 'db'); // leave empty '' for default handler or set to 'db'
を次のようにする。
define('STORE_SESSIONS', ''); // leave empty '' for default handler or set to 'db'
--エラー非表示・ログイン可能---(同様に店舗側ログインも不可な可能性がある)
-------------------
商品登録時エラー
1062 Duplicate entry '230-1' for key 1
in:
[insert into products_description (products_name, products_description, products_url, products_id, language_id) values ('', '', '', '230', '1')]
If you were entering information, press the BACK button in your browser and re-check the information you had entered to be sure you left no blank fields.
型番 空白時エラー発生?
-----
MySQL
show character set;
CREATE DATABASE zencart DEFAULT CHARACTER SET ujis;
----------
host--鯖
関連記事
zencart 商品詳細画面にて項目を増やそう。そして
newマークまたはupマークかどちらかを表示し、さらにそのマークは72時間で消えるようにしよう。
新着情報欄に並ぶ商品が再入荷か、新製品か一目でわかるように区別を付けたいw
本家でモジュールがあるらしい。。 けど今回は自力でw (最近ちょっと調子に乗ってきたw 自己責任w
考え方は、管理画面の新着リストでマーク設定が(0ではない)ONになっていてさらに商品登録後72時間以内であればマークを表示する。そのマークは商品登録時にnew (1)or up(0)を設定し 1なら newを そうでない0なら up を表示。って感じだな。。マーク設定が(0ならば)OFFなら何も表示しない。
phpmyadminでフィールドを追加。
----------
例えば
追加フィールド products_new_up
ALTER TABLE `products` ADD `products_new_up` TINYINT( 1 ) NOT NULL DEFAULT '1' AFTER `products_qty_box_status` ;
----------
/admin/includes/languages/japanese/product.php(日本語ファイル)
-------------
例えば
define('TEXT_NEW_UP', '新製品new又は再入荷品up:');
define('TEXT_PRODUCTS_NEW_UP_ON', 'Newマーク');
define('TEXT_PRODUCTS_NEW_UP_OFF', 'upマーク');
define('TEXT_PRODUCTS_NEW_UP_EDIT','upマークに設定');
-------------
商品タイプのディレクトリ以下にファイルを作ってもおkかのかもしれん。かも。?違うかもw
/admin/includes/modules/product_general/collect_info.php
/admin/includes/modules/product/collect_info.php
好きな場所に好きなのを追加する。
もちろん追加したフィールドを・・・。
-----------
例えば
'products_new_up' => PRODUCTS_NEW_UP,
p.products_new_up,
//これも?wよくわからんがw↓
// products_new_up shows
if (!isset($pInfo->products_new_up)) $pInfo->products_qty__new_up = PRODUCTS_NEW_UP;
switch ($pInfo->products_new_up) {
case '0': $is_products_new_up = false; $not_products_new_up = true; break;
case '1': $is_products_new_up = true; $not_products_new_up = false; break;
default: $is_products_new_up = true; $not_products_new_up = false;
}
///
<tr>
<td class="main"><?php echo TEXT_NEW_UP; ?></td>
<td class="main"><?php echo zen_draw_separator('pixel_trans.gif', '24', '15') . ' ' . zen_draw_radio_field('products_new_up', '1', $is_products_new_up) . ' ' . TEXT_PRODUCTS_NEW_UP_ON . ' ' . zen_draw_radio_field('products_new_up', '0', $not_products_new_up) . ' ' . TEXT_PRODUCTS_NEW_UP_OFF . ' ' . ($pInfo->products_new_up == 0 ? '<br /><span class="errorText">' . TEXT_PRODUCTS_NEW_UP_EDIT . '</span>' : ''); ?></td>
</tr>
-----------
更新内容も編集。
/admin/includes/modules/update_product.php
--------------
例えば
'products_new_up' => zen_db_prepare_input($_POST['products_new_up']),
--------------
/includes/modules/pages/product_info/main_template_vars.php
p.products_new_up,
$products_new_up = $product_info->fields['products_new_up'];
---------------
で あとは必要に応じて テキトーに編集。
-------------
例えばw
/includes/templates/テンプレート/templates/tpl_product_info_display.php
<?php
$before3days = date("Y-m-d.h:i:s",strtotime("-72 hours",time()));
if ($products_new_up == 1 and ($before3days < $products_date_added )) {
echo "<img src='/includes/templates/テンプレート/images/new_74.gif' >\n";
}
elseif ($products_new_up == 0 and ($before3days < $products_date_added ) )
{
echo "<img src='/includes/templates/テンプレート/images/up_54.gif' >\n";
}else {
echo '';
}
?>
とりあえず現時点では、思うように動いている?ようです。動作保証できません・・・。自己責任。 つづく・・・
関連記事