Чип-тюнинг 

Высоко intitle datalife engine панель управления. Создание простого модуля для CMS Datalife Engine (DLE)

Высоко intitle datalife engine панель управления. Создание простого модуля для CMS Datalife Engine (DLE)

Приветствую всех, кто посвящает этим строкам свое драгоценное время.

В этой статье я хочу рассказать о способах оптимально настроить сервер и систему управления контентом DataLife Engine. За 4 года работы с интернет сайтами и серверами я усвоил, что безопасность превыше удобства и что ей нужно уделять внимание. Оговорка : я не претендую на авторство чьей-либо интеллектуальной собственности! Весь материал собран на просторах интернета.

Ниже будут описаны действия, которые помогут распределить нагрузку сервера, обезопасить его от DOS атак, ограничить доступ к FTP протоколу и правильно сконфигурировать систему DataLife Engine.

Защита и конфигурация вашего сервера.

1. Настройка конфигурации сервера с использованием связки front-end Nginx к Apache.

Преимущества подобной схемы можно понять на небольшом примере. Представьте себе, что вашему веб серверу Apache необходимо обслужить порядка 1000 запросов одновременно, причем многие из них подключены к медленным каналам связи. В случае использования Apache мы получим 1000 процессов httpd, на каждый из которых будет выделена оперативная память, и эта память не освободится до тех пор, пока клиент не получит запрошенный контент.

В случае схемы с применением front-end сервера получим значительную экономию ресурсов за счет того, что после поступления запроса, nginx передает запрос Apache и быстро получает ответ. В итоге, Apache, после того как отдал ответ nginx, освобождает память. Далее с клиентом взаимодействует веб-сервер nginx, который как раз и написан для раздачи статического контента большому количеству клиентов при незначительном потреблении системных ресурсов.

Для корректной работы нашей связки понадобиться модуль для Apache. Возникает такая необходимость по следующей причине: запросы к Apache приходят с IP-адреса, на котором работает nginx, соответственно, в журнальных файлах Apache будет фигурировать только IP-адрес nginx сервера. Также без использования данного модуля начнутся проблемы со скриптами, в которых используется IP-адрес посетителя и перестанет правильно работать механизм ограничения доступа по IP-адресам с помощью.htaccess.

Установка NGINX на популярные ОС.

Red Hat Enterprise Linux 4 / CentOS 4
Для установки nginx в этих операционных системах вам необходимо подключить дополнительный репозиторий пакетов.

Red Hat Enterprise Linux 5 / CentOS 5
Для установки nginx в этих операционных системах вам необходимо подключить дополнительный репозиторий пакетов EPEL.

ASPLinux Server 5 / Fedora
nginx присутствует в стандартной поставке дистрибутива.

Если репозитории подключены или просто не требуются, выполняем: yum install nginx

Установка Apache.

Чтобы установить Apache веб-сервер достаточно выполнить: yum install httpd

Установка mod_rpaf.

1. Устанавливаем пакет httpd-devel:

yum -y install httpd-devel


2. Скачиваем и устанавливаем mod_rpaf:
Входим в директорию /usr/local/src

cd /usr/local/src


Загружаем в /usr/local/src файл mod_rpaf-0.6.tar.gz

wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz


Распаковываем mod_rpaf-0.6.tar.gz

tar xzf mod_rpaf-0.6.tar.gz


Переходим в каталог в который распаковали

Ставим модуль в систему

apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c


3. Далее нужно создать файл конфигурации mod_rpaf - /etc/httpd/conf.d/rpaf.conf и добавить в него следующие строки:


RPAFenable On
RPAFproxy_ips 127.0.0.1 xx.xx.xx.xx yy.yy.yy.yy


где xx.xx.xx.xx и yy.yy.yy.yy - IP адреса вашего сервера. Если на сервере более двух IP, добавьте их по той же аналогии.

service httpd restart


4. В nginx внутри блока http {} должны быть указаны строки:

proxy_set_header Host $host;


Если данные строки указаны, дописывать не нужно.

Если модифицируется nginx.conf, следует перезапустить nginx:

/etc/init.d/nginx stop
/etc/init.d/nginx start


5. Как проверить, работает ли установленный модуль?
На любом из доменов, которые расположены на Вашем сервере, разместите файл test.php с содержимым:

" echo $_SERVER["REMOTE_ADDR"]; ?>"


Далее зайдите по ссылке , где domain.tcom - имя вашего домена. Если отображается IP, отличающийся от IP вашего сервера, модуль работает корректно.

Настройка NGINX.

Ниже приведен конфигурационный файл nginx для работы в качестве front-end сервера. Подразумевается, что nginx будет работать на всех интерфейсах на 80 порту, а Apache будет работать на интерфейсе 127.0.0.1 и порту 8080. Сохраните данный конфигурационный файл в каталоге /etc/nginx/ с именем nginx.conf.

user nginx;
worker_processes 10;
error_log /var/log/nginx/error.log debug;
pid /var/run/nginx.pid;

events {
worker_connections 20000;
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main "$remote_addr - $remote_user [$time_local] $status "
""$request" $body_bytes_sent "$http_referer" "
""$http_user_agent" "http_x_forwarded_for"";
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 30;
send_timeout 900;
server_tokens off;
server {
listen 80;
server_name _;
server_name_in_redirect off;
access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 10m;
}
}


Настройка Apache.

В файле конфигурации Apache /etc/httpd/conf/httpd.conf найдите строку:

и замените ее строкой:

Listen 127.0.0.1:8080


Настройка mod_rpaf.

Добавьте модуль mod_rpaf в файл конфигурации Apache. Для этого в файл /etc/httpd/conf/httpd.conf добавьте следующую строку:

LoadModule rpaf_module modules/mod_rpaf-2.0.so


Затем в этот же файл добавьте строки:

RPAFenable On
RPAFsethostname Off
RPAFproxy_ips 127.0.0.1 192.168.0.1
RPAFheader X-Real-IP


Вместо 192.168.0.1 необходимо поставить IP-адрес сервера.

2. Конфигурация сервера для защиты от dos-атак.

Включаем в nginx кеширование главной страницы для тех у кого нет cookie.

Добавляем ограничения в nginx.conf:

