Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Добавить стиль к кнопке "В закладки" если данный товар находится уже в закладках


Recommended Posts

Собственно весь вопрос в теме: Как добавить стиль к кнопке "В закладки" если данный товар находится уже в закладках?

Может кто делал такое?

Спасибо!

Link to post
Share on other sites

вот из заготовок решение, не мое, но работает норм.

 

Спойлер

    
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>
            

    
          
          
          
 

 

Link to post
Share on other sites
12 часов назад, anboza сказал:

вот из заготовок решение, не мое, но работает норм.

Спасибо! Но выдает Notice: Undefined property: Proxy::getAllWishlist();

Link to post
Share on other sites
40 минут назад, max1985 сказал:

Undefined property: Proxy::getAllWishlist();

catalog\model\account\wishlist.php должен выглядеть так:

add2wish.jpg

Link to post
Share on other sites

и не забудьте обновить кеш всего. изменения вносятся и в модели и в контроллеры

 

Link to post
Share on other sites
19 минут назад, anboza сказал:

и не забудьте обновить кеш всего. изменения вносятся и в модели и в контроллеры

 

Notice: Undefined variable: this in /system/storage/modification/catalog/controller/product/category.php on line 42Notice: Trying to get property of non-object in /system/storage/modification/catalog/controller/product/category.php on line 42

Link to post
Share on other sites
3 минуты назад, anboza сказал:

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

Вот

wish.zip

Link to post
Share on other sites
5 минут назад, anboza сказал:

изменения в 5-и файлах

 мне в карточке не надо менять

Link to post
Share on other sites
  • 2 years later...

Добрый день, но при возврате в каталог товаров сердечки опять теряют цвет? был бы смысл их подкрашивать чтоб при входе залогиненного пользователя он в каталоге сразу увидел что товар был отмечен! и в карточке товара оставить красное сердечко

 

Link to post
Share on other sites

  • 7 months later...
В 09.08.2018 в 22:18, anboza сказал:

вот из заготовок решение, не мое, но работает норм.

 

  Скрыть контент

    
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>
            

    
          
          
          
 

 

а как вывести в модулях, Рекомендуемые, Новинки... 

Link to post
Share on other sites

  • 4 months later...

А хто підкаже як реалізувати таке:

 

Якщо товар уже в закладках, повинна змінитися запис замість "в закладки" на "вже в закладках" і при клацанні на значок закладок відкривались закладки, а не спливаюче вікно, що товар знову додано в закладки..

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.