Як прибрати id новини в DLE

19

Від автора: вітаю вас, друзі. У цій невеликій статті ми з вами поговоримо про ЧПУ (людині зрозумілих урлах) в DLE. Статтю я назвав «Як прибрати id новини в DLE», оскільки саме це питання цікавить багатьох користувачів цієї CMS. Отже, давайте подивимося, чи це можливо?

Отже, давайте почнемо з того, які ж варіанти ЧПУ нам пропонує DLE з коробки. Всього нам пропонується три варіанти ЧПУ на вибір, які називаються нехитро: Тип 1, Тип 2 Тип 3. Ось що вони з себе представляють:

Тип 1 — посилання на повну новину будуть мати вигляд http://domen/id-имя новости.html

Тип 2 — посилання на повну новину будуть мати вигляд http://domen/категория/подкатегория/id-имя новости.html

Тип 3 — посилання на повну новину будуть мати вигляд http://domen/2008/04/02/имя новости.html увага даний тип несе підвищену навантаження на сервер

Приклади та описи посилань я скопіював прямо з довідки з ЧПУ в адмінпанелі DLE. Знайти її можна і, відповідно, вибрати потрібний тип ЧПУ, в розділі Налаштування скрипта — Налаштування системи:

Як прибрати id новини в DLE

Зверніть увагу, крім опції вибору типу ЧПУ, є також дві додаткові налаштування: перша дозволяє включити ЧПУ, друга — обробляє невірні ЧПУ.

Але повернемося до типів ЧПУ. Як бачимо, всі три варіанти досить привабливі. Мабуть, я б зупинився на першому або другому варіанті, вони мені більше по душі. Проте в кожному з обраних варіантів на початку назви новини присутній її id, тобто частина посилання буде мати наступний вигляд — 5-bukingemskiy-dvorec.html, де цифра 5 — це і є id новини.

На мій погляд, нічого критичного в цьому немає і URL від зайвої цифри не став менш читабельним і привабливим. Однак, якщо ви перфекціоніст, то зайва циферка в посиланні цілком може муляти очі. Розумію.

На жаль, DLE не надає нам іншого типу ЧПУ, де б не було ID новини, а було лише її назву. Чому так? Складно сказати. У мережі можна зустріти думку, що зроблено це з метою швидкодії. Оскільки id в таблиці новин має первинний ключ, це означає, що знайти потрібну запис по id можна дуже швидко і DLE дістане нам повний текст id новини дійсно швидко. Якщо ж прибрати id і шукати новину за її алиасу (назва транслітом), тоді процес буде йти тим повільніше, чим більше новин на сайті.

Однак це не зовсім так, оскільки дана проблема надумана і легко вирішується. Досить проіндексувати поле, в якому зберігається аліас, і пошук по даному полю буде проводитися так само швидко, як і по полю id з первинним ключем. До речі, поле alt_name в таблиці dle_post проіндексовано, для нього встановлений індекс KEY, тобто вибірка за цим полем буде здійснюватися швидко. Так що проблема, як я сказав вище, надумана і реалізувати ще один тип ЧПУ або ж просто прибрати з двох перших непотрібні ID — цілком реально.

Можливо, розробники DLE в наступних версіях движка внесуть відповідні зміни, але поки що ми змушені задовольнятися тим, що є, оскільки без змін в коді самого движка прибрати id новини в DLE не вийде.

До речі, розробники завжди приймають пропозиції від користувачів для майбутніх версій движка. Можете внести свою пропозицію, якщо такого ще немає, або проголосувати за вже внесена тут.

На цьому я з вами прощаюся. Удачі!