Теги и облако тегов в DLE (основные моменты)
С системой DLE я сталкиваюсь, конечно, меньше чем с wordpress, но тоже бывает. Как правило, это некоторые мелкие правки шаблона, но для поиска решения задачи приходится потрудится. В идеале было бы неплохо ими поделиться в данном блоге, но, увы, порой об этом я просто забываю. Статья про SEO оптимизация DLE с помощью модуля CatFace исключение из этой тенденции.
Но сегодня я решительно настроен рассказать вам о тегах в DLE, в том числе и про создание облака тегов. Пост будет полезен новичкам и тем, кто ищет информацию о системе DLE. Работал я с версией DLE 9.4 и все коды, приведенные ниже, точно работают для нее (за остальные релизы не ручаюсь).
Теги в админке DLE
Итак, вводятся теги для новостей при их добавлении в закладке «Дополнительно». Спец.символы при этом использовать нельзя.
Также в админке DLE имеется раздел «Управление облаком тегов», где вы найдете перечень всех, добавленных тегов с возможностью их переименования и удаления.
Модуль называется «tagscloud», я так понимаю идет в сборке CMS по умолчанию.
Вывод тегов для новостей
Зачастую для страниц полного отображения постов и архивов в wordpress теги я вывожу после каждой записи. Это с одной стороны подсказывает пользователям о чем идет речь в статье, с другой — дополнительный вариант навигации по сайту.
В DLE для вывода тегов новости используется {tags}. Он же используется для вывода облака тегов. Находим файл шаблона с полным отображением новости fullstory.tpl, где добавляем:
Теги: {tags} |
То же самое можно сделать и на главной + страницах архивов. Для этого редактируем файл shortstory.tpl, где (в моем случае) указывается шаблон вывода анонсов новостей.
Облако тегов в DLE
Для отображения облака тегов в сайдбаре используется тот же {tags}. В коде выглядит вот так:
<div id="block"> <div id="block_top">Облако тегов</div> <div id="block_ct"><div id="block_c"> {tags} </div></div> </div> |
Но перед его добавлением не забудьте зайти в раздел «Настройки системы» — пункт «Оптимизация запросов к базе данных«, где активировать поддержку облака тегов. Дальше можно обновить кэш в DLE и проверять его отображение на сайте.
У меня лично именно из-за этого была проблема с тегами — просто выводился текст {tags} без облака. Но я встречал и другие глюки, где необходимо было править htaccess файл и т.п. — по этим вопросам погуглите решение в сети.
Если хотите выводить в облаке тегов DLE определенное число ссылок, то можно использовать конструкцию:
{tags limit="45"} |
В моем случае это, увы, не получилось, поэтому пришлось найти файл engine/modules/tagscloud.php, где внести некоторые коррективы. Там есть выборка SELECT из базы данных по запросу $db->query. Точнее их в моем шаблоне 2 штуки — одна для облака тегов в сайдбаре, другая для страницы со всеми тегами. Я редактировал такую строку:
$db->query("SELECT SQL_CALC_FOUND_ROWS tag, COUNT(*) AS count FROM " . PREFIX . "_tags GROUP BY tag ORDER BY count DESC LIMIT 0,40"); |
После перезаписи файла — чистим кэш! Кстати, теоретически, раз уж здесь осуществляется выборка из БД, то можно сортировать не только по спадающей (DESC), а и выводить самые непопулярные теги (ASC) для их лучшей индексации, если это нужно. Тот, кто хорошо разбирается в php может даже реализовать вывод случайных тегов.
Страница тегов DLE
Для страницы всех тегов в шаблоне должен быть файл tagscloud.tpl, если я правильно понял. Кстати, в данном случае настройка limit сработала как и нужно.
<div class="basecont"> <div class="dpad"> <h2 class="heading">Все ключевые теги:</h2> {tags limit="100"} <br clear="all" /> </div> </div> |
Если не выводится нужное количество тегов, можно также править файл engine/modules/tagscloud.php. Кстати, внимательно проверьте файл шаблона tagscloud.tpl на наличие сторонних ссылок — у меня «доброжелатели» размещали там свой спам.
Оформление облака тегов DLE
Тут все, в принципе, реализуется через стили. Вы можете добавить для облака тегов в сайдбаре какой-то DIV со стилем например class=»mytagcloud», после чего пишете в style.css:
.mytagcloud { text-align: center; } |
Размер шрифтов для облака тегов найдете в файле engine.css.
/*---Облако тегов---*/ .clouds_xsmall { font-size: 1em; } .clouds_small { font-size: 1.1em; } .clouds_medium { font-size: 1.2em; font-weight: bold; } .clouds_large { font-size: 1.5em; } .clouds_xlarge { font-size: 1.7em; } |
Напоследок еще можно удалить запятые из облака тегов. Делается это в файле engine/modules/tagscloud.php. Находим строку:
$tpl->result['tags_cloud'] = implode(", ", $tags); |
и заменяем ее на:
$tpl->result['tags_cloud'] = implode(" ", $tags); |
После этого чистим кэш в DLE и проверяем результат.
Вот, в принципе, и все что я вспомнил про теги и облако тегов в DLE. Вроде бы ничего сложного, но если будут вопросы, пишите в комментариях.
Ищу как реализовать как раз вывод случайных тегов на каждой странице, это сложно реализовать ?
Евгений, я пытался это реализовать, но у меня не получилось, а так как не было особо времени этим заниматься, то забросил. Теоретически нужно в ходе выборки из базы данных (там где код с query SELECT) реализовать считывание случайных записей. Вроде бы параметр Rand используется или что-то в этом роде.
Как добавить теги без новости?
AnnaSuper, не думаю, что это возможно. Да и непонятно зачем создавать теги без новостей. В разделе «Управление облаком тегов» сможете подредактировать те или иные теги или удалить их. Но создания там нет.
доброго времени суток у меня такая проблема при форматирование ссылок в облоке тегов создаются не правильные ссылки и влияют на волидацию html кода хотя при нажатии на тег проблем с переходом нет меня волнует валидация кода может подскажете где это поправить и как заранее спасибо !
bikon, сначала можно попробовать подправить шаблон отображения облака, если это не помогает, то придется копаться в php исходном коде системы (хотя это не лучший вариант).
А если удалить все что связанно с облоком тегов это поможет??
bikon, ну если прям так сильно нужна валидация, то можно убрать облако тегов вовсе.
спасибо большое за ответы есть еще один вопрос у меня сайт на дле движке такая есть еще проблемма зделанно так тайтл ,h1 ,дискрипшен и кейвордс прописывается автоматом но есть одна проблемка ето h1на страницах погинации токого вдида /2015/02/12/ если мне приходится на них h1 прописывать в ручную и вроде бы все решается но возникает следующия проблема эта страничка открывается еще с других ссылок и получается дубли h1 то есть по 2 h1 на одной странице и как этот вопрос решить я не знаю может вы что подскажете ЗАРАНЕЕ СПАСИБО !!!
bikon, вопрос с дублями, к сожалению, я не решал, поэтому не смогу подсказать. Думаю, в других блогах есть подобные советы, я с DLE не сильно активно работал.
Спасибо буду теперь регулярно заходить может еще че найду для себя с облоком тегов вопрос решил просто удалил его и сразу код стал валидным вот че получилось кому интересно посмотрите obuhalka.ru
Коллеги, кто знает, как вы выводить уникальный текст на странице тега с заголовком h1!?
Валерий, скорее всего для этого понадобится какой-то специальный модуль. Я что-то похожее вроде бы видел, но название, увы, не вспомню.
Tod, если вспомните, пожалуйста отпишитесь здесь. Буду благодарен!
Валерий напишите мне в скайп pokras7777 или на почту у меня есть специальный модуль я вам все покажу и раскажу возможна помощь установке если скайпа нет пишите в аску 682232533 или на крайний случай на почту bikon777@yandex.ru ,буду рад помочь пишите ))))
как добавить теги в карту сайтов dle?
Дмитрий, если честно, давно с этой системой не работал, возможно там что-то изменилось за последние 2-3 года, но судя по моей последней статье о картах сайта для DLE в настройках добавления тегов в sitemap точно не предусмотрено. Если речь идет об HTML версии, то тут есть страница tagscloud.tpl со всеми метками, можно на нее ссылку поставить из карты либо попытаться настроить в шаблоне вывод вместе с тегами. Для XML вероятно нужно поискать какой-то модуль, что поддерживает эту функцию. К сожалению, в DLE не так силен, как в WP)
добрый день. ну а как просто вывести стринчку с тегами. к примеру чтобы теги были разделены по алфавиту. ну типа А — и все теги на А. ну и так далее
Александр, к сожалению, не знаю как это сделать, давно с DLE не работал. Возможно, самый простой и прямолинейный метод (если не привлекать программистов) — создать вручную страницу и туда добавить текст/ссылки на все теги.