Привет, друзья. Я почти все свое время уделяю . Так как большинство моих сайтов построены на CMS DLE, то и приходится много работать с этим движком. Я и раньше говорил, что с SEO разработчики не дружат, и вообще такого слова не слышали никогда, но оказалось все еще хуже, чем могло бы быть. Я даже подготовил целую серию постов, посвященных «осеошиванию» народного движка (см. в категории ).
Но сегодня я бы хотел поговорить про такую важную вещь как html карта сайта для DLE. Сколько я не искал в интернете нормальный модуль карты, так и не нашел. Есть, конечно, несколько решений, но все они дают совсем не тот результат, который нужен, а порой даже наносят вред. Пришлось писать модуль самому, а точнее поручить профессионалам реализацию моих «хотелок». Выражаю огромную благодарность Фомину Александру за энтузиазм и невероятную скорость работы.
Модуль карты сайта для ДЛЕ, который я собираюсь вам представить, отвечает всем требованиям seo и предельно прост в установке.
Полный список модулей для DLE от АлаичЪ"а:
SiteMap – модуль генерации HTML карты сайта для DLEОригинальное название:
SiteMap
Совместимость с CMS:
DLE 8.2-10.6
Распространение:
Бесплатно, As Is, при распространении ссылка на источник обязательна
Актуальная версия:
2.2 (от 08.05.2014)
Назначение:
Вывод ненумерованного списка со ссылками на все публикации, категории и статические страницы.
Особенности:
Визуальный генератор кода для вставки. Детальная настройка принципа вывода всех элементов сайта — новости, категории, статические страницы — количество выводимых элементов, принцип сортировки и порядок сортировки, отображение элементов в виде ссылки или простым текстом, возможность включить/исключить конкретные элементы.
Друзья, 3 июня 2012 — это большой день, в свет вышла совершенно новая карта сайта версии 2.0. Мы поднимаем планку удобства использования нашего модуля на новый уровень. Реализованная в система визуальной генерации кода нам (надеюсь, и вам тоже) очень понравилась и мы решили внедрить ее и в модуль карты сайта. Теперь вам не надо читать руководства и описания всех функций и их значений — достаточно зайти в админку, указать несколько значений и все — модуль готов к работе!
Помимо сказанного выше, хочется перечислить еще несколько важных особенностей :
- модуль полностью кешируется;
- модуль использует API DLE;
- в карте не выводятся публикации, не прошедшие модерацию, а так же запланированные на будущее;
- учитывается наличие/отсутствие ЧПУ, а так же тип ЧПУ;
- предусмотрена такая тонкость – если кто давно работает с движком ДЛЕ, то помнит, что в ранних версиях вообще не было ЧПУ, а потом оно появилось, но только одного типа (такого же, как сейчас формируется тип 3). Так вот это тоже предусмотрено в данном модуле — новые публикации выводятся с url’ом, тип ЧПУ которого выбран в админке, а старые, соответственно, с url’ом ЧПУ старого типа.
Не смотря на появление визуального генератора, предлагаю ознакомиться с механикой модуля.
Модуль вставляется в шаблон main.tpl с помощью тега:
{include file="engine/modules/sitemap.php?param1=value1¶m2=value2"}
param1= — параметр модуля, value1 — значение параметра. Настройки модуля следуют после знака? и разделены знаком &.
Пример вставки (выводит карту сайта со списком статических страниц и новостями из категорий с id=2,3,4):
{content}
{include file="engine/modules/sitemap.php?show_static=1&need_cats=2,3,4"}
Для того, чтобы карта сайта отображалась на отдельной странице, тег {include ...} необходимо заключить в , а тег {content} заключить в . После этого модуль будет доступен по адресу http://site.ru/sitemap/
После любых изменений параметров и их значений необходимо очищать кеш в админпанели.
Параметры модуля, передаваемые через tpl при вставке:
- need_cats — список id категорий через запятую для вывода в карте
- exc_cats — список id категорий через запятую, исключаемых из карты
- need_news — список id статей через запятую для вывода в карте
- exc_news — список id статей через запятую, исключаемых из карты
- данные параметры бессмысленно указывать одновременно
- need_static — список id статических страниц через запятую для вывода в карте
- exc_static — список id статических страниц через запятую, исключаемых из карты
- данные параметры бессмысленно указывать одновременно
- cats_as_links — показывать названия категорий как ссылки (1 или 0)
- show_static — отображать в карте статические страницы (1 или 0)
- cats_sort — поле сортировки списка категорий (поле из таблицы dle_category)
- cats_msort — направление сортировки списка категорий (ASC или DESC)
- news_sort — поле сортировки списка статей (поле из таблицы dle_post)
- news_msort — направление сортировки списка статей (ASC или DESC)
- static_sort — поле сортировки списка статических страниц (поле из таблицы dle_static)
- static_msort — направление сортировки списка статических страниц (ASC или DESC)
- возможны 2 варианта направления сортировки:
- ASC — по возрастанию (по алфавиту)
- DESC — по убыванию (в обратном порядке)
- если поле и порядок сортировки не указаны — используются заданные настройки категорий или стандартные параметры DLE
- cats_limit — максимальное количество выводимых подкатегорий
- news_limit — максимальное количество выводимых статей из категории
- static_limit — максимальное количество выводимых статических страниц
Заметьте, ни одна из приведенных выше настроек не является обязательной , можно вообще ничего не указывать — достаточно просто вставить тег {include file="engine/modules/sitemap.php"} — тогда будут использованы настройки по умолчанию.
Внешний вид и классы стилей карты сайтаОпционально предусмотрено изменение внешнего вида карты сайта, для этого открываем файл стилей (style.css) своего шаблона и прописываем нижеописанные классы.
Перечень CSS классов карты сайта:
Sitemap_categories - элемент
- списка категорий
- списка категорий
.sitemap_items - элемент- списка статей
- списка статей
.sitemap_static_pages - элемент- списка статических страниц
- списка статических страниц
Root - класс для вышеперечисленных элементов, находящихся в корне списка
Sitemap_categories a - элемент c названием категории
Установка, удаление и обновление модуля карты сайта на DLE
.sitemap_categories span - элемент c названием категории
.sitemap_items a - элемент c названием статьи
.sitemap_static_pages a - элемент c названием статической страницыУстановка модуля
- Распакуйте архив с модулем;
- Скопируйте содержимое папки uploads (кроме /templates/) на сервер;
- Содержимое папки uploads/templates/Default/ поместите в папку своего шаблона;
- Запустите файл http://site.ru/sitemap_installer.php и следуйте инструкциям;
- Удалите файл sitemap_installer.php с сервера;
- Зайдите в админпанель, выберите модуль SiteMap и сгенерируйте код;
- Откройте файл main.tpl своего шаблона и найдите:
RewriteEngine On
Ниже добавьте:
$metatags = result [ "content" ] , "hs.expand" ) !== false or strpos ($ tpl -> copy_template , "hs.expand" ) !== false ) {
if ($ config [ "thumb_dimming" ] ) $ dimming = "hs.dimmingOpacity = 0.60;" ; else $ dimming = "" ;
if ($ config [ "thumb_gallery" ] AND ($ dle_module == "showfull" OR $ dle_module == "static" ) ) {
$ gallery = "
hs.align = "center";
hs.transitions = ["expand", "crossfade"];
hs.addSlideshow({
interval: 4000,
repeat: false,
useControls: true,
fixedControls: "fit",
overlayOptions: {
opacity: .75,
- hs.numberPosition — показывает номер текущего изображения в последовательности (например, Изображение 1 из 5) Может принимать значения ‘heading’ — отображается вверху, caption -отображается внизу. Точная строка задается в объекте hs.lang(он содержит строки локализации). В том же файле index.php находим строку hs.lang = { и дописываем в конец параметр — number: ‘Изображение %1 из %2’ (после предыдущего параметра не забываем ставить запятую);
- hs.addSlideShow — функция задающая параметры для режима галереи(картинки сгруппированы и имеют общую панель навигации)
- interval — количество миллисекунд, которое будет показываться каждый слайд. (по умолчанию 4000)
- repeat — повторение (начинать с первого слайда после перехода к последнему) (по умолчанию false )
- useControls — разрешить Highslide создать панель управления слайдшоу (true или false )
- fixedControls -если истинно, панель управления зафиксирована, элементы управления находятся в одном положении в течение просмотра всех картинок и пользователь может просматривать изображения с помощью кнопки Далее не перемещая мышь (true или false )
- overlayOptions -параметры наложения для панели управления (объект)
- opacity -прозрачность панели(по умолчанию.75),
- position -положение панели управления по вертикали (top , middle , bottom ) и горизонтали (left , center ,right ) (по умолчанию ‘bottom center’)
- hideOnMouseOut — скрывать панель управления, когда мышка не находится на картинке (по умолчанию true)
.sitemap_static_pages li - элементДалее меняем внешний вид панели навигации. Для этого открываем файл engine.css (templates/Default/style/engine.css, вместо Default подставьте при необходимости имя вашего шаблона). Ищем строки 423, 432, 447 (.highslide-controls, .highslide-controls ul, . highslide- controls a соответственно) и заменяем в background url controlbar-black-border.gif (по умолчанию черная панель управления) на controlbar-white.gif — белая контрольная панель.
Способы задать миниатюру для статьиМиниатюру для статьи можно задать просто вставив картинку в начале текста статьи. Однако нужно следить, чтобы везде было одинаково, применены одинаковые стили и если нужно например заключить миниатюру в ссылку на статью, адрес статьи придется указать вручную.
Раньше можно было перечислить типы файлов, разрешенных к загрузке, теперь(в новых версиях) эта возможность перенесена в раздел Настройка групп пользователей и задается отдельно для каждой группы пользователей. Подробнее читайте в статье Управление пользователями DLE.
Максимальное количество файлов при массовой загрузке – сколько одновременно файлов разрешено выбрать и поставить в очередь на скачивание
Включить поддержку докачивания файлов при скачивании – разрешена ли докачка файлов при разрыве соединения
Включить счетчик скачиваний файла – отображение информации: сколько человек скачали этот файл.
Ну пожалуй на этом все! Спасибо, что дочитали до конца. До новых встреч!
Как обычно, смотрим видеоНовость на DLE без загрузки и без обновления страницы!
Особенности модуля:
Не требует каких-либо правок движка. Учёт прав доступа к новости. Если пользователю по каким то причинам запрещено просматривать полную новость в настройках - он не сможет её посмотреть. Подсчёт количества просмотров. Модуль учитывает настройки DLE и если требуется - засчитывает просмотр новости. Корректная очистка кеша модуля. Кеш модуля очищается в соответствии с правилами автоочистки кеша DLE, поэтому в быстром просмотре новость будет всегда актуального содержания. Поддержка всех тегов. Модуль поддерживает все теги шаблона fullstory.tpl. Если тег не нужен в быстром просмотре - вместо него будет пустота. (форма добавления комментариев, сами комментарии). Кеширование на стороне клиента. Модуль отдаёт правильные заголовки. Если включено кеширование на сайте и пользователь повторно вызовет быстрый просмотр новости - браузер получит в ответ 304 статус и отдаст пользователю закешированную (в браузере) страницу. Установка:
Распаковать содержимое папки upload в корень сайта.
В нужном месте любого шаблона вставить минимальный код: Быстрый просмотрГде {news-id} - ID новости (обязательный параметр).
Так же можно использовать дополнительные атрибуты:
Быстрый просмотр
data-afs-template="mytemplate" - путь к шаблону модуля относительно текущей папки с шаблоном сайта.
По умолчанию: **{THEME}/ajax/fullstory**. (Необязательный параметр).
data-afs-preset="mypreset" - путь к файлу с настройками модуля. По умолчанию не используется.
3. В js файл шаблона вставить:
$(document).on("click", "", function () { var $this = $(this), $data = $this.data(); $.ajax({ url: dle_root + "engine/ajax/full-story.php", type: "GET", dataType: "html", data: { newsId: $data.afsId, // Обязательная переменная preset: ($data.afsPreset) ? $data.afsPreset: "", // Название файла с настройками (необязательно) template: ($data.afsTemplate) ? $data.afsTemplate: "", // Название файла с шаблоном (необязательно) }, }) .done(function (data) { var $html = $(data); // Данные получены, можно заняться разбором и показать их в диалоге // Ниже простейший пример вывода контента в стандартном модальном окне DLE var modalId = "afs-" + $data.afsId + "-" + $data.afsPreset + "-" + $data.afsTemplate; modalId = modalId.replace(///g, "-"); var $modalBlock = $(""); $modalBlock .appendTo("body") // Добавляем блок на страницу.find("#" + modalId) // Ищем интересующий нас селектор.html($html) // Вставляем в него полученный код.dialog({ // Показываем модальное окно width: 800 }); }) .fail(function () { console.log("full-story error"); }); }); 4. В CSS-файл шаблона вставить код для стилизации выводимых ошибок:
.afs-error { /*Общий стиль для всех ошибок*/ padding: 20px; background: #fff; color: #424242; } .afs-news-error { /*Стиль ошибки, если новость не найдена*/ background: #eceff1; } .afs-tpl-error { /*Стиль ошибки, если не найден шаблон*/ color: #b71c1c; } .afs-perm-error { /*Стиль ошибки, если не достаточно прав для просмотра полной новости*/ background: #e65100; color: #F5F5F5; }
Готово! Не забудьте подправить JS и CSS код под оформление своего сайта.
Параметры, принимаемые модулем:
Модуль принимает через GET-запросы следующие параметры:
newsId - обязательный параметр. ID новости для показа.
template - путь к шаблону модуля относительно текущей папки с шаблоном сайта.
Если на сайте разрешена смена скина, то путь будет построен относительно активного в данный момент шаблона сайта.
По умолчанию: {THEME}/ajax/fullstory
preset - путь к файлу с настройками модуля. По умолчанию не используется.
Настройки модуля:
Настройки модуля хранятся в отдельном файле, это сделано для безопасной передачи настроек и уменьшения нагрузки на хостинг.
Для хранения настроек был выбран формат шаблона т.к. его можно отредактировать через админпанель.
При формировании настроек необходимо соблюдать следующий синтаксис:
- Параметры необходимо писать по одному в строке.
- Имя параметра и его значение необходимо разделять знаком равенства.
На данный момент возможно использование следующих параметров:
fields - поля, отбираемые из БД.
Доступны следующие поля для запроса: short_story, full_story, xfields, comm_num, fixed, tags.
Так же можно использовать поле all, тогда будут отобраны все возможные поля новости из БД. Аналогичный результат будет, если не передавать в модуль переменную preset или передать её пустой.
cachePrefix - префикс кеша, создаваемого модулем. По умолчанию full. Если вы хотите, чтобы кеш модуля автоматически не чистился - можно изменить этот парамер. - списка статических страниц
.sitemap_items li - элемент - списка статей
.sitemap_categories li - элемент