- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Самописный движок. Решил сделать к статьям возможность добавлять теги (метки).
Решил сделать адрес у страниц тегов вида site.ru/tags/voda.html для записей с тегом "вода".
Есть функция, которая переводит русский текст в транслит,
в ней заданы соответствия русских букв и английских буквосочетаний (типа в - v, я - ja)
А теперь появилась потребность в обратном переводе.
Вариант поменять местами соответствия не подходит,
т.к. русские и е и э меняются на латинскую e
а мягкий знак вообще заменяется на пустоту.
Пока вижу выход только в задании соответствия для каждой пары слов, типа:
podarki - подарки, novyj_god - новый год
Естественно вариант плох тем, что приходится добавлять все слова/словосочетания,
а их список будет расширяться.
PS:
или переходить в урлах либо на русские буквы (не уверен, что они везде работают), либо на 16-ричные коды (которые начинаются с %)?
Пока вижу выход только в задании соответствия для каждой пары слов, типа:
podarki - подарки, novyj_god - новый год
Естественно вариант плох тем, что приходится добавлять все слова/словосочетания,
а их список будет расширяться.
Собственно, обычно так и делают.
Вы же список тегов на русском храните, судя по всему, почему не добавить поле с транслитом (вы же БД используете, да? :) ).
При таком варианте вы можете делать выборку в любую сторону (по русскому названию, по названию в транслите..)
Да вот захотел не использовать БД, т.е. не делать таблицу с тегами.
А просто к статьям добавить поле теги, которое заполняется в виде "тег 1, тег2, еще тег"
С каждого из которого будет ссылка на страницы: teg1.html, teg2.html, esche_teg.html
А потом teg1 переводить обратно в тег 1
а статьи выбирать запросом: SELECT * FROM articles WHERE tags LIKE '%тег 1%'
PS:
+ в том, что добавление тегов к статьям можно сделать быстро (просто написанием их в текстовом поле, а не через предварительное добавление тега в таблицу, а потом привязки тега к статье)
PPS:
догадываюсь что LIKE '%тег 1%' работает медленно или много ресурсов жрет, но тут вроде не должно быть много таких запросов, только 1 запрос на странице
1) Не вижу противоречия между "написанием их в текстовом поле" через запятую и "добавление тэга в таблицу и привязка тэга к статье"... просто обработку строки, содержащей список тэгов делать после сохранения статьи (актуализировать связи с тэгами).
2) С этим "добавлять все слова/словосочетания,
а их список будет расширяться" тоже не вижу особой проблемы: добавление и перевод (обратный транслит) тэгов можно делать на автомате, а руками переводить только некорректные случаи.
А ещё лучше, при автоматическом создании тэгов в п.1 сохранять исходную русскую версию, тогда не придется править потом.
LIKE '%тег 1%'
зацепит и "тег 1", и "тег 12", и "тег 123"
По поводу нагрузки - Вам виднее..
зацепит и "тег 1", и "тег 12", и "тег 123"
точно! не подумал :(
значит не только без таблицы тегов не обойтись (где будут русское название и транслитом)
а еще нужна и таблица связи ид-шников статей с ид-шниками тегов, да?
---------- Добавлено 22.08.2013 в 11:01 ----------
значит не только без таблицы тегов не обойтись (где будут русское название и транслитом)
а еще нужна и таблица связи ид-шников статей с ид-шниками тегов, да?
просто нужно сделать, чтобы заполнять их не ручками, а автоматом, обрабатывая введенную строку со списком тегом.
так?
значит не только без таблицы тегов не обойтись (где будут русское название и транслитом)
Ну, почему.. можно и без неё.. если подумать. Вот нужно ли?
Ну, почему.. можно и без неё.. если подумать.
Там как бы потеря информации получается тогда, без словаря никак.
Если просто надо туда-обратно - то разработать свои правила однозначной обратимой транслитерации.
а правила транслитерации менять не хочется
выходит по-любому нужен словарь (таблица с русскими и транслитерованными названиями тегов)
я - ja
Вангую мощную пессимизацию Яндекса, вплоть до АГС.
вот нафиг транслит не нужен для адреса генерируемой, а не физически существующей страницы.
уж лучше фильтр какой-нибудь на input повесть - не пускать особо корявые символы в урл (тег), если очень приспичит - и потом всю обработку одним LIKE-ом делать без извращений.
урл делать в обычном урленкоде, страницы тегов закрыть от индексации.