Просмотров: 6712 шт.
В наше время бурного расцвета «веб-два-ноля» почти каждый уважающий себя веб-мастер старается придать своему детищу некий налет этой самой веб-два-нольности. И одним из самых часто встречающихся элементов является т.н. «облако тегов», которое является визуальным представлением серьезной штуки, под названием
фолксономия.
Действительно — теггирование контента сайта пользователям является мощным навигационным и каталогизационным инструментом. И в то же время привлекает разработчиков своей с виду простой реализацией.
*****
И вполне естесственно, что в процессе разработки нашего проекта мы в определённый момент столкнулись с задачей реализовать облако тегов на сайте.
“
Облако тегов” или “Облако меток” (англ. tag cloud) — визуальное представление списка ярлыков. Частота упоминаний, поисков, ссылок в интернете с определенного сайта неких слов, терминов, имен, отображается в виде изображения этих слов в формате гиперссылок. Размер отображения тем больше, чем выше релевантность данного слова.
Теги для многих удобнее категорий, и, наверное, поэтому без них сейчас не обходится ни один проект в концепциях Web 2.0. Для многих CMS есть модули или плагины, выводящие облако тегов. WordPress, например, поддерживает такую функцию начиная с версии 2.3.
Я составил некий алгоритм, который поможет начинающему разработчику осмыслить все шаги на пути решения проблемы. Почему начинающему? Потому что продвинутый разработчик врядли увидит в этом вопросе проблему.
Итак:
Первым делом необходимо предоставить возможность пользователям указывать эти самые теги при написании своих постов.
Можно конечно доверить это дело серверу и вычислять наиболее часто встречающиеся слова из самого текста. Но во-первых необходимо приводить перечень стоп-слов, которые следует пропускать при анализе (Такие как предлоги, наречия и т.п.), а во-вторых любой скрипт врядли способен "выдернуть" из текста 3-4 самых важных тега. Уж лучше указать их лично.
Следующий этап - это создание таблицы базы данных, куда мы будем заносить теги. Например такого типа: "Идентификатор записи, к которой принадлежит тег" - "тег"
Далее нам необходимо сделать выборку из базы данных. В самом простом случае в запросе делаем выборку name (имя тега) и count(name) (количество повторений) и соответственно группируем по name. Можно также ограничить количество результатов например LIMIT 20
Таким образом вы получите 20 тегов и узнаете количество повторений каждого тега. После этого нам необходимо перемешать результат, чтобы облако выглядело красиво, и осталось только вывести посетителю.
В статье Жилинского
Как сделать облако тегов на PHP приведено описание алгоритма и
пример реализации
формирования облака тегов на php
Здесь приведён похожий пример реализации фолксономии на сайте.
Но больше всего мне понравился пример реализации облака тегов в блоге
Bolzamo:
Облако тегов с относительными размерами - всего 3 строки кода. Демо работы этой функции можно глянуть
тут
Это лишь малая часть того, что можно найти в интернете по фразе "
php облако тегов". Что больше подойдёт в вашем конкретном случае - решать вам. Но известно точно, что наличие облака тегов на сайте в большинстве случаев значительно упрощает навигацию и является ещё одним шагом вперёд на пути продвижения вашего сайта к стандартам этого всеми любимого "web 2.0".
Добавлено позже:
Кстати, вдогонку, рекомендую почитать статью Кевина Хоффмана "
В поисках... идеального облака тегов"
В этом документе описаны несколько алгоритмов посторения облака. А также рассмотрены все плюсы и минусы того или иного алгоритма.
Линейный алгоритм позволяет выводить нечто действительно похожее на облако тегов (смущает лишь присутствие не совсем актуальных тегов в этом облаке). Логарифмический же алгоритм построения нивелирует этот недостаток, и по мнению авторов блога "
Codespot — записки с урановых рудников", позволяет наиболее точно отобразить ситуацию с контентом на сайте.
Комментарии:
Авторизуйтесь или зарегистрируйтесь, чтобы иметь возможность комментировать записи!