Skip to content

Latest commit

 

History

History
761 lines (444 loc) · 50.6 KB

File metadata and controls

761 lines (444 loc) · 50.6 KB

(MODX)EvolutionCMS.libraries.ddTools changelog

Версия 0.68 (2026-04-11)

  • + \ddTools::deleteDocuments: Новый публичный статичный метод. Удаляет документ(ы) с всеми их дочерними документами (рекурсивно). Кеш удаленных документов и их родителей будет очищен.

Версия 0.67.1 (2025-11-26)

  • * \DDTools\Storage\DB\Storage::items_update: Исправлена ошибка выполнения запроса UPDATE в некоторых версиях MariaDB.

Версия 0.67 (2025-11-25)

  • + \DDTools\Tools\Objects::convertType → Параметры → $params->object → Допустимые значения → object: Теперь также поддерживаются экземпляры кастомных классов.

Версия 0.66 (2025-10-22)

  • + \DDTools\Base\Base::getClassName() → Результат → $result->namespacePrefixRoot: Новое свойство, содержащее корневой префикс пространства имён (например, '\\ddSendFeedback' из '\\ddSendFeedback\\Sender\\Email\\Sender').

Версия 0.65.3 (2025-10-07)

  • * \DDTools\Storage\DB\Storage: Работает корректно даже если колонка id не существует в таблице.

Версия 0.65.2 (2025-10-05)

  • * \DDTools\Storage\DB\Storage::items_add: $params->items[$itemIndex]->id используется, если он передан и валиден через $this->items_validateData.

Версия 0.65.1 (2025-06-16)

  • * \DDTools\Base\AncestorTrait::getChildClassName: Публичный статичный метод больше не является финальным. Теперь дочерние классы могут переопределять его.

Версия 0.65 (2025-04-28)

  • + \DDTools\Base\Base::getClassName → Параметры → $classNameFull: Новый необязательный параметр. Позволяет задать произвольное имя класса, не только текущее.
  • + \DDTools\Snippet::$paramsTypes[$paramName] → Допустимые значения → 'float': Новое значение.
  • * Требуется PHP >= 7.4.

Версия 0.64.1 (2024-12-04)

  • * \DDTools\Storage\DB\Storage: Имена колонок берутся в кавычки во всех запросах, чтобы избежать ошибок, когда они равны каким-нибудь зарезервированным ключевым словам, например repeat.

Версия 0.64 (2024-09-06)

  • + \DDTools\Tools\Objects::extend → Параметры → $params->extendableProperties: Новый необязательный параметр. Позволяет использовать для расширения не все свойства из дополнительных объектов или массивов (см. README → Примеры).
  • + \DDTools\Storage\Storageitems_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).

Версия 0.63 (2024-08-02)

  • + \DDTools\Tools\Cache: Новый класс. Позволяет кэшировать какие-то данные (например, результаты сниппетов) в файл в папке assets/cache/ddCache (см. README).
  • * \DDTools\Tools\Objects: Класс переименован из \DDTools\ObjectTools (с обратной совместимостью).
  • * \DDTools\Tools\Files: Класс переименован из \DDTools\FilesTools (с обратной совместимостью).

Версия 0.62.1 (2024-06-17)

  • * \ddTools::parseText → Параметры → $params->isCompletelyParsingEnabled: Неработающая поддержка устаревшего названия $params->mergeAll исправлена.

Версия 0.62 (2024-06-14)

  • + \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 → Параметры: Следующие переименованы (старые имена по-прежнему поддерживаются, но объявлены устаревшими):
    • * itemIndexindex.
    • * itemDatadata.
  • + \DDTools\Base\Base::getClassName: Новый публичный статичный метод. Получает данные об имени класса (см. README).
  • + \DDTools\Base\AncestorTrait::getChildClassName: Новый публичный статичный метод (см. README).
  • + \DDTools\Storage\: Новые классы. Это бета-версия, используйте её на свой страх и риск.

Версия 0.61 (2023-10-01)

  • + \DDTools\ObjectTools::convertType → Параметры → $params->type → Допустимые значения → 'stringHtmlAttrs': Новое значение. Позволяет преобразовать в строку HTML-атрибутов (см. README → Примеры).

Версия 0.60 (2023-05-14)

  • + \ddTools::getTpl: Новый публичный метод (см. README).

