Идея: поиск похожих URL
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Идея: поиск похожих URL
Полез в мануал PHP и в очередной раз наткнулся на http://ru.php.net/manual/en/function.levenshtein.php. Возникла идея использовать на 404-х страницах для вывода похожих URL. Вот только как оформить пока не очень ясно: action-ом или каким-то более универсальным расширением…
Нравится Yii? Давайте сделаем его лучше!.
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: Идея: поиск похожих URL
Не совсем понимаю, в чем идея ? Можете описать подробней ?
Re: Идея: поиск похожих URL
Идея проста, пользователь попадает на 404 страницу на вашем сайте. Вопрос: как он туда попал? По ошибочному УРЛ, который он набрал руками или ему выдал поисковик. Т.е. у нас есть некоторый УРЛ, который нам дает пользователь. Но на нашем сайте нет такого, нет такой страницы.
"Что делать?" - спросите Вы.
А Sam Dark и говорит: "О, функция Левенштайна вам в помощь".
Задача такова: что мы имеем предложить пользователю из ассортимента нашего сайта, если пользователь пришел на него по ошибочному УРЛ?
Например, пользователь ввел "moisait.ru/mali", а ведь возможно, что хотел "moisait.ru/mail" или "moisait.ru/malibu" (уж такие-то страницы у нас есть : )
И таких вариантов может быть много. Поэтому почему бы не использовать аналитические возможности функции Левенштайна?
"Что делать?" - спросите Вы.
А Sam Dark и говорит: "О, функция Левенштайна вам в помощь".
Задача такова: что мы имеем предложить пользователю из ассортимента нашего сайта, если пользователь пришел на него по ошибочному УРЛ?
Например, пользователь ввел "moisait.ru/mali", а ведь возможно, что хотел "moisait.ru/mail" или "moisait.ru/malibu" (уж такие-то страницы у нас есть : )
И таких вариантов может быть много. Поэтому почему бы не использовать аналитические возможности функции Левенштайна?
-
- Сообщения: 350
- Зарегистрирован: 2009.09.17, 16:47
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Идея: поиск похожих URL
Интересная идея.
Можно начать с экшена, а там и в расширение перерастет.
Можно начать с экшена, а там и в расширение перерастет.
Предупрежден - значит вооружен.
devKP.ru
devKP.ru
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Идея: поиск похожих URL
А причем тут экшн? Что его нужно будет прикручивать к каждому контроллеру?
Может как-то расширить CURlManager, который парсит урл до того как вызовет контроллер.
Может как-то расширить CURlManager, который парсит урл до того как вызовет контроллер.
Жду Yii 3!
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Идея: поиск похожих URL
Экшн я хотел для использования его в контроллере для отображения 404-й, но расширить CURlManager — тоже очень неплохая идея.
Нравится Yii? Давайте сделаем его лучше!.
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Идея: поиск похожих URL
Сам же предложил, но теперь хотел бы забрать свое предложение.
После прочтения, темы Управление отображением ошибок в действии контроллера изменил свое мнение. Через экшн будет удобнее. ИМХО.
После прочтения, темы Управление отображением ошибок в действии контроллера изменил свое мнение. Через экшн будет удобнее. ИМХО.
Жду Yii 3!
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: Идея: поиск похожих URL
Хорошая идея, поковыряю фрэймвок и посмотрим. Имел опыт с urlManager, но не уверен что это хорошая идея.
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: Идея: поиск похожих URL
может повесить на catchAllRequest ?
А уже в нем, если все ок, то
$route=$this->getUrlManager()->parseUrl($this->getRequest());
Yii::app()->runController($route);
Есть одна особенность, прийдется этому расширения в параметрах передавать имена всех контроллеров и акшинов в них.
А уже в нем, если все ок, то
$route=$this->getUrlManager()->parseUrl($this->getRequest());
Yii::app()->runController($route);
Есть одна особенность, прийдется этому расширения в параметрах передавать имена всех контроллеров и акшинов в них.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Идея: поиск похожих URL
По моему всё-таки логичнее не каждый раз дёргать расширение, а вызывать action когда уже случилась 404, но до её непосредственного вывода. В этом случае контроллеры и action-ы передавать не надо т.к. они уже отработали.
Обычно поиск производится по какому-то значению в базе. У меня на RMCreative, например, такое значение будет Post.alias, в котором хранится необходимая часть URL.
Обычно поиск производится по какому-то значению в базе. У меня на RMCreative, например, такое значение будет Post.alias, в котором хранится необходимая часть URL.
Нравится Yii? Давайте сделаем его лучше!.
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Идея: поиск похожих URL
зачем такие сложности? если по ссылке выше, показано как в конфиге можно указать контроллер и екшн, которые будут ошибки показывать, этот экшн сделать и все, одним подключением в конфиге включаем данную фичу.
Жду Yii 3!
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: Идея: поиск похожих URL
Акшн должен знать об остальных страницах на сайте. То есть о всех контролерах и их акшнов.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Идея: поиск похожих URL
Можно предоставить метод для добавления массива URL.
Нравится Yii? Давайте сделаем его лучше!.
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: Идея: поиск похожих URL
Тогда вариант с акшином самый лучший.
-
- Сообщения: 350
- Зарегистрирован: 2009.09.17, 16:47
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Идея: поиск похожих URL
Если экшену передавать все URL сайта, насколько быстро все это будет работать...
Предупрежден - значит вооружен.
devKP.ru
devKP.ru
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Идея: поиск похожих URL
Отлично будет работать: допустим, при добавлении поста генерим URL на его просмотр и отдаём расширению. Расширение это дело пишет в базу. При поиске просто делаем запрос ничего не добавляя. Вот только надо посмотреть, есть ли аналог levenshtein() для MySQL/PostgreSQL/MSSQL, чтобы не вытаскивать все URL.
Нравится Yii? Давайте сделаем его лучше!.
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: Идея: поиск похожих URL
sitemap поможет.