limit_req_zone $binary_remote_addr zone=two:20m rate=2r/s;
server{
location / {
limit_req zone=two burst=5;
}
}
}


Пользуемся tail и awk:

tail -f /var/log/nginx/access.log | grep GET / HTTP/1.1" 503


Подключаем лог:

tail -f /var/log/nginx/access.log | grep GET / HTTP/1.1" 503 | awk "{ print $1 }"


Получаем IP машин:

iptables -A INPUT -p tcp -j DROP -s $IP


Заносим IP в Firewall:

tail -f /var/log/nginx/access.log | grep GET / HTTP/1.1" 503 | awk "{ print $1 }" | xargs -t -l iptables -A INPUT -p tcp -j DROP –s


Теперь установим connlimit для iptables чтобы ограничить подключения ботов. В правилах ставим разрешение на 5 подключений с одного IP, и 25 из подсети класса С.

DDOS атака с 16000 ботов - Load average: 1.4 1.9 2.0

Ограничение доступа по FTP

Для этого нам понадобитсья файл.ftpaccess. Он поможет запретить или разрешить доступ по FTP с указанных IP адресов. Кто-то может задать вопрос: «У меня динамический IP, как мне правильно использовать.ftpaccess?» Ответ я подразумеваю только такой: «Если вам нужна данная надстройка безопасности - приобретите у вашего провайдера статический IP. Много денег у вас за него не попросят.»

Чтобы создать.ftpacces файл нам понадобиться SSH доступ. Можно воспользоваться программой winscp. Настроек в.ftpaccess может быть большое множество, однако нас интересует только один параметр. Прописав эти строки в файле вы закроете полностью доступ от всех:

Deny from all


После написанного выше, никто не сможет зайти на ФТП. Для добавления разрешения доступа определенному IP нужно указать следующие параметры:

Allow from 127.0.0.1
Deny from all


Естественно адрес 127.0.0.1 указан для примера и его нужно заменить на собственный.

Важно! Лучше всего запретить доступ по FTP абсолютно всем и подклчаться только по SSH.

Защита системы управления контентом DataLife Engine.

1. Установите и настройте .

2. Переименуйте файл админпанели и сделайте фейк по старому адресу (www.sait.com/admin.php) при переходе на который пользователь будет заблокирован посредством запрета его ip в.htaccess.

Переименовали? Теперь создаем в корневом каталоге файл ip.txt для хранения ip-адресов. Даем ему и.htaccess права CHMOD – 777.

Создаем файл admin.php следующего содержания:


$ip = getenv ("REMOTE_ADDR");

$log = fopen("ip.txt", "a+");
fwrite($log, "// ".$ip."\n");
fclose($log);

$f = fopen($_SERVER["DOCUMENT_ROOT"] . "/.htaccess", "a");
fwrite($f, "\ndeny from " . $ip);
fclose($f);

Админ панель DataLife Engine

Текст, например: Твой ip в логах, я найду тебя!

Бойся, ничтожество, ха-ха!

"
3. Добавим дополнительную аутентификацию в админцентре.

Необходимо придумать еще один логин и пароль (не используйте данные вашего административного аккаунта). Второй логин и пароль должен в корне отличаться от первого. Определились? Отлично! Теперь зашифруем наш пароль в md5 (сделать это можно на сайте md5encryption.com).
Далее открываем admin.php (вспомните, ранее мы его переименовали и, по этому, если вы назвали его superadmin.php - вам необходимо открывать именно этот его) и после строки:

добавляем:

$login="вписываем придуманный логин";
$password="и сгенерированный пароль в md5";
if (!isset($_SERVER["PHP_AUTH_USER"]) || $_SERVER["PHP_AUTH_USER"]!==$login ||
md5($_SERVER["PHP_AUTH_PW"])!==$password) {
header("WWW-Authenticate: Basic realm="Admin Panel"");
header("HTTP/1.0 401 Unauthorized");
exit("Access Denied");}


4. Отключим неиспользуемые системой функции php.

Для поиска файла php.ini создаем файл phpinfo.php с текстом:

После поиска обязательно удалить phpinfo.php!

disable_functions = allow_url_fopen, eval, exec, system, passthru, scandir, popen, shell_exec, proc_open, proc_close, proc_nice, get_current_user, getmyuid, posix_getpwuid, apache_get_modules, virtual, posix_getgrgid, getmyinode, fileowner, filegroup, getmypid, apache_get_version, apache_getenv, apache_note, apache_setenv, disk_free_space, diskfreespace, dl, ini_restore, openlog, syslog, highlight_file, show_source, symlink, disk_total_space, ini_get_all, get_current_user, posix_uname, allow_url_fopen


5. Создаем фильтрацию GET и POST запросов, предотвращаем инъекции в БД и получение из нее данных.

Создаем файл.php с произвольным названием и следующим содержимым:

//поставить еденицу если хотите включить отладку запросов
$debug = 0;

$bag_req = array("select", "eval", "echo", "UPDATE", "LIMIT", "INSERT", "INTO", "union", "CONCAT", "INFORMATION_SCHEMA", "OUTFILE", "DUMPFILE", "LOAD_FILE", "BENCHMARK", "SUBSTRING", "ASCII", "CHAR", "database", "HEX", "\\.\\/", "%00", "\\.htaccess", "config\\.php", "document\\.cookie");
$request = serialize($_GET);


if($_GET)
{
foreach ($bag_req as $key => $value) {
{
В массиве найден запрос $value
$request";
}
}
}
if($_POST)
{
$request = str_replace("selected_language", "sl", serialize($_POST));
$urequest = urldecode($request);
$brequest = base64_decode($request);
foreach ($bag_req as $key => $value) {
if(preg_match("/$value/i", $request) || preg_match("/$value/i", $urequest) || preg_match("/$value/i", $brequest))
{
if($debug == "1") $do_debug = "
В массиве найден запрос $value , который блокирует правильную работу
$request";
die("BAD REQUEST $do_debug");
}
}
}
?>


Сохраняем его на сервере в любом каталоге системы DLE. Открываем файл engine/classes/mysql.php и после:

if(!defined("DATALIFEENGINE"))
{
die("Hacking attempt!");
}


подключаем созданный файл:

include_once(ENGINE_DIR."/путь_к_файлу/название.php");


6. Используя бесплатные компоненты к DLE обязательно узнайте мнение специалиста о их надежности.

При возникновении вопросов обращайтесь к поисковым системам - весь материал в свободном доступе!
Есть что добавить? Милости прошу к обсуждению!

Удачи вам и вашим проектам!

Были подготовлены и реализованы следующие изменения:


1. Добавлена возможность загружать на сервер изображения к публикуемым на сайте комментариям. Данная возможность включается и настраивается в настройках групп. Для каждой группы пользователей вы можете разрешить или запретить загрузку изображений к комментариям. Также для каждой группы вы можете задать различные отдельные параметры для загружаемых изображений, например, максимальное количество загружаемых изображений к комментариям, их размеры и вес и т.д. При загрузке изображений к комментарям пользователю доступна упрощенная форма загрузки комментариев, и изображения загружаются согласно заданным в настройках групп параметрам. Пользователю при этом доступно управление своими загруженными изображениями. Он может их удалить или заменить, если ему разрешено редактировать свои комментарии.

2. Добавлена поддержка движка InnoDB для базы данных MySQL. При установке скрипта вы можете выбрать, какой тип хранения использовать. Для выбора доступно использование либо InnoDB либо MyISAM . При выборе движка мы рекомендуем руководствоваться следующими критериями. Если ваш сайт будет редко обновляться новым контентом (регистрация большого количества пользователей, активное добавление новых комментариев и т.д.) т.е. сайт "справочник", то рекомендуется использовать MyISAM тип, он быстрее при выборке из базы данных. Если на сайте планируется активное обсуждение чего-либо большим количеством пользователей, то рекомендуется использовать InnoDB тип. Для большинства сайтов оптимальным выбором будет именно InnoDB, т.к. в будущем он более легко масштабируется. Выбор движка базы данных доступен только если на вашем сервере установлена версия MySQL не ниже чем 5.6.4. Если версия MySQL сервера ниже, то доступно использование только MyISAM.

3. Добавлена возможность создания и использования плейлистов при воспроизведении видео на сайте. Для этого видеофайлы просто перечисляется в теге video через запятую. Например:
4. Добавлена возможность создания описания, для видео которое будет видно при показе в плеере, для этого в теге вставки видео используется следующий формат: , тоже самое можно задать для всех файлов если используется плейлист файлов, добавленный через запятую. Пример отображения вы можете увидеть на скриншоте выше.

5. Добавлена возможность использовать в теге , также ссылки на видео в сервисе Youtube. Тем самым вы можете организовывать смешанные плейлисты включающие в себя ваше видео и видео на сервисе Youtube.

6. Добавлена возможность создания и использования плейлистов при воспроизведении аудио на сайте. Для этого аудиофайлы просто перечисляется в теге audio через запятую. Например:
7. Добавлена возможность создания описания , для аудио которое будет видно при воспроизведении музыки в плеере, для этого в теге вставки аудио используется следующий формат: . Пример отображения вы можете увидеть на скриншоте выше.

8. Для аудио проигрывателя добавлена возможность добавления ссылок для воспроизведения потокового аудио. Тем самым вы можете задавать и выводить плейлисты для прослушивания на своем сайте радиостанций.

9. В настройки проигрывателей, в админпанели, добавлена возможность выбора темы для плеера. Для выбора доступна либо темная, либо светлая тема для плеера, что делает отображение плеера на вашем сайте более органичным.

10. Улучшена процедура вставки видео и аудио материалов в редакторах. При добавлении видео, вы можете сразу создавать плейлисты, а также вы можете сразу задать в окне ввода не только ссылку на видео и аудио, но и ссылки к постерам для них, и описание для видео и аудио файлов.

11. В состав DataLife Engine добавлен новый WYSIWYG редактор. Название нового редактора FroalaEditor. Данный редактор обладает легким и понятным интерфейсом (на наш взгляд лучшим интерфейсом) для создания и редактирования контента, HTML код генерируемый им является одним из самых чистых и не имеет практически ничего лишнего, имеет относительно небольшой вес обладает быстрым рендерингом редактора на странице.

12. Добавлен новый тип для дополнительных полей публикаций: "Загружаемая галерея изображений". При создании данного типа поля вы можете задать параметры для загружаемых изображений, а также максимальное количество изображений, которое может быть загружено для данной галереи. При добавлении публикации в админпанели или на сайте изображение можно будет загружать в один клик. При выводе данного поля на сайте, изображения будут группироваться в галерею картинок, которые также можно перелистывать между собой при просмотре, в случае если для картинок были созданы уменьшенные копии.

13. Для дополнительных полей, имеющих тип "Загружаемое изображение" и "Загружаемый файл", добавлен автоматический запрет на повторную загрузку изображений и файлов, до тех пор, пока предыдущее загруженное изображение или файл не будут удалены. Тем самым снижается вероятность прикрепления к новости, не использующихся файлов и изображений.

14. Для дополнительных полей, имеющих тип "Загружаемое изображение" добавлены новые теги: и , которые выводят только URL для уменьшенной копии загруженного изображения и URL для полного изображения соответственно, где "X" это имя дополнительного поля. Данные теги будут полезны для вебмастеров, которые хотят персонального оформления загруженных публикаций на сайте, например, совместно с другими дополнительными полями.

15. Для дополнительный полей, имеющих тип "Переключатель Да или Нет", добавлена возможность назначения состояния «Включено» или «Выключено» по умолчанию, которое будет использоваться при добавлении новой публикации.

16. Добавлена возможность онлайн просмотра документов, загружаемых на сайт через скрипт DataLife Engine. Для этого в шаблон вывода загруженных файлов (attachment.tpl) были добавлены следующие теги: {online-view-link} который выводит ссылку URL на просмотр документа онлайн в браузере, а также теги текст , которые выводят заключенный в них текст, если загруженный документ имеет поддерживаемый для просмотра формат. Для онлайн просмотра поддерживаются следующие типы документов: Adobe PDF, Microsoft Word, Microsoft Excel. Просмотр документов происходит непосредственно в браузере посетителя, при помощи сервиса Google Docs Viewer, поэтому посетителям не нужно иметь установленные программы от Microsoft или Adobe.

