Please help us to make AbanteCart Ideal Open Source Ecommerce Solution for everyone.

Support AbanteCart eCommerce

Author Topic: Create next preview button  (Read 1501 times)

Offline Sam_78

  • Full Member
  • ***
  • Posts: 211
  • Karma: +37/-1
    • View Profile
Re: Create next preview button
« Reply #15 on: August 08, 2019, 06:02:28 PM »
So you want link to next product? as far as I can see this will load the whole page why not just change the image? like I suggested. But yes to do what you want you need to change some code. Also how would you determine next product? home->category->subcategory  so all previous and next should be for sub-category ?

Offline maulik 1intl

  • Jr. Member
  • **
  • Posts: 82
  • Karma: +6/-0
    • View Profile
Re: Create next preview button
« Reply #16 on: August 09, 2019, 01:05:56 AM »
 Thanks  :)
 Could you tell me which code change?
 or create code for me i ready for pay to change or create code for me?

Offline Sam_78

  • Full Member
  • ***
  • Posts: 211
  • Karma: +37/-1
    • View Profile
Re: Create next preview button
« Reply #17 on: August 09, 2019, 12:03:18 PM »
You will need to edit core code to get this. Better option is to make an extension

But try this if it works for you because I think you have some custom code already:

https://github.com/abantecart/abantecart-src/blob/master/public_html/storefront/controller/pages/product/product.php#L750

if(isset($category_info) && count($category_info) > 0){
         $nextPrevProducts =  $this->model_catalog_product->getProductNextPrevProducts($product_id, $category_info['category_id']);
         $this->data['nextPrevProducts'] = $nextPrevProducts;
      }

right above foreach ($results as $result) {

-----
https://github.com/abantecart/abantecart-src/blob/master/public_html/storefront/model/catalog/product.php

Add this before last } line

public function getProductNextPrevProducts($productId, $categoryId){
      $sql = "SELECT * FROM " . $this->db->table("products_to_categories") . " WHERE `category_id` = $categoryId and product_id in ( select product_id from " . $this->db->table("products") . " where STATUS = 1)";
      $query = $this->db->query($sql);
      $product_data =  $query->rows;
      $nextPrevProduct = array();
      if(count($product_data) > 0){
         foreach($product_data as $k => $v){
            if($v['product_id'] == $productId){
               $preProductId = isset($product_data[$k - 1]['product_id']) ? $product_data[$k - 1]['product_id'] : 0;
               $nextProductId = isset($product_data[$k + 1]['product_id']) ? $product_data[$k + 1]['product_id'] : 0;
               $cateSql = "SELECT keyword FROM `url_aliases` WHERE `query` LIKE 'category_id=$categoryId'";
               $cateSqlQuery = $this->db->query($cateSql);
               $cateURL =  count($cateSqlQuery->rows) > 0 ? $cateSqlQuery->row['keyword']: '';
               
               $prevProductSql = "SELECT keyword FROM `url_aliases` WHERE `query` LIKE 'product_id=$preProductId'";
               $prevProductSqlQuery = $this->db->query($prevProductSql);
                 $prevProductURL =  count($prevProductSqlQuery->rows) > 0 ? $prevProductSqlQuery->row['keyword']: '';
               
               $nextProductSql = "SELECT keyword FROM `url_aliases` WHERE `query` LIKE 'product_id=$nextProductId'";
               $nextProductSqlQuery = $this->db->query($nextProductSql);
               $nextProductURL =  count($nextProductSqlQuery->rows) > 0 ? $nextProductSqlQuery->row['keyword']: '';
               
               $nextPrevProduct['prev_product'] = (trim($prevProductURL) != '') ? $cateURL . "/" . $prevProductURL : '';
               $nextPrevProduct['next_product'] = (trim($nextProductURL) != '') ? $cateURL . "/" . $nextProductURL : '';
            }
         }
      }
      return $nextPrevProduct;
   }

And last go to product.tpl and add this code where ever you want buttons and style it the way you want.

https://github.com/abantecart/abantecart-src/blob/master/public_html/storefront/view/default/template/pages/product/product.tpl#L268

<?php if(is_array($nextPrevProducts)){ ?>   
<div>
   <div style="float: left">
      <?php if(trim($nextPrevProducts['prev_product']) != '') {?>
         <a href="<?php echo trim($nextPrevProducts['prev_product']); ?>" > Previous Product </a>
      <?php } ?>
   </div>
   <div style="float: right">
      <?php if(trim($nextPrevProducts['next_product']) != '') {?>
         <a href="<?php echo trim($nextPrevProducts['next_product']); ?>" > Next Product </a>
      <?php } ?>
   </div>
</div>
<?php } ?>

