MaHarder
-
Публикации
117 -
Зарегистрирован
-
Посещение
-
Дней в лидерах
5
Сообщения, опубликованные пользователем MaHarder
-
-
На сайте стоит, что минимальная версия для DLE это 7.4, однако админка просит обновить до 8.1. Чему верить?
Оф. информация: https://dle-news.ru/request.html
Админка
-
Сабж,
из класса DLEPlugins пропала переменная $read_only.
Из-за этого сыпятся проблемы
Fatal error: Uncaught Error: Call to undefined method DLEPlugins::$read_only in C:\_dev\OpenServer\domains\...\engine\inc\plugins.php:1377 Stack trace: #0 C:\_dev\OpenServer\domains\....local\engine\inc\include\init.php(598): include_once() #1 C:\_dev\OpenServer\domains\....local\admin.php(29): require_once('C:\\_dev\\OpenSer...') #2 {main} thrown in C:\_dev\OpenServer\domains\....local\engine\inc\plugins.php on line 1377
Версию только что с сайта скачал
define('DINITVERSION', '1551' ); define('VERSIONID', '15.2' ); define('BUILDID', '103' );
-
18 часов назад, Captain сказал:
Данная папка не предназначена для загрузки изображений
тогда, я думаю, стоит об этом вывести уведомление, что изображения не допустимы. потому что не очевидно при использовании UI. Ведь другого пути не дано.
7 часов назад, celsoft сказал:Эта папка для загрузки скачиваемых через DLE файлов, а не для изображений.
по внешнему виду - это не понятно
- 1
-
Для примера использовал это изображение: https://picfiles.alphacoders.com/306/306837.jpg.
Загрузил его предварительно в папку /uploads/files
В админпанели указал название файла. При нажатии "Загрузить" получаю ошибку "Image source not readable"
Используется последняя версия DLE
-
3 часа назад, celsoft сказал:
Никаких багов в DLE в данном вопросе нет. Ничего добавлять в этот файл не нужно, и никаких подключений в этом файле быть не должно.
А ваша проблема связана исключительно с тем что у вас файлы от разных версий скрипта на сервере и при обновлении вы обновили не все файлы DLE.
ясно, поэтому в файле класса парсера используется этот класс
$parse_config = HTMLPurifier_Config::createDefault();
Конечно, если подключать файл при помощи класса плагина, то проблем не будет (полагаю), а вот если без - будет выдавать ошибку, что класс не известен. Возможно, это было не предусмотрено в ходе разработки, что сторонние разработчики будут напрямую подключать файлы.
-
Собственно, сабж.
Fatal error: Uncaught Error: Class 'HTMLPurifier_Config' not found in \engine\classes\parse.class.php on line 62
Лечится так
В файле engine/classes/parse.class.php
над
class ParseFilter {
добавить
include_once DLEPlugins::Check(ENGINE_DIR . '/classes/htmlpurifier/HTMLPurifier.standalone.php');
- 1
-
17.10.2021 в 18:11, Хоббит сказал:
Вы сами по ссылке переходили то?
-
Модуль будет отправлять сообщения в выбранный чат при помощи бота. Гибкие настройки позволят модулю отправлять лишь то, что вы хотите.
Пожелания учитываются.
Возможности:
- Отправка сообщений при добавлении новости
- Отправка сообщений при редактировании новости
- Отправка при зависимости от полей
- Отправка обычного сообщения на канал
- Поиск нужного чата
- Настройка шаблонов для отправки сообщений
- Если сайт работает через SSL, то будет возможность преобразовать бота в Webhook
Обновления
v1.6.0 BETA
Последнее обновление в данном виде, думаю. НУЖНЫ ТЕСТЕРЫ, ПРОВЕРКИ ТОЛКОМ НЕ БЫЛО!
Модуль был переписан с нуля, тем самым подготавливая его к новой версии релиза
Были добавлены следующие возможности:
- Доступны все теги, что используются в полной новости
- Добавлены новые теги, подробнее ниже
- Добавлена поддержка вывода галереи, видео, изображения и аудио
- Добавлена поддержка миниатюр, для превью контента
- Выбор зависимости был расширен
Поддерживаемые теги для оформление шаблонов:
- Теги для полной новости движка DLE - https://dle-news.ru/extras/online/all17.html
- {tags_no_link} - Вывод тегов без ссылок
- {hashtags} - Вывод тегов в виде хештегов (тег без ссылки, но добавляется # к тегу)
- [xfvalue_XXX_text] - Если доп. поле является перекрестной ссылкой, то выводиться будет как простой текст
- [xfvalue_XXX_hashtag] - Если доп. поле является перекрестной ссылкой, то выводиться будет как хештег
-
[telegram_media_xfield_XXX file=Y max=Z] - Добавляет значение в массив медиа для сообщения.
XXX - название доп. поля
Y - Номер медиафайла, если в перечени несколько файлов (file= не обязателен)
Z - максимальное кол-во добавляемых файлов, если в перечени несколько файлов, иначе добавятся все (max= не обязателен). Не совместим с опцией file. -
[telegram_media_video video=X max=Z] - Добавление видео в массив медиа.
X - номер видео
Y - Номер медиафайла, если в перечени несколько файлов (video= не обязателен)
Z - максимальное кол-во добавляемых файлов, если в перечени несколько файлов, иначе добавятся все (max= не обязателен). Не совместим с опцией video. -
[telegram_media_audio audio=X max=Z] - Добавление аудио в массив медиа.
Y - Номер медиафайла, если в перечени несколько файлов (audio= не обязателен). Не совместим с опцией audio.
Z - максимальное кол-во добавляемых файлов, если в перечени несколько файлов, иначе добавятся все (max= не обязателен) -
[telegram_media_image image=X max=Z] - Добавление изображений в массив медиа.
Y - Номер медиафайла, если в перечени несколько файлов (image= не обязателен). Не совместим с опцией image.
Z - максимальное кол-во добавляемых файлов, если в перечени несколько файлов, иначе добавятся все (max= не обязателен). Не совместим с опцией image. -
[telegram_media_allimages image=X max=Z] - Учитываются все изображения добавленные в краткую и полную новость, а так-же из доп. полей.
Y - Номер медиафайла, если в перечени несколько файлов (image= не обязателен)
Z - максимальное кол-во добавляемых файлов, если в перечени несколько файлов, иначе добавятся все (max= не обязателен). Не совместим с опцией image. -
[telegram_thumb]XXX[/telegram_thumb] - Миниатюра или же превьюшка. Вместо XXX заполняем теги, иначе будет браться первое изображение из массива изображений.
Максимальный размер изображения - 200 kb
Максимальная высота и ширина - 320 px
Указывать только онду ссылку на миниатюру, иначе будет браться первое изображение из массива изображений - [telegram_title]XXX[/telegram_title] - Заголовок для сообщения в телеграме. Вместо XXX выши теги, иначе будет браться заголовок новости.
-
[button=X]Y[/button] - Добавление кнопки под сообщением.
X - ссылка
Y - описание ссылки
Теги [telegram_media_ будут обработаны в том случае, если выбран медийный шаблон. Иначе - станут пустышкой. Если загруженный файл не будет являться разрешённым форматом, то он будет загружен как документ. Максимальное кол-во медиа файлов: 10.
Вывод сообщений
- Текстовой вывод - Обыкновенный вывод сообщений.
- Галерейный вывод - Вывод сообщений с поддержкой медиавставок (до 10-ти штук)
- Сообщение с постером - Вывод сообщения с основным постером, в качестве постера берётся первое указанное изображение, другие игнорируются
- Сообщение с аудио - Вывод сообщения с аудио, как основа, в качестве аудио берётся первое указанное аудио, другие игнорируются
- Сообщение с видео - Вывод сообщения с видео, как основа, в качестве видео берётся первое указанное видео, другие игнорируются
Скачать: https://github.com/Gokujo/telegramposting/releases/latest
- 2
- 1
-
Не буду создавать новую тему
в этом же файле, на строке 1741
$tpl->copy_template = preg_replace( "#\[not-image-{$i_count}\](.+?)\[/not-image-{$i_count}\]#is", "", $tpl->copy_template );
Предыдущих значений не нашёл в файле, видать имелось ввиду
$tpl->copy_template = preg_replace( "#\[not-image-{$i}\](.+?)\[/not-image-{$i}\]#is", "", $tpl->copy_template );
-
В файле show.full.php на строчках 1965-1966 повтор строчек (версия DLE -> 14.2)
unset($value3); unset($value3);
Полагаю, должно быть так
unset($value3); unset($value4);
-
Обновил до 1.1.0, полностью переписал запрос, чтобы охватить все используемые доп. поля
https://devcraft.club/downloads/xf-list-generator.19/download
Версия 1.1.0
Добавлены новые теги для формирования вывода- cat - Перечень категорий через запятую (,) из которых должны формироваться списки
- news_id - Перечень новостей через запятую (,) из которых должны формироваться списки
Добавлены новые теги для шаблонов- {count} - Выводит общее количество использования доп. поля (пока тестируется)
-
18 часов назад, celsoft сказал:
Так достаточно просто не использовать знак "|", а просто написать "Понятное описание значения 1" и все. Стандартный DLE сделает то же самое.
Это понятно. Никто не спорит. Но бывают моменты, когда нужно именно значение на латинском, при этом прописывать ifxvalue и выводить повторно описания в шаблоне.
Допустим, у нас поле со списком которое должно выводить статус. В оформлении заточено так, что стиль подстраивается под значение поля, т.е.
[xfgiven_status]class="status [xfvalue_status]"[/xfgiven_status]
Может, конечно где-то и используется кириллица в стилях, но я такого не встречал. ведь по логике выше мне придётся прописывать следующее для вывода описания значения
[ifxfvalue status="uno"]Описание 1[/ifxfvalue][ifxfvalue status="dos"]Описание 2[/ifxfvalue][ifxfvalue status="tres"]Описание 3[/ifxfvalue]
А с этой модификацией кода достаточно будет прописать вот так
[xfgiven_status] <div class="status [xfvalue_status]">[xfvalue_tagvalue_status]</div>[/xfgiven_status]
-
21 час назад, Mr. Bot сказал:
Это как раз таки специально и сделано, что бы
и? его работа не будет затронута. А этот тег позволит вывести описание самого значения. Не пойму, в чём придирка?
-
16 минут назад, Хоббит сказал:
Для чего такой плагин?
для генерации списков. допустим, чтобы вывести всех доступных производителей запчастей в определённой части сайта. Я когда-то делал его для одного киносайта, для фильтрации.
-
Данный модуль работает на основе перекрёстных ссылок и при помощи шаблона выводит в нужном месте сгенерированный список.
Всё настраивается в шаблонах.
Модуль подключается в любом шаблоне при помощи инклуда:
[CODE=html]{include file="engine/modules/xf_list_gen.php?xffield=X&template=X&&limit=X&skip=X&sort=X"}[/CODE]
Обязательные теги:
- xffield - Название доп. поля
- template - Название шаблона с окончанием
Дополнительные теги:
- limit - Ограничивает вывод записей в списке, принимает только числа. По умолчанию: пусто
- skip - Пропускает заданное число записей, принимает только числа. По умолчанию: пусто
- sort - Сортировка списка, по умолчанию или по убыванию. Принимает только ASC и DESC. По умолчанию: ASC
Возможные теги в вашем шаблоне:
- {link} - Выводит ссылку на доп. поле, если имеется (хотя да...)
- {name} - Название доп. поля
- {value} - Значение доп. поля
- {max_value} - Максимально возможное значение, сделано для вывода чисел
- {min_value} - Минимально возможное значение, сделано для вывода чисел
Скачать: https://devcraft.club/downloads/xf-list-generator.19/
Или файл плагина
<?xml version="1.0" encoding="utf-8"?> <dleplugin> <name>Xfield List Generator</name> <description>Создаёт списки доп. полей на основе шаблона.</description> <icon></icon> <version>1</version> <dleversion>13</dleversion> <versioncompare>greater</versioncompare> <upgradeurl></upgradeurl> <filedelete>0</filedelete> <needplugin></needplugin> <mnotice>0</mnotice> <mysqlinstall><![CDATA[]]></mysqlinstall> <mysqlupgrade><![CDATA[]]></mysqlupgrade> <mysqlenable><![CDATA[]]></mysqlenable> <mysqldisable><![CDATA[]]></mysqldisable> <mysqldelete><![CDATA[]]></mysqldelete> <phpinstall><![CDATA[]]></phpinstall> <phpupgrade><![CDATA[]]></phpupgrade> <phpenable><![CDATA[]]></phpenable> <phpdisable><![CDATA[]]></phpdisable> <phpdelete><![CDATA[]]></phpdelete> <notice><![CDATA[]]></notice> <file name="engine/modules/xf_list_gen.php"> <operation action="create"> <replacecode><![CDATA[<?php /** * @author: Maxim Harder * @link: https://devcraft.club * @description: Автоматический генератор списков для вывода доп. полей * */ if (!defined('DATALIFEENGINE')) { die('see ya.'); } if( empty($template) && empty($xffield)) return false; $limit = (isset($limit) && (int)$limit) ? " LIMIT {$limit}" : ''; $skip = (isset($skip) && (int)$skip) ? " OFFSET {$skip}" : ''; $steps = $limit + $skip; $cprefix = "xf_gen_".$xffield; $db_prefix = PREFIX; $sort = (isset($sort) && in_array($sort, ['asc', 'desc', 'ASC', 'DESC'])) ? $sort : 'ASC'; $sql_field = "SELECT tagvalue FROM {$db_prefix}_xfsearch WHERE tagname = '{$xffield}' ORDER BY tagvalue {$sort}{$limit}{$skip}"; $cache_name = "{$sql_field}_{$template}_{$limit}_{$skip}"; $gen = dle_cache ( $cprefix, $cache_name ); if( $gen ) { echo $gen; } else { if (!function_exists('get_min_max')) { function get_min_max(array $values, string $type) { if ('min' == $type) { return min(array_diff(array_map('intval', $values), [0])); } return max(array_diff(array_map('intval', $values), [0])); } } if (!function_exists('gen_xfields')) { function gen_xfields() { global $config; $xf_list = []; $handle = @fopen(ENGINE_DIR.'/data/xfields.txt', 'r'); if ($handle) { while (($buffer = fgets($handle, 4096)) !== false) { $buf_split = explode('|', $buffer); $xf_list[$buf_split[0]] = [ 'name' => $buf_split[0], 'value' => $buf_split[1], 'type' => $buf_split[3], 'splitter' => empty($buf_split[21]) ? ', ' : $buf_split[21], 'search' => (1 === $buf_split[6]) ? true : false, 'default' => [], ]; if ('select' == $buf_split[3]) { $default_values = explode('__NEWL__', $buf_split[4]); foreach ($default_values as $val) { $vals = explode('|', $val); $xf_list[$buf_split[0]]['default'][$vals[0]] = $vals[1]; } } } fclose($handle); } return $xf_list; } } $db->query( $sql_field ); $gen_tpl = new dle_template(); $gen_tpl->dir = TEMPLATE_DIR; $gen_tpl->load_template( $template ); $xffields = gen_xfields(); $xf_chosen = $xffields[$xffield]; $all_xfs = array(); $min_max_value = []; $l = 0; while($gen = $db->get_row()) { $l++; if (!in_array($gen['tagvalue'], $all_xfs)) { if ('select' == $xf_chosen['type']) { $value = $xffields[$xffield]['default'][$gen['tagvalue']]; } else { $value = $gen['tagvalue']; } $link = ''; if ($xffields[$xffield]['search']) { $url_val = str_replace([''', '"', '&', '{', '[', ':'], ["'", '"', '&', '{', '[', ':'], $value); if ($config['allow_alt_url']) { $link = '<a href="'.$config['http_home_url'].'xfsearch/'.$xffield.'/'.rawurlencode($url_val).'/">'.$value.'</a>'; } else { $link = "<a href=\"{$PHP_SELF}?do=xfsearch&xfname=".$xffield.'&xf='.rawurlencode($url_val).'">'.$value.'</a>'; } } if ((int) $gen['tagvalue']) $min_max_value[] = (int) $gen['tagvalue']; $gen_tpl->set('{link}', $link); $gen_tpl->set('{name}', $value); $gen_tpl->set('{value}', $gen['tagvalue']); $gen_tpl->set('{max_value}', get_min_max($min_max_value, 'max')); $gen_tpl->set('{min_value}', get_min_max($min_max_value, 'min')); $gen_tpl->set('{count}', (int) $l); $gen_tpl->compile('gen_item'); $all_xfs[] = $gen['tagvalue']; } } echo $gen_tpl->result['gen_item']; create_cache ( $cprefix, $gen_tpl->result['gen_item'], $cache_name ); $gen_tpl->clear(); unset($gen_tpl); $db->free(); } ]]></replacecode> </operation> </file> </dleplugin>
- 1
-
Допустим, вы ввели значения похожие на эти:
Цитатаval1|Понятное описание значения 1
val2|Понятное описание значения 2
val3|Понятное описание значения 3
...
Стандартный тег [xfvalue_X] будет выводить лишь valN, но при помощи этого модуля на сайте будут показаны значения "Понятное описание значения N".
Модуль не заменят стандартные теги, а добавляет два новых двух.Для использования данной модификации - достаточно указать следующие теги в шаблоне оформления новостей. Модуль будет работать и с мультивыбором, и с указанием значений с разделителем |, и даже без него.
[xfvalue_tagvalue_X] - Выводит просто все значения поля
[xfvalue_tagvalue_url_X] - Если доп. поле обозначено, как перекрёстная ссылка, то и вывод всех значений будет выводиться как ссылка. Если же это измениться, то значение будет схоже с тегом [xfvalue_tagvalue_X].
Вместо X вводим своё доп. полеСкачать: https://github.com/Gokujo/xfselecttruevalue/releases/latest
- 1
-
Если не ошибаюсь, то для клиентов существует тех. поддержка по мылу. Там вам помогут.
-
мне было интересно решение относительно такой структуры. ни я, ни кто-либо другой не может вам что либо навязать. Однако, загорелся интерес проверить затрату времени при выборке данных полей дат. Я использовал базу данных сотрудников своей фирмы, само собой - её копию, а именно таблицу по рабочим часам. Для теста я взял данные за 2018 год. Сначала я запрашивал как datetime, а затем как varchar. Integer не трогал. Всего собралось более 36000 строк. Думаю, этого будет достаточно. Тест показал, что конвертация дат из текста, куда больше времени и ресурсов занимает, нежели конвертация из даты в текст. Может, я что-то упустил или напутал. Кто знает. Вот, сам тест. И да, я тестировал на PostgreSQL.
Если вам так угодна скорость и работоспособность базы данных, то почему же не использовать SQLite? Она идеально подходит вашим требованиям, даже лучше. На вебхосте даже не нужно иметь отдельно базы данных. И взаимодействие будет происходить куда быстрее и эфективнее. То, что ваши 15000 клиентов сидят на MyISAM - ничего страшного, обновят в ходе обновления движка. А те, кто не сидит на актуальных версиях - обновлять не будет и их это ну никак не коснётся. Тем более, что минимальное требование по MySQL значится как 5.5.3. Рано или поздно вам всёравно придётся обновляться. А с версии 5.5.6 InnoDB уже стандартный движок MySQL. Конечно, опыт с хостерами у нас разный, но на моём опыте - пока никто из хостеров не отказывал в апгрейде MySQL, ибо им это не выгодно.
Да, у вас в CMS системах больше опыта, чем у меня, поскольку я работаю с ERP-системами.
Спасибо, ответ на свои вопросы я получил. Повторюсь в очередной раз, никому и ничего я не хотел и не хочу навязывать.
-
57 минут назад, crafic сказал:
Это уже дополнительный запрос в бд
это один запрос, он аналогичен тому, что даёт DLE. я не специфицировал для чего именно. так или иначе - этим запросом я получаю данные о доп. полях к новости.
1 час назад, crafic сказал:я б наверно в serialize их.
если оставаться при той же структуре - было бы супер, но увы - факт остаётся фактом, если поле mytranslitedname вдруг переименнуется в alt_name, то в базе данных это никак не отобразится. Просто выпадет из списка доп. полей и не будет отображаться, поскольку в бд до сих пор остаётся mytranslitedname.
1 час назад, crafic сказал:deleteNewsById
есть, полезная функция
-
1 час назад, celsoft сказал:
А DLE как известно готовый коробочный продукт, а не фрейворк
Причём тут фреймворк до 3. нормы базы данных? я вам о Foreign Keys говорю. Я ради наглядности сделал пару связок:
Ведь проще удалить, к примеру, одну новость со всеми логами, комментариями, файлами и т.д. ОДНИМ запросом, нежели n запросами, поскольку таблицы будут связаны друг с другом. Это функционал самой базы данных, а не DLE. И я понимаю, что для этого нужно будет принудительно обновить базу данных до InnoDB. Думаю, это не проблема. С UTF-8 тоже ведь получилось.
1 час назад, celsoft сказал:Поэтому она и не создавала CMS
Ну, вы сами говорите, что не стоит утверждать то, что не знаете. У нас преподователи хорошо получают, больше чем в больших/крупных компаниях. Чем она занималась во время работы на свободном рынке - не вам осуждать. По программе обучения IHK считается, что быстродействие и реакция между таблицами наилучше всего достигается при нормализации единообразных названий начиная со второй нормы. Не мне вас судить, если учесть, что даже в Deutsche Bahn бардак с базой данных, то там и уровень разработки выше. Простите, вы имеете опыт работы в Data Warehouse? Моя училка - имеет. Но, это не имеет значения, я лишь хотел преукрасить ситуацию с базой данных. Не думал, что вы так зациклитесь на ней. Я хотел лишь указать на не систематические названия и структуру.
1 час назад, celsoft сказал:Так создайте свою CMS, потом похвастаетесь, и мы посмотрим на ее производительность.
Не сомневайтесь, создам. А покажу - будет зависеть от работодателя. Однако я не считаю выборку, хотябы тех же доп. полей, производительной частью. проще достать и получить массив при помощи
select xf.name, xf.alt_name from xfields xf, post_xfields px where xf.id = px.xfield and news_id = 1
$result = $mysqli->query($query); $xfields = $result->fetch_array(MYSQLI_ASSOC);
нежели
select xfields from dle_post where id = 1
$result = $mysqli->query($query); $xfields_row = explode('||', $result['xfields']); $xfields = array(); foreach($xfields_row as $xr) { $xTemp = explode('|', $xr); $xfields[$xTemp[0]] = $xfields[$xTemp[1]]; }
А если поле изменится, то, на данный момент, нужно исправлять это через поиск и замену в базе данных. Очень удобно и производительно. Решать вам.
1 час назад, celsoft сказал:И это правильно.
тогда, может сразу всё в текстовом формате сохранять? Ведь конвертировать даты можно и при помощи функции convert, date и т.д. в базе данных. Это же сколько сэкономит на производительности?
Я извиняюсь за свои придирки и, наверное, насмешки, не мне решать как развивать движок далее. Ведь, сторонним разработчикам будет проще разрабатывать для DLE на таких простых структурах.
И всё же, один вопрос остаётся открытым
21 час назад, MaHarder сказал:В таблице usergroups проверьте поле max_edit_days. Точно однозначный int?
ибо аналогичные ему - имеют 6ти значное число
==========================
Я ничего не хочу навязывать. Мне было интересно, почему такая структура, будет ли она изменена. Каждый учился по своему и у каждого своя "библия" по написанию кода. Да, я видел структуры базы данных похуже, та же система ERP Odoo - сплошной кошмар, к примеру.
-
12 часов назад, webair сказал:
что несколько разработчиков
значит ли это, что лид команды спустил всё на тормозах, @celsoft? ладно названия, ещё куда не шло, но типы поля - это жесть. к тому же пользователя идентифицируют то по имени, то по айди - надо же как-то определиться уже...
я бы вообще dle_post разделил бы на 4 таблицы. категории уже существуют, посему ещё нужны доп. поля и похожие новости. такое чувство, что о нормативах базы данных никто не слышал ничего и постепенно разрабы осваивают википедию или мануалы... моя училка по базам данных наверное сразу бы коньки откинула увидев такую структуру...
очень не удобно работать с таблицами, когда удаляешь ту же новость. давно пора перейти на 3. норму. и желательно на Postgre.
-
Разрабатывая API заметил, что нет однообразных названий для определённых полей.
autor, он же author
news_id, он же post_id, p_id, n_id
user_id, он же member, u_id
descr, он же description
Про даты вообще молчу, то string, то integer, то datetime
В таблице usergroups проверьте поле max_edit_days. Точно однозначный int?
Почему не использовать Foreign keys?
-
Написал апи на основе slimframework 3. Однако, нужны добровольцы в тестировании.
Плагин находится здесь: Github
Документацию к API начал писать: POSTMAN. Принцип один и тот же для всех таблиц.
Предложения можно добавить через feathub
Связаться со мной можно через телеграм:@MaHarder
Установка через плагины.
Подключение к базе данных берётся от конфигурации движка.
- 1
- 1
- 1
-
@germanydletest, был занят аналогичным проектом. Перевёл website.lng и ещё пару файлов до версии DLE 13.0. Если интересно, то держи: Ссылка
Минимально требуемая версия PHP
в Прием багов
Опубликовано:
Ясно, прошу добавить информацию о рекомендуемой версии на сайт. Спасибо