17. В связи с тем, что разработчики WYSIWYG редактора LiveEditor решили прекратить какие-либо работы по данному редактору, и он уже не получал несколько лет каких-либо обновлений, было принято решение убрать данный редактор из состава DataLife Engine. Сайты, которые ранее использовали данный редактор, будут автоматически переключены на использование редактора FroalaEditor.

18. Добавлена возможность задать описание изображений (атрибут alt) при массовой вставке изображений в новость. Для этого вам нужно выбрать нужные изображения, и кликнув по любому из них, задать описание. После чего нажать на кнопку "Вставить выбранное". Заданное описание будет также добавлено для всех картинок при вставке.

19. Добавлен автоматический сброс кэша Zend OPCache при изменении настроек сайта. Тем самым, при включенном данном кешировании в настройках сервера, вам не нужно самостоятельно сбрасывать кэш, или ждать пока изменения вступят в силу.

20. При просмотре списка категорий в админпанели, в разделе редактирования категорий, изменен вид отображения списка категорий. Теперь все подкатегории показываются в свернутом виде, и могут быть открыты непосредственно при необходимости для конкретной родительской категории. А также добавлены кнопки, благодаря которым можно быстро в один клик развернуть или свернуть все категории в списке. Добавление новой категории осуществляется в всплывающем окне. Тем самым упрощается работа с большим количеством категорий и подкатегорий в админпанели.

21. Добавлена возможность отписать всех пользователей, подписанных на комментарии, для каждой новости отдельно. В случае если у новости есть подписанные пользователи, то при редактировании данной новости в панели управления, во вкладке "Дополнительно", вы можете увидеть количество подписчиков и отписать их от комментариев к данной конкретной публикации. Данное нововведение будет полезно, например, если новость закрывается от дальнейшего комментирования.

22. Добавлена возможность подписываться на комментарии к новости, при публикации комментария, даже когда комментарий уходит на модерацию.

23. В профиле пользователя на сайте, добавлена возможность отписаться от подписанных комментариев к публикациям, с указанием количества публикаций, на которые подписан пользователь. Для этого в шаблоне userinfo.tpl {unsubscribe} , который выводит чекбокс на отписку от комментариев, и количество подписанных публикаций.

24. В профиле пользователя на сайте, добавлена возможность автоматически подписаться на получение уведомлений о новых комментариях, которые добавляются к новостям, автором которых он является. Тем самым пользователю не нужно подписываться отдельно на каждую свою новость, достаточно отменить соответствующий чекбокс в настройках своего профиля. Для вывода чекбокса, в шаблоне userinfo.tpl добавлено использование нового тега {news-subscribe} .

25. В профиле пользователя на сайте, добавлена возможность автоматически подписаться на получение уведомлений о новых комментариях, которые являются ответами на его собственные комментарии. Для этого достаточно отменить соответствующий чекбокс в настройках своего профиля. Для вывода чекбокса, в шаблоне userinfo.tpl добавлено использование нового тега {comments-reply-subscribe} .

26. Добавлена поддержка расширения PHP Memcached. Скрипт DLE автоматически определяет какое именно расширение PHP установлено, Memcache или Memcached на сервере, и в зависимости от этого использует то или иное PHP расширение, в случае если в настройках скрипта включено Memcache кеширование. Тем самым больше нет необходимости ставить на сервер именно расширение PHP Memcache.

27. В админпанели, в разделе редактирования публикаций, в список массовых действий над публикациями, добавлена возможность добавления категорий к публикациям. В отличии от существующего пункт "Изменить категории", пункт "Добавить категорию", позволяет массово назначить публикациям новые выбранные категории, без изменения старых, ранее добавленных категорий.

28. Для шаблонного тега Текст добавлена возможность указать диапазон новостей с использованием символа тире. Например, вы можете указать Текст Текст . Тем самым облегчается создание нужного вам оформления, и не нет необходимости прописывать все ID нужный публикаций через запятую.

29. Для шаблонного тега Текст добавлена возможность указать диапазон нужных страниц с использованием символа тире. Например, вы можете указать Текст . Аналогично диапазон можно задать и для противоположного тега Текст . Тем самым облегчается создание нужного вам оформления, и не нет необходимости прописывать все номера нужных вам страниц через запятую.

30. Добавлена возможность отписываться пользователям сайта от рассылок писем, которые отправляются с раздела "Рассылка сообщений" админпанели. Для этого при рассылке писем, вы можете задать либо в шаблоне, либо непосредственно в тексте сообщения тег {%unsubscribe%}, который выводит в отправляемом письме URL на отписку от получения рассылки для пользователя. При переходе по данной ссылке, для профиля пользователя, устанавливается статус "Не получать писем с сайта". При этом, пользователю достаточно просто пройти по ссылке, ему не нужно авторизовываться или производить какие-либо другие действия на сайте. Тем самым он может легко отписаться от писем с сайта, если он давно потерял интерес к сайту. Несмотря на то что рассылка писем позволяет все равно отправить сообщение пользователю, даже если он изъявил желание не получать писем. Мы настоятельно рекомендуем вебмастерам, во избежание попадания сервера в спам фильтры, всегда при рассылке сообщений учитывать статус, который пользователь установил в своем профиле.

31. Добавлено автоматическое добавление для всех внешних ссылок, которые публикуются в новостях и комментариях, атрибута rel , содержащего в себе параметры "external noopener noreferrer" . Данный атрибут позволяет снизить вероятность возможной атаки на сайт с использованием механизмов социальной инженерии.

32. В настройки скрипта, добавлена возможность указания количества дней, в течение которых кешировать полную новость после ее публикации. Создание и обновление кэша, эта тоже ресурсоемкая операция. По истечении времени, публикация также теряет свою популярность, и если она не часто читается, то создавать и контролировать кэш постоянно для нее нецелесообразно. Если на вашем сайте публикуется мало новостей, то вы можете увеличить количество дней в течении которых кешировать, если много, то уменьшить. В любом случае мы не рекомендуем устанавливать время кеширования менее 30 дней. Небольшое количество дней используйте только если есть проблемы с свободным местом на жестком диске сервера, либо если публикуете очень большое количество новостей в месяц. А вот тем, у кого немного новостей на сайте, мы рекомендуем увеличить это значение.

