Привіт друзі. Я майже весь свій час приділяю. Оскільки більшість моїх сайтів побудовані на 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 - елемент з назвою категорії
Встановлення, видалення та оновлення модуля картки сайту на DLE
.sitemap_categories span - елемент з назвою категорії
.sitemap_items a - елемент з назвою статті
.sitemap_static_pages a - елемент з назвою статичної сторінкиВстановлення модуля
- Розпакуйте архів із модулем;
- Скопіюйте вміст папки 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: "", // Назва файлу з шаблоном (необов'язково) ), )) 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; . : #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 - елемент