|
Гость
Гость
|
Описание проблемы:
Допустим, Вы продаете товар (услуги и т.п.). Товар обладает набором свойств, например: вино, св-ва вина: наименование, производитель, страна производителя, дата разлива, красное или белое, сладкое или сухое, литраж упаковки, и т.д. Перед Вами встает вопрос как организовать каталог товаров - раскидать товар по производителям, далее по цвету, далее по литражу (или в обратном порядке?! и т.д. От решения данного вопроса будет зависеть организация рубрикатора, навигация по сайту, поиск товара. Тут следует сделать акцент на слове "поиск".
При организации поиска товаров необходимо вывести форму поиска с указанием желанных критериев отбора. Далее нажимаем "искать" - и видем результат! Юзер доволен и все счастливы. Но, искать товар могут не только юзеры, но и поисковые машины.
И тут стоит обратить внимание на получившийся 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, если возникнет в этом необходимость...
|