Версия 0.59 (2023-03-30)

  • + \ddTools::parseText: Помимо доступа свойствам вложенных объектов через плейсхоледры вида '[+prop.subProp+]', вы также можете получить весь объект в JSON через плейсхолдеры вида '[+prop+]' (см. README → Примеры).

Версия 0.58.1 (2023-03-29)

  • * \DDTools\ObjectTools::convertType → Параметры → $params->type → Допустимые значения → 'stringQueryFormatted': Исправлена ошибка в написании. Некорректное значение 'stringQueryFormated' также поддерживается для обратной совместимости.

Версия 0.58 (2023-03-21)

  • + \DDTools\Base\AncestorTrait::createChildInstance → Параметры → $params->parentDir: Больше не обязателен и по умолчанию равен папке класса, использующего этот трейт.

Версия 0.57 (2023-03-09)

  • + \DDTools\ObjectTools::getPropValue → Параметры → $params->propName: Теперь метод умеет получать значение свойства объекта или элемента массива на любом уровне вложенности. Просто используйте '.' в параметре для получения свойств вложенных элементов.
    Несколько примеров (см. полные примеры в README):
    • * somePlainProp — получить свойство первого уровня.
    • * someObjectProp.secondLevelProp — получить свойство объекта|массива someObjectProp.
    • * someArrayProp.0.thirdLevelProp — получить свойство нулевого элемента массива someArrayProp.

Версия 0.56 (2023-01-29)

  • + \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 методы.

Версия 0.55.1 (2022-12-03)

  • * \DDTools\FilesTools::modifyImage: PHP.libraries.phpThumb, включённая в репозиторий, обновлена с 1.7.15-202004301145 до 1.7.19-202210110924 (теперь поддерживает WebP, PHP8, etc).

Версия 0.55 (2022-09-05)

  • + \ddTools::convertUrlToAbsolute: Новый публичный метод. Конвертирует относительные URL в абсолютные. См. больше информации и примеры в README.
  • * README: Различные улучшения.

Версия 0.54 (2022-01-08)

  • + \DDTools\BaseClass::setExistingProps → Параметры → $props: Также может быть задан как строка в формете JSON, HJSON или Query.
  • * PHP.libraries.HJSON, включённая в репозиторий, обновлена с 2.1 до 2.2.
  • + README → Установка → Обновление используя (MODX)EvolutionCMS.libraries.ddInstaller.

Версия 0.53 (2021-12-13)

  • + \DDTools\ObjectCollection: Новый класс, представляющий коллекцию некоторых объектов или массивов. См. больше информации и примеры в README.
  • * \ddTools::parseText → Параметры → $params->data: Исправлена ошибка с многомерными объектами.
  • * README:
    • - Документация: Бесполезный уровень заголовков удален.
    • * Примеры: Добавлены пропущенные символы.

Версия 0.52.1 (2021-11-17)

  • * \ddTools::parseText: Исправлена работа, Когда $params->data является многомерным объектом.

Версия 0.52 (2021-11-16)

  • + \DDTools\ObjectTools::unfold: Новый метод.
    Преобразует многомерный массив в одномерный, при этом ключи результирующего массива сливаются через $params->keySeparator.
    Например, это может быть полезно при необходимости использования «вложенных плэйсхолдеров» ([+size.width+]).
    См. больше информации и примеров в README.md.

Версия 0.51 (2021-11-08)

  • + \DDTools\ObjectTools::convertType: Добавлена возможность конвертировать в stringQueryFormatted.

Версия 0.50 (2021-05-11)

  • + \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.

Версия 0.49.1 (2021-04-27)

  • * \DDTools\ObjectTools::extend: Улучшено глубокое клонирование объектов в массивы.

Версия 0.49 (2021-04-25)

  • * \ddTools::parseText:
    • + Параметры → $params->data: Также может быть задан как JSON, HJSON или Query string.
    • * \DDTools\ObjectTools::extend исползуется вместо array_merge.
  • + README → Документация → Описание параметров → \ddTools::parseText($params).

Версия 0.48.2 (2021-03-31)

  • * \DDTools\ObjectTools::extend: Добавлено глубокое клонирование объектов для предотвращения ссылок.

Версия 0.48.1 (2021-03-29)

  • * \DDTools\Snippet::prepareParams: Тип только существующих параметров будет преобразован.

