Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Ребята. Добавил в БД в продукты новую строку forma (tyneint(1)), что прописать в карт.класс.пшп и что написать в картютплю. Что если у товара в базе, в таблице продуктов, значение form = 0 то первая форма , если form = 1 то втарая форма, и если товары где форм и 1 и 2, то третья форма. Помогите! Поподробней. Формы имеются.

Ссылка на сообщение
Поделиться на другие сайты

Ну для начала надо научиться изъясняться по русски.
Можно поискать курсы какие или учебники для 5-6 классов.

Во всяком случае дайте кому-нибудь из знакомых почитать, что за пост вы написали.
"И они может будут, если может, долго-долго стучаться по Ваш хеаду."

Ссылка на сообщение
Поделиться на другие сайты

cart.tpl подозреваю

Каждый второй получается иностранец.
Лениться не надо. Хочешь что бы тебе помогли - будь добр изложи проблему доступно.
Прочитав уже раз 15 так и не смог понять чего человек хочет добиться.
"Ребята. Добавил в БД в продукты новую строку forma (tyneint(1))" - все после этого пошла нечленораздельная брань какай-то.

--------------------------------------------------------
После 20 прочтения, смог разгадать эти иероглифы, а написано здесь вот что...............

Ребята.
Я добавил в БД в таблице `products` новое поле forma типа tinyint(1).
Теперь я хочу, что бы пользователю в корзине выводились разные формы регистрации заказа.
Тип формы, должен определяться значениями как раз этого поля form у продуктов находящихся в корзине.
Подскажите какие изменения надо внести в Cart.class.php и cart.tpl, заранее спасибо.
--------------------------------------------------------

Удобнее будет создать свойство товара "тип формы покупки" для всех категорий.
Посмотреть ID этого свойства (задумчиво посмотреть и запомнить).

В Cart.class.php в функции show_cart() в конец тела цикла foreach($variants as $k=>$variant) добавить:

$q = sql_placeholder("SELECT `value` FROM `properties_values` WHERE `product_id`=? `property_id`='ID вашего свойства' LIMIT 1;",$variant->product_id);
$this->db->query($q);
$forma_property = $this->db->results();
if($forma_property)
$forma_values[] = $forma_property->value;

Так же добавить перед "// Передаем товары в шаблон"

$unique_fvalues = array_unique($forma_values);
$this->smarty->assign('unique_fvalues', $unique_fvalues);

Решение, что называется, в лоб. Взять для каждого варианта товара в корзине модель товара, к которой он принадлежит. Узнать значение нужного нами свойства для этого товара. Добавить в массив.

После отфильтровать массив, оставив только уникальные значения.
Передать массив уникальных значений в шаблон.

Соответственно в cart.tpl можете пользоваться массивом $unique_fvalues как только заблагорассудится. Ну или в Cart.class.php его обработать и передать в шаблон что-то другое.

В cart.tpl для вывода разных форм использовать очевидно {if}{/if} или другие условные операторы smarty.




--------------------------------------------------------
PS Решение плохое. Правильно будет, собрать все product_id вариантов в корзине в один массив и после выполнения цикла попросить БД:
$q = sql_placeholder("SELECT `value` FROM `properties_values` WHERE `product_id` IN (?@) `property_id`='ID вашего свойства';",$products_ids);

Правильно, но лень править. Вы же ленитесь писать понятно.

Ссылка на сообщение
Поделиться на другие сайты

alaster, спасибо, сделал как ты написал. Потом в cart.tpl прописал для проверки:
{if $unique_fvalues == 1} blabla
{/if}
{if $unique_fvalues == 0} eee
{/if}
И при любом варианте товара, со значениями 1 или 0, всё равно выпадает только "еее" - значение 0. Сбегал в БД, и посмотрел в properties_values, там хорошо видно ид товара и ид свойства(77 в этом случае) и Value к ним (всего 4 товара со значением value "0" и 6 товаров с value "1").
Что делать?

Ссылка на сообщение
Поделиться на другие сайты

Распечатайте значения через echo или print, которые добавляются в цикл, распечатайте SQL запросы.

Вероятнее всего ошибка в $forma_values[] = $forma_property->value;
Надо : $forma_values[] = $forma_property[0]->value;

После этого вставьте отладочную печать printf ("%s<br>",$forma_property[0]->value);
Можно так же вывести строку SQL запроса - и проверить, ее корректность ручками.
Куда все будет выведено предсказать не берусь. При необходимости в файл какой-нибудь скидывайте.

Есть еще отладчик встроенный в smarty. Но им мне пока пользоваться не приходилось)

PS В обсуждениях еще на array_unique ругаются (мол не пашет), но у меня он прекрасно работает.

Ссылка на сообщение
Поделиться на другие сайты

Добавил строки, и опять ничего. Слушай, я смотрю Вы разбираетесь, parazit150 - skype или 4179138 ася.. напишите, если сделаете, то денежное вознагрождение дадим. Просто надо, а незнаем как сделать. Спасибо в заранее

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...