Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля
ЧЁРНАЯ ПЯТНИЦА: -40% на редакции E-commerce и Extra до 2 декабря
Купить со скидкой

Нестандартные решения для стандартных вещей

29.06.2006, 15:19
Гость
Гость

Описание проблемы:
Допустим, Вы продаете товар (услуги и т.п.). Товар обладает набором свойств, например: вино, св-ва вина: наименование, производитель, страна производителя, дата разлива, красное или белое, сладкое или сухое, литраж упаковки, и т.д. Перед Вами встает вопрос как организовать каталог товаров - раскидать товар по производителям, далее по цвету, далее по литражу (или в обратном порядке?! улыбка и т.д. От решения данного вопроса будет зависеть организация рубрикатора, навигация по сайту, поиск товара. Тут следует сделать акцент на слове "поиск".

При организации поиска товаров необходимо вывести форму поиска с указанием желанных критериев отбора. Далее нажимаем "искать" - и видем результат! Юзер доволен и все счастливы. Но, искать товар могут не только юзеры, но и поисковые машины.

И тут стоит обратить внимание на получившийся URL - наверняка что-то типа "http://www.mydomain.ru/search/?id=4&dir=35&t=109&cv=434". В данном случае адресом каталога является "http://www.mydomain.ru/search/", а параметрами к поиску являются "?id=4&dir=35&t=109&cv=434".
Думаю, не секретом будет сказать, что не все поисковые машины анализируют параметры, передаваемые скриптам. Соответственно, будет проиндексирована только одна страничка с адресом "http://www.mydomain.ru/search/". Далее делайте свои выводы...

Возможная альтернатива:
Альтернатива не нова и скорее позаимствована из других CMS. Все передаваемые параметры преобразовываем к виду каталога. По уже приведенному примеру это будет выглядеть так: "http://www.mydomain.ru/search/4-35-109-434/". Если в критериях поиска указать только один параметр, то вид будет такой: "http://www.mydomain.ru/search/-35--/".

Можно, конечно, говорить, что мол не понятно где какой параметр указан и т.д., но это все решаемо и решение адаптировано как для юзера, так и для поисковой машины...

Но NetCat так не делает!!!
Да, NetCat много что не делает, но и много что позволяет! улыбка
Вопрос тут в следующем - как же обработать указанный адрес, если фактически в рубрикаторе каталога с таким адресом нет???

Все просто, за аналог в NetCat'e можно взять стандартный шаблон "Новости". Там есть поле "Date", тип поля - "Дата", формат "event". В результате имеем адрес "http://www.mydomain.ru/news" - тут выводятся все новости. Также можно выводить по годам: "http://www.mydomain.ru/news/2006/", по месяцам и дням. Каталога "/2006/" не существует, но движок его почему-то обрабатывает... улыбка

NetCat это сделает???
Неа, неткет не сделает. Сделаете Вы сами. Если у Вас есть фантазия и Вы не ограничиваете себя набором стандартных шаблонов и API функций, то предложенное решение для Вас!

Оговорюсь сразу - реализация данной задачи затрагивает изменение движка системы (если Вы его измените, то при обновлении ничего не сохранится и Вам придется все вписывать еще раз... беда блин улыбка

Реализация в теории:
Для реализации Вам необходимо:
1. Иметь каталог продукции улыбка
2. Определиться с количеством свойств товара, т.е. количество критериев, по которым будет реализован поиск.
3. В шаблоне товаров добавить любое поле с типом "Строка", формат поля "filtr:xx", где xx - это количество Ваших св-в (критериев поиска).
4. Необходимо строго определить порядок следования критериев "4-35-109-434", допустим 4 - это ИД производителя, 35 - ИД цвета, 109 - ИД литража и т.д.
5. В шаблоне в "Действие после добавления объекта" и в "Действие после изменения объекта" определяете св-ва товара и формируете код товара. Например, если указан только производитель, то код будет выглядеть так: "4---", если еще и литраж указан, то так: "4--109-" (я не буду расписывать как такое сформировать, это выходит за все допустимые рамки данного поста.. улыбка

После того как сформировали такой код, его надо сохранить в определенное в п.3 поле у добавляемого/изменяемого товара. Это всЈ, что потребуется от Вас по настройке данного функционала.

Реализация в практике:
Для реализации такой вот нестандартной задачки было переписано 3 файла у движка NetCat'a:
1. /netcat/index.php
2. /netcat/require/e404.php
3. /netcat/require/s_list.inc.php

Вот ссылка на переписанные файлы http://www.bolid.ru/shop/diggy/filtr.zip (вирусов нет - проверено! улыбка Переписываемая версия движка 2.3 + 5й апдейт, хотя это все без проблем реализовывается и на 2.4!

Все внесенные изменения были отмечены комментариями:
Код:

// <!--- Update by DiGGy
.......
// Update by DiGGy ---!>



После внесения изменений в свой движок и настройку шаблона, Вам больше не придется анализировать в "Системных настройках" шаблона и т.д. передаваемые параметры "?id=4&dir=35&t=109&cv=434" и формировать sql запрос с их учетом. Все будет делаться автоматом, Вам нужно будет только правильно формировать адрес "/-----/"


Резюме:
1. Все вышеописанное Вы делаете на свой страх и риск, компания NetCat гарантий не дает, хотя я даю улыбка
2. По всем вопросам можете обращаться diggy@yandex.ru

ЗЫ: Просьба к разработчикам системы NetCat - посмотрите, оцените и желательно внедрите в свой движок, функционал простой и очень полезный! Могу выслать исходники для версии 2.4, если возникнет в этом необходимость...
29.06.2006, 16:17
Гость

Зарегистрирован:
1970-01-01
Сообщений: 665

Не понял, как данный вид адресации повилияет на поисковик? =)
Он дойдет до формы и проигнорирует ее? или будет пытаться выбирать и постить форму?
29.06.2006, 16:55
Гость
Гость

Тут суть не в форме поиска по разным критериям как таковой, а в том, что можно совместить как и форму поиска так и рубрикатор. Навигация становится более универсальной.

Если в первом случае путь такой: производитель - цвет - литраж - ...
То во втором случае путь произволен и может начинаться с любого св-ва товара и юзер может на каждом этапе сам определять по какому св-ву двигаться дальше, например:

делаем на страничке ссылки:
- по производителю
- по цвету
- по литражу

жмем на "литраж" - дальше определяем что литраж уже выбран и выдаем только два оставшихся:
- по производителю
- по цвету

далее жмем на "цвет" и т.д.

поисковик будет эти ссылки индексировать (формочки конечно не будет... хотя кто их знает...)
29.06.2006, 18:17
Гость

Зарегистрирован:
1970-01-01
Сообщений: 665

Поискови до них даже не добереться через все эти формочки.
Такую же пошаговую стратегию поведения ТОЧНО ТАКЖЕ можно реализовать и при наличии параметров в адресе.

Я просто не вижу смысла интегрировать данный механизм в систему, разве что более понятные УРЛЫ для человека станут. Или я чего-о не понимаю...
30.06.2006, 10:23
Гость
Гость

MipH писал(а):
Такую же пошаговую стратегию поведения ТОЧНО ТАКЖЕ можно реализовать и при наличии параметров в адресе.

Можно, но ПРИ НАЛИЧИИ ПАРАМЕТРОВ.

MipH писал(а):
Я просто не вижу смысла интегрировать данный механизм в систему, разве что более понятные УРЛЫ для человека станут. Или я чего-о не понимаю...

Смысл прост - сделать альтернативу. Пусть пользователи сами решают, что и как им удобнее и проще для них. Затрат на дописание движка практически нет - все готово, зато система станет чуточку универсальней...
30.06.2006, 14:58
Гость
Гость

А такой вопрос позвольте -- зачем поисковым системам индексировать страницы с результатами поиска? Кто-то в яндексе ищет результаты поиска по сайту вместо конкретных товаров? Зачем пользователям подсовывать дополнительные промежуточные страницы, если он может сразу попасть на страницу с товаром?
01.07.2006, 15:23
N!trO
Piplos Media
N!trO

Зарегистрирован:
2004-12-20
Сообщений: 10

DiGGy ты говориш дело. Сам много раз с таким сталкивался и приходилось выкручиваться стандартными методами. По поводу внедрения в движек - былобы хорошо... Нужно же внедрять новые идеи в систему ибо все что есть на данный момень порядком поднадоело... это я говорю про все коммерческие CMS...

nitro
02.07.2006, 16:19
Гость

Зарегистрирован:
1970-01-01
Сообщений: 665

nitro
welcome to our moscow office...
198 196 2006-07-02 16:19:17 8610
Описание проекта