Версия 0.48 (2021-03-25)

  • + \DDTools\Snippet:
    • + $paramsTypes: Новое свойство. Перекройте в дочерних классах если вы хотите сконвертировать типы параметров.
    • + prepareParams: Типы параметров будут сконвертированы соответственно с $this->paramsTypes.

Версия 0.47 (2021-03-20)

  • + \DDTools\ObjectTools::convertType:
    • + Добавлена поддержка HJSON (closes #7).
    • + Улучшено обнаружение неудачной попытки json_decode.

Версия 0.46 (2021-03-15)

  • + \ddTools::updateDocument: Добавлены значения по умолчанию для следующих параметров:
    • + $docData->editedon: Если не задан — будет равен текущей дате-времени (time()).
    • + $docData->editedby: Если не задан — будет равен 1.

Версия 0.45.1 (2021-03-12)

  • * \DDTools\ObjectTools::extend:
    • * Рекурсия вызывается только в том случае, если исходным значением является объект или массив.
    • * Оптимизация.

Версия 0.45 (2021-03-11)

  • + \DDTools\Response::isSuccess: Новый публичный метод.

Версия 0.44 (2021-03-10)

  • + \DDTools\Snippet::prepareParams: Новый метод.

Версия 0.43 (2021-03-10)

  • * Внимание! Требуется 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: Добавлены недостающие авторы.

Версия 0.42 (2021-02-24)

  • * \ddTools::verifyRenamedParams:
    • + Если $params->params задан, как объект — метод вернёт экземпляр stdClass.
    • * \DDTools\ObjectTools::extend исползуется вместо array_merge.
  • + \DDTools\Snippet: Новый абстрактный класс для сниппетов.
  • * \ddTools::getTemplateVars, \ddTools::getTemplateVarOutput → Параметры → $idnames: Менее хрупко работают, когда параметр является строкой.
  • + README → Ссылки → Packagist.

Версия 0.41 (2020-12-15)

  • + \ddTools::getDocumentIdByUrl: Поддерживает домены в формате IDNA ASCII.

Версия 0.40.1 (2020-06-22)

  • * \ddTools::createDocument, \ddTools::updateDocument: Значения полей документов перед записью обрабатываются $modx->db->escape().
  • + \ddTools::createDocument → Параметры → $docData->pagetitle: Не может быть равен '', так что будет равен 'New resource' в этом случае.

Версия 0.40 (2020-06-19)

  • * \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).

Версия 0.39 (2020-06-07)

  • + \ddTools::createDocument → Параметры → $docData->alias: Будет транлитерирован из $docData->pagetitle если пуст или не задан.
  • * README → Документация → Установка → Используя Composer: Исправлено имя библиотеки.

Версия 0.38.1 (2020-06-02)

  • * \DDTools\ObjectTools::convertType: Исправлен тип вложенных объектов при $params->type == 'objectarray'.
  • * README:
    • - Home page.
    • + Ссылки.

Версия 0.38 (2020-06-02)

  • + \DDTools\ObjectTools::convertType: Новый метод. Преобразует тип объекта. Массивы, JSON и Query string объекты также поддерживаются.
  • * \ddTools::encodedStringToArray:
    • * Теперь использует \DDTools\ObjectTools::convertType.
    • * Стиль сообщения в лог CMS улучшен.

Версия 0.37.1 (2020-05-28)

  • * ddTools::createDocument:
    • * Параметры → $docData->pagetitle: Больше не обязтелен и по умолчанию будет равен 'New resource'.
    • * Небольшой рефакторинг.

Версия 0.37 (2020-05-24)

  • * \ddTools::sort2dArray:
    • + Ассоциативные массивы также поддерживаются.
    • * Небольшой рефакторинг.

Версия 0.36 (2020-05-18)

  • + \ddTools::prepareDocData, \ddTools::createDocument, \ddTools::updateDocument: Также могут принимать поля документа как stdClass, не только в виде ассоциативного массива.

Версия 0.35.1 (2020-05-08)

  • * Composer.json:
    • + authors.
    • name: Изменено с dd/modxevo-library-ddtools на dd/evolutioncms-libraries-ddtools.
    • * homepage: Ссылка изменена на HTTPS.

