ddTools Полная история изменений

0.16.2

  • * «ddTools:generateRandomString»: Исправлен параметр «$chars».

0.16.1

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

0.16

  • Внимание! Требуется PHP ≥ 5.4.
  • Метод «ddTools:parseText» обновлён до 1.3.1:
    • Рефакторинг, метод теперь использует именованные параметры (с сохранением обратной совместимости).
    • Добавлена возможность удаления пустых плэйсхолдеров (см. «$params['removeEmptyPlaceholders']»).
    • Параметр «$params['data']» теперь не обязателен.
  • Метод «ddTools:sendMail» обновлён до to 2.1:
    • Рефакторинг, метод теперь использует именованные параметры (с сохранением обратной совместимости).
    • Значение по умолчанию параметра «$params['from']» берётся из «$modx→getConfig ('emailsender')» (спасибо, MrSwed!).
  • Метод «ddTools:regEmptyClientScript» обновлён до 1.1:
    • Параметры теперь могут передаваться и в виде объекта stdClass.
  • Рефакторинг: Используется короткий синтаксис объявления массивов. Это удобней и проще для визуальной идентификации.

0.15.4

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

0.15.3

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

0.15.2

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

0.15.1

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

0.15

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

0.14.3

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

0.14.2

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

0.14.1

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

0.14

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

0.13.3

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

0.13.2

  • Меод «ddTools:createDocument» был обновлён: теперь массивы из конфига MODX «documentMap» и «aliasListing» дополняются данными о созданном документе.

0.13.1

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

0.13

  • Добавлен метод «ddTools:sendMail». Отправляет e-mail.

0.12

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

0.11.1

  • Методы «ddTools:getDocuments», «ddTools:getTemplateVars», «ddTools:getTemplateVarOutput», «ddTools:getDocumentChildren» и «ddTools:getDocumentChildrenTVarOutput» обновлены в соответствии с MODX 1.0.13.

0.11

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

0.10

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

0.9.2

  • Поле «alias_visible» было добавлено в «ddTools:$documentFields» (MODX 1.0.12).
  • Внимание! Необходим MODX версии не ниже 1.0.12.

0.9.1

  • Метод «parseFileNameVersion» обновлён до 1.1:
    • Помимо имени и версии файла возвращается ещё и его расширение.

0.9

  • Добавлен метод «getDocumentIdByUrl». Метод получает id документа по его адресу (url).

0.8.1

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

0.8

  • Добавлен метод «parseFileNameVersion». Разбирает строку файла, получая из неё его имя версию.
  • Метод «regEmptyClientScript» обновлён до версии 1.0.1
    • Bugfix: Перед записью пустых значений в $modx→sjscripts и $modx→jscripts добавлена проверка на используемость текущей версии.

0.7

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

0.6.1

  • Исправление ошибок: методы getDocuments, getDocument, getTemplateVars и getTemplateVarOutput не были статичными!

0.6

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

0.5

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

0.4.1

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

0.4

  • Метод «updateDocument» обновлён до версии 1.2
    • Исправлена ошибка в имени, было «udateDocument».
    • Может принимать массив id или число.
    • Исправлена ошибка если не нужно обновлять поля документа.
    • Исправлена ошибка при обновлении TV в нескольких документах.
    • Если задан параметр where, то метод обновляет документы подходящие под оба условия: и id, и where.

0.3

  • Добавлен метод «getDocumentChildrenTVarOutput», позволяющий получать необходимые дочерние документы.

0.2

  • Добавлено статическое поле «$documentFields», содержащее массив имён полей документа.
  • Добавлено статическое поле «$tables», содержащее полные имена некоторых таблиц.
  • Добавлен метод «screening», осуществляющий экранирование символов в строке.
  • Добавлен метод «explodeAssoc», разбивающий строку по двум разделителям в ассоциативный массив.
  • Добавлен метод «explodeFieldsArr», разбивающий ассоциативный массив полей и TV документа на два отдельных массива.
  • Метод «parseText» обновлён до версии 1.1
    • Добавлена возможность отключить дополнительную обработку полей документа, настроек, чанков (параметр «mergeAll»).
  • Метод «createDocument» обновлён до версии 1.1
    • В параметр $fields добавлена возможность передавать не только поля документа, но и TV.
  • Метод «udateDocument» обновлён до версии 1.1
    • В параметр $update добавлена возможность передавать не только поля документа, но и TV.
    • Добавлена правильная проверка на то, изменялись данные или нет. Теперь метод точно возвращает true или false.
  • Метод «parseSourse» переименован в «parseSource».
  • Метод «generateString» переименован в «generateRandomString».

0.1

  • Первая версия.