- +
\ddTools::deleteDocuments: Новый публичный статичный метод. Удаляет документ(ы) с всеми их дочерними документами (рекурсивно). Кеш удаленных документов и их родителей будет очищен.
- *
\DDTools\Storage\DB\Storage::items_update: Исправлена ошибка выполнения запроса UPDATE в некоторых версиях MariaDB.
- +
\DDTools\Tools\Objects::convertType→ Параметры →$params->object→ Допустимые значения →object: Теперь также поддерживаются экземпляры кастомных классов.
- +
\DDTools\Base\Base::getClassName()→ Результат →$result->namespacePrefixRoot: Новое свойство, содержащее корневой префикс пространства имён (например,'\\ddSendFeedback'из'\\ddSendFeedback\\Sender\\Email\\Sender').
- *
\DDTools\Storage\DB\Storage: Работает корректно даже если колонкаidне существует в таблице.
- *
\DDTools\Storage\DB\Storage::items_add:$params->items[$itemIndex]->idиспользуется, если он передан и валиден через$this->items_validateData.
- *
\DDTools\Base\AncestorTrait::getChildClassName: Публичный статичный метод больше не является финальным. Теперь дочерние классы могут переопределять его.
- +
\DDTools\Base\Base::getClassName→ Параметры →$classNameFull: Новый необязательный параметр. Позволяет задать произвольное имя класса, не только текущее. - +
\DDTools\Snippet::$paramsTypes[$paramName]→ Допустимые значения →'float': Новое значение. - * Требуется PHP >= 7.4.
- *
\DDTools\Storage\DB\Storage: Имена колонок берутся в кавычки во всех запросах, чтобы избежать ошибок, когда они равны каким-нибудь зарезервированным ключевым словам, напримерrepeat.
- +
\DDTools\Tools\Objects::extend→ Параметры →$params->extendableProperties: Новый необязательный параметр. Позволяет использовать для расширения не все свойства из дополнительных объектов или массивов (см. README → Примеры). - +
\DDTools\Storage\Storage→items_update,items_updateOne,items_delete,items_deleteOne,items_get,items_getOne→ Параметры:- +
$params->where→ Допустимые значения →null: Новое значение. Эквивалентно''. - +
$params->where->{$propName}:- + Вы также можете указать несколько вариантов значений с помощью массива.
- + Вам не нужно беспокоиться о передаче пустых массивов, они будут просто проигнорированы.
- +
- +
\DDTools\Tools\Cache:- + Теперь существует 2 уровня кэширования: постоянное (на основе файлов) и быстрое (на основе
$_SESSION). Все методы используют оба уровня автоматически. - +
getSeveral: Новый публичный статичный метод. Получает из кеша данные о нескольких элементах (см. README). - +
saveSeveral: Новый публичный статичный метод. Сохраняет в кэш данные нескольких элементов (см. README). - +
save,saveSeveral,get,getSeveral,delete→ Параметры →$params->resourceId→ Допустимые значения →string: Новое значение. В качестве идентификатора ресурса можно использовать не только числовой идентификатор, но и произвольную строку. - +
getSeveral,delete→ Параметры →$params->resourceId→ Допустимые значения →array: Новое значение. Можно указать несколько ID. - +
delete→ Параметры →$params->resourceId→ Допустимые значения →'*': Новое значение. - +
save→ Параметры →$params->isExtendEnabled: Новый необязательный параметр. Позволяет дополнить уже существующие данные (см. README).
- + Теперь существует 2 уровня кэширования: постоянное (на основе файлов) и быстрое (на основе
- +
\DDTools\Tools\Cache: Новый класс. Позволяет кэшировать какие-то данные (например, результаты сниппетов) в файл в папкеassets/cache/ddCache(см. README). - *
\DDTools\Tools\Objects: Класс переименован из\DDTools\ObjectTools(с обратной совместимостью). - *
\DDTools\Tools\Files: Класс переименован из\DDTools\FilesTools(с обратной совместимостью).
- *
\ddTools::parseText→ Параметры →$params->isCompletelyParsingEnabled: Неработающая поддержка устаревшего названия$params->mergeAllисправлена.
- +
\ddTools::isEmpty: Новый публичный статичный метод. Проверяет, пуста ли переменная. - *
\ddTools::parseText→ Параметры:- +
$params->data: Поддерживаются как объекты, так и массивы одновременно, независимо от уровня вложенности. - +
$params->data->{$key}→ Допустимые значения →boolean: Новое поддерживаемое значение. Будет сконвертировано в'1'или'0'соответственно. - *
$params->isCompletelyParsingEnabled:- * Переименован из
$params->mergeAll(с обратной совместимостью). - + Если включён, метод будет парсить всё, включая поля документа, настройки, чанки, сниппеты и URL.
- * Переименован из
- +
- *
\DDTools\ObjectTools::- +
getPropValue→ Параметры →$params->notFoundResult: Новый необязательный параметр. Позволяет настроить, что будет возвращено, если нужное свойство не найдено (см. README → Примеры). - +
unfold→ Параметры →$params->isCrossTypeEnabled: Новый необязательный параметр. Параметр определяет, должен ли метод обрабатывать объекты и массивы одновременно, независимо от типа, на всех уровнях вложенности. При значенииtrueметод будет рекурсивно разворачивать элементы как массивов, так и объектов, независимо от типа корневого родителя (см. README → Примеры). - *
isPropExists→ Параметры →$params->object: Метод вернётfalseдаже если параметр не является объектом или массивом.
- +
- *
\DDTools\ObjectCollection::setOneItemData→ Параметры: Следующие переименованы (старые имена по-прежнему поддерживаются, но объявлены устаревшими):- *
itemIndex→index. - *
itemData→data.
- *
- +
\DDTools\Base\Base::getClassName: Новый публичный статичный метод. Получает данные об имени класса (см. README). - +
\DDTools\Base\AncestorTrait::getChildClassName: Новый публичный статичный метод (см. README). - +
\DDTools\Storage\: Новые классы. Это бета-версия, используйте её на свой страх и риск.
- +
\DDTools\ObjectTools::convertType→ Параметры →$params->type→ Допустимые значения →'stringHtmlAttrs': Новое значение. Позволяет преобразовать в строку HTML-атрибутов (см. README → Примеры).
- +
\ddTools::getTpl: Новый публичный метод (см. README).
- +
\ddTools::parseText: Помимо доступа свойствам вложенных объектов через плейсхоледры вида'[+prop.subProp+]', вы также можете получить весь объект в JSON через плейсхолдеры вида'[+prop+]'(см. README → Примеры).
- *
\DDTools\ObjectTools::convertType→ Параметры →$params->type→ Допустимые значения →'stringQueryFormatted': Исправлена ошибка в написании. Некорректное значение'stringQueryFormated'также поддерживается для обратной совместимости.
- +
\DDTools\Base\AncestorTrait::createChildInstance→ Параметры →$params->parentDir: Больше не обязателен и по умолчанию равен папке класса, использующего этот трейт.
- +
\DDTools\ObjectTools::getPropValue→ Параметры →$params->propName: Теперь метод умеет получать значение свойства объекта или элемента массива на любом уровне вложенности. Просто используйте'.'в параметре для получения свойств вложенных элементов.
Несколько примеров (см. полные примеры в README):- *
somePlainProp— получить свойство первого уровня. - *
someObjectProp.secondLevelProp— получить свойство объекта|массиваsomeObjectProp. - *
someArrayProp.0.thirdLevelProp— получить свойство нулевого элемента массиваsomeArrayProp.
- *
- +
\ddTools::sort2dArray→ Параметры →$array[$i]: Также может быть задан, как объект. - *
\DDTools\Base\Base:- * Класс переименован из
\DDTools\BaseClass. Обратная совместимость сохранена (множно использовать\DDTools\BaseClass, но не рекомендуется). - * Класс стал абстрактным.
- -
createChildInstance: Метод удалён, используйте вместо него\DDTools\Base\AncestorTrait::createChildInstance. Обратная совместимость сохранена (можно использовать\DDTools\BaseClass::createChildInstance, но не рекомендуется). - +
toJSON: Возвращает JSON-массив если$this->toArrayвозвращает индексированный массив.
- * Класс переименован из
- +
\DDTools\Base\AncestorTrait: Новый trait. - +
\DDTools\ObjectCollection:- +
toJSON,__toString: Новые публичные методы. Возвращают JSON-массив всех элементов коллекции. - +
\DDTools\ObjectCollection::setOneItemData,getOneItemData: Новые protected методы.
- +
- *
\DDTools\FilesTools::modifyImage: PHP.libraries.phpThumb, включённая в репозиторий, обновлена с 1.7.15-202004301145 до 1.7.19-202210110924 (теперь поддерживает WebP, PHP8, etc).
- +
\ddTools::convertUrlToAbsolute: Новый публичный метод. Конвертирует относительные URL в абсолютные. См. больше информации и примеры в README. - * README: Различные улучшения.
- +
\DDTools\BaseClass::setExistingProps→ Параметры →$props: Также может быть задан как строка в формете JSON, HJSON или Query. - * PHP.libraries.HJSON, включённая в репозиторий, обновлена с 2.1 до 2.2.
- + README → Установка → Обновление используя (MODX)EvolutionCMS.libraries.ddInstaller.
- +
\DDTools\ObjectCollection: Новый класс, представляющий коллекцию некоторых объектов или массивов. См. больше информации и примеры в README. - *
\ddTools::parseText→ Параметры →$params->data: Исправлена ошибка с многомерными объектами. - * README:
- - Документация: Бесполезный уровень заголовков удален.
- * Примеры: Добавлены пропущенные символы.
- *
\ddTools::parseText: Исправлена работа, Когда$params->dataявляется многомерным объектом.
- +
\DDTools\ObjectTools::unfold: Новый метод.
Преобразует многомерный массив в одномерный, при этом ключи результирующего массива сливаются через$params->keySeparator.
Например, это может быть полезно при необходимости использования «вложенных плэйсхолдеров» ([+size.width+]).
См. больше информации и примеров в README.md.
- +
\DDTools\ObjectTools::convertType: Добавлена возможность конвертировать вstringQueryFormatted.
- +
\DDTools\Response:- +
setMetaData: Новый публичный метод. Сеттер для$this->metaи$this->data. - +
setMeta→ Параметры:- +
$meta['success']: Больше не обязателен и по умолчанию будет равенtrue. - +
$meta['code']: Больше не обязателен и по умолчанию будет равен200или400в зависимости от$meta['success']. - +
$meta:- + Также может быть задан как stdClass, stringJsonObject, stringHjsonObject, stringQueryFormatted.
- + Больше не обязателен и по умолчанию будет равен
['success' => true, 'code' => 200].
- +
- +
setMetaMessage: Если$this->metaне задано, будет задано со значениями по умолчаниюsuccessиcode.
- +
- *
\DDTools\ObjectTools::extend: Улучшено глубокое клонирование объектов в массивы.
- *
\ddTools::parseText:- + Параметры →
$params->data: Также может быть задан как JSON, HJSON или Query string. - *
\DDTools\ObjectTools::extendисползуется вместоarray_merge.
- + Параметры →
- + README → Документация → Описание параметров →
\ddTools::parseText($params).
- *
\DDTools\ObjectTools::extend: Добавлено глубокое клонирование объектов для предотвращения ссылок.
- *
\DDTools\Snippet::prepareParams: Тип только существующих параметров будет преобразован.
- +
\DDTools\Snippet:- +
$paramsTypes: Новое свойство. Перекройте в дочерних классах если вы хотите сконвертировать типы параметров. - +
prepareParams: Типы параметров будут сконвертированы соответственно с$this->paramsTypes.
- +
- +
\DDTools\ObjectTools::convertType:- + Добавлена поддержка HJSON (closes #7).
- + Улучшено обнаружение неудачной попытки
json_decode.
- +
\ddTools::updateDocument: Добавлены значения по умолчанию для следующих параметров:- +
$docData->editedon: Если не задан — будет равен текущей дате-времени (time()). - +
$docData->editedby: Если не задан — будет равен1.
- +
- *
\DDTools\ObjectTools::extend:- * Рекурсия вызывается только в том случае, если исходным значением является объект или массив.
- * Оптимизация.
- +
\DDTools\Response::isSuccess: Новый публичный метод.
- +
\DDTools\Snippet::prepareParams: Новый метод.
- * Внимание! Требуется PHP >= 5.6.
- *
\DDTools\Response:- - Дочерние версионные классы больше не используются.
- +
$requiredMetaKeys: Новое поле. - +
$requiredMetaMessageKeys: Новое поле. - +
validateMetaMessage: Новый метод. - +
setMetaMessage: Новый метод. - +
validateMeta: Может принимать любой тип параметра и просто вернётfalse, если это не массив. - *
toJSON: Рефакторинг,\DDTools\ObjectTools::convertTypeиспользуется вместоjson_encode.
- *
\DDTools\BaseClass::toJSON: Рефакторинг,\DDTools\ObjectTools::convertTypeиспользуется вместоjson_encode. - + Composer.json →
authors: Добавлены недостающие авторы.
- *
\ddTools::verifyRenamedParams:- + Если
$params->paramsзадан, как объект — метод вернёт экземпляр stdClass. - *
\DDTools\ObjectTools::extendисползуется вместоarray_merge.
- + Если
- +
\DDTools\Snippet: Новый абстрактный класс для сниппетов. - *
\ddTools::getTemplateVars,\ddTools::getTemplateVarOutput→ Параметры →$idnames: Менее хрупко работают, когда параметр является строкой. - + README → Ссылки → Packagist.
- +
\ddTools::getDocumentIdByUrl: Поддерживает домены в формате IDNA ASCII.
- *
\ddTools::createDocument,\ddTools::updateDocument: Значения полей документов перед записью обрабатываются$modx->db->escape(). - +
\ddTools::createDocument→ Параметры →$docData->pagetitle: Не может быть равен'', так что будет равен'New resource'в этом случае.
- *
\DDTools\FilesTools::modifyImage:- + Поддерживает
.icoи.bmp. - +
$params->watermarkImageFullPathName: Новый параметр. Вы можете накладывать на ваши изображения водяные знаки (изображение в формате PNG). - +
$params->sourceFullPathName,$params->outputFullPathName: Теперь также поддерживаются относительные пути, метод автоматически добавитbase_path, если нужно. - +
$params->outputFullPathName: Параметр больше не обязателен и по умолчанию равен$params->sourceFullPathName. - +
$params->allowEnlargement: Параметр больше не обязателен и по умолчанию равен0. - +
$params->backgroundColor: Параметр больше не обязателен и по умолчанию равенFFFFFF. - +
$params->quality: Параметр больше не обязателен и по умолчанию равен100. - *
$params->allowEnlargement: Тип параметра изменён на булевый (с обратной совместимостью). - * PHP.libraries.phpThumb: Обновлена с 1.7.13-201406261000 до 1.7.15-202004301145.
- * Refactoring.
- + Поддерживает
- + README → Документация → Описание параметров →
\DDTools\FilesTools→\DDTools\FilesTools::modifyImage($params).
- +
\ddTools::createDocument→ Параметры →$docData->alias: Будет транлитерирован из$docData->pagetitleесли пуст или не задан. - * README → Документация → Установка → Используя Composer: Исправлено имя библиотеки.
- *
\DDTools\ObjectTools::convertType: Исправлен тип вложенных объектов при$params->type=='objectarray'. - * README:
- - Home page.
- + Ссылки.
- +
\DDTools\ObjectTools::convertType: Новый метод. Преобразует тип объекта. Массивы, JSON и Query string объекты также поддерживаются. - *
\ddTools::encodedStringToArray:- * Теперь использует
\DDTools\ObjectTools::convertType. - * Стиль сообщения в лог CMS улучшен.
- * Теперь использует
- *
ddTools::createDocument:- * Параметры →
$docData->pagetitle: Больше не обязтелен и по умолчанию будет равен'New resource'. - * Небольшой рефакторинг.
- * Параметры →
- *
\ddTools::sort2dArray:- + Ассоциативные массивы также поддерживаются.
- * Небольшой рефакторинг.
- +
\ddTools::prepareDocData,\ddTools::createDocument,\ddTools::updateDocument: Также могут принимать поля документа какstdClass, не только в виде ассоциативного массива.
- * Composer.json:
- +
authors. - *
name: Изменено сdd/modxevo-library-ddtoolsнаdd/evolutioncms-libraries-ddtools. - *
homepage: Ссылка изменена на HTTPS.
- +
- +
\DDTools\BaseClass::toArray. Новый метод. Возвращает все свойства этого экземпляра объекта в виде ассоциативного массива вне зависимости от их видимости. - +
\DDTools\BaseClass::toJSON. Новый метод. Возвращает все свойства этого экземпляра объекта в виде JSON строки вне зависимости от их видимости. - +
\DDTools\BaseClass::__toString(). Новый метод. Аналогичен\DDTools\BaseClass::toJSON(). - + README → Документация → Описание параметров:
- +
\DDTools\BaseClass. - + Небольшие улучшения
- +
- +
\DDTools\ObjectTools::extend:- + Добавлена возможность предотвратить перезапись полей пустыми значениями (
$params->overwriteWithEmpty). - + Объекты могут расширять массивы и наоборот.
- + Типы вложенных объектов не зависят от типов их родителей.
- + Добавлена возможность предотвратить перезапись полей пустыми значениями (
- +
\DDTools\ObjectTools::isPropExists. Новый метод. Проверяет, содержит ли объект, класс или массив нужное свойство / элемент (см. README). - +
\DDTools\ObjectTools::getPropValue. Новый метод. Получает значение необходимого свойства объекта или элемента массива (см. README). - +
\DDTools\ObjectTools::isObjectOrArray. Новый метод. Проверяет, является или переменая объектом или массивом. Метод пока приватный, потому что нам требуется ещё подумать о его параметрах.
- *
\DDTools\ObjectTools::extend: Исправлена ошибка при глубоком расширении массивов, когда оригинальный элемент массива не существует.
- +
\DDTools\ObjectTools::extend: Массивы также могут быть расширены. - * CHANGELOG: Исправлены опечатки.
- *
\ddTools::verifyRenamedParams:- * Метод теперь использует именованные параметры (с сохранением обратной совместимости).
- + Добавлена возможность предотвратить записи в лог событий CMS (см.
$params->writeToLog). - + Добавлена возможность возврата всех параметров, а не только исправленных (см.
$params->returnCorrectedOnly). - +
$params->params: Также может быть задан какstdClass. - + Улучшен стиль сообщений в логе CMS.
- * Небольшой рефакторинг
- + README → Документация:
- + Описание параметров →
\ddTools::verifyRenamedParams($params). - + Примеры → Поддержка переименования параметров сниппета (
\ddTools::verifyRenamedParams($params)).
- + Описание параметров →
- +
\DDTools\ObjectTools::extend. Новый метод. Сливает содержимое двух и более объектов вместе в первый объект (см. README.md). - * README: Стиль улучшен.
- * Внимание! Требуется (MODX)EvolutionCMS >= 1.1.
- +
\ddTools::getDocumentParentIds. Новый метод. Получает ID родителя(лей) необходимого уровня. - +
\ddTools::clearCache. Новый метод. Очищает кэш необхоидмых документов и их родителей. - +
\ddTools::updateDocument: Кэш обновлённых документов и их родителей будет очищен.
- *
\DDTools\BaseClass::setProp: Ничего не делает, если свойство существует.
- +
\DDTools\BaseClass::setExistingProps: Также устанавливает совйства всех родительских и дочерних классов объекта.
- +
\DDTools\FilesTools::createDir(и\ddTools::createDir, как псевдоним): Новый метод. Создаёт папку, используя$modx->config['new_folder_permissions']. Вложенные папки также будут созданы. Не выбрасывает ошибку, если папка уже существует.
- +
\ddTools::encodedStringToArray: Может также принимать массивы (иногда удобно не думать об этом).
- * Внимание! Обратная совместимость с версией 0.25 нарушена.
- -
\DDTools\ObjectTools. - +
\DDTools\BaseClass. - +
\DDTools\BaseClass::setExistingProps: Может задавать также и приватные свойства. - *
\DDTools\BaseClass::createChildInstance: Исправления ошибок.
- +
\DDTools\ObjectTools::setExistingProps: Новый метод. Устанавливает существующие свойства объекта. - +
\DDTools\ObjectTools::createChildInstance: Новый метод. Создает экземпляр требуемого дочернего класса (пример использования в\ddSendFeedback\Sender\Telegram\Sender).
- +
\ddTools::parseSource: Некэшируемые сниппеты также будут выполнены. - * Некоторый рефакторинг и альфа-функционал.
- +
\ddTools::parseText:$params->dataтеперь может быть задан какstdClass. - *
\ddTools::encodedStringToArray: Исправлено лишнее логирование в журнал MODX при пустом значении$inputString.
- +
\ddTools::sendMail: Добавлена поддержка SMTP. Спасибо, @Aharito. - +
\ddTools::createDocument,\ddTools::updateDocument: TV-даты, заданные в формате unixtime будут сконвертированы в правильный системынй формат даты. - +
\ddTools::prepareDocData: Новый метод. Подготавливает данные документа из единого массива полей и TV документа: разделяет их и получает дополнительные данные TV, если нужно. - *
\ddTools::explodeFieldsArrобъявлен устаревшим, используйте\ddTools::prepareDocDataвместо него (обратная совместимость сохранена).
- +
\ddTools::$tables: Добавлены все таблицы MODX, за исключением устаревшихkeyword_xref,site_content_metatags,site_keywordsиsite_metatags.
- +
\ddTools::getPlaceholdersFromText: Новый метод. Находит все имена плейсхолдеров и возвращает их как массив. - *
\ddTools::escapeForJS: Поправлено чрезмерное экранирование.
- *
\ddTools::sendMail: Исправлено отображение файла в почте. - *
\ddTools::escapeForJS: Добавлено экранирование\. Большое спасибо, @Aharito. - * Библиотека работает корректно без Composer.
- +
\ddTools::logEvent: Новый метод. Записывает сообщение в системный лог с дополнительной отладочной информацией (cтэк вызовов, имя сниппета, в котором произошёл вызов, ID документа и т. п.). - +
\ddTools::encodedStringToArray: Новый метод. Преобразовывает закодированную строку в массив. Поддерживаемые форматы: JSON и Query string.
- +
\ddTools::parseText: Добавлена поддержка вложенных массивов в$params->data.
- *
\ddTools::generateRandomSring: Исправлен параметр$chars.
- *
\ddTools::escapeForJS: Переименован из\ddTools::screening(с сохранением обратной совместимости). - *
\ddTools::orderedParamsToNamed: Метод теперь публичный. Но имейте ввиду, что это пока beta-версия!
- * Внимание! Требуется PHP >= 5.4.
- *
\ddTools::parseTextобновлён до 1.3.1:- * Рефакторинг, метод теперь использует именованные параметры (с сохранением обратной совместимости).
- + Добавлена возможность удаления пустых плэйсхолдеров (см.
$params['removeEmptyPlaceholders']). - * Параметр
$params['data']теперь не обязателен.
- *
\ddTools::sendMailобновлён до 2.1:- * Рефакторинг, метод теперь использует именованные параметры (с сохранением обратной совместимости).
- * Значение по умолчанию параметра
$params['from']берётся из$modx->getConfig('emailsender'). Спасибо, MrSwed!.
- +
\ddTools::regEmptyClientScriptобновлён до 1.1:- + Параметры теперь могут передаваться и в виде объекта
stdClass.
- + Параметры теперь могут передаваться и в виде объекта
- * Рефакторинг: Используется короткий синтаксис объявления массивов. Это удобней и проще для визуальной идентификации.
- *
\ddTools::verifyRenamedParamsобновлён до 1.1.1:- + Добавлена возможность использования нескольких старых имён в параметре
$compliance. - * Небольной рефакторинг, стиль кода и описание.
- + Добавлена возможность использования нескольких старых имён в параметре
- *
\ddTools::sendMail: Теперь заголовки и контент письма передаются вmailраздельно. Это исправляет ситуацию, когда в некоторых почтовиках не было видно контента писем.
- *
\ddTools::updateDocument: Метод теперь использует функциюmysqli_info, если$modx->db->connявляется экземпляром классаmysqli, иначе используетсяmysql_info.
- * Провека на существование метода
getVersionDataперенесена под условиеisset($modx) - *
\ddTools::getTemplateVarOutput: Проверка на существование$row['id']теперь делается черезisset.
- +
\ddTools::copyDir: Новый метод. Рекурсивно копирует содержимое папки в новое место. - *
\ddTools::updateDocument: Теперь в методе используетсяmysqli_infoвместоmysql_info. - *
\ddTools::getDocuments: Наличие или отсутствие прав у текущего пользователя на чтение документов, которые запрашиваются, теперь полностью игнорируется. Это было сделано, потому что этот метод низкоуровневый, т. е. подразумевается, что какой-то более высокоуровненвый компонент, ответственный за доступ к ресурсам, должен разрешить или запретить получение документов, если требуется. - * Библиотека теперь зависит
dd/composer-plugin-modxevo-library-ddtools-installerv1.0.5 - + Добавлен новый вспомогательный класс
\ddTools\Response, который рекомендуется для использования в качестве каркаса для ответа на пользовательский запрос или, например, для вывода результата снипета в формете JSON.
- + Добавлена
isset-проверка для глобальной переменной, чтобы не вылетали ошибки при использовании метода$modx->getFullTableName.
- + Переменная
$modxобъявлена глобальной, чтобы избежать ошибки, возникающей при автозагрузке ddTools из Composer.
- * Следующие методы были обновлены. Теперь чтобы получить документы/поля/TV вне зависимости от публикации и удаления документа, нужно передать строку
'all'в параметры$publishedи$deletedсоответственно, а неfalse, как это было раньше. Старое значениеfalseтоже поддерживается, но при этом пишется предупреждение в лог MODX, и эта поддержка будет убрана в будущем.- *
\ddTools::getDocuments. - *
\ddTools::getDocument. - *
\ddTools::getTemplateVars. - *
\ddTools::getTemplateVarOutput. - *
\ddTools::getDocumentChildren. - *
\ddTools::getDocumentChildrenTVarOutput.
- *
- *
\ddTools::getTemplateVarsобновлён до 1.3:- * Теперь он возвращает TV независимо от того, был ли удалён документ.
- * Полностью изменена структура репозитория, чтобы было удобнее устанавливать через Composer.
- *
\ddTools::createDocument: теперь адрес нового документа собирается правильно, в зависимости отpathродителя и егоalias’а, либоid, еслиalias’а нет.
- *
\ddTools::createDocument: Теперь массивы из конфига MODXdocumentMapиaliasListingдополняются данными о созданном документе.
- *
\ddTools::sendMail: Метод был обновлён, чтобы избежать ошибок в PHP 5.4−5.6 из-за валидации заголовков:- * Все двойные
\r\nи одинарные\r\nбыли заменены на один PHP_EOL. - * К содержимому письма теперь применяется функция
trim, чтобы убратьPHP_EOL'ы в начале и конце контента.
- * Все двойные
- +
\ddTools::sendMail: Новый метод. Отправляет e-mail.
- +
\ddTools::verifyRenamedParams: Новый метод. Проверяет наличие устаревших названий параметров и записывает предупреждение в журнал событий MODX. Возвращает ассоциативный массив, где ключ — правильное имя параметра, а значение — значение. Используйте функциюextract, чтобы извлечь результат в переменные.
- * Следующие методы обновлены в соответствии с MODX 1.0.13:
- *
\ddTools::getDocuments. - *
\ddTools::getTemplateVars. - *
\ddTools::getTemplateVarOutput. - *
\ddTools::getDocumentChildren. - *
\ddTools::getDocumentChildrenTVarOutput.
- *
- +
\ddTools::ddTools::sort2dArray: Новый метод. Сортирует двумерный массив по нескольким колонкам (как в SQL) по методу Хоара. Сортировка устойчивая. - * Небольшие изменения для совместимости со старыми версиями MODX.
- *
\ddTools::unfoldArray: Исправлена ошибка, метод не был статичным.
- +
\ddTools::unfoldArray: Новый метод. Преобразует многомерный массив в одномерный, при этом ключи результирующего массива сливаются через'.'(см. описание и примеры). - *
\ddTools::$documentFields: Полеalias_visibleдобавляется в массив только если версия MODX > 1.0.11 для совместимости с более ранними версиями. - * Массив
ddTools:$tablesс элементами для наглядности объявляется непосредственно в классе
- * Внимание! Требуется MODX >= 1.0.12.
- *
\ddTools::$documentFields: В массив добавлено полеalias_visible(MODX 1.0.12).
- *
\ddTools::parseFileNameВерсияобновлён до 1.1:- * Помимо имени и версии файла возвращается ещё и его расширение.
- +
\ddTools::getDocumentIdByUrl: Новый метод. Метод получает ID документа по его адресу (URL).
- *
\ddTools::explodeAssocобновлён до 1.1.1:- * Добавлена обработка пустой строки на входе (в этом случае возвращается пустой массив).
- +
\ddTools::parseFileNameВерсия: Новый метод. Разбирает строку файла, получая из неё его имя версию. - *
\ddTools::regEmptyClientScriptобновлён до 1.0.1:- * Исправление: Перед записью пустых значений в
$modx->sjscriptsи$modx->jscriptsдобавлена проверка на используемость текущей версии.
- * Исправление: Перед записью пустых значений в
- +
\ddTools::getDocumentChildren: Новый метод, аналогичный стандартному. Получает необходимые дочерние документы (значения их полей). Отличие от стандартного в возможности получать результаты вне зависимости от публикации и удалённости документа. - +
\ddTools::getDocumentChildrenTVarOutputобновлён до 1.1:- + Параметр
publishedтеперь тоже может принимать значениеfalse, при котором будут получены все документы вне зависимости от их публикации.
- + Параметр
- * Небольшой рефакторинг.
- * Исправление, следующие методы не были статичными:
- *
\ddTools::getDocuments. - *
\ddTools::getDocument. - *
\ddTools::getTemplateVars. - *
\ddTools::getTemplateVarOutput.
- *
- + Добавлено несколько аналогичных стандартным методов по работе с документами, основное отличие которых в возможности возвращать результаты вне зависимости от публикации документа:
- +
\ddTools::getDocuments. Получает необходимые документы (поля документов). - +
\ddTools::getDocument. Получает данные о необходимом документе (поля документа). - +
\ddTools::getTemplateVars. Получает массив TV и полей заданного документа. - +
\ddTools::getTemplateVarOutput. Получает ассоциативный массив значений TV и полей заданного документа.
- +
- +
\ddTools::$tables['site_tmplvar_templates'].
- +
\ddTools::removeDir: Новый метод. Удаляет папку со всеми вложенными файлами и папками (рекурсивно). - +
\ddTools::regEmptyClientScript: Новый метод. Добавляет необходимый файл JavaScript в нужный внутренний список MODX в соответствии с его именем и версией. Предназначен для регистрации скриптов, которые уже были подключены в ручную.
- *
\ddTools::explodeAssocобновлён до 1.1:- * Добавлена проверка на пустоту при разбивке между ключом и значением (если значения нет, вставляется пустая строка).
- * Внимание! Нарушена обратная совместимость.
- *
\ddTools::updateDocumentобновлён до 1.2:- + Парамтер
$idможет быть массивом или числом. - * Исправлена ошибка в имени, было
udateDocument. - * Исправлена ошибка если не нужно обновлять поля документа.
- * Исправлена ошибка при обновлении TV в нескольких документах.
- * Если задан параметр
where, то метод обновляет документы подходящие под оба условия: иid, иwhere.
- + Парамтер
- +
\ddTools::getDocumentChildrenTVarOutput: Новый метод, позволяющий получать необходимые дочерние документы.
- * Внимание! Нарушена обратная совместимость.
- +
\ddTools::$documentFields: Новое статическое поле, содержащее массив имён полей документа. - +
\ddTools::$tables: Новое статическое поле, содержащее полные имена некоторых таблиц. - +
\ddTools::screening: Новый метод, осуществляющий экранирование символов в строке. - +
\ddTools::explodeAssoc: Новый метод, разбивающий строку по двум разделителям в ассоциативный массив. - +
\ddTools::explodeFieldsArr: Новый метод, разбивающий ассоциативный массив полей и TV документа на два отдельных массива. - +
\ddTools::parseTextобновлён до 1.1:- + Добавлена возможность отключить дополнительную обработку полей документа, настроек, чанков (параметр
mergeAll).
- + Добавлена возможность отключить дополнительную обработку полей документа, настроек, чанков (параметр
- +
\ddTools::createDocumentобновлён до 1.1:- + В параметр
$fieldsдобавлена возможность передавать не только поля документа, но и TV.
- + В параметр
- +
\ddTools::udateDocumentобновлён до 1.1:- + В параметр
$updateдобавлена возможность передавать не только поля документа, но и TV. - + Добавлена правильная проверка на то, изменялись данные или нет. Теперь метод точно возвращает
trueилиfalse.
- + В параметр
- *
\ddTools::parseSourse: Переименован в\ddTools::parseSource. - *
\ddTools::generateString: Переименован в\ddTools::generateRandomString.
- + Первый релиз.