Версия 0.35 (2020-05-06)

  • + \DDTools\BaseClass::toArray. Новый метод. Возвращает все свойства этого экземпляра объекта в виде ассоциативного массива вне зависимости от их видимости.
  • + \DDTools\BaseClass::toJSON. Новый метод. Возвращает все свойства этого экземпляра объекта в виде JSON строки вне зависимости от их видимости.
  • + \DDTools\BaseClass::__toString(). Новый метод. Аналогичен \DDTools\BaseClass::toJSON().
  • + README → Документация → Описание параметров:
    • + \DDTools\BaseClass.
    • + Небольшие улучшения

Версия 0.34 (2020-04-30)

  • + \DDTools\ObjectTools::extend:
    • + Добавлена возможность предотвратить перезапись полей пустыми значениями ($params->overwriteWithEmpty).
    • + Объекты могут расширять массивы и наоборот.
    • + Типы вложенных объектов не зависят от типов их родителей.
  • + \DDTools\ObjectTools::isPropExists. Новый метод. Проверяет, содержит ли объект, класс или массив нужное свойство / элемент (см. README).
  • + \DDTools\ObjectTools::getPropValue. Новый метод. Получает значение необходимого свойства объекта или элемента массива (см. README).
  • + \DDTools\ObjectTools::isObjectOrArray. Новый метод. Проверяет, является или переменая объектом или массивом. Метод пока приватный, потому что нам требуется ещё подумать о его параметрах.

Версия 0.33.1 (2020-04-29)

  • * \DDTools\ObjectTools::extend: Исправлена ошибка при глубоком расширении массивов, когда оригинальный элемент массива не существует.

Версия 0.33 (2020-04-28)

  • + \DDTools\ObjectTools::extend: Массивы также могут быть расширены.
  • * CHANGELOG: Исправлены опечатки.

Версия 0.32 (2020-04-25)

  • * \ddTools::verifyRenamedParams:
    • * Метод теперь использует именованные параметры (с сохранением обратной совместимости).
    • + Добавлена возможность предотвратить записи в лог событий CMS (см. $params->writeToLog).
    • + Добавлена возможность возврата всех параметров, а не только исправленных (см. $params->returnCorrectedOnly).
    • + $params->params: Также может быть задан как stdClass.
    • + Улучшен стиль сообщений в логе CMS.
    • * Небольшой рефакторинг
  • + README → Документация:
    • + Описание параметров → \ddTools::verifyRenamedParams($params).
    • + Примеры → Поддержка переименования параметров сниппета (\ddTools::verifyRenamedParams($params)).

Версия 0.31 (2020-04-23)

  • + \DDTools\ObjectTools::extend. Новый метод. Сливает содержимое двух и более объектов вместе в первый объект (см. README.md).
  • * README: Стиль улучшен.

Версия 0.30 (2020-02-11)

  • * Внимание! Требуется (MODX)EvolutionCMS >= 1.1.
  • + \ddTools::getDocumentParentIds. Новый метод. Получает ID родителя(лей) необходимого уровня.
  • + \ddTools::clearCache. Новый метод. Очищает кэш необхоидмых документов и их родителей.
  • + \ddTools::updateDocument: Кэш обновлённых документов и их родителей будет очищен.

Версия 0.29.1 (2019-12-15)

  • * \DDTools\BaseClass::setProp: Ничего не делает, если свойство существует.

Версия 0.29 (2019-12-14)

  • + \DDTools\BaseClass::setExistingProps: Также устанавливает совйства всех родительских и дочерних классов объекта.

Версия 0.28 (2019-10-22)

  • + \DDTools\FilesTools::createDir\ddTools::createDir, как псевдоним): Новый метод. Создаёт папку, используя $modx->config['new_folder_permissions']. Вложенные папки также будут созданы. Не выбрасывает ошибку, если папка уже существует.

Версия 0.27 (2019-09-19)

  • + \ddTools::encodedStringToArray: Может также принимать массивы (иногда удобно не думать об этом).

Версия 0.26 (2019-09-09)

  • * Внимание! Обратная совместимость с версией 0.25 нарушена.
  • - \DDTools\ObjectTools.
  • + \DDTools\BaseClass.
  • + \DDTools\BaseClass::setExistingProps: Может задавать также и приватные свойства.
  • * \DDTools\BaseClass::createChildInstance: Исправления ошибок.

Версия 0.25 (2019-06-27)

  • + \DDTools\ObjectTools::setExistingProps: Новый метод. Устанавливает существующие свойства объекта.
  • + \DDTools\ObjectTools::createChildInstance: Новый метод. Создает экземпляр требуемого дочернего класса (пример использования в \ddSendFeedback\Sender\Telegram\Sender).

Версия 0.24 (2018-12-25)

  • + \ddTools::parseSource: Некэшируемые сниппеты также будут выполнены.
  • * Некоторый рефакторинг и альфа-функционал.

Версия 0.23 (2018-06-26)

  • + \ddTools::parseText: $params->data теперь может быть задан как stdClass.
  • * \ddTools::encodedStringToArray: Исправлено лишнее логирование в журнал MODX при пустом значении $inputString.

Версия 0.22 (2018-06-17)

  • + \ddTools::sendMail: Добавлена поддержка SMTP. Спасибо, @Aharito.
  • + \ddTools::createDocument, \ddTools::updateDocument: TV-даты, заданные в формате unixtime будут сконвертированы в правильный системынй формат даты.
  • + \ddTools::prepareDocData: Новый метод. Подготавливает данные документа из единого массива полей и TV документа: разделяет их и получает дополнительные данные TV, если нужно.
  • * \ddTools::explodeFieldsArr объявлен устаревшим, используйте \ddTools::prepareDocData вместо него (обратная совместимость сохранена).

Версия 0.21 (2017-12-09)

  • + \ddTools::$tables: Добавлены все таблицы MODX, за исключением устаревших keyword_xref, site_content_metatags, site_keywords и site_metatags.

Версия 0.20 (2017-10-10)

  • + \ddTools::getPlaceholdersFromText: Новый метод. Находит все имена плейсхолдеров и возвращает их как массив.
  • * \ddTools::escapeForJS: Поправлено чрезмерное экранирование.

Версия 0.19 (2017-10-09)

  • * \ddTools::sendMail: Исправлено отображение файла в почте.
  • * \ddTools::escapeForJS: Добавлено экранирование \. Большое спасибо, @Aharito.
  • * Библиотека работает корректно без Composer.

Версия 0.18 (2017-02-10)

  • + \ddTools::logEvent: Новый метод. Записывает сообщение в системный лог с дополнительной отладочной информацией (cтэк вызовов, имя сниппета, в котором произошёл вызов, ID документа и т. п.).
  • + \ddTools::encodedStringToArray: Новый метод. Преобразовывает закодированную строку в массив. Поддерживаемые форматы: JSON и Query string.

Версия 0.17 (2017-01-10)

  • + \ddTools::parseText: Добавлена поддержка вложенных массивов в $params->data.

Версия 0.16.2 (2016-12-16)

  • * \ddTools::generateRandomSring: Исправлен параметр $chars.

Версия 0.16.1 (2016-11-01)

  • * \ddTools::escapeForJS: Переименован из \ddTools::screening (с сохранением обратной совместимости).
  • * \ddTools::orderedParamsToNamed: Метод теперь публичный. Но имейте ввиду, что это пока beta-версия!

Версия 0.16 (2016-10-29)

  • * Внимание! Требуется 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.
  • * Рефакторинг: Используется короткий синтаксис объявления массивов. Это удобней и проще для визуальной идентификации.

Версия 0.15.4 (2016-06-17)

  • * \ddTools::verifyRenamedParams обновлён до 1.1.1:
    • + Добавлена возможность использования нескольких старых имён в параметре $compliance.
    • * Небольной рефакторинг, стиль кода и описание.

Версия 0.15.3 (2016-01-12)

  • * \ddTools::sendMail: Теперь заголовки и контент письма передаются в mail раздельно. Это исправляет ситуацию, когда в некоторых почтовиках не было видно контента писем.

Версия 0.15.2 (2016-01-11)

  • * \ddTools::updateDocument: Метод теперь использует функцию mysqli_info, если $modx->db->conn является экземпляром класса mysqli, иначе используется mysql_info.

Версия 0.15.1 (2015-12-29)

  • * Провека на существование метода getVersionData перенесена под условие isset ($modx)
  • * \ddTools::getTemplateVarOutput: Проверка на существование $row['id'] теперь делается через isset.