33. В админпанели, в разделе редактирования пользователей, добавлена возможность быстрого переноса всех публикаций от одного пользователя, другому. Для этого нужно нажать на количество публикаций пользователя, выбрать перенос публикаций другому пользователю, и указать логин пользователя, на который нужно перенести публикации. Данное нововведение будет полезно, если перед удалением пользователя из базы данных, нужно перенести все его публикации другому пользователю.

34. В админпанели, в разделе редактирования пользователей, добавлена возможность быстрого пересчета количества публикаций у пользователя. Для этого нужно нажать на количество публикаций пользователя и выбрать в меню пересчет публикаций. Данная опция будет полезна, если производилось массовые манипуляции с публикациями, или добавления в базу данных минуя скрипт.

35. В админпанели, в разделе редактирования пользователей, добавлена возможность быстрого пересчета количества комментариев у пользователя. Для этого нужно нажать на количество комментариев пользователя и выбрать в меню пересчет комментариев. Данная опция будет полезна, если производилось массовые манипуляции с комментариями, или добавления в базу данных минуя скрипт.

36. Улучшено быстродействие работы вывода новостей при использовании сортировок по рейтингу и просмотрам. Также улучшено быстродействие вывода комментариев, использующих сортировку по рейтингу.

37. Улучшена система учета количества комментариев пользователя в статистике его профиля. При массовом удалении новостей происходит также автоматический пересчет и комментариев пользователей. Тем самым отпадает необходимость периодического пересчета статистики.

38. Проведена оптимизация отображения админпанели DataLife Engine на мобильных устройствах в портретной ориентации. Тем самым панель управления стала более удобной при ее использовании на смартфонах.

39. Библиотека Jquery была обновлена до линейки 2.xx

40. Обновлен редактор TinyMCE до актуальной версии.

41. Исправлена проблема, при которой было невозможно использовать точку в доп. полях, имеющих тип перекрестных ссылок.

42. Исправлена проблема, при которой формировалась невалидная верстка HTML комментариев при использовании древовидных комментариев.

43. Исправлена проблема, при которой для тега {category-url} выводился URL на категорию с использованием ЧПУ, независимо от настроек ЧПУ в админпанели скрипта.

44. Исправлена проблема, при которой происходило дублирование индексов дополнительных полей, имеющий опцию перекрестных ссылок, в случае если новость публикуется в несколько категорий.

45. Исправлена проблема, при которой некорректно работали теги текст и текст для главной страницы, в случае если в настройках скрипта была включен показ статической страницы на главной в качестве основной.

46. Исправлена проблема, при которой если в разделе редактирования публикаций производилась очистка новости от комментариев, то происходил всегда возврат на первую страницу раздела редактирования новостей, независимо от выставленных фильтров поиска и показа публикаций для редактирования.

47. Исправлена проблема, при которой невозможно было ввести правильный ответ на систему "Вопрос-Ответ", в случае если пользователь отвечает на комментарий, а не добавляет новый.

48. Исправлены обнаруженные и заявленные ранее небольшие ошибки в скрипте.

Информация к скачиванию скрипта для клиентов:

Внимание! Просмотр данной информации доступен только пользователям имеющим лицензию на скрипт. Если вы уже приобретали скрипт, то вам необходимо зайти на сайт под своим клиентским аккаунтом.

Если вы еще не являетесь нашим клиентом, то вы можете на нашем сайте.

Обсудить релиз вы можете на

Данная система плагинов позволяет модифицировать любую функциональность скрипта по своему усмотрению. Установка плагинов на сайт, обновление плагинов, осуществляется в один клик, непосредственно в панели управления DataLife Engine. Если плагин разработан под новую систему, то пользователям больше не придется читать инструкции по установке, что-то править непосредственно в файлах скрипта, и т.д. Им достаточно будет просто закачать плагин в админпанели и все.

Cистема плагинов построена по технологии виртуальной файловой системы. Вы описываете в плагине, в каком файле и какие действия нужно произвести, на основе этой информации DataLife Engine создаст виртуальные копии этих файлов, со всеми нужными изменениями и модификациями, и будет работать с созданными виртуальными копиями, не затрагивая при этом оригинальных файлов. При этом вы можете описать изменения практически во всех файлах, за исключением ряда базовых, например корневых файлов, но они не несут какого либо функционала, кроме как подключение других файлов. Также может быть изменена функциональность файлов, отвечающих за AJAX функции, для этого они были полностью переписаны для работы через контроллер. Какие это преимущества дает? Во-первых, оригинальные файлы всегда остаются неизменными, поэтому плагины могут быть легко изменены, удалены, обновлены и т.д. Во вторых эта система использует минимально возможную нагрузку на сайты в целом, т.к. виртуальные копии файлов создаются всего один раз, в момент установки или обновления плагинов, после чего DataLife Engine работает с этими измененными файлами как с обычными нативными файлами и нет никаких расходов памяти на точки вызова, хранение и контроль информации о том где и какую функциональность нужно менять и т.д. Нагрузка на сервер увеличится только на ту нагрузку, которую принесет с собой сам плагин, а система управления плагинами не будет вызывать какой либо дополнительной нагрузки. В-третьих, нет никаких проблем непосредственно с обновлением скрипта, скрипт может обновляться, на новые версии, а ваши плагины автоматически применяться к новым версиям. При этом различные плагины могут модифицировать один и тот же файл не вызывая конфликтов, при условии конечно если разные плагины не производят прямо противоположных друг другу действий.

Итак в самом модуле управления плагинами, вы можете либо создать плагин непосредственно в панели управления, либо загрузить готовый плагин. Рассмотрим добавление нового плагина в непосредственно в панели управления:

На первой вкладке вы задаете общие данные о плагине. Его название, его краткое описание. Для удобства различения с другими плагинами, вы можете указать ему иконку, которую он будет использовать в списке плагинов. Также вы задаете версию непосредственно самого плагина, и версию DataLife Engine c которой он совместим.

На следующей вкладке, вы задаете непосредственно действия над файлами, которые необходимо произвести. Вы можете добавить один или несколько файлов над которыми необходимо произвести действия, а также каждому файлу назначить одно или несколько действий, которые необходимо произвести. В файлах вы можете произвести следующие действия:

1. Найти и заменить какой либо код.

2. Найти и добавить выше нужный код.

3. Найти и добавить ниже какой либо код.

4. Полностью заменить содержимое файла на свое.

5. Создать новый виртуальный файл, который не существует в оригинальном DLE.

Вы можете в любое время также добавлять или удалять файлы, менять или удалять действия над файлами. Для удобства восприятия и редактирования, весь код при этом подсвечивается, а поля могут динамически растягиваться.

Тем самым, ситуация, при которой вы раньше вручную правили файлы скрипта, а изменения где то хранили у себя в блокноте, и каждый раз при обновлении скрипта, повторно вносили их в файлы скрипта, с новой версией полностью уходит в прошлое. Вы можете самостоятельно создать свой личный плагин непосредственно в админпанели, описав один раз нужные вам изменения в скрипте, и при обновлении скрипта до новой версии, вам не придется больше об этом заботиться, ваши изменения будут автоматически применяться к новым версиям.

На следующей вкладке вы можете добавить необходимые действия в базе данных MySQL, которые должен производить плагин в тех или иных ситуациях. Вы можете задать список MySQL запросов которые необходимо выполнить при установке плагина, при его обновлении, при его отключении, при его включении, при его удалении. При этом на каждое действие вы можете задать как один, так и список из нескольких запросов к базе данных.

Для существующего плагина, вы можете выполнить следующие действия: Вы можете его отключить, при этом он остается на сайте, но полностью игнорируется скриптом, и все его действия над файлами приостанавливаются. Вы можете его обновить до более новой версии, если таковая есть. Скачать плагин на компьютер для установки его на другой сайт. При этом сам файл скачивается в XML формате, и в данном XML содержится описание всех действий. По сути плагин представляет собой XML файл, который может быть установлен на сайт в админпанели.

Рассмотрим загрузку уже готового плагина на сайт. Вы можете загрузить и установить на свой сайт уже готовый плагин. При нажатии соответствующей кнопки вы можете загрузить либо XML файл с плагином. Либо ZIP архив с плагином. Это позволяет создавать очень сложные плагины, содержащие в себе большое количество других дополнительных файлов, как графических, так и PHP файлов. Чтобы например не описывать все действия непосредственно в самом плагине, можно создать дополнительные файлы и упаковать их в архив, разложив по новым местам. При этом важно знать, что в архиве могут быть только те PHP файлы, которые не входят в состав дистрибутива, а только ваши дополнительные файлы, в случае если будут файлы входящие в дистрибутив, такая загрузка будет заблокирована. Модификацию стандартных файлов, нужно описывать уже в самом плагине. Сам файл с XML плагином должен находится в корне вашего архива.

В случае если вы загружаете архив с плагином, и у DataLife Engine не будет прав на запись находящихся в вашем архиве файлов. Он автоматически запросит FTP доступ для того чтобы загрузить ваш архив. Если доступов не требуется, то все будет скопировано автоматически без них. При этом эти доступы не будут нигде храниться, а будут автоматически удалены после того как будут не нужны.

Новая система управления плагинами, обладает также встроенной системой логирования ошибок в плагине. В случае если какое либо действие над файлами не может быть выполнено, или произойдут какие либо ошибки, вы можете их легко увидеть и исправить. Например, это крайне удобно, если ваш плагин будет не совместим со следующей версией DLE, вы это быстро увидите, и можно легко адаптировать плагин.

Исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое. Скачать бесплатно .


Дорогие друзья,

Представляем вам новую версию нашего скрипта DataLife Engine v.13.1 NULLED. В данном релизе вас ожидает добавление поддержки автоматического обновления плагинов на новые версии и ряд других улучшений в системе плагинов, добавлены новые возможности для более удобной работы с дополнительными полями, добавлен новый тип рейтинга "Нравится и Не Нравится", улучшенный поиск публикаций в админпанели, и многое другое, об этом и другом читайте подробнее...

Были подготовлены и реализованы следующие изменения:


1. Добавлена возможность автоматического обновления скрипта в админпанели в пределах одной версии скрипта, в случаях, когда выходят, например, исправления найденных уязвимостей или других багов. В случаях, если в пределах одной версии вносятся изменения в дистрибутив, например, при выходе исправлений уязвимостей, или других выявленных проблем со скриптом, в админпанели возможно будет обновить скрипт, в рамках данной текущей версии скрипта.


2. Добавлена возможность автоматического обновления плагинов на сайте . Для этого в плагине задается URL для получения информации о наличии новой версии. По данному URL сайт разработчика плагина должен отдавать массив в JSON формате, который должен содержать информацию о актуальной версии плагина, а также ссылку на загрузку актуальной версии плагина. Например, по данному URL должно возвращаться значение {"version":"2.0","url":"https://dle-news.ru/test/test.zip"} . После чего, при проверке обновлений, администратор сайта сможет узнать о наличии новых версий плагина и обновить плагины в админпанели в один клик.


3. Для системы управления плагинами, добавлена возможность указывать количество замен, которые нужно провести, по каждому критерию поиска в файле. Например, вам нужно найти и заменить какой-либо код в файле, который встречается в этом файле несколько раз, вы можете указать сколько раз необходимо заменить данный код. Для замены всех вхождений этого кода, вы можете оставить данный параметр пустым, тем самым замена будет произведена везде, где встречается указанный вами код.


4. Для системы управления плагинами, добавлена возможность автоматического удаления загруженных вместе с плагином в архиве дополнительных файлов, в случае если плагин удаляется с сайта. Для этого в параметры плагина добавляется возможность выбора, удалять дополнительные файлы или нет. Тем самым вы можете самостоятельно решать, необходимо ли зачищать сервер от дополнительных файлов в случае его удаления с сайта, или же их необходимо оставить.

5. Для системы управления плагинами, добавлена возможность использовать в именах папок, находящихся в ZIP архивах, тег {THEME}. При загрузке архива через систему плагинов, данный тег будет заменен на имя используемого шаблона. Например, разместив в архиве файл /templates/{THEME}/test.tpl, ваш файл шаблона будет помещен в используемый на сайте шаблон. Тем самым, при использовании сложных плагинов, которые содержат в себе примеры файлов шаблонов, они могут сразу загружаться в нужную папку, содержащую используемый пользователем шаблон.