You can contact AbanteCart developers (they have paid service abantecart.com/contact-us) or some other developers https://www.fiverr.com/nattoben This developer has made few extension for AbanteCart he might be able to help you https://marketplace.abantecart.com/index.php?rt=product/vendor&v=40 

P.S I am not promoting anyone here just trying to help you as what you want is not an easy thing. It needs some custom development
« Last Edit: August 09, 2019, 05:29:22 PM by Sam_78 »

Offline Sam_78

  • Full Member
  • ***
  • Posts: 211
  • Karma: +37/-1
    • View Profile
Re: Create next preview button
« Reply #18 on: August 14, 2019, 09:18:59 AM »
Have you tried this?

Offline maulik 1intl

  • Jr. Member
  • **
  • Posts: 82
  • Karma: +6/-0
    • View Profile
Re: Create next preview button
« Reply #19 on: August 15, 2019, 01:40:46 AM »
Not tried
i need to get local install my website but some error on it. so after that i will try code and inform you thanks  :)

Offline HADY

  • Full Member
  • ***
  • Posts: 104
  • Karma: +9/-1
    • View Profile
Re: Create next preview button
« Reply #20 on: August 15, 2019, 07:46:21 AM »
:) :) ok you need to put this code in file best of luck
storefront\view\default\template\common\header.tpl

YES MY FRIEND!

I knew it. thanks a lot.

I have a question about something. can i contact you privately please??


regards

Offline maulik 1intl

  • Jr. Member
  • **
  • Posts: 82
  • Karma: +6/-0
    • View Profile
Re: Create next preview button
« Reply #21 on: August 19, 2019, 09:14:25 AM »
You will need to edit core code to get this. Better option is to make an extension

But try this if it works for you because I think you have some custom code already:

https://github.com/abantecart/abantecart-src/blob/master/public_html/storefront/controller/pages/product/product.php#L750

if(isset($category_info) && count($category_info) > 0){
         $nextPrevProducts =  $this->model_catalog_product->getProductNextPrevProducts($product_id, $category_info['category_id']);
         $this->data['nextPrevProducts'] = $nextPrevProducts;
      }

right above foreach ($results as $result) {

-----
https://github.com/abantecart/abantecart-src/blob/master/public_html/storefront/model/catalog/product.php

Add this before last } line

public function getProductNextPrevProducts($productId, $categoryId){
      $sql = "SELECT * FROM " . $this->db->table("products_to_categories") . " WHERE `category_id` = $categoryId and product_id in ( select product_id from " . $this->db->table("products") . " where STATUS = 1)";
      $query = $this->db->query($sql);
      $product_data =  $query->rows;
      $nextPrevProduct = array();
      if(count($product_data) > 0){
         foreach($product_data as $k => $v){
            if($v['product_id'] == $productId){
               $preProductId = isset($product_data[$k - 1]['product_id']) ? $product_data[$k - 1]['product_id'] : 0;
               $nextProductId = isset($product_data[$k + 1]['product_id']) ? $product_data[$k + 1]['product_id'] : 0;
               $cateSql = "SELECT keyword FROM `url_aliases` WHERE `query` LIKE 'category_id=$categoryId'";
               $cateSqlQuery = $this->db->query($cateSql);
               $cateURL =  count($cateSqlQuery->rows) > 0 ? $cateSqlQuery->row['keyword']: '';
               
               $prevProductSql = "SELECT keyword FROM `url_aliases` WHERE `query` LIKE 'product_id=$preProductId'";
               $prevProductSqlQuery = $this->db->query($prevProductSql);
                 $prevProductURL =  count($prevProductSqlQuery->rows) > 0 ? $prevProductSqlQuery->row['keyword']: '';
               
               $nextProductSql = "SELECT keyword FROM `url_aliases` WHERE `query` LIKE 'product_id=$nextProductId'";
               $nextProductSqlQuery = $this->db->query($nextProductSql);
               $nextProductURL =  count($nextProductSqlQuery->rows) > 0 ? $nextProductSqlQuery->row['keyword']: '';
               
               $nextPrevProduct['prev_product'] = (trim($prevProductURL) != '') ? $cateURL . "/" . $prevProductURL : '';
               $nextPrevProduct['next_product'] = (trim($nextProductURL) != '') ? $cateURL . "/" . $nextProductURL : '';
            }
         }
      }
      return $nextPrevProduct;
   }

And last go to product.tpl and add this code where ever you want buttons and style it the way you want.

https://github.com/abantecart/abantecart-src/blob/master/public_html/storefront/view/default/template/pages/product/product.tpl#L268

<?php if(is_array($nextPrevProducts)){ ?>   
<div>
   <div style="float: left">
      <?php if(trim($nextPrevProducts['prev_product']) != '') {?>
         <a href="<?php echo trim($nextPrevProducts['prev_product']); ?>" > Previous Product </a>
      <?php } ?>
   </div>
   <div style="float: right">
      <?php if(trim($nextPrevProducts['next_product']) != '') {?>
         <a href="<?php echo trim($nextPrevProducts['next_product']); ?>" > Next Product </a>
      <?php } ?>
   </div>
</div>
<?php } ?>

You can contact AbanteCart developers (they have paid service abantecart.com/contact-us) or some other developers https://www.fiverr.com/nattoben This developer has made few extension for AbanteCart he might be able to help you https://marketplace.abantecart.com/index.php?rt=product/vendor&v=40 

P.S I am not promoting anyone here just trying to help you as what you want is not an easy thing. It needs some custom development



Nice work and Thanks you so much   :) :) :) :) :)
                           i am just try your code today in my local server but its show me some error.i am just put your code for new install abantecart in localhost and add your above code in it.
 /storefront/controller/pages/product/product.php#L750

$results = $this->model_catalog_product->getProductTags($product_id);
      /* Sam_78*/
      if(isset($category_info) && count($category_info) > 0){
         $nextPrevProducts =  $this->model_catalog_product->getProductNextPrevProducts($product_id, $category_info['category_id']);
         $this->data['nextPrevProducts'] = $nextPrevProducts;
      }
      /* Sam_78*/
storefront/model/catalog/product.php
    this code also add after add this code it's start error to show i was put code as after
public function hasTrackOptions{} function is end and also add last line before } this.
i am attach image of error to show.


thanks you so much  :) :) :) :)

Offline Sam_78

  • Full Member
  • ***
  • Posts: 211
  • Karma: +37/-1
    • View Profile
Re: Create next preview button
« Reply #22 on: August 19, 2019, 10:44:58 AM »
what error are you getting? send errors from error log file so I can look at it.

Offline maulik 1intl

  • Jr. Member
  • **
  • Posts: 82
  • Karma: +6/-0
    • View Profile
Re: Create next preview button
« Reply #23 on: August 20, 2019, 01:16:11 AM »
what error are you getting? send errors from error log file so I can look at it.

Thanks you so much for replay

Above error is database name table error which i was change and now i was update in live project but Previous Product and next product link not show in page or not get value of product id. i was attach image that not id get.

As per above code add in all file in live project http://1intl.com

Thanks so much  :) :) :)
« Last Edit: August 20, 2019, 02:30:21 AM by maulik 1intl »

Offline maulik 1intl

  • Jr. Member
  • **
  • Posts: 82
  • Karma: +6/-0
    • View Profile
Re: Create next preview button
« Reply #24 on: August 20, 2019, 05:49:12 AM »
Thanks   :) :) :) :) :)
attach all there file with code but data is not display id.

Offline HADY

  • Full Member
  • ***
  • Posts: 104
  • Karma: +9/-1
    • View Profile
Re: Create next preview button
« Reply #25 on: August 20, 2019, 08:03:53 AM »
hi!

Did you fixed that ??

Offline maulik 1intl

  • Jr. Member
  • **
  • Posts: 82
  • Karma: +6/-0
    • View Profile
Re: Create next preview button
« Reply #26 on: August 20, 2019, 08:12:10 AM »
hi!

Did you fixed that ??

Thanks
No sir i can't fix it.there is no date was found.in query
« Last Edit: August 20, 2019, 08:15:13 AM by maulik 1intl »

Offline maulik 1intl

  • Jr. Member
  • **
  • Posts: 82
  • Karma: +6/-0
    • View Profile
Re: Create next preview button
« Reply #27 on: August 20, 2019, 08:17:56 AM »

Thanks  :) :) :)

i am also try to display id with this
<?php  echo "<pre>"; print_r($nextPrevProducts['prev_product']);exit;?>
but no data was display??????

Offline Sam_78

  • Full Member
  • ***
  • Posts: 211
  • Karma: +37/-1
    • View Profile
Re: Create next preview button
« Reply #28 on: August 20, 2019, 09:26:31 AM »
Yes that's because you are not using SEO url's
Can you try this https://abantecart.atlassian.net/wiki/spaces/AD/pages/7962664/SEO+URL+s
Right now your url is http://1intl.com/10121?product_id=382 which is not good for SEO as url doesn't mean anything to google or any other search engine. Once you have SEO url turned on you will have table url_aliases which will have values like query = product_id=382 keyword= shirt-pant 
and my code will work. I have tested it on fresh install and it worked for me.

Offline maulik 1intl

  • Jr. Member
  • **
  • Posts: 82
  • Karma: +6/-0
    • View Profile
Re: Create next preview button
« Reply #29 on: August 21, 2019, 05:06:32 AM »
Thanks bro Sam_78 your awesome great your great's in this filed bro.
Thanks you very much bro  :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :)
He is nice and great skill in this filed.
Thanks Sam_78  very much

 

Powered by SMFPacks Social Login Mod