zencart:商品詳細項目追加(newマーク)
Posted on 土曜日, 8 月 29th, 2009 at 7:50 PMzencart 商品詳細画面にて項目を増やそう。そして
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 '';
}
?>
とりあえず現時点では、思うように動いている?ようです。動作保証できません・・・。自己責任。 つづく・・・
関連記事