Поиск на главной странице

Тема в разделе "Shop-script", создана пользователем ed101, 19 мар 2008.

Статус темы:
Закрыта.
  1. ed101

    ed101 Писатель

    Регистр.:
    5 янв 2008
    Сообщения:
    2
    Симпатии:
    0
    Как сделать поиск (подбор товаров) как на сайте http://www.omnitv.ru. Именно чтобы выбрать все параметры, а не как это реализовано в Shop-script.
     
  2. alexandr3182

    alexandr3182

    Регистр.:
    5 фев 2008
    Сообщения:
    226
    Симпатии:
    12
    Я думаю это надо организовывать отталкиваясь от дополнительных параметров к товару.... а потом просто вывести на главную поиск который идет в product_brief.html.tpl
     
  3. 99cent

    99cent

    Регистр.:
    27 фев 2009
    Сообщения:
    194
    Симпатии:
    11
    Я сейчас этим занимаюсь.
    Создай файл в шаблонах, например vibor.tpl.html
    В нем:
    Код:
    <div class="vibor">
                  <div>
    <TABLE CELLPADDING="3" border="0">
    <form name='AdvancedSearchInCategory' method=GET>
    <TR><TD valign="top">
    	<input type=hidden name='categoryID' value='{$categoryID}'>
    	{if $categories_to_select}
    		<input type=hidden name='search_with_change_category_ability' value='yes'>
    	{else}
    		<input type=hidden name='search' value='1'>
    	{/if}
    <table border="0" cellspacing="0" cellpadding="0" >
    	{if $categories_to_select}
    	<tr>
    		<td align="left" class="voting">
    			{$smarty.const.STRING_CATEGORY}:
    		</td>
    		<td align="left" class="voting">
    			<select name='categorySelect' onchange='JavaScript:_categoryChangedHandler()'>
    			{if !$categoryID}<option value='0'>{$smarty.const.ADMIN_PROMPT_TO_SELECT}</option>{/if}
    			{section name=i loop=$categories_to_select}
    				<option value='{$categories_to_select[i].categoryID}'
    				{if $categories_to_select[i].categoryID == $categoryID}
    					selected
    				{/if}
    				>
    					{section name=j max=$categories_to_select[i].level}
    						&nbsp;&nbsp;&nbsp;
    					{/section}
    						{$categories_to_select[i].name}
    				</option>
    			{/section}
    			</select>
    			{literal}
    			<script language='JavaScript'>
    				function _categoryChangedHandler()
    				{
    					if (document.AdvancedSearchInCategory.categorySelect.value != 0)
    					window.location = 'index.php?categoryID=' + 
    						document.AdvancedSearchInCategory.categorySelect.value +
    						'&search_with_change_category_ability=yes';
    				}
    			</script>
    			{/literal}
    		</td>
    	</tr>
    	{/if}
    	{if $categoryID}
    	<tr> 
    		<td align="center" class="voting">
    			Выбрать часы по цене:<br><br>
    		</td></tr>
    <tr>
    		<td align="center" class="voting">
    			{$smarty.const.STRING_PRICE_FROM}
    			<input name="search_price_from" type="text" style="width:35px; height:18px; font-family:tahoma; font-size:11px; margin-left:3px; margin-right:3px; border:1px solid #E0E0E0" value="{$search_price_from|replace:'"':'&quot;'|replace:"\'":"'"|replace:"<":"&lt;"|replace:">":"&gt;"|default:""}" > 
    				{$smarty.const.STRING_PRICE_TO}
    			<input name="search_price_to" type="text" style="width:35px; height:18px; font-family:tahoma; font-size:11px; margin-left:3px; margin-right:3px; border:1px solid #E0E0E0" value="{$search_price_to|replace:'"':'&quot;'|replace:"\'":"'"|replace:"<":"&lt;"|replace:">":"&gt;"|default:""}" > {$priceUnit}
    		</td>
    	</tr>
    	{/if}
    					<tr>
    <td class="voting" align="center"><br>Выбрать часы по характеристикам:</td>
    </tr>
    				{section name=i loop=$params}
    <tr>
    						<td class="voting"><br>
    							{if $params[i].controlIsTextField eq 1}
    								<input type=text name='param_{$params[i].optionID}' 
    									value='{$params[i].value|replace:'"':'&quot;'|replace:"\'":"'"|replace:"<":"&lt;"|replace:">":"&gt;"|default:""}'>
    							{else}
    								<select name='param_{$params[i].optionID}' style='width:140px'>
    									<option value='0'>{$params[i].name}</option>
    									{section name=j loop=$params[i].variants}
    									<option value='{$params[i].variants[j].variantID}'
    										{if $params[i].value == $params[i].variants[j].variantID}
    											selected
    										{/if}
    									>
    										{$params[i].variants[j].value|replace:'"':'&quot;'|replace:"\'":"'"|replace:"<":"&lt;"|replace:">":"&gt;"|default:""}
    									</option>
    									{/section}
    								</select>
    							{/if}
    						</td>
    					</tr>
    				{/section}
    	{if $show_subcategory_checkbox}
    	<tr>
    		<td colspan=2>
    			{if $show_subcategories_products}
    				<input type=hidden value='1' name='search_in_subcategory'>
    			{else}
    				<input type=checkbox value='1' name='search_in_subcategory'
    				{if $search_in_subcategory}
    					checked
    				{/if}
    				> 
    				{$smarty.const.STRING_SEARCH_IN_SUBCATEGORIES}
    			{/if}
    		</td>
    	</tr>
    	{/if}
    	{if $categoryID}
    	<tr>
    		<td colspan=2 align="right">
    			<input type=submit class="bbcodes" value='{$smarty.const.FIND_BUTTON}' name='advanced_search_in_category'>
                            {php}if ($_SESSION['storage']==1) echo "<input type=hidden name='storage' value=1>"{/php}
    		</td>
    	</tr>
    	{/if}
    </table>
    </TD></TR>
    </form>
    </TABLE>
    </div>
                </div>
    Там куда хочешь вставить добавляем:
    {include file="vibor.tpl.html"}
    Вот и все.
    Только там как-то связаны переменные с категорией открытой страницы, поэтому на главной поиск не работает, зато на других страницах все ок. Может кто поможет?
     
  4. 99cent

    99cent

    Регистр.:
    27 фев 2009
    Сообщения:
    194
    Симпатии:
    11
    Копаясь в инете решение проблемы так и не нашел.
    Зато появилась идея.
    Создаем на главной ссылку на страницу расширенного поиска.
    страницу расширенного поиска делаем так:
    создаем невидимую категорию, при добавлении товаров добавляем им доп. родительскую директорию, ту что сделали невидимой. В ней получаются все товары на сайте. Далее включаем в ней расширенный поиск и вуаля -> расширенный поиск по всем товарам.
    Других вариантов пока нет. Получится так:
    http://oftime.com.ua/index.php?categoryID=142
     
  5. biznesoft

    biznesoft

    Регистр.:
    11 фев 2008
    Сообщения:
    510
    Симпатии:
    128
    Нууууууу оччень извращенный метод реализации задуманного.
    Имхо. Проще сделать так:
    Берем исходный код HTML страницы где присутствуют эти дополнительные параметры которые нам нужны для поиска на главной странице.
    Создаем блок на главной странице магазина и вставляем етот исходный код...
    Вот:
    HTML:
    
    <table cellpadding="0" border="0" width="100%">
    <tr>
    		<td align=left width=90% valign="top" s>
    			
    
    <div class="vibor">
                  <div>
    
    <TABLE border="0" align="center" width="100%">
    
    <form name='AdvancedSearchInCategory' method=get> 
    
    <TR><TD valign="top" width="100%">
    
    
    
    <input type=hidden name='categoryID' value='142'>
    
    <table border="0" cellspacing="0" cellpadding="0" align="center" width="100%">
    
    	
    
    		
    	<tr> 
    		<td align="center">
    			<b>Цена</b>:		
    			от
    			<input name="search_price_from" type="text" style="height:20px; font-family:tahoma; font-size:11px; margin-left:3px; margin-right:3px; border:1px solid #E0E0E0" value="" > 
    				до
    			<input name="search_price_to" type="text" style="height:20px; font-family:tahoma; font-size:11px; margin-left:3px; margin-right:3px; border:1px solid #E0E0E0" value="" > $
    
    		</td>
    	</tr>
    	
    			<tr align="center"> 	
    
    							
    						<td style="display:inline-block; padding:10px; width:160px;">
    		<select class="param"  name='param_2'>
    									<option value='0'>Бренд</option>
    																		<option value='6'
    																			>
    										APPELLA
    									</option>
    																		<option value='7'
    																			>
    										LeChic
    									</option>
    																		<option value='8'
    																			>
    										Haurex  
    									</option>
    																		<option value='73'
    																			>
    										Sauvage 
    									</option>
    																		<option value='74'
    																			>
    										Adriatica 
    									</option>
    																		<option value='75'
    																			>
    										 Ernest Borel
    									</option>
    																	</select></td>
    													
    					
    				
    
    							
    						<td style="display:inline-block; padding:10px; width:160px;">
    		<select class="param"  name='param_20'>
    									<option value='0'>Страна производитель</option>
    																		<option value='103'
    																			>
    										Италия
    									</option>
    																		<option value='104'
    																			>
    										Швейцария
    									</option>
    																		<option value='105'
    																			>
    										Япония
    									</option>
    																		<option value='106'
    																			>
    										Франция
    									</option>
    																		<option value='107'
    																			>
    										Украина
    									</option>
    																		<option value='108'
    																			>
    										Германия
    									</option>
    																	</select></td>
    													
    					
    				
    
    							
    						<td style="display:inline-block; padding:10px; width:160px;">
    		<select class="param"  name='param_14'>
    									<option value='0'>Коллекция</option>
    																		<option value='34'
    																			>
    										H-Culebra
    									</option>
    																		<option value='35'
    																			>
    										H-Durango
    									</option>
    																		<option value='36'
    																			>
    										H-Big fly
    									</option>
    																		<option value='37'
    																			>
    										H-Caimano
    									</option>
    																		<option value='43'
    																			>
    										H-Aeron
    									</option>
    																		<option value='44'
    																			>
    										H-Femme
    									</option>
    																		<option value='45'
    																			>
    										H-Inteus
    									</option>
    																		<option value='46'
    																			>
    										H-Promise
    									</option>
    																		<option value='47'
    																			>
    										H-Red rose
    									</option>
    																		<option value='48'
    																			>
    										H-Sensual
    									</option>
    																		<option value='49'
    																			>
    										H-Amnesia
    									</option>
    																		<option value='50'
    																			>
    										H-Black mamba 
    									</option>
    																		<option value='51'
    																			>
    										H-Casanova
    									</option>
    																		<option value='52'
    																			>
    										H-Deseo
    									</option>
    																		<option value='53'
    																			>
    										H-Eloise
    									</option>
    																		<option value='54'
    																			>
    										H-Flame
    									</option>
    																		<option value='55'
    																			>
    										H-Luna
    									</option>
    																		<option value='56'
    																			>
    										H-Raptor
    									</option>
    																		<option value='57'
    																			>
    										H-Ricurvo
    									</option>
    																		<option value='58'
    																			>
    										H-Suite
    									</option>
    																		<option value='59'
    																			>
    										H-Armata
    									</option>
    																		<option value='60'
    																			>
    										H-Cage
    									</option>
    																		<option value='61'
    																			>
    										H-Challenger
    									</option>
    																		<option value='62'
    																			>
    										H-Ducale
    									</option>
    																		<option value='63'
    																			>
    										H-Equinox
    									</option>
    																		<option value='64'
    																			>
    										H-Honey
    									</option>
    																		<option value='65'
    																			>
    										H-Preziosa
    									</option>
    																		<option value='66'
    																			>
    										H-Red arrow
    									</option>
    																		<option value='67'
    																			>
    										H-San marko
    									</option>
    																		<option value='68'
    																			>
    										H-Xsize
    									</option>
    																		<option value='69'
    																			>
    										Appella Mechanical
    									</option>
    																		<option value='70'
    																			>
    										Sauvage Drive
    									</option>
    																		<option value='71'
    																			>
    										Sauvage Energe
    									</option>
    																		<option value='72'
    																			>
    										Sauvage Triumph
    									</option>
    																	</select></td>
    													
    					
    				
    
    							
    						<td style="display:inline-block; padding:10px; width:160px;">
    		<select class="param"  name='param_1'>
    									<option value='0'>Пол</option>
    																		<option value='1'
    																			>
    										Мужские
    									</option>
    																		<option value='2'
    																			>
    										Женские 
    									</option>
    																		<option value='13'
    																			>
    										Унисекс
    									</option>
    																	</select></td>
    													
    					
    				
    
    							
    						<td style="display:inline-block; padding:10px; width:160px;">
    		<select class="param"  name='param_18'>
    									<option value='0'>Размер корпуса</option>
    																		<option value='83'
    																			>
    										41 мм
    									</option>
    																		<option value='84'
    																			>
    										46 мм
    									</option>
    																		<option value='85'
    																			>
    										36 мм
    									</option>
    																		<option value='86'
    																			>
    										47,5 мм
    									</option>
    																		<option value='87'
    																			>
    										45 мм
    									</option>
    																		<option value='88'
    																			>
    										нет данных
    									</option>
    																		<option value='89'
    																			>
    										44,5 мм
    									</option>
    																		<option value='90'
    																			>
    										38 мм
    									</option>
    																		<option value='91'
    																			>
    										35 мм
    									</option>
    																		<option value='92'
    																			>
    										43,5 мм
    									</option>
    																		<option value='93'
    																			>
    										37 мм
    									</option>
    																		<option value='94'
    																			>
    										48 мм
    									</option>
    																		<option value='95'
    																			>
    										25 мм
    									</option>
    																		<option value='96'
    																			>
    										40 мм
    									</option>
    																		<option value='97'
    																			>
    										39 мм
    									</option>
    																		<option value='98'
    																			>
    										42 мм
    									</option>
    																	</select></td>
    													
    					
    				
    
    							
    						<td style="display:inline-block; padding:10px; width:160px;">
    		<select class="param"  name='param_17'>
    									<option value='0'>Механизм</option>
    																		<option value='79'
    																			>
    										Механический с автоподзаводом ETА
    									</option>
    																		<option value='80'
    																			>
    										Механический с автоподзаводом ETA 2824 3H 3D
    									</option>
    																		<option value='81'
    																			>
    										Механический с автоподзаводом ETA 
    									</option>
    																		<option value='82'
    																			>
    										Кварцевый
    									</option>
    																	</select></td>
    													
    					
    				
    
    							
    						<td style="display:inline-block; padding:10px; width:160px;">
    		<select class="param"  name='param_10'>
    									<option value='0'>Стекло</option>
    																		<option value='14'
    																			>
    										Минеральное
    									</option>
    																		<option value='15'
    																			>
    										Пластиковое
    									</option>
    																		<option value='16'
    																			>
    										Сапфировое
    									</option>
    																	</select></td>
    													
    					
    				
    
    							
    						<td style="display:inline-block; padding:10px; width:160px;">
    		<select class="param"  name='param_9'>
    									<option value='0'>Тип индикации</option>
    																		<option value='9'
    																			>
    										Электронные
    									</option>
    																		<option value='11'
    																			>
    										Стрелочные
    									</option>
    																		<option value='12'
    																			>
    										Стрелочные + Электронные
    									</option>
    																	</select></td>
    													
    					
    				
    
    							
    						<td style="display:inline-block; padding:10px; width:160px;">
    		<select class="param"  name='param_13'>
    									<option value='0'>Корпус</option>
    																		<option value='27'
    																			>
    										Стальной
    									</option>
    																		<option value='28'
    																			>
    										Титановый
    									</option>
    																		<option value='30'
    																			>
    										Стальной с позолотой 5 мк
    									</option>
    																		<option value='32'
    																			>
    										Стальной с покрытием IPB
    									</option>
    																	</select></td>
    													
    					
    				
    
    							
    						<td style="display:inline-block; padding:10px; width:160px;">
    		<select class="param"  name='param_15'>
    									<option value='0'>Водонепроницаемость</option>
    																		<option value='38'
    																			>
    										10 метров
    									</option>
    																		<option value='39'
    																			>
    										30 метров
    									</option>
    																		<option value='40'
    																			>
    										50 метров
    									</option>
    																		<option value='41'
    																			>
    										100 метров
    									</option>
    																		<option value='42'
    																			>
    										200 метров
    									</option>
    																	</select></td>
    													
    					
    				
    
    							
    						<td style="display:inline-block; padding:10px; width:160px;">
    		<select class="param"  name='param_11'>
    									<option value='0'>Тип браслета/ремня</option>
    																		<option value='17'
    																			>
    										Кожаный ремешок
    									</option>
    																		<option value='18'
    																			>
    										Каучуковый ремешок
    									</option>
    																		<option value='20'
    																			>
    										Стальной браслет
    									</option>
    																	</select></td>
    													
    					
    				
    
    							
    						<td style="display:inline-block; padding:10px; width:160px;">
    		<select class="param"  name='param_19'>
    									<option value='0'>Дополнительные функции</option>
    																		<option value='99'
    																			>
    										Дата
    									</option>
    																		<option value='100'
    																			>
    										Хронограф
    									</option>
    																		<option value='101'
    																			>
    										2 часовых механизма
    									</option>
    																		<option value='102'
    																			>
    										Завинчивающаяся заводная головка
    									</option>
    																	</select></td>
    													
    					
    				
    
    							
    						<td style="display:inline-block; padding:10px; width:160px;">
    		<select class="param"  name='param_12'>
    									<option value='0'>Инкрустация</option>
    																		<option value='21'
    																			>
    										Белая керамика
    									</option>
    																		<option value='23'
    																			>
    										Кристалы Swarovski
    									</option>
    																		<option value='24'
    																			>
    										Черная керамика
    									</option>
    																	</select></td>
    													
    					
    				
    
    							
    						<td style="display:inline-block; padding:10px; width:160px;">
    		<select class="param"  name='param_16'>
    									<option value='0'>Гарантия</option>
    																		<option value='76'
    																			>
    										12 месяцев
    									</option>
    																		<option value='77'
    																			>
    										24 месяца
    									</option>
    																		<option value='78'
    																			>
    										36 месяцев
    									</option>
    																	</select></td>
    													
    					
    				</tr>
    
    		<tr>
    		<td colspan=2>
    
    							<input type=hidden value='1' name='search_in_subcategory'>
    			
    		</td>
    	</tr>
    	
    		<tr>
    		<td colspan=2 align="right">
    			<input type=submit class="bbcodes" value='Найти!' name='advanced_search_in_category'>
                            		</td>
    	</tr>
    	
    </table>
    
    </TD></TR>
    </form>
    </TABLE>
    </div>
                </div>		</td>
    </tr>
    </table>
    
    Html правим относительно шаблона и тд..
    Етот вариант прокатит если не очень часто меняются дополнительные параметры товаров и не перезаливаеться товар через прайс (чтобы Айди дополнительных характеристик не менялись).
    Вот и все. ;)
     
    99cent и onenures нравится это.
  6. 99cent

    99cent

    Регистр.:
    27 фев 2009
    Сообщения:
    194
    Симпатии:
    11
    Не. Тут же вся соль в том, что все через админку будет меняться. А в твоем варианте манагер будет заолбывать программера поменяй мне то, да поменяй это.
     
Статус темы:
Закрыта.