6. Для системы управления плагинами, добавлена возможность использовать в действии "Поиск и замена" в строке замены управляющие символы функции preg_replace, такие как \\1 и т.д., что снимает ограничения на поиск и замену некоторых кодов в DLE.


7. Для дополнительных полей, имеющих тип "Изображение" и "Галерея изображений" , добавлена возможность назначать каждому изображению в отдельности, свое персональное описание, которое также используется в качестве HTML атрибута alt, при выводе данных дополнительных полей на сайте.


8. Для дополнительных полей, имеющих тип "Галерея изображений", добавлена возможность изменять порядок сортировки загруженных картинок, просто переместив их мышью. После загрузки изображений вы можете поменять местами изображения по вашему желанию. Также загруженные изображения могут быть перенесены в другие дополнительные поля.


9. Для публикаций и комментариев добавлен новый тип рейтинга "Нравится и Не нравится", который ведет отдельный учет как количества лайков, так и количества дизлайков. Для этого для шаблонов вывода публикаций и комментариев добавлены новые теги: {likes} - который выводит количество лайков, {dislikes} - который выводит количество дизлайков, а также тег текст - который выводит текст, заключенный в теге, в случае если в настройках включен данный тип рейтинга.


10. В настройки профилей пользователей в админпанели, добавлена возможность устанавливать список категорий, в которые данному конкретному пользователю разрешено добавление публикаций. Это позволит, например, журналистам, вести личные рубрики, в которые другие журналисты (или часть из них) не имеют права публикации. Или наоборот - исключить журналиста из конкретной категории новостей, если он, например, в ней некомпетентен.

11. В настройки профилей пользователей в админпанели, добавлена возможность устанавливать список доверительных категорий, в которые данному конкретному пользователю разрешено добавление публикаций без модерации. Такая персонализация позволит значительно более гибко разграничивать права, не создавая при этом кучу групп пользователей, в том числе и групп под каждого конкретного журналиста.


12. Для расширенного поиска публикаций в админпанели, в разделе редактирования публикаций, добавлена возможность выбирать где необходимо произвести поиск. Вы можете произвести поиск по всему контенту, можете отдельно по заголовкам, краткому описанию, полному описанию и дополнительным полям. Также существенно улучшены алгоритмы поиска, для более корректного нахождения публикаций.

13. Для расширенного поиска публикаций в админпанели, в разделе редактирования публикаций, добавлена возможность поиска одновременно по нескольким категориям на выбор.

14. Для облака тегов добавлена возможность использования символов "&" и "#", что позволяет, например, использовать в облаке имена различных брендов, например, "H&M" и т.д.


15. В настройки скрипта в админпанели, добавлена возможность разрешения для администрации сайта авторизоваться на сайте при помощи социальных сетей. При включении данной настройки, пользователи, находящиеся в группе администраторы, также могут авторизоваться на сайте при помощи своих аккаунтов в социальных сетях.


16. В админпанели, в разделе редактирования комментариев, добавлена возможность поиска комментариев по тексту. В данном разделе вы можете произвести поиск необходимых вам для редактирования комментариев, по каким-либо ключевым словам. Тем самым редактирование комментариев становится более удобным.


17. В админпанели, в разделе управления перекрестными ссылками, добавлена возможность для массовых действий над ссылками, устанавливать замену "Только в статических страницах", а также "В статических страницах, новостях и комментариях".

18. Для предосмотра баннеров в разделе управления рекламой в админпанели, добавлено подключение стилей вашего шаблона из файла preview.css. Тем самым вы можете видеть более правильное оформление вашего рекламного кода, в случае если он использует классы из вашего шаблона.

19. Для шаблона вывода кратких новостей (shortstory.tpl) добавлено использование тегов текст , которые выводят заключенный текст в них, в случае если публикации по данным критериям отсутствуют. Тем самым вы можете переназначить стандартное системное сообщение об отсутствии публикаций в каком-либо отдельном разделе сайта, сделав его уникальным, например, для каждого раздела сайта. Также данные теги можно использовать и в шаблонах, которые используются при пользовательском выводе публикаций с помощью тега {custom ...}


20. Для шаблона E-Mail сообщения, которое отправляется при восстановлении забытого пароля, добавлено использование новых тегов: {%losturl%} , который выводит только URL ссылки на сброс и генерацию нового пароля, а также {%ipurl%} , который выводит только URL ссылки на сброс блокировки по IP. Тем самым вы можете отдельно задавать нужное вам оформление в письме данных ссылок, например, в виде кнопок. А также вы можете, например, отказаться от вывода ссылки на снятие блокировки по IP, если не используете эту возможность на своем сайте.

21. Улучшена система удаления категорий в админпанели . В случае если удаляемая категория, содержит в себе подкатегории, которые также подлежат удалению, то все действия для публикаций, которые содержат удаляемую категорию, будут автоматически распространены и на публикации, которые содержат также и удаляемые подкатегории. И к данным публикациям в подкатегориях, будут применены те же действия.


22. Для модуля "Фильтр по: IP, Логину или E-Mail" добавлена возможность добавления блокируемых адресов или логинов, или e-mail сразу целыми списками, а не по одному. Что существенно ускоряет процесс добавления, если у вас уже есть готовый список из того что необходимо заблокировать.


23. Для модуля "Фильтр по: IP, Логину или E-Mail" добавлена возможность редактирования уже существующих правил. Вы можете выбрать и отредактировать любое правило, без необходимости его удаления и повторного добавления.


24. Для модуля "Фильтр по: IP, Логину или E-Mail" добавлена возможность выбора одновременно нескольких или всех добавленных правил, и массовой разблокировки данных правил в один клик.

25. Для модуля "Фильтр по: IP, Логину или E-Mail" добавлена поддержка использования IPv6 адресов, которые можно указать для блокировки доступа на сайт. Также добавлена возможность указания IPv6 подсетей для блокировки.

26. Добавлена возможность указания IPv6 адресов в профиле пользователя , с которых разрешена авторизация для пользователя. Также вы можете указать не только отдельный адрес, но и IPv6 подсеть.

27. Для модуля пользовательской сортировки публикаций на сайте , выводимых тегом {sort} добавлена возможность выставления сортировки для каждой конкретной категории, а не для всех категорий одновременно.

