AFI Опубликовано 26 июля, 2016 Жалоба Поделиться Опубликовано 26 июля, 2016 Добрый день! Если в корзину добавлено несколько товаров, то на странице корзины одображается только имя последнего добавленого товара. Но, картинка и цена других товаров есть. http://prnt.sc/bvpfc4В чем может быть проблема? Цитата Ссылка на сообщение Поделиться на другие сайты
strukov Опубликовано 26 июля, 2016 Жалоба Поделиться Опубликовано 26 июля, 2016 (изменено) Покажите содержимое файла cart.tplА также view/CartView.php и view/OrderView.php Изменено 26 июля, 2016 пользователем strukov Цитата Ссылка на сообщение Поделиться на другие сайты
AFI Опубликовано 26 июля, 2016 Автор Жалоба Поделиться Опубликовано 26 июля, 2016 Покажите содержимое файла cart.tplА также view/CartView.php {$meta_title = "Корзина" scope=parent} <h3>{if $cart->purchases}В корзине {$cart->total_products} {$cart->total_products|plural:'товар':'товаров':'товара'}{else}Корзина пуста{/if}</h3> <div class="gap gap-mini"></div> {if $cart->purchases} <form method="post" name="cart" class="form"> {if $coupon_error} <div class="row"> <div class="col-md-12"> <div class="alert alert-danger"><button type="button" class="close" data-dismiss="alert">×</button> {if $coupon_error == 'invalid'}Купон недействителен{/if} </div> </div> </div> {/if} <div class="row"> <div class="col-md-12"> <table class="table cart-table"> <tbody> {foreach $cart->purchases as $purchase name=purchase} <tr> <!-- Картинка --> <td class="cart-item-image" {if $smarty.foreach.purchase.first}style="border-top: 0;"{/if}> {$image = $purchase->product->images|first} <a href="products/{$purchase->product->url}"><img src="{if $image}{$image->filename|resize:50:50}{else}design/{$settings->theme|escape}/img/70x70.png{/if}" alt="{$purchase->product->name|escape}" title="{$purchase->product->name|escape}" /></a> </td> <!-- Название --> <td {if $smarty.foreach.purchase.first}style="border-top: 0;"{/if}><a href="products/{$purchase->product->url}">{$purchase->product->name|escape}</a></td> {* <!-- Цена за единицу --> <td>{($purchase->variant->price)|convert}<noindex><!--googleoff: all--> {$currency->sign|escape}{if $purchase->variant->unit}/{$purchase->variant->unit}{/if}<!--googleon: all--></noindex></td> *} <!-- Количество --> <td class="cart-item-quantity" {if $smarty.foreach.purchase.first}style="border-top: 0;"{/if}> <i class="fa fa-minus cart-item-minus"></i> <input type="text" name="amounts[{$purchase->variant->id}]" class="cart-quantity" value="{$purchase->amount}" /> <i class="fa fa-plus cart-item-plus"></i> </td> <!-- Цена за единицу --> <td {if $smarty.foreach.purchase.first}style="border-top: 0;"{/if}>{($purchase->variant->price*$purchase->amount)|convert}<noindex><!--googleoff: all--> {$currency->sign|escape}{if $purchase->variant->unit}/{$purchase->variant->unit}{/if}<!--googleon: all--></noindex></td> <td class="cart-item-remove" {if $smarty.foreach.purchase.first}style="border-top: 0;"{/if}><a class="fa fa-times" href="cart/remove/{$purchase->variant->id}"></a></td> </tr> {/foreach} {if $coupon_request} <tr> <td colspan="6" style="text-align: left;"> <div class="form-group col-md-12"> <label>Код купона или подарочного ваучера</label> {if $cart->coupon->min_order_price > 0} <small>(купон "{$cart->coupon->code|escape}" действует для заказов от {$cart->coupon->min_order_price|convert} {$currency->sign})</small> {/if} <input type="text" name="coupon_code" value="{$cart->coupon->code|escape}" class="form-control"> </div> </td> </tr> {/if} </tbody> </table> </div> </div> <div class="row"> <div class="col-md-offset-3 col-md-6"> <ul class="cart-total-list"> {if $user->discount} <li><span>Ваша скидка</span><span>{$user->discount} %</span></li> {/if} {if $cart->coupon_discount > 0} <li><span>Купон</span><span>−{$cart->coupon_discount|convert} {$currency->sign}</span></li> {/if} <li><span>ИТОГО</span><span>{$cart->total_price|convert}<noindex><!--googleoff: all--> {$currency->sign|escape}<!--googleon: all--></noindex></span></li> </ul> </div> <div class="col-md-3"><a href="javascript:void(0);" onclick="document.cart.submit();" class="btn btn-primary">Обновить корзину</a></div> </div> <div class="gap gap-mini"></div> {* Доставка *} {if $deliveries} <h4>Выберите способ доставки</h4> <div class="row"> <div class="col-md-12"> {foreach $deliveries as $delivery} <div class="form-group"> <div class="radio"> <label> <input type="radio" name="delivery_id" value="{$delivery->id}" {if $delivery_id==$delivery->id}checked{elseif $delivery@first}checked{/if}> {$delivery->name} {if $cart->total_price < $delivery->free_from && $delivery->price>0} (Стоимость доставки — {$delivery->price|convert} {$currency->sign}) {elseif $cart->total_price >= $delivery->free_from} {*(Бесплатно)*} {/if} </label> </div> <div class="delivery-description">{$delivery->description}</div> </div> {/foreach} </div> </div> <div class="gap gap-mini"></div> {/if} {if $error} <div class="row"> <div class="col-md-12"> <div class="alert alert-danger"><button type="button" class="close" data-dismiss="alert">×</button> {if $error == 'empty_name'}Введите имя{/if}{if $error == 'empty_email'}Введите email{/if}{if $error == 'empty_phone'}Введите телефон{/if}{if $error == 'captcha'}Неверно введена капча{/if} </div> </div> </div> {/if} <h4>Информация о покупателе</h4> <div class="row"> <div class="col-md-6"> <div class="form-group"> <label for="">Имя, фамилия</label> <input type="text" name="name" value="{$name|escape}" placeholder="Ваше имя, фамилия" class="form-control" data-format=".+" data-notice="Введите имя" maxlength="100"> </div> <div class="form-group"> <label for="">E-mail</label> <input type="text" name="email" value="{$email|escape}" placeholder="email@domain.com" class="form-control" data-format="email" data-notice="Введите email" maxlength="100"> </div> <div class="form-group"> <label for="">Телефон <small style="font-weight: normal;">(формат +380 (67) 111-2233)</small></label> <input type="text" name="phone" class="form-control bfh-phone" placeholder="+380 (67) 111-2233" data-format="+380 (dd) ddd-dddd" data-notice="Введите телефон" maxlength="100"> </div> <div class="form-group"> <label for="">Адрес</label> <input type="text" name="address" value="{$address|escape}" placeholder="Ваш адрес" class="form-control" data-format=".+" data-notice="Введите адрес" maxlength="255"> </div> <div class="form-group"> <label>Комментарий к заказу</label> <textarea name="comment" class="form-control" rows="3" placeholder="Ваш комментарий">{$comment|escape}</textarea> </div> <div class="form-group"> <img src="captcha/image.php?{math equation='rand(10,10000)'}" style="width: 91px; height: 43px;" /> </div> <div class="form-group"> <label for="">Картинка</label> <input type="text" name="captcha_code" value="" placeholder="Цифры с картинки" class="form-control" data-format="\d\d\d\d\d" data-notice="Введите капчу"> </div> <input type="submit" name="checkout" class="btn btn-primary btn-lg" value="Оформить заказ"> </div> </div> <div class="gap gap-mini"></div> </form> {/if} <?PHP /** * Simpla CMS * * @copyright 2009 Denis Pikusov * @link http://simp.la * @author Denis Pikusov * * Корзина покупок * Этот класс использует шаблон cart.tpl * */ require_once('View.php'); class CartView extends View { ////////////////////////////////////////// // Изменения товаров в корзине ////////////////////////////////////////// public function __construct() { parent::__construct(); // Если передан id варианта, добавим его в корзину if($variant_id = $this->request->get('variant', 'integer')) { $this->cart->add_item($variant_id, $this->request->get('amount', 'integer')); header('location: '.$this->config->root_url.'/cart/'); } // Удаление товара из корзины if($delete_variant_id = intval($this->request->get('delete_variant'))) { $this->cart->delete_item($delete_variant_id); if(!isset($_POST['submit_order']) || $_POST['submit_order']!=1) header('location: '.$this->config->root_url.'/cart/'); } // Если нажали оформить заказ if(isset($_POST['checkout'])) { $order = new stdClass; $order->delivery_id = $this->request->post('delivery_id', 'integer'); $order->name = $this->request->post('name'); $order->email = $this->request->post('email'); $order->address = $this->request->post('address'); $order->phone = $this->request->post('phone'); $order->comment = $this->request->post('comment'); $order->ip = $_SERVER['REMOTE_ADDR']; $this->design->assign('delivery_id', $order->delivery_id); $this->design->assign('name', $order->name); $this->design->assign('email', $order->email); $this->design->assign('phone', $order->phone); $this->design->assign('address', $order->address); $captcha_code = $this->request->post('captcha_code', 'string'); // Скидка $cart = $this->cart->get_cart(); $order->discount = $cart->discount; if($cart->coupon) { $order->coupon_discount = $cart->coupon_discount; $order->coupon_code = $cart->coupon->code; } // if(!empty($this->user->id)) $order->user_id = $this->user->id; if(empty($order->name)) { $this->design->assign('error', 'empty_name'); } elseif(empty($order->email)) { $this->design->assign('error', 'empty_email'); } elseif($_SESSION['captcha_code'] != $captcha_code || empty($captcha_code)) { $this->design->assign('error', 'captcha'); } else { // Добавляем заказ в базу $order_id = $this->orders->add_order($order); $_SESSION['order_id'] = $order_id; // Если использовали купон, увеличим количество его использований if($cart->coupon) $this->coupons->update_coupon($cart->coupon->id, array('usages'=>$cart->coupon->usages+1)); // Добавляем товары к заказу foreach($this->request->post('amounts') as $variant_id=>$amount) { $this->orders->add_purchase(array('order_id'=>$order_id, 'variant_id'=>intval($variant_id), 'amount'=>intval($amount))); } $order = $this->orders->get_order($order_id); // Стоимость доставки $delivery = $this->delivery->get_delivery($order->delivery_id); if(!empty($delivery) && $delivery->free_from > $order->total_price) { $this->orders->update_order($order->id, array('delivery_price'=>$delivery->price, 'separate_delivery'=>$delivery->separate_payment)); } // Отправляем письмо пользователю $this->notify->email_order_user($order->id); // Отправляем письмо администратору $this->notify->email_order_admin($order->id); // Очищаем корзину (сессию) $this->cart->empty_cart(); // Перенаправляем на страницу заказа header('Location: '.$this->config->root_url.'/order/'.$order->url); } } else { // Если нам запостили amounts, обновляем их if($amounts = $this->request->post('amounts')) { foreach($amounts as $variant_id=>$amount) { $this->cart->update_item($variant_id, $amount); } $coupon_code = trim($this->request->post('coupon_code', 'string')); if(empty($coupon_code)) { $this->cart->apply_coupon(''); header('location: '.$this->config->root_url.'/cart/'); } else { $coupon = $this->coupons->get_coupon((string)$coupon_code); if(empty($coupon) || !$coupon->valid) { $this->cart->apply_coupon($coupon_code); $this->design->assign('coupon_error', 'invalid'); } else { $this->cart->apply_coupon($coupon_code); header('location: '.$this->config->root_url.'/cart/'); } } } } } ////////////////////////////////////////// // Основная функция ////////////////////////////////////////// function fetch() { // Способы доставки $deliveries = $this->delivery->get_deliveries(array('enabled'=>1)); $this->design->assign('deliveries', $deliveries); // Данные пользователя if($this->user) { $last_order = $this->orders->get_orders(array('user_id'=>$this->user->id, 'limit'=>1)); $last_order = reset($last_order); if($last_order) { $this->design->assign('name', $last_order->name); $this->design->assign('email', $last_order->email); $this->design->assign('phone', $last_order->phone); $this->design->assign('address', $last_order->address); } else { $this->design->assign('name', $this->user->name); $this->design->assign('email', $this->user->email); } } // Если существуют валидные купоны, нужно вывести инпут для купона if($this->coupons->count_coupons(array('valid'=>1))>0) $this->design->assign('coupon_request', true); // Выводим корзину return $this->design->fetch('cart.tpl'); } } Цитата Ссылка на сообщение Поделиться на другие сайты
ABSORBER Опубликовано 26 июля, 2016 Жалоба Поделиться Опубликовано 26 июля, 2016 Дайте ссылку ваш сайт. Проверил вышеуказанные html и php, все нормально показывается. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 26 июля, 2016 Жалоба Поделиться Опубликовано 26 июля, 2016 Дайте ссылку ваш сайт. Проверил вышеуказанные html и php, все нормально показывается.http://budcentre.com.ua/ Цитата Ссылка на сообщение Поделиться на другие сайты
AFI Опубликовано 26 июля, 2016 Автор Жалоба Поделиться Опубликовано 26 июля, 2016 Дайте ссылку ваш сайт. Проверил вышеуказанные html и php, все нормально показывается.На локальном тоже все работает, но жалуются, что пустые поля в списке варианта появляются. Может это связано.http://prnt.sc/bvq0jy http://budcentre.com.ua/ Спасибо за оперативность. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 26 июля, 2016 Жалоба Поделиться Опубликовано 26 июля, 2016 Попробуйте распечатать переменную $cart, примерно так: <pre>{$cart|print_r}</pre> Посмотрим что распечатает.А вообще судя по всему у вас проблема индивидуальная, нужно бы фтп чтобы посмотреть что не так. Цитата Ссылка на сообщение Поделиться на другие сайты
AFI Опубликовано 26 июля, 2016 Автор Жалоба Поделиться Опубликовано 26 июля, 2016 (изменено) Куда то значения ключа name пропадают. Изменено 26 июля, 2016 пользователем AFI Цитата Ссылка на сообщение Поделиться на другие сайты
AFI Опубликовано 26 июля, 2016 Автор Жалоба Поделиться Опубликовано 26 июля, 2016 Попробуйте распечатать переменную $cart, примерно так: <pre>{$cart|print_r}</pre> Посмотрим что распечатает.А вообще судя по всему у вас проблема индивидуальная, нужно бы фтп чтобы посмотреть что не так.Куда то значения ключа name пропадают. stdClass Object ( [purchases] => Array ( [0] => stdClass Object ( [product] => stdClass Object ( [images] => Array ( [3849] => stdClass Object ( [id] => 3849 [product_id] => 3021 [name] => [filename] => fakro_-ftp-v-u3-electro-full.jpg [position] => 0 ) ) ) [variant] => stdClass Object ( [id] => 6356 [product_id] => 3021 [price] => 6283.20 [unit] => шт. [compare_price] => 7854.00 [sku] => [stock] => 500 [infinity] => 1 [name] => (01) 55x78 см. [attachment] => [position] => 6345 ) [amount] => 1 ) [1] => stdClass Object ( [product] => stdClass Object ( [images] => Array ( [4572] => stdClass Object ( [id] => 4572 [product_id] => 3090 [name] => [filename] => fdy-v-u3-duet-prosky.jpg [position] => 0 ) [4574] => stdClass Object ( [id] => 4574 [product_id] => 3090 [name] => [filename] => okno-wysokooosiowe-naswietle-druk.jpg [position] => 1 ) ) ) [variant] => stdClass Object ( [id] => 6809 [product_id] => 3090 [price] => 11228.80 [unit] => шт. [compare_price] => 14036.00 [sku] => [stock] => 500 [infinity] => 1 [name] => (CA) 78x186 см. [attachment] => [position] => 6809 ) [amount] => 1 ) [2] => stdClass Object ( [product] => stdClass Object ( [id] => 3293 [url] => gidroizolyatsionnyj-fartuk-bfx-1000 [brand_id] => 45 [name] => Гидроизоляционный фартук BFX 1000 [annotation] => Комплект для гидро- и теплоизоляции для еще более простой и надежной установки мансардного окна. Комплект BDX включает теплоизоляционный контур для утепления между окном и кровлей. Гофрированный гидроизоляционный фартук для герметичного соединения окна с гидроизоляцией кровли. Дренажный желоб отводит от окна воду, которая может проникнуть под кровельный материал. Дренажный желоб и гидроизоляционный фартук можно купить отдельно в комплекте BFX 1000, если установка комплекта BDX невозможна. [body] => Комплект для гидро- и теплоизоляции для еще более простой и надежной установки мансардного окна. Комплект BDX включает теплоизоляционный контур для утепления между окном и кровлей. Гофрированный гидроизоляционный фартук для герметичного соединения окна с гидроизоляцией кровли. Дренажный желоб отводит от окна воду, которая может проникнуть под кровельный материал. Дренажный желоб и гидроизоляционный фартук можно купить отдельно в комплекте BFX 1000, если установка комплекта BDX невозможна. [position] => 2980 [created] => [visible] => 1 [featured] => [meta_title] => Гидроизоляционный фартук BFX 1000 [meta_keywords] => Гидроизоляционный фартук BFX 1000, Velux, Мансардные окна [meta_description] => Модель ESR 0000 используется для плоских кровельных покрытий, таких как битумная черепица, сланец, фальцевая кровля. Применение оклада является обязательной необходимостью для надежной установки мансардного окна в крышу. Он предотвращает попадание воды и снега под кровельное покрытие. Благодаря специальной системе водоотводящих канавок вокруг окна, вода обтекает его и продолжает беспрепятственное движение вниз по скату к водосточному желобу. детали оклада выполнены из окрашенного листового а [brand] => Velux [brand_url] => velux [images] => Array ( [5098] => stdClass Object ( [id] => 5098 [product_id] => 3293 [name] => [filename] => bfx-1000-700x700.jpg [position] => 0 ) ) ) [variant] => stdClass Object ( [id] => 7193 [product_id] => 3293 [price] => 456.00 [unit] => шт. [compare_price] => [sku] => [stock] => 500 [infinity] => 1 [name] => (CR02) 55x78 см. [attachment] => [position] => 7193 ) [amount] => 1 ) ) [total_price] => 17968 [total_products] => 3 [coupon] => [discount] => 0 [coupon_discount] => 0 ) 1 Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 26 июля, 2016 Жалоба Поделиться Опубликовано 26 июля, 2016 Дайте FTP гляну, быстрее будет чем тут гадать. Цитата Ссылка на сообщение Поделиться на другие сайты
transinffo Опубликовано 28 июля, 2020 Жалоба Поделиться Опубликовано 28 июля, 2020 Дайте FTP гляну, быстрее будет чем тут гадать.Добрый вечер, столкнулся с точно такой же ошибкой. Удалось ее победить? Поделитесь решением? Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 28 июля, 2020 Жалоба Поделиться Опубликовано 28 июля, 2020 Добрый вечер, столкнулся с точно такой же ошибкой. Удалось ее победить? Поделитесь решением?Я так понимаю это спам боты... Цитата Ссылка на сообщение Поделиться на другие сайты
transinffo Опубликовано 29 июля, 2020 Жалоба Поделиться Опубликовано 29 июля, 2020 Я так понимаю это спам боты...Как бороться?Искать вирус на сайте? Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 29 июля, 2020 Жалоба Поделиться Опубликовано 29 июля, 2020 Как бороться? Искать вирус на сайте?Нет. Я думал это вы спам бот, оказывается нет. Касаемо вашей проблемы: опишите в чём проблема, ведь теме уже 4 года... Цитата Ссылка на сообщение Поделиться на другие сайты
transinffo Опубликовано 29 июля, 2020 Жалоба Поделиться Опубликовано 29 июля, 2020 Нет. Я думал это вы спам бот, оказывается нет.Касаемо вашей проблемы: опишите в чём проблема, ведь теме уже 4 года...Покупаю товары:https://demo.santehnika-tut.com.ua/products/linejnyj-trap-s-reshetkoj-q-tap-60-sm-600660-crm-qt600660crmhttps://demo.santehnika-tut.com.ua/products/linejnyj-trap-s-reshetkoj-q-tap-80-sm-800860-cr-qt800860crm Перехожу на стр. оформления заказа и названия первого товара нет. Внизу страницы https://demo.santehnika-tut.com.ua/cart вывел массив cart, у первого товара массив product пустой. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 29 июля, 2020 Жалоба Поделиться Опубликовано 29 июля, 2020 Работает хаотично, с ПК есть баг с телефона всё в норме. Нужен фтп доступ для поиска и устранения бага. Черканите в телегу @noxter, помогу. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.