Версия 0.15 (2015-12-25)

  • + \ddTools::copyDir: Новый метод. Рекурсивно копирует содержимое папки в новое место.
  • * \ddTools::updateDocument: Теперь в методе используется mysqli_info вместо mysql_info.
  • * \ddTools::getDocuments: Наличие или отсутствие прав у текущего пользователя на чтение документов, которые запрашиваются, теперь полностью игнорируется. Это было сделано, потому что этот метод низкоуровневый, т. е. подразумевается, что какой-то более высокоуровненвый компонент, ответственный за доступ к ресурсам, должен разрешить или запретить получение документов, если требуется.
  • * Библиотека теперь зависит dd/composer-plugin-modxevo-library-ddtools-installer v1.0.5
  • + Добавлен новый вспомогательный класс \ddTools\Response, который рекомендуется для использования в качестве каркаса для ответа на пользовательский запрос или, например, для вывода результата снипета в формете JSON.

Версия 0.14.3 (2015-12-13)

  • + Добавлена isset-проверка для глобальной переменной, чтобы не вылетали ошибки при использовании метода $modx->getFullTableName.

Версия 0.14.2 (2015-11-05)

  • + Переменная $modx объявлена глобальной, чтобы избежать ошибки, возникающей при автозагрузке ddTools из Composer.

Версия 0.14.1 (2015-11-03)

  • * Следующие методы были обновлены. Теперь чтобы получить документы/поля/TV вне зависимости от публикации и удаления документа, нужно передать строку 'all' в параметры $published и $deleted соответственно, а не false, как это было раньше. Старое значение false тоже поддерживается, но при этом пишется предупреждение в лог MODX, и эта поддержка будет убрана в будущем.
    • * \ddTools::getDocuments.
    • * \ddTools::getDocument.
    • * \ddTools::getTemplateVars.
    • * \ddTools::getTemplateVarOutput.
    • * \ddTools::getDocumentChildren.
    • * \ddTools::getDocumentChildrenTVarOutput.
  • * \ddTools::getTemplateVars обновлён до 1.3:
    • * Теперь он возвращает TV независимо от того, был ли удалён документ.

Версия 0.14 (2015-10-05)

  • * Полностью изменена структура репозитория, чтобы было удобнее устанавливать через Composer.

Версия 0.13.3 (2015-09-17)

  • * \ddTools::createDocument: теперь адрес нового документа собирается правильно, в зависимости от path родителя и его alias’а, либо id, если alias’а нет.

Версия 0.13.2 (2015-09-07)

  • * \ddTools::createDocument: Теперь массивы из конфига MODX documentMap и aliasListing дополняются данными о созданном документе.

Версия 0.13.1 (2015-08-17)

  • * \ddTools::sendMail: Метод был обновлён, чтобы избежать ошибок в PHP 5.4−5.6 из-за валидации заголовков:
    • * Все двойные \r\n и одинарные \r\n были заменены на один PHP_EOL.
    • * К содержимому письма теперь применяется функция trim, чтобы убрать PHP_EOL'ы в начале и конце контента.

Версия 0.13 (2014-07-13)

  • + \ddTools::sendMail: Новый метод. Отправляет e-mail.

Версия 0.12 (2014-05-23)

  • + \ddTools::verifyRenamedParams: Новый метод. Проверяет наличие устаревших названий параметров и записывает предупреждение в журнал событий MODX. Возвращает ассоциативный массив, где ключ — правильное имя параметра, а значение — значение. Используйте функцию extract, чтобы извлечь результат в переменные.

Версия 0.11.1 (2014-04-11)

  • * Следующие методы обновлены в соответствии с MODX 1.0.13:
    • * \ddTools::getDocuments.
    • * \ddTools::getTemplateVars.
    • * \ddTools::getTemplateVarOutput.
    • * \ddTools::getDocumentChildren.
    • * \ddTools::getDocumentChildrenTVarOutput.

Версия 0.11 (2014-02-11)

  • + \ddTools::ddTools::sort2dArray: Новый метод. Сортирует двумерный массив по нескольким колонкам (как в SQL) по методу Хоара. Сортировка устойчивая.
  • * Небольшие изменения для совместимости со старыми версиями MODX.
  • * \ddTools::unfoldArray: Исправлена ошибка, метод не был статичным.

Версия 0.10 (2013-10-17)

  • + \ddTools::unfoldArray: Новый метод. Преобразует многомерный массив в одномерный, при этом ключи результирующего массива сливаются через '.' (см. описание и примеры).
  • * \ddTools::$documentFields: Поле alias_visible добавляется в массив только если версия MODX > 1.0.11 для совместимости с более ранними версиями.
  • * Массив ddTools:$tables с элементами для наглядности объявляется непосредственно в классе