28. Для ссылок, публикуемых в публикациях, добавлена возможность использование в них блочных элементов, таких как "p", "div" и т.д. Что позволяет DataLife Еngine более точно и правильнее соответствовать стандартам HTML5.

29. Добавлена возможность добавления новых пользователей в панели управления DataLife Engine, при работе с панелью с использованием смартфонов.

30. Внесены изменения в работу древовидных комментариев . В случае если достигнута максимальная вложенность для ответов на комментарии, то в случае ответа на комментарий, данные ответы остаются в ветке обсуждения на максимальной вложенности. Ранее при достижении максимальной вложенности, ответить на комментарий было нельзя. Теперь возможность ответа остается в любом случае.

31. Для дополнительных полей, имеющих тип "Перекрестные ссылки" , добавлена возможность использования в значениях символа двойных кавычек, и символа амперсанда.

32. В случае если для шаблона E-Mail сообщения, которое отправляется при восстановлении забытого пароля, установлено использование HTML формата для данного письма, то ссылки, которые генерирует тег {%lostlink%} в этом шаблоне, будут формироваться уже в виде готового HTML кода, а не просто текстовые ссылки.

33. В настройки скрипта добавлена возможность установки сортировки публикаций по умолчанию, по количеству комментариев. Тоже самое было добавлено и для настройки критериев сортировки при просмотре каталога.

35. Внесены изменения в работу дополнительных полей, в случае если поле имеет ограничения на добавление по группам пользователей. Если значение дополнительного поля было добавлено пользователем, имеющим на это право, а в последствии публикация редактируется пользователем, у которого нет прав на заполнение этого поля, то значение данного поля больше не очищается, а остается таким, каким его заполнил ранее пользователь, имеющий на это право.

36. Лимит на количество символов метатега Description для категорий увеличен до 300 символов . Максимальная длина соответствует теперь максимальной длине, установленной поисковой системой Google, для вывода данной информации в результатах поиска.

37. Улучшен поиск похожих новостей на сайте. Показ похожих новостей стал более релевантным по сортировки найденных публикаций.

38. Улучшена поддержка IPv6 адресов посетителей сайта. В некоторых определенных случаях полный адрес мог не помещаться в базу данных. Теперь длина полей зарезервирована согласно спецификации RFC 4291.

39. Улучшено формирование метатега og:description протокола Open Graph при просмотре полных новостей. Формирование происходит более корректно при использовании в качестве основного контента дополнительных полей для публикаций.

40. Улучшена работа системы безопасности DataLife Engine , с целью более корректной проверки данных на поддоменах, на некоторых хостингах, имеющий структуру поддоменов, в виде подпапок основного домена.

41. Добавлена поддержка протокола tel: для ссылок публикуемых на сайте при помощи BB тегов.

42. Обновлены визуальные редакторы TinyMCE и Froala до актуальных версий . Исправлен ряд выявленных ошибок в данных редакторах.

43. Исправлена проблема, с использованием в дополнительных полях профиля пользователей, полей с типом "Список", в которых использовались значения с использованием символа "|".

44. Исправлена проблема, при которой в разделе управления плагинами, если изменялось действие над файлом в меню, некоторые символы могли некорректно изменяться в указанных в полях значениях.

45. Исправлена проблема , при которой нельзя было использовать теги для внутренних страниц сайта, и разрешалось использование только для внешних сайтов.

46. Исправлена проблема , при которой нельзя было приступить к обновлению сайта на новую версию, в случае если сайт был в кодировке отличной от UTF-8 при этом логин или пароль администратора содержал в себе буквы, написанные на кириллице.

47. Исправлена проблема, при которой не появлялось всплывающее окно о поступлении новых персональных сообщений, если пользователь самостоятельно вышел из своего аккаунта на сайте, а после чего опять вошел в него спустя какое-то время.

48. Исправлена проблема, при которой не работало редактирование комментариев в панели управления скриптом, в случае если в настройках скрипта был включен TinyMCE редактор.

49. Исправлена проблема , при которой не отображалось количество дней, в течении которых можно добавлять комментарии к публикации, если такие лимиты были установлены в настройках скрипта в админпанели.

50. Исправлена проблема , при которой дополнительное поле, имеющее тип "Загружаемый файл", не отображалось на сайте в виде ссылки на скачивание файла, а выводилось простым тегом.

51. Исправлены обнаруженные и заявленные ранее небольшие ошибки в скрипте.

Привет, друзья. Я почти все свое время уделяю . Так как большинство моих сайтов построены на CMS DLE, то и приходится много работать с этим движком. Я и раньше говорил, что с SEO разработчики не дружат, и вообще такого слова не слышали никогда, но оказалось все еще хуже, чем могло бы быть. Я даже подготовил целую серию постов, посвященных «осеошиванию» народного движка (см. в категории ).

Но сегодня я бы хотел поговорить про такую важную вещь как html карта сайта для DLE. Сколько я не искал в интернете нормальный модуль карты, так и не нашел. Есть, конечно, несколько решений, но все они дают совсем не тот результат, который нужен, а порой даже наносят вред. Пришлось писать модуль самому, а точнее поручить профессионалам реализацию моих «хотелок». Выражаю огромную благодарность Фомину Александру за энтузиазм и невероятную скорость работы.

Модуль карты сайта для ДЛЕ, который я собираюсь вам представить, отвечает всем требованиям seo и предельно прост в установке.

Полный список модулей для DLE от АлаичЪ"а:

SiteMap – модуль генерации HTML карты сайта для DLE

Оригинальное название: SiteMap
Совместимость с CMS: DLE 8.2-10.6
Распространение: Бесплатно, As Is, при распространении ссылка на источник обязательна
Актуальная версия: 2.2 (от 08.05.2014)
Назначение: Вывод ненумерованного списка со ссылками на все публикации, категории и статические страницы.
Особенности: Визуальный генератор кода для вставки. Детальная настройка принципа вывода всех элементов сайта — новости, категории, статические страницы — количество выводимых элементов, принцип сортировки и порядок сортировки, отображение элементов в виде ссылки или простым текстом, возможность включить/исключить конкретные элементы.

Описание и настройка модуля HTML карты сайта для DLE

Друзья, 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 - элемент