CommerCentr
EN
Sign in

Новинка (товар що доданий менше 14 днів)

#1
Доброго часу, пропоную до огляду простеньке рішення, котре сам використовую, для відображення лейблу по типу NEW на сторінці товару чи в блоках окремих, рішення базується на окремій функції, котру додав у хелпери (у себе, додано в файл system/helper/general.php) ось таку функцію:
function isNew($date_added, $interval = 14) {
$new = false;
if ($date_added) {
$now = new DateTime(date('Y-m-d H:i:s', time()));
$product_date = new DateTime(date('Y-m-d H:i:s', strtotime($date_added)));
$new_interval = $product_date->diff($now)->days;
if ($new_interval < $interval) { // перевірка, чи менше 14 днів
$new = true;
}
}
return $new;
}

і тепер, у будь яких массивах з товарами чи в загальному контроллері, створюється змінна в котру попадає або FALSE або TRUE

$data['products'][] = array(
'product_id' => $result['product_id'],
'thumb' => $image,
'name' => $result['name'],
'description' => utf8_substr(trim(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'))), 0, $this->config->get('theme_' . $this->config->get('config_theme') . '_product_description_length')) . '...',
'price' => $price,
'special' => $special,
'is_new' => isNew($result['date_added']), // ось тут додано ключик з перевіркою на новинку, можна додати 2-й аргумент - кількість днів на перевірку: isNew($result['date_added'], 15)
'tax' => $tax,
'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1,
'rating' => $result['rating'],
'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
);

а у самому TPL файлі виводжу по типу:

<?php if ($product['is_new']) { ?>
<div class="new-item-slide-new-receipts__price-image-news">
<div class="new-item-slide-new-receipts__price-image-new sub-title sub-title_18">
New
</div>
</div>
<?php } ?>
#2
(((
function isNew($date_added, $interval = 14) {
#3
SlaSoft(((
function isNew($date_added, $interval = 14) {

цілком підтримую, некошерно хардкодити, якщо можна й справді аргументом дописать, дякую за коррекцію, переписую вдосконалену функцію в основному повідомленні.

Anyone can read. To post and vote, sign in.