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

Статус
В этой теме нельзя размещать новые ответы.

ed101

Писатель
Регистрация
5 Янв 2008
Сообщения
2
Реакции
0
Как сделать поиск (подбор товаров) как на сайте Для просмотра ссылки Войди или Зарегистрируйся. Именно чтобы выбрать все параметры, а не как это реализовано в Shop-script.
 
Как сделать поиск (подбор товаров) как на сайте Для просмотра ссылки Войди или Зарегистрируйся. Именно чтобы выбрать все параметры, а не как это реализовано в Shop-script.

Я думаю это надо организовывать отталкиваясь от дополнительных параметров к товару.... а потом просто вывести на главную поиск который идет в product_brief.html.tpl
 
Я сейчас этим занимаюсь.
Создай файл в шаблонах, например 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"}
Вот и все.
Только там как-то связаны переменные с категорией открытой страницы, поэтому на главной поиск не работает, зато на других страницах все ок. Может кто поможет?
 
Копаясь в инете решение проблемы так и не нашел.
Зато появилась идея.
Создаем на главной ссылку на страницу расширенного поиска.
страницу расширенного поиска делаем так:
создаем невидимую категорию, при добавлении товаров добавляем им доп. родительскую директорию, ту что сделали невидимой. В ней получаются все товары на сайте. Далее включаем в ней расширенный поиск и вуаля -> расширенный поиск по всем товарам.
Других вариантов пока нет. Получится так:
Для просмотра ссылки Войди или Зарегистрируйся
 
Нууууууу оччень извращенный метод реализации задуманного.
Имхо. Проще сделать так:
Берем исходный код 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 правим относительно шаблона и тд..
Етот вариант прокатит если не очень часто меняются дополнительные параметры товаров и не перезаливаеться товар через прайс (чтобы Айди дополнительных характеристик не менялись).
Вот и все. ;)
 
Не. Тут же вся соль в том, что все через админку будет меняться. А в твоем варианте манагер будет заолбывать программера поменяй мне то, да поменяй это.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху