zencart:一定時間new表示
Posted on 日曜日, 6 月 21st, 2009 at 7:29 PMzencartにて 一定時間 new(画像)を表示させよう。php
トップページやカテゴリを開いた時、下に表示される「○月度の新着商品」・「おすすめ商品」や、全商品ページやおすすめ商品ページなどに 登録日より3日で消えるNEWマーク画像を表示し、より目立たせよう。^^
ちなみに新着商品表示期限は、14日にしている。(管理画面にて設定済)
そして更に!newを3日表示させることにより 新着が新着の中でもより強調されるのでいいかな^^ あとは・・・全商品ページを見た時にも、おすすめ商品を見た時にも、newって画像が 付いてたら なおよし!ってことです。
とりあえず思うような表示になっているのでおkかなぁ~^^
~~~~~~~
トップページの○月度の新着・おすすめ
修正ファイルは、
新着情報/includes/modules/テンプレート/new_products.php
おすすめ/includes/modules/テンプレート/featured_products.php
new_products.phpの50行目辺りと63行目辺りに次の青文字を足す。
------------------------
// show only when 1 or more
if ($num_products_count > 0) {
if ($num_products_count < SHOW_PRODUCT_INFO_COLUMNS_NEW_PRODUCTS || SHOW_PRODUCT_INFO_COLUMNS_NEW_PRODUCTS == 0 ) {
$col_width = floor(100/$num_products_count);
} else {
$col_width = floor(100/SHOW_PRODUCT_INFO_COLUMNS_NEW_PRODUCTS);
}
while (!$new_products->EOF) {
$beforedays = date("Y-m-d,h:i:s",strtotime("-72 hours"));
if ($beforedays < $new_products->fields['products_date_added'] ) {
$newdays= "<img src='/images/new.gif' >\n";
} else {
$newdays= " \n";
}
$products_price = zen_get_products_display_price($new_products->fields['products_id']);
$new_products->fields['products_name'] = zen_get_products_name($new_products->fields['products_id']);
$list_box_contents[$row][$col] = array('params' => 'class="centerBoxContentsNew centeredContent back"' . ' ' . 'style="width:' . $col_width . '%;"',
'text' => '<div class="centerBnew"><a href="' . zen_href_link(zen_get_info_page($new_products->fields['products_id']), 'products_id=' . $new_products->fields['products_id']) . '">' . zen_image(DIR_WS_IMAGES . $new_products->fields['products_image'], $new_products->fields['products_name'], IMAGE_PRODUCT_NEW_WIDTH, IMAGE_PRODUCT_NEW_HEIGHT) . '</a><br /><a href="' . zen_href_link(zen_get_info_page($new_products->fields['products_id']), 'products_id=' . $new_products->fields['products_id']) . '">' . $new_products->fields['products_name'] . '</a><br />' . $newdays . $products_price .'</div>');
----------------
おすすめは、featured_products.php
newと異なる部分products_date_added が ないので足さないといけないようだ。15行目と21行目辺り
こんな感じ
$featured_products_query = "select distinct p.products_id, p.products_image, pd.products_name, p.products_date_added
あとは似たようなもん。w
// show only when 1 or more
if ($num_products_count > 0) {
if ($num_products_count < SHOW_PRODUCT_INFO_COLUMNS_FEATURED_PRODUCTS || SHOW_PRODUCT_INFO_COLUMNS_FEATURED_PRODUCTS == 0) {
$col_width = floor(100/$num_products_count);
} else {
$col_width = floor(100/SHOW_PRODUCT_INFO_COLUMNS_FEATURED_PRODUCTS);
}
while (!$featured_products->EOF) {
$beforedays = date("Y-m-d,h:i:s",strtotime("-72 hours"));
if ($beforedays < $featured_products->fields['products_date_added'] ) {
$newdays= "<img src='images/new.gif' >\n";
} else {
$newdays= " \n";
}
$products_price = zen_get_products_display_price($featured_products->fields['products_id']);
$list_box_contents[$row][$col] = array('params' =>'class="centerBoxContentsFeatured centeredContent back"' . ' ' . 'style="width:' . $col_width . '%;"',
'text' => '<div class="centerBfeatured"><a href="' . zen_href_link(zen_get_info_page($featured_products->fields['products_id']), 'products_id=' . $featured_products->fields['products_id']) . '">' . zen_image(DIR_WS_IMAGES . $featured_products->fields['products_image'], $featured_products->fields['products_name'], IMAGE_FEATURED_PRODUCTS_LISTING_WIDTH, IMAGE_FEATURED_PRODUCTS_LISTING_HEIGHT) . '</a><br /><a href="' . zen_href_link(zen_get_info_page($featured_products->fields['products_id']), 'products_id=' . $featured_products->fields['products_id']) . '">' . $featured_products->fields['products_name'] . '</a><br />' .$newdays. $products_price .'</div>');
-------------
$beforedays = date("Y-m-d,h:i:s",strtotime("-72 hours")); この数字を 変更すれば消える時間が変更できる。
-3 days でも 同じ意味かな。 72 hoursは 72時間後 3 daysは 3日後 微妙に違うか・・・
全商品ページのファイルは、
includes/templates/テンプレート/templates/tpl_modules_products_all_listing.php
新着情報ページ
includes/templates/テンプレート/templates/tpl_modules_products_new_listing.php
このファイルの修正は 157行目辺り(いろりろ変更しているので行数不明w・・他と揃えるがいいかも?w)
に printにしてみた。
<?php
$beforedays = date("Y-m-d.h:i:s",strtotime("-72 hours",time()));
if ($beforedays < $products_new->fields['products_date_added'] ) {
print "<img src='/images/new.gif' >\n";
} else {
print " \n";
}
?>
--------------
場所は任意で変更可能<例>
if ($disp_sort_order->fields['configuration_key'] == 'PRODUCT_NEW_LIST_NAME') {
echo $newdays,$display_products_name;
}
<商品名の前>
--------------
-----
メーカー:○○
の「メーカー:」が 不要の場合
/includes/languages/japanese/テンプレート/products_new.php
define('TEXT_MANUFACTURER', 'メーカー:');
のメーカー:を削除する。のが早いかな。
define('TEXT_MANUFACTURER', '');
関連記事
2 Trackbacks/Pings
Leave a reply