Our blog
Magento Search Within Current Top Level Category
If you fancy having a select box allowing people to search within a top level category on your site directly from the quick search box, check out this little modification. This gives your search a bit of an Amazon feel. This idea could easily be extended if required.
You can drop this file in as a straight replacement to app/design/frontend/###/###/template/catalogsearch/form.mini.phtml
-
<?php
-
/**
-
* Magento
-
*
-
* NOTICE OF LICENSE
-
*
-
* This source file is subject to the Academic Free License (AFL 3.0)
-
* that is bundled with this package in the file LICENSE_AFL.txt.
-
* It is also available through the world-wide-web at this URL:
-
* http://opensource.org/licenses/afl-3.0.php
-
* If you did not receive a copy of the license and are unable to
-
* obtain it through the world-wide-web, please send an email
-
* to license@magentocommerce.com so we can send you a copy immediately.
-
*
-
* DISCLAIMER
-
*
-
* Do not edit or add to this file if you wish to upgrade Magento to newer
-
* versions in the future. If you wish to customize Magento for your
-
* needs please refer to http://www.magentocommerce.com for more information.
-
*
-
* @category design_default
-
* @package Mage
-
* @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com)
-
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
-
*
-
*
-
* @version Edmonds Commerce Quick Search with Top Level Categories
-
*
-
*/
-
-
$category = Mage::getModel('catalog/category');
-
$current_category_path=Mage::registry('current_category')->getPathIds();
-
}else{
-
}
-
$category->load(Mage::app()->getStore()->getRootCategoryId());
-
$children_string = $category->getChildren();
-
$extra_options='';
-
foreach($children as $c){
-
$extra_options.= '<option value="' . $c . '" ' . $selected . '>' . $category->load($c)->getName() . '</option>' . "\n";
-
}
-
?>
-
<form id="search_mini_form" action="<?php echo $this->helper('catalogSearch')->getResultUrl() ?>" method="get">
-
<fieldset>
-
<div class="mini-search">
-
<input id="search" type="text" class="input-text" name="<?php echo $this->helper('catalogSearch')->getQueryParamName() ?>" value="<?php echo $this->helper('catalogSearch')->getEscapedQueryText() ?>" />
-
<select name="cat" id="cat" class="input-text">
-
<option value="">All Departments</option>
-
<?= $extra_options ?>
-
</select>
-
<input type="submit" value="Go" style="border: 1px solid #808080;" alt="<?php echo $this->__('Search') ?>" />
-
<div id="search_autocomplete" class="search-autocomplete"></div>
-
<script type="text/javascript">
-
//<![CDATA[
-
var searchForm = new Varien.searchForm('search_mini_form', 'search', '<?php echo $this->__('search site...') ?>');
-
searchForm.initAutocomplete('<?php echo $this->helper('catalogSearch')->getSuggestUrl() ?>', 'search_autocomplete');
-
//]]>
-
</script>
-
</div>
-
</fieldset>
-
</form>
More Reading:
13 Comments
|
thanks |
|
magento December 1st, 2009 |
A Beauty! Thanks. How can I have the search option only display certain categories? Applying assigned IDs from admin. I guess using an array of category IDs will do the trick. Tried the "load" option, but nothing happened. Any tips would be appreciated. Thanks. |
|
yes just edit the $children array to suit, or if you want to blacklist certain categories you could just |
|
magento December 4th, 2009 |
Thanks. That helped a lot. Any tip of how I can access the second sub-categories. I played around with getStoreCategories() and seemed to be able to get only the first sub. Root Category > First Sub > Second Sub. I changed Line 38 Thanks in advance. |
|
how about PHP:
|
|
magento December 4th, 2009 |
@magentonews. Where do you exactly insert this code? I tried several logical permutations, but kept getting errors. Thanks. |
|
magento December 10th, 2009 |
I'll really appreciate it if anyone can solve this little dilemma, that would help a lot. I'm interested in accessing specific category block. The sub-sub-category. Root Category -> Sub-Category -> Sub-Sub-Category. How can we implement if possible @magentonews code snippet? Any better alternative? Thanks. |
|
presumably its along the lines of PHP:
|
|
magento December 10th, 2009 |
Thanks admin. I feel like I'm twisting your arm here, either I can't see through the code or being sick with the cold for the last few days is obstructing my view. Could you be more detailed of where to insert this code? Which part of the code above does it embed? Thanks a bunch. Tried few places but kept getting errors. |
|
Nicolas February 15th, 2010 |
How to sort categories to be in the same order as menu? |
|
lynts March 27th, 2010 |
so this is awesome, now what if i want to have 3 drop downs based on profile width and diameter then these would have the set demensions |
|
pass |
|
Nick June 29th, 2010 |
Just tried this. All I get is all departments. Can't see for the life of me why it's not working in V.1.3x |
RSS Feed
phpcook
November 18th, 2009