Кнопка "В закладки". Если товар в Закладках чтобы была неактивная или меняла цвет.
Кнопка "В закладки". Если товар в Закладках чтобы была неактивная или меняла цвет.
Вопрос в следующем. Есть в Опенкарт такая кнопка "В закладки"
Когда человек на нее нажимает то товар попадает в закладки и все остается на том же месте, кнопка остается кликабельная, мы при просмотре сайта через N период времени не помним есть ли у нас этот товар в закладках или нет.
Хотелось бы сделать чтобы если товар уже в закладках то или надпись была что Товар уже в закладках, или стиль кнопки менялся или чтобы она хотя бы была уже не кликабельная.
Помогите кто знает.
Когда человек на нее нажимает то товар попадает в закладки и все остается на том же месте, кнопка остается кликабельная, мы при просмотре сайта через N период времени не помним есть ли у нас этот товар в закладках или нет.
Хотелось бы сделать чтобы если товар уже в закладках то или надпись была что Товар уже в закладках, или стиль кнопки менялся или чтобы она хотя бы была уже не кликабельная.
Помогите кто знает.
- nikifalex
- Разработчик дополнений
- Сообщения: 316
- Зарегистрирован: 17.03.2022
- Откуда: Россия
- Поблагодарил: 4 раз
- Спасибо: 38 раз
- Контактная информация:
Re: Кнопка "В закладки". Если товар в Закладках чтобы была неактивная или меняла цвет.
Ну я вот знаю А чем именно помочь то?
Re: Кнопка "В закладки". Если товар в Закладках чтобы была неактивная или меняла цвет.
Помощь в том где что поменять, что заработало или модуль посоветуйте рабочий. Я вчера попробовал сделать сам, но мое решение опенкарт не принял.
- nikifalex
- Разработчик дополнений
- Сообщения: 316
- Зарегистрирован: 17.03.2022
- Откуда: Россия
- Поблагодарил: 4 раз
- Спасибо: 38 раз
- Контактная информация:
Re: Кнопка "В закладки". Если товар в Закладках чтобы была неактивная или меняла цвет.
вариант 1:
в контроллерах добавьте новую переменную где будет результат проверки на наличие товара в закладках.
потом в шаблоне в зависимости от этой переменной меняйте отображение кнопки.
вариант 2:
напишите javascript код, который будет автоматически на странице находить кнопки "в закладки", брать оттуда код товара, делать запрос к сайту на предмет наличия товара в закладках и налету менять отображение кнопки уже после загрузки страницы.
конкретная реализация зависит от версии опенкарта, установленных модулей, используемого шаблона. Ориентировочное время на реализацию 1-3 часа (если это не шаблон journal3).
поэтому как то прямо сразу дать вам готовый код не представляется возможным.
в контроллерах добавьте новую переменную где будет результат проверки на наличие товара в закладках.
потом в шаблоне в зависимости от этой переменной меняйте отображение кнопки.
вариант 2:
напишите javascript код, который будет автоматически на странице находить кнопки "в закладки", брать оттуда код товара, делать запрос к сайту на предмет наличия товара в закладках и налету менять отображение кнопки уже после загрузки страницы.
конкретная реализация зависит от версии опенкарта, установленных модулей, используемого шаблона. Ориентировочное время на реализацию 1-3 часа (если это не шаблон journal3).
поэтому как то прямо сразу дать вам готовый код не представляется возможным.
Re: Кнопка "В закладки". Если товар в Закладках чтобы была неактивная или меняла цвет.
Шаблон у меня Mango - первый вариант вчера пробовал, почему то опенкарт в позу стал, версия 3038 - буду думать дальше
- nikifalex
- Разработчик дополнений
- Сообщения: 316
- Зарегистрирован: 17.03.2022
- Откуда: Россия
- Поблагодарил: 4 раз
- Спасибо: 38 раз
- Контактная информация:
Re: Кнопка "В закладки". Если товар в Закладках чтобы была неактивная или меняла цвет.
я не понимаю ваш сленг "встал в позу", "не принял" и т.п.
если какая-то ошибка, то нужен точный текст ошибки.
если какая-то ошибка, то нужен точный текст ошибки.
Re: Кнопка "В закладки". Если товар в Закладках чтобы была неактивная или меняла цвет.
Я использовал такое решение, но оно не помогло. Ошибки как таковой не было, просто за место кнопки появилась html разметка
Код: Выделить всё
catalog\model\account\wishlist.php
public function getAllWishlist() {
if ($data = $this->getWishlist()) {
$out = array();
foreach ($data as $key => $value) {
$out[] = $value['product_id'];
}
return $out;
} else if (isset($this->session->data['wishlist'])) {
return $this->session->data['wishlist'];
}
}
catalog\view\theme\default\template\product\category.tpl
вместо:
<button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button>
это:
<button
<?php if(isset($AllWishlist)) { ?>
<?php if(in_array($product['product_id'], $AllWishlist)) { ?>
style="color: red"
<?php } ?>
<?php } ?>
type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>'); ChangeColor(this);"><i class="fa fa-heart"></i></button>
<script type="text/javascript">
function ChangeColor(Element) {
Element.style.color = 'red';
}
</script>
catalog\controller\product\category.php
перед
$data['breadcrumbs'] = array();
это:
$this->load->model('account/wishlist');
$data['AllWishlist'] = $this->model_account_wishlist->getAllWishlist();
catalog\controller\product\product.php
перед
if ($product_info) {
$url = '';
это:
$this->load->model('account/wishlist');
$zol_wish = $this->model_account_wishlist->getAllWishlist();
if (isset($product_id) && isset($zol_wish)) {
if (in_array($product_id, $zol_wish)) {
$data['AllWishlist'] = true;
}
}
catalog\view\theme\default\template\product\product.tpl
вместо:
<button type="button" data-toggle="tooltip" class="btn btn-default" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product_id; ?>');"><i class="fa fa-heart"></i></button>
это:
<button
<?php if(isset($AllWishlist)) { ?>
style="color: red"
<?php } ?>
type="button" data-toggle="tooltip" class="btn btn-default" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product_id; ?>'); ChangeColor(this);"><i class="fa fa-heart"></i></button>
<script type="text/javascript">
function ChangeColor(Element) {
Element.style.color = 'red';
}
</script>
- nikifalex
- Разработчик дополнений
- Сообщения: 316
- Зарегистрирован: 17.03.2022
- Откуда: Россия
- Поблагодарил: 4 раз
- Спасибо: 38 раз
- Контактная информация:
Re: Кнопка "В закладки". Если товар в Закладках чтобы была неактивная или меняла цвет.
ну ищите ошибку в вашем решении. это будет проще чем скакать между модулями
- devimirochnik
- Разработчик дополнений
- Сообщения: 166
- Зарегистрирован: 14.04.2022
- Откуда: Россия
- Мои дополнения: devimirochnik
- Поблагодарил: 2 раз
- Спасибо: 10 раз
Re: Кнопка "В закладки". Если товар в Закладках чтобы была неактивная или меняла цвет.
Вы можете прислать сайт и продемонстрировать ваше решение? Чтобы можно было "потыкать лапками". Ну и вообще, в JS лучше использовать jQuery, вместо style лучше class.
Мои модули: Оптимизация, SEO, Скидки, Отчёты и прочее
Также могу заняться задачами по вашему сайту в рамках фриланса. График ненормированный, но дело делаю.
Также могу заняться задачами по вашему сайту в рамках фриланса. График ненормированный, но дело делаю.