Zen Cart Logo
Forums / All Other Contributions/Addons / Search in category header appears on the sidebox with repeated categories

Search in category header appears on the sidebox with repeated categories

Views: 766

Results 1 to 3 of 3
11 Oct 2014, 3:42 AM
#1
lina0962 avatar

lina0962

Zen Follower

Join Date:
Jun 2006
Posts:
403
Plugin Contributions:
0

Search in category header appears on the sidebox with repeated categories

I installed "Search in Categories Header" into my store. I found out the same search in categories showed up in the right-hand sideboxes with repeated category lists. Can anybody tell me how to make the drop-down list into only one set?

26 Nov 2015, 2:54 PM
#2
lina0962 avatar

lina0962

Zen Follower

Join Date:
Jun 2006
Posts:
403
Plugin Contributions:
0

Re: Search in category header appears on the sidebox with repeated categories

I think something wrong with the code in the includes/templates/your_template/sideboxes, but don't know how. Can you help?

<?php
/**
 * Side Box Template
 *
 * @package templateSystem
 * @copyright Copyright 2003-2006 Zen Cart Development Team
 * @copyright Portions Copyright 2003 osCommerce
 * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
 * @version $Id: tpl_search_header.php 4143 2007-11-15 17:40:59Z numinix $
 */
                           
  $categories_array[] = array('id' => '', 'text' =>'All Categories'); 
                                $categories_query = "select c.categories_id, cd.categories_name, c.categories_status from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd  where c.categories_status='1' and parent_id = '0' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$_SESSION['languages_id'] . "' order by sort_order, cd.categories_name"; 
                                $categories = $db->Execute($categories_query); 
                                while (!$categories->EOF) {
	                                $categories_array[] = array('id' => $categories->fields['categories_id'], 'text' =>$categories->fields['categories_name']); $categories->MoveNext();
	                              }
	                               
  $content = '<div class="searchHeader back">' . BOX_HEADING_SEARCH . ': </div><div class="back">';
  $content .= zen_draw_form('quick_find_header', zen_href_link(FILENAME_ADVANCED_SEARCH_RESULT, '', 'NONSSL', false), 'get');
  $content .= zen_draw_hidden_field('main_page',FILENAME_ADVANCED_SEARCH_RESULT);
  $content .= zen_draw_hidden_field('inc_subcat', '1', 'style="display: none"'); 
  $content .= zen_draw_hidden_field('search_in_description', '1') . zen_hide_session_id();
  $content .= zen_draw_pull_down_menu('categories_id', $categories_array);
	$content .= zen_draw_input_field('keyword', '', 'size="6" maxlength="30" style="width: 160px" value="' . HEADER_SEARCH_DEFAULT_TEXT . '" onfocus="if (this.value == \'' . HEADER_SEARCH_DEFAULT_TEXT . '\') this.value = \'\';" onblur="if (this.value == \'\') this.value = \'' . HEADER_SEARCH_DEFAULT_TEXT . '\';"') . ' </div><div class="back"><input type="image" src="'. DIR_WS_TEMPLATES . $template_dir . '/buttons/' . $_SESSION['language'] . '/' . BUTTON_IMAGE_SEARCH . '" alt="' . HEADER_SEARCH_BUTTON . '" title="' . HEADER_SEARCH_BUTTON . '" />'; 
  $content .= '</form></div><br class="clearBoth" />';
?>
8 Dec 2015, 6:59 PM
#3
mc12345678 avatar

mc12345678

Totally Zenned

Join Date:
Jul 2012
Posts:
16,908
Plugin Contributions:
2

Re: Search in category header appears on the sidebox with repeated categories

lina0962:

I think something wrong with the code in the includes/templates/your_template/sideboxes, but don't know how. Can you help?

<?php /** * Side Box Template * * @package templateSystem * @copyright Copyright 2003-2006 Zen Cart Development Team * @copyright Portions Copyright 2003 osCommerce * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0 * @version $Id: tpl_search_header.php 4143 2007-11-15 17:40:59Z numinix $ */ $categories_array[] = array('id' => '', 'text' =>'All Categories'); $categories_query = "select c.categories_id, cd.categories_name, c.categories_status from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_status='1' and parent_id = '0' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$_SESSION['languages_id'] . "' order by sort_order, cd.categories_name"; $categories = $db->Execute($categories_query); while (!$categories->EOF) { $categories_array[] = array('id' => $categories->fields['categories_id'], 'text' =>$categories->fields['categories_name']); $categories->MoveNext(); } $content = '<div class="searchHeader back">' . BOX_HEADING_SEARCH . ': </div><div class="back">'; $content .= zen_draw_form('quick_find_header', zen_href_link(FILENAME_ADVANCED_SEARCH_RESULT, '', 'NONSSL', false), 'get'); $content .= zen_draw_hidden_field('main_page',FILENAME_ADVANCED_SEARCH_RESULT); $content .= zen_draw_hidden_field('inc_subcat', '1', 'style="display: none"'); $content .= zen_draw_hidden_field('search_in_description', '1') . zen_hide_session_id(); $content .= zen_draw_pull_down_menu('categories_id', $categories_array); $content .= zen_draw_input_field('keyword', '', 'size="6" maxlength="30" style="width: 160px" value="' . HEADER_SEARCH_DEFAULT_TEXT . '" onfocus="if (this.value == \'' . HEADER_SEARCH_DEFAULT_TEXT . '\') this.value = \'\';" onblur="if (this.value == \'\') this.value = \'' . HEADER_SEARCH_DEFAULT_TEXT . '\';"') . ' </div><div class="back"><input type="image" src="'. DIR_WS_TEMPLATES . $template_dir . '/buttons/' . $_SESSION['language'] . '/' . BUTTON_IMAGE_SEARCH . '" alt="' . HEADER_SEARCH_BUTTON . '" title="' . HEADER_SEARCH_BUTTON . '" />'; $content .= '</form></div><br class="clearBoth" />'; ?>

Ideally this should be asked (after reviewing the thread) in the thread related to this plugin.

No guarantees, but it looks like if you change this portion:
```php
                                $categories_query = "select c.categories_id, cd.categories_name, c.categories_status from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd  where c.categories_status='1' and parent_id = '0' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$_SESSION['languages_id'] . "' order by sort_order, cd.categories_name"; 

To:

                                $categories_query = "select DISTINCT c.categories_id, cd.categories_name, c.categories_status from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd  where c.categories_status='1' and parent_id = '0' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$_SESSION['languages_id'] . "' order by sort_order, cd.categories_name"; 

By adding DISTINCT to the query.

That the duplicates may be prevented.