Версия 0.9.2 (2013-10-17)

  • * Внимание! Требуется MODX >= 1.0.12.
  • * \ddTools::$documentFields: В массив добавлено поле alias_visible (MODX 1.0.12).

Версия 0.9.1 (2013-10-10)

  • * \ddTools::parseFileNameВерсия обновлён до 1.1:
    • * Помимо имени и версии файла возвращается ещё и его расширение.

Версия 0.9 (2013-09-03)

  • + \ddTools::getDocumentIdByUrl: Новый метод. Метод получает ID документа по его адресу (URL).

Версия 0.8.1 (2013-07-11)

  • * \ddTools::explodeAssoc обновлён до 1.1.1:
    • * Добавлена обработка пустой строки на входе (в этом случае возвращается пустой массив).

Версия 0.8 (2013-07-06)

  • + \ddTools::parseFileNameВерсия: Новый метод. Разбирает строку файла, получая из неё его имя версию.
  • * \ddTools::regEmptyClientScript обновлён до 1.0.1:
    • * Исправление: Перед записью пустых значений в $modx->sjscripts и $modx->jscripts добавлена проверка на используемость текущей версии.

Версия 0.7 (2013-05-15)

  • + \ddTools::getDocumentChildren: Новый метод, аналогичный стандартному. Получает необходимые дочерние документы (значения их полей). Отличие от стандартного в возможности получать результаты вне зависимости от публикации и удалённости документа.
  • + \ddTools::getDocumentChildrenTVarOutput обновлён до 1.1:
    • + Параметр published теперь тоже может принимать значение false, при котором будут получены все документы вне зависимости от их публикации.
  • * Небольшой рефакторинг.

Версия 0.6.1 (2013-04-26)

  • * Исправление, следующие методы не были статичными:
    • * \ddTools::getDocuments.
    • * \ddTools::getDocument.
    • * \ddTools::getTemplateVars.
    • * \ddTools::getTemplateVarOutput.

Версия 0.6 (2013-03-26)

  • + Добавлено несколько аналогичных стандартным методов по работе с документами, основное отличие которых в возможности возвращать результаты вне зависимости от публикации документа:
    • + \ddTools::getDocuments. Получает необходимые документы (поля документов).
    • + \ddTools::getDocument. Получает данные о необходимом документе (поля документа).
    • + \ddTools::getTemplateVars. Получает массив TV и полей заданного документа.
    • + \ddTools::getTemplateVarOutput. Получает ассоциативный массив значений TV и полей заданного документа.
  • + \ddTools::$tables['site_tmplvar_templates'].

Версия 0.5 (2013-03-12)

  • + \ddTools::removeDir: Новый метод. Удаляет папку со всеми вложенными файлами и папками (рекурсивно).
  • + \ddTools::regEmptyClientScript: Новый метод. Добавляет необходимый файл JavaScript в нужный внутренний список MODX в соответствии с его именем и версией. Предназначен для регистрации скриптов, которые уже были подключены в ручную.

Версия 0.4.1 (2013-02-28)

  • * \ddTools::explodeAssoc обновлён до 1.1:
    • * Добавлена проверка на пустоту при разбивке между ключом и значением (если значения нет, вставляется пустая строка).

Версия 0.4 (2012-10-26)

  • * Внимание! Нарушена обратная совместимость.
  • * \ddTools::updateDocument обновлён до 1.2:
    • + Парамтер $id может быть массивом или числом.
    • * Исправлена ошибка в имени, было udateDocument.
    • * Исправлена ошибка если не нужно обновлять поля документа.
    • * Исправлена ошибка при обновлении TV в нескольких документах.
    • * Если задан параметр where, то метод обновляет документы подходящие под оба условия: и id, и where.

Версия 0.3 (2012-04-11)

  • + \ddTools::getDocumentChildrenTVarOutput: Новый метод, позволяющий получать необходимые дочерние документы.

Версия 0.2 (2012-03-21)

  • * Внимание! Нарушена обратная совместимость.
  • + \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.

Версия 0.1 (2012-02-03)

  • + Первый релиз.
<style>ul{list-style:none;}</style>