Привет люди! Допустим есть некоторый набор публикаций - статьи и все такое... Обычно их структурируют объединяя в категории и/или по тегам и прочим признакам. Вопрос в том стоит ли разрешать это делать пользователю? И как это сделать, например, разбивая по тегам, то есть каждой публикации соответствует набор тегов и наоборот. Как это правильнее реализовать? Допустим пользователь выбирает не сам, а из фиксированного набора. Но это же будет неудобно, если например сделать напротив каждого тега чекбокс в форме?.. А если он сам может через запятую перечислить то это ведет к избыточному мусору, так как это пользовательский ввод? Ну думаю вопрос понятен... Заранее благодарю.
http://spectator.ru/technology/web-building/tags2null - лично я не очень одобряю иерархические ключслова потому что древовидная фолксономия это окюморон. С другой стороны, теги вообще сосут и вариант Димы поможет справится с внешней проблемой - неудобностью "ухаживания" за тегами модераторам и админам. То есть сделать теги менее сосущими. А вводить теги пользователь должен руками, чтобы они создавались на ходу. Для удобности есть автозаполнялка (как на яндексе или в гугле) с помощью аякса.
я думаю, что от выбора из фиксированного списка надо отказаться сразу. не стоит переоценивать себя или другого человека, которому будет поручено модерировать список тегов. чтобы поддерживать такой список, нужно быть реально гением.
В новостном сайте сделали фиксированный набор (рубрики) и дали возможность юзерам самим вводить теги. Рубрику выбрать надо обязательно (одну или несколько), теги по желанию.
может парсить текст после отправки и тупо если встречаются имеющиеся в базе теги "окритеривать" эту статью в эти теги.... ну только алгоритм по интеллектуальнее придумать?
Ты никогда теги в движках не видел? В WordPress, например. Есть таблица tags (id, tag (уникальное поле)). Есть post_tags (post_id, tag_id). Поле для ввода тегов это обычный инпут с типом text. Вводить туда теги надо через запятую. При сабмите формы делаем explode(), вынимаем те, которых нет в таблице tags: [sql]select id, tag from tags where tag in (список наших тегов)[/sql] Делаем array_diff() результатам запроса и explode() поля. Если есть разница, то добавляем слова из этой разницы в таблицу + додумываем id сами исходя из последнего (чтобы лишний запрос не делать). Берём эти id и вставляем в post_tags.
kostyl, пусть пишут матное, это ранит твою психику что ли? Пусть пишут умное. Тебе на это следует положить. Ключевые слова так работают, это их суть чтобы каждый мог вписать то, что по его мнению характерезует контент. Кто-то добавляет новость о том, что вышел новый альбом "Ленинграда", очевидно, в ключевых словах напишут: ленинград, шнур, шнуров, фиг. Создав рубрики заранее ты не охватиш всего, а значит без модерации нельзя.