Jump to content
kymation

[Contribution] Products Specifications

Recommended Posts

I looked at a previous post you posted on this terms and modified accordingly-

 

 

That indicates that the modified version of includes/classes/specifications.php has not been installed. If you are getting this error on the Admin side, try putting it in admin/includes/classes/specifications.php as well.

Regards
Jim

 

 

 

Oops, I forgot a change. Add this near the bottom of includes/application_top.php:



require_once (DIR_WS_CLASSES . 'specifications.php');

$spec_object = new specifications();



Then find that same code in includes/modules/products_filter.php and remove it.

Regards
Jim

 

 

But it did not solve the issue

Now getting-

 

Fatal error: Call to undefined function tep_clean_get__recursive() in ....includes/classes/specifications.php on line 80

Edited by radhavallabh

Share this post


Link to post
Share on other sites

That function is in includes/functions/products_specifications.php. Check that it is there. If it is, you missed an include somewhere. Check your modifications to the existing files.

 

Regards

Jim


See my profile for a list of my addons and ways to get support.

Share this post


Link to post
Share on other sites

Okay back once again-

The above error now gone I updated application_top.php for the same

But still same issue-

Product filters box shows  not enough filters

Alignment broken-

http://www.radhavallabh.com/radhakrishnastore/exotica-saree-wrap-devimata-dress-p-790.html

 

Pls advice....

Edited by radhavallabh

Share this post


Link to post
Share on other sites

How to upload screen shots need to show you the admin area so as you could guide me if I have any setting done incorrectly...

Share this post


Link to post
Share on other sites

You have a formatting error somewhere. You have installed another addon for tabs that probably interferes with the Products Specifications filters. Remove one or the other, or combine them yourself. I can't fix this for you.

 

Regards

Jim


See my profile for a list of my addons and ways to get support.

Share this post


Link to post
Share on other sites

Pasting my product info.php Code here-

<?php
/*
  $Id$

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2014 osCommerce

  Released under the GNU General Public License
*/

  require('includes/application_top.php');

  if (!isset($HTTP_GET_VARS['products_id'])) {
    tep_redirect(tep_href_link(FILENAME_DEFAULT));
  }

  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_INFO);
  
  // Start Products Specifications
  require_once (DIR_WS_FUNCTIONS . 'products_specifications.php');

// Process data from the on-page forms
  require_once( DIR_WS_MODULES . 'product_info_process.php' );
// End Products Specifications

  //$product_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
  //on/off
  if (!empty($hiddencats)) {
    $product_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and p.products_id = p2c.products_id and (not (p2c.categories_id in (" . implode(',', $hiddencats) . "))) and pd.language_id = '" . (int)$languages_id . "'");
  } else {
    $product_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
  }

  $product_check = tep_db_fetch_array($product_check_query);
  
  // Start Products Specifications
  if (SPECIFICATIONS_BOX_FRAME_STYLE == 'Tabs') {
    // Insert the javascript for the tabs
    $head_javascript = '  <script language="javascript" type="text/javascript">' . PHP_EOL;
    $head_javascript .= '    $(document).ready(function(){' . PHP_EOL;
    $head_javascript .= '      initTabs();' . PHP_EOL;
    $head_javascript .= '    });' . PHP_EOL;
    $head_javascript .= '    function initTabs() {' . PHP_EOL;
    $head_javascript .= "      $('#tabMenu a').bind('click',function(e) {" . PHP_EOL;
    $head_javascript .= '      e.preventDefault();' . PHP_EOL;
    $head_javascript .= '      var thref = $(this).attr("href").replace(/#/, "");' . PHP_EOL;
    $head_javascript .= "      $('#tabMenu a').removeClass('active');" . PHP_EOL;
    $head_javascript .= "      $(this).addClass('active');" . PHP_EOL;
    $head_javascript .= "      $('#tabContent div.content').removeClass('active');" . PHP_EOL;
    $head_javascript .= "      $('#'+thref).addClass('active');" . PHP_EOL;
    $head_javascript .= '      });' . PHP_EOL;
    $head_javascript .= '    }' . PHP_EOL;
    $head_javascript .= '  </script>' . PHP_EOL;
    $head_javascript .= '  <script src="ext/jquery/star_rating/jquery.rating.pack.js" type="text/javascript" language="javascript"></script>' . PHP_EOL;
    $head_javascript .= '  <link href="ext/jquery/star_rating/jquery.rating.css" type="text/css" rel="stylesheet"/>' . PHP_EOL;

    $oscTemplate->addBlock( $head_javascript, 'header_tags' );
  }

  require( DIR_WS_INCLUDES . 'template_top.php' );

// echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product'));
?>
<?php
  if ($product_check['total'] < 1) {
?>
<div class="contentContainer">
  <div class="contentText">
    <?php echo TEXT_PRODUCT_NOT_FOUND; ?>
  </div>

  <div style="float: right;">
    <?php echo tep_draw_button(IMAGE_BUTTON_CONTINUE, 'triangle-1-e', tep_href_link(FILENAME_DEFAULT)); ?>
  </div>
</div>
<?php
  } else {
// Products Specifications

  /*require(DIR_WS_INCLUDES . 'template_top.php');

  if ($product_check['total'] < 1) {
?>

<div class="contentContainer">
  <div class="contentText">
    <?php echo TEXT_PRODUCT_NOT_FOUND; ?>
  </div>

  <div style="float: right;">
    <?php echo tep_draw_button(IMAGE_BUTTON_CONTINUE, 'triangle-1-e', tep_href_link(FILENAME_DEFAULT)); ?>
  </div>
</div>

<?php
  } else {*/
    $product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
    $product_info = tep_db_fetch_array($product_info_query);

    tep_db_query("update " . TABLE_PRODUCTS_DESCRIPTION . " set products_viewed = products_viewed+1 where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and language_id = '" . (int)$languages_id . "'");

    if ($new_price = tep_get_products_special_price($product_info['products_id'])) {
      $products_price = '<del>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</del> <span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';
    } else {
      $products_price = $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id']));
    }

    if (tep_not_null($product_info['products_model'])) {
      $products_name = $product_info['products_name'] . '<br /><span class="smallText">[' . $product_info['products_model'] . ']</span>';
    } else {
      $products_name = $product_info['products_name'];
    }
?>

<?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product')); ?>

<div>
  <h1 style="float: right;"><?php echo $products_price; ?></h1>
  <h1><?php echo $products_name; ?></h1>
</div>

<div class="contentContainer">
  <div class="contentText">

<?php
    if (tep_not_null($product_info['products_image'])) {
      $photoset_layout = '1';

      $pi_query = tep_db_query("select image, htmlcontent from " . TABLE_PRODUCTS_IMAGES . " where products_id = '" . (int)$product_info['products_id'] . "' order by sort_order");
      $pi_total = tep_db_num_rows($pi_query);

      if ($pi_total > 0) {
        $pi_sub = $pi_total-1;

        while ($pi_sub > 5) {
          $photoset_layout .= 5;
          $pi_sub = $pi_sub-5;
        }

        if ($pi_sub > 0) {
          $photoset_layout .= ($pi_total > 5) ? 5 : $pi_sub;
        }
?>

    <div id="piGal">

<?php
 if (tep_session_is_registered('customer_id') || (ALLOW_ASK_A_QUESTION == 'true'))  {
      echo tep_draw_button(TEXT_ASK_QUESTION, 'help', tep_href_link(FILENAME_ASK_QUESTION, 'products_id='.$product_info['products_id']));
    }
        $pi_counter = 0;
        $pi_html = array();

        while ($pi = tep_db_fetch_array($pi_query)) {
          $pi_counter++;

          if (tep_not_null($pi['htmlcontent'])) {
            $pi_html[] = '<div id="piGalDiv_' . $pi_counter . '">' . $pi['htmlcontent'] . '</div>';
          }

          echo tep_image(DIR_WS_IMAGES . $pi['image'], '', '', '', 'id="piGalImg_' . $pi_counter . '"');
        }
?>

    </div>

<?php
        if ( !empty($pi_html) ) {
          echo '    <div style="display: none;">' . implode('', $pi_html) . '</div>';
        }
      } else {
?>

    <div id="piGal">
    
      <?php
	 echo tep_image(DIR_WS_IMAGES . $product_info['products_image'], addslashes($product_info['products_name'])); ?>
    </div>

<?php
      }
    }
?>

<script type="text/javascript">
$(function() {
  $('#piGal').css({
    'visibility': 'hidden'
  });

  $('#piGal').photosetGrid({
    layout: '<?php echo $photoset_layout; ?>',
    width: '250px',
    highresLinks: true,
    rel: 'pigallery',
    onComplete: function() {
      $('#piGal').css({ 'visibility': 'visible'});

      $('#piGal a').colorbox({
        maxHeight: '90%',
        maxWidth: '90%',
        rel: 'pigallery'
      });

      $('#piGal img').each(function() {
        var imgid = $(this).attr('id').substring(9);

        if ( $('#piGalDiv_' + imgid).length ) {
          $(this).parent().colorbox({ inline: true, href: "#piGalDiv_" + imgid });
        }
      });
    }
  });
});
</script>

<?php //echo stripslashes($product_info['products_description']); ?> 

<?php
    $products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "'");
    $products_attributes = tep_db_fetch_array($products_attributes_query);
    if ($products_attributes['total'] > 0) {
?>

    <p><?php echo TEXT_PRODUCT_OPTIONS; ?></p>

    <p>
<?php
      $products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name");
      while ($products_options_name = tep_db_fetch_array($products_options_name_query)) {
        $products_options_array = array();
//<!-- AJAX Attribute Manager More Product weight-->
//        $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'");
       // $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "' order by pa.products_options_sort_order");
//<!-- AJAX Attribute Manager end -->


//        while ($products_options = tep_db_fetch_array($products_options_query)) {
//          $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']);
//          if ($products_options['options_values_price'] != '0') {
//            $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') ';
//          }
//        }

$products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix, pa.options_values_weight, pa.weight_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'order by pa.products_options_sort_order");
        while ($products_options = tep_db_fetch_array($products_options_query)) {
          $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']);
          $products_options_infotext = '';
          if ($products_options['options_values_price'] != '0') {
            $products_options_infotext = $products_options['price_prefix'] . strip_tags($currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])));
          }
          if (PRODUCT_LIST_WEIGHT > 0) {
            if ($products_options['options_values_weight'] != '0') {
              if (!empty($products_options_infotext)) {
                $products_options_infotext .= '; ';
              }
              $products_options_infotext .= $products_options['weight_prefix'] . $products_options['options_values_weight'] . TEXT_PRODUCT_WEIGHT_UNIT;
            }
          }
          if (!empty($products_options_infotext)) {
            $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options_infotext . ')';
          }
        }
// END: More Product Weight

        if (is_string($HTTP_GET_VARS['products_id']) && isset($cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']])) {
          $selected_attribute = $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']];
        } else {
          $selected_attribute = false;
        }
?>
      <strong><?php echo $products_options_name['products_options_name'] . ':'; ?></strong><br /><?php echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute); ?><br />
<?php
      }
?>
    </p>

<?php
    }
?><br />
 <div class="buttonSet">
    <span class="buttonAction"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_draw_button(IMAGE_BUTTON_IN_CART, 'cart', null, 'primary'); ?></span>

    <?php echo tep_draw_button(IMAGE_BUTTON_REVIEWS . (($reviews['count'] > 0) ? ' (' . $reviews['count'] . ')' : ''), 'comment', tep_href_link(FILENAME_PRODUCT_REVIEWS, tep_get_all_get_params()));
	if (tep_session_is_registered('customer_id') || (ALLOW_ASK_A_QUESTION == 'true'))  {
      echo tep_draw_button(TEXT_ASK_QUESTION, 'help', tep_href_link(FILENAME_ASK_QUESTION, 'products_id='.$product_info['products_id']));
    }
	 ?>
  </div>

<?php
    include_once (DIR_WS_MODULES . FILENAME_PRODUCTS_TABS);
// End Products Specifications
?>

    <div style="clear: both;"></div>
    

<?php
    if ($product_info['products_date_available'] > date('Y-m-d H:i:s')) {
?>

    <p style="text-align: center;"><?php echo sprintf(TEXT_DATE_AVAILABLE, tep_date_long($product_info['products_date_available'])); ?></p>

<?php
    }
?>

  </div>

<?php
    $reviews_query = tep_db_query("select count(*) as count from " . TABLE_REVIEWS . " r, " . TABLE_REVIEWS_DESCRIPTION . " rd where r.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and r.reviews_id = rd.reviews_id and rd.languages_id = '" . (int)$languages_id . "' and reviews_status = 1");
    $reviews = tep_db_fetch_array($reviews_query);
?>

 

<?php
    if ((USE_CACHE == 'true') && empty($SID)) {
      echo tep_cache_also_purchased(3600);
    } else {
      include(DIR_WS_MODULES . FILENAME_ALSO_PURCHASED_PRODUCTS);
    }
?>

</div>

</form>

<?php
  }

  require(DIR_WS_INCLUDES . 'template_bottom.php');
  require(DIR_WS_INCLUDES . 'application_bottom.php');
?>

Please could you help check the bug....

Share this post


Link to post
Share on other sites

I don't have the time to debug your site for you. That's your job. Check yor edits again.

 

Regards

Jim


See my profile for a list of my addons and ways to get support.

Share this post


Link to post
Share on other sites

It's certainly possible, but this addon does not include the code to do that. I'm not aware of anyone who has ever done that.

 

You can be the first!

 

Regards

Jim


See my profile for a list of my addons and ways to get support.

Share this post


Link to post
Share on other sites

@@kymation
 
Hi jim ,
 
Just doing my install on a product option types site :D   2.3.3.4 and thought i would do a bug report for other users and to let me remember  my changes hahah.

 
Regarding that reviews bug in the product tabs  I added the load script for star ratings and changed 1 x line of code
 
/includes/modules/product_reviews.php
 
line 127
 

<?php
  // Start form to add a new review
  // echo tep_draw_form ('product_review', tep_href_link (FILENAME_PRODUCT_INFO, 'action=process&tab=review&products_id=' . $_GET['products_id']), 'post', 'onSubmit="return checkForm();"');
   echo tep_draw_form('product_reviews_write', tep_href_link(FILENAME_PRODUCT_REVIEWS_WRITE, 'action=process&products_id=' . $HTTP_GET_VARS['products_id']), 'post', 'onsubmit="return checkForm();"', true); 
  echo '<h3>' . TEXT_REVIEW_INVITE . '</h3>';
?>
    <table cellpadding="0" cellspacing="0" width="100%" style="BORDER:none;background:none;">
<?php
  if ($messageStack->size('review') > 0) {
    echo $messageStack->output('review');
  }
?>
                  <tr>
                      <td class="formField" width="80"><?php echo ENTRY_FIRST_NAME; ?></td>
                      <td class="formField" width="100"><?php echo tep_draw_input_field ('customers_firstname', $customers_firstname); ?></td>
                      <td class="formField"><?php echo tep_draw_input_field( 'reviewer_email', '', 'style="display: none;"' ); ?> </td>
                    </tr>
                    <tr>
                      <td class="formField" width="80"><?php echo ENTRY_LAST_NAME; ?></td>
                      <td class="formField"><?php echo tep_draw_input_field ('customers_lastname', $customers_lastname) . ' ' . ENTRY_OPTIONAL; ?></td>
                      <td class="formField"><?php echo tep_draw_hidden_field( 'website', '' ); ?></td>
                  </tr>
                  <tr>
				                     <td class="formField"><span style="float:left; padding-top: 5px;" ><b><?php echo SUB_TITLE_REVIEW; ?></b> </span>
					 
                    <td valign="top" width="180">
       <script>
	   $(function(){ // wait for document to load
 $('input.star').rating();
});</script>

<?php
    $rating = get_stars ($rating);
    echo  tep_draw_radio_field ('rating', '1', $rating[1], 'class="star"') .
    ' ' . tep_draw_radio_field ('rating', '2', $rating[2], 'class="star"') .
    ' ' . tep_draw_radio_field ('rating', '3', $rating[3], 'class="star"') .
    ' ' . tep_draw_radio_field ('rating', '4', $rating[4], 'class="star"') .
    ' ' . tep_draw_radio_field ('rating', '5', $rating[5], 'class="star"');
?>

and added to spec stylesheet

.formField{
padding-bottom:5px;}
 
 
 
seems to be working fine now I have file attached see no reason why it should not work on a 2.3.4 for a drop on top change
 
 ************************************************************
Below  I added to config in the database just run this command as reported earlier in the forum

INSERT INTO `configuration` (`configuration_id`, `configuration_title`, `configuration_key`, `configuration_value`, `configuration_description`, `configuration_group_id`, `sort_order`, `last_modified`, `date_added`, `use_function`, `set_function`) VALUES

**********************************************************

and because my ckeditor was showing <p> </p>  as a THE  DREADED  black diamond (w00t) I changed
 
line 174 /includes/modules/products_tabs.php again reported somewhere earlier in the forum
 

// The Product Description content
//  echo stripslashes( tep_sanitize_html( html_entity_decode( stripslashes( $product_info[ 'products_description' ] ) ) ) );
echo stripslashes( stripslashes( $product_info[ 'products_description' ] ) );

 

Ok going to have a look at this  ask a question now.

 

Oh and brilliant  addon what sort of brain thinks this out !!!

been studying all day just to half understand :thumbsup:  what all it can do

product_reviews.php


To improve is to change; to be perfect is to change often.

 

Share this post


Link to post
Share on other sites

A very twisted brain indeed.

 

Thanks for the code.

 

Regards

Jim


See my profile for a list of my addons and ways to get support.

Share this post


Link to post
Share on other sites

Love those stars cool

 

Regards

Joli

 

post-185951-0-31348300-1415383026_thumb.png


To improve is to change; to be perfect is to change often.

 

Share this post


Link to post
Share on other sites

Hi Jim,

 

seem to have a mini  bug in the new box module and /includes/classes/specifications.php which you linked to earlier

 

when I use  the old box perfect

 old box hover over link

http://www.xxxxx.com/xxxxx/products_filter.php?sort=products_name&f1=6789

New box hover over link

 http://www.xxxxx.com/xxxxxx/index.php?sort=products_name&f1=6789

so he is missing the products_filter.php?   been searching a while have not found any ideas ?

 

Regards

John


To improve is to change; to be perfect is to change often.

 

Share this post


Link to post
Share on other sites

The old version uses a special page to display the results, while the new one uses a module in index.php, so both of those are correct for that version. I would be more worried about the empty sort= in the URL.

 

Regards

Jim


See my profile for a list of my addons and ways to get support.

Share this post


Link to post
Share on other sites

Ah understand

 

well result at the minute old box

 

(minus require_once (DIR_WS_CLASSES . 'specifications.php');
$spec_object = new specifications() ;)

 

+ new include/classes/specifications.php  = ok

 

or old spec = ok

 

"empty sort= in the URL."  do not understand how should it look?

 

so seems my problem is the blank index.php  going to check my index again

 

Regards

John

 

PS: is this actually then the product listing that is filtered ??

Edited by joli1811

To improve is to change; to be perfect is to change often.

 

Share this post


Link to post
Share on other sites

The sort parameter is used to sort on a column in the stock osCommerce listing. It should have a value, for example sort =3a to sort on the third column ascending. It shouldn't be there at all if you haven't clicked one of the column headings to sort it, and if you did it would have a value. Just the sort= without a value usually means something went wrong somewhere.

 

It's not actually the product_listing.php as that depends on a very specific database query that is not compatible with filters. I wrote a module to handle the filter output, and another to do something similar to product_listing.php.

 

Regards

Jim


See my profile for a list of my addons and ways to get support.

Share this post


Link to post
Share on other sites

http://www.xxxxxx.com/xxxxxx/index.php?cPath=27&page=1&sort=2d  yeah understand (nearly) I have the sort order on a normal  product listing

 

Just not on the link from the new box

 

Just looking at this modular_categories_1.1 now

 

Just to clarfiy does the index.php sql need changed to use the new filter box ?

 

Regards

 

John


To improve is to change; to be perfect is to change often.

 

Share this post


Link to post
Share on other sites

Not with the new modular code. I used a separate module to avoid having to change that SQL, and all of the code that depends on it.

 

Regards

Jim


See my profile for a list of my addons and ways to get support.

Share this post


Link to post
Share on other sites

Hi Jim,

 

Still having problems with  the new bm_products_filter.php I checked the install especially index.php  again it looks ok

 

the old bm_products_filter.php is working fine a really nice complicated addon going to keep me busy for a while setting up filters

 

So not complaining this is just a bug report with the new box and spec file

 

the sort order which you mentioned seems to have been a one off did not see again probably because I was clicking so much

 

the urls are looking like this

 

http://www.xxxx.com/xxxxx/index.php?f1=6789

 

links are greyed out on all product pages except for the x 1 category  which has x 2 filters although in admin the Group is set to site wide links

 

When I turn seo urls on  and click on a link in the  category which has the filters (they are the only links that are active)

 

it is ok

 

But when I get to a product page in category with  filters  and click on a link I get  The page isn't redirecting properly  whe I turn them off i just get the complete product listing (no filter)

 

Now that is only with seo urls turned on the old box handles everything great

 

But the main problem is that the clicked link just shows the normal index display and not a filter display .

.

So for me everything looks up to now perfect just think there must be some bug in the new box looks a lot nicer but just does not work at least for me

 

So back to the old box and try a bit of styling  and get my head around these filters

 

Thanks

John


To improve is to change; to be perfect is to change often.

 

Share this post


Link to post
Share on other sites

Did you install the Products Specifications module in your Admin >> Modules >> Categories? Did you make the changes to your root /index.php? That page should look like this:

<?php
/*
  $Id$
  $Loc: catalog/ $

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2010 osCommerce

  Released under the GNU General Public License
*/

  require('includes/application_top.php');

  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFAULT);

  require(DIR_WS_INCLUDES . 'template_top.php');


  echo '<div class="contentContainer">' . PHP_EOL;

  if ( isset( $current_category_id ) && $current_category_id > 0 ) { // category page
    echo $oscTemplate->getBlocks('categories');

  } else { // default page
    echo $oscTemplate->getBlocks('front_page');

  }

  echo '</div>' . PHP_EOL;


  require( DIR_WS_INCLUDES . 'template_bottom.php' );

  require( DIR_WS_INCLUDES . 'application_bottom.php' );
?>

Regards

Jim


See my profile for a list of my addons and ways to get support.

Share this post


Link to post
Share on other sites

just wondering what changed recently with the above mentioned new filter box, is these class and bm_filter all that is needed ?

should I try to re-work it into my site - what is the difference ?


KEEP CALM AND CARRY ON

I do not use the responsive bootstrap version since i coded my responsive version earlier, but i have bought every 28d of code package to support burts effort and keep this forum alive (albeit more like on life support).

So if you are still here ? What are you waiting for ?!

 

Find the most frequent unique errors to fix:

grep "PHP" php_error_log.txt | sed "s/^.* PHP/PHP/g" |grep "line" |sort | uniq -c | sort -r > counterrors.txt

Share this post


Link to post
Share on other sites

No I missed the bottom part of index.php I just done this

 

echo $oscTemplate->getBlocks('categories');

 

so missed   echo '</div>' . PHP_EOL;  and also had to low on the page

 

In the mean time I redone the old /includes/modules/boxes/bm_products_filter.php

 

Which is looking nice now not fully tested as just finished but as far as i can see it is ok added ui buttons and various fixes.

 

link --> here

 

so just testing with filters now looking good it really is filtering right down to a single spec if needed

 

Going to give your modular cats another go later today.

 

I needs to go over your intructions again takes a while to get used to but the results are fantastic have not even got to comparison etc

 

Regards

John


To improve is to change; to be perfect is to change often.

 

Share this post


Link to post
Share on other sites

It all depends on which version you are using. The latest version, which is still alpha code, was linked a few pages back. It's more modular and uses modern code. The official release will still work, but the box module is a bit old and in need of styling. I should ask what version you are using before offering advice.

 

@@joli1811  The index.php I posted above had Modular Front Page as well as the modular Categories page. Don't make the changes to the bottom part if you don't want to use MFP. What you have looks good and seems to work well, so I don't think you really need to make any more changes. Unless  you want to.

 

Regards

Jim


See my profile for a list of my addons and ways to get support.

Share this post


Link to post
Share on other sites

yes seen the frontpage in index will wait and see how the it goes as I get to grips with it

 

the modular categories is installed anyway and the discount code removed so just a question of installing the cp_specifications_index.php (whatever) and trying the new box again renaming the old box (my one)

 

the shop is running with the new new_filters_box/includes/classes/specifications.php although I suppose the code is duplicated somewhere as you mentioned you moved code I think.

 

Not sure about comparisons and modular categories have to check the thread again think you did mention something about that.

 

Regards

Joli

Edited by joli1811

To improve is to change; to be perfect is to change often.

 

Share this post


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

×