Здравствуйте. Прошу идеи, предложения или еще что-то по реализации данного вопроса.
Допустим, что есть подобная схема, которую нужно будет реализовать на странице товары(cms OpenCart
). В каждой карточке товара (на общей странице товаров) будет мини калькулятор, в который будет подгружаться через SQL
запрос по средствам PHP
корректные цены для каждого товара.
После они будут обрабатываться JavaScript
кодом для калькуляции.
От сюда вопросы:
Kак построить логику запроса, который будет брать цены от каждого товара находясь на общей странице товаров?
Как загрузить переменные через echo
, если стандартный HTML
редактор (в него будет записываться таблица для калькулятора) комментирует объявление PHP
кода?
Спасибо всем ответившим, буду рад любым предложениям, ссылкам на статьи, примерам и тд.
Если честно, не до конца понятен вопрос: товары только данной категории или все товары, цены будете брать основные или, как и положено, будете учитывать скидки, акции и т.д.. Ну и использовать надо возможности ОС, а вариантов здесь много, даже если не писать собственный модуль/дополнение. Контроллер Категории (/catalog/controller/product/category.php) передает массив данных о продуктах в шаблон формирования страницы категории (/catalog/view/theme/default/template/product/category.tpl), единственное, что изначально массив данных о продуктах формируется из модели продуктов (/catalog/model/catalog/product.php) с учетом сортировки, фильтрации, пагинации и т.д.. Как я это вижу, один из вариантов ("наколенный" и не самый правильный): Открываем файл контроллера, который отвечает за Категорию /catalog/controller/product/category.php и добавляем
$data['calculator'] = array();
$filter_calculator = array(
'filter_category_id' => $category_id,
'filter_filter' => '',
'sort' => 'p.sort_order',
'order' => 'ASC',
'start' => '0',
'limit' => '9999'
);
$calculators = $this->model_catalog_product->getProducts($filter_calculator);
foreach ($calculators as $calculator) {
if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {
$price = $this->currency->format($this->tax->calculate($calculator['price'], $calculator['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
} else {
$price = false;
}
if ((float)$calculator['special']) {
$special = $this->currency->format($this->tax->calculate($calculator['special'], $calculator['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
} else {
$special = false;
}
if ($this->config->get('config_tax')) {
$tax = $this->currency->format((float)$calculator['special'] ? $calculator['special'] : $calculator['price'], $this->session->data['currency']);
} else {
$tax = false;
}
$data['calculators'][] = array(
'product_id' => $calculator['product_id'],
'name' => $calculator['name'],
'price' => $price,
'special' => $special,
'tax' => $tax,
'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $calculator['product_id'] . $url)
);
}
Тогда в шаблоне (/catalog/view/theme/default/template/product/category.tpl) можно будет сделать так:
<table>
<tbody>
<?php foreach ($calculators as $calculator) { ?>
<tr id=calc_<?php echo $calculator['product_id']; ?>>
<td id=calcname_<?php echo $calculator['product_id']; ?>><?php echo $calculator['name']; ?></td>
<td id=calcprice_<?php echo $calculator['product_id']; ?>><?php echo $calculator['price']; ?></td>
</tr>
<?php } ?>
</tbody>
</table>
ID строк и ячеек будет уникальным и зависимым от id товара, можно будет js обрабатывать как будет удобно. Вообще, в ОС очень читабельный и простой код, и соответствие MVC архитектуре, попробуйте разобраться. Руководство разработчика
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Помогите, пожалуйста, составить универсальное регулярное выражение для разделения строки на числа, сочетания букв идущих подряд и пробел
сейчас я делаю вывод массива skills прямым выводом его элементов, но если в массиве элементов оказывается меньше трех - скрипт не работает, а если...
Добрый деньУ меня есть форма с текстовым полем Input В это текстовое поле отправляется значение при нажатии на кнопку