diff --git a/en/building-sites/elements/template-variables/bindings/chunk-binding.md b/en/building-sites/elements/template-variables/bindings/chunk-binding.md index 8dc9ef7a6..faba03570 100644 --- a/en/building-sites/elements/template-variables/bindings/chunk-binding.md +++ b/en/building-sites/elements/template-variables/bindings/chunk-binding.md @@ -17,12 +17,12 @@ In other words, if @CHUNK Hello is the value of a TV called MyChunk, the followi ## Syntax ``` php -@CHUNK chunk_name +@CHUNK chunk_name [properties_as_json] ``` -Binds the variable to a chunk. Where chunk\_name is the name of the chunk. The returned value is a string containing the content of the chunk. +Binds the variable to a Chunk. `chunk_name` is the Chunk name. The returned value is the parsed Chunk output. -This binding is very similar to the [@RESOURCE binding](building-sites/elements/template-variables/bindings/resource-binding "RESOURCE Binding") with the exception that it will bind the TV to a [Chunk](building-sites/elements/chunks "Chunks"). +Optional JSON properties (MODX 3.0+) are passed to `getChunk()` as the Chunk placeholders / properties array. ## Usage @@ -30,7 +30,18 @@ This binding is very similar to the [@RESOURCE binding](building-sites/elements/ @CHUNK MycontactForm ``` +With properties: + +``` php +@CHUNK MycontactForm {"submitLabel":"Send","showTitle":"1"} +``` + +Invalid JSON after the Chunk name is logged as an error and ignored; the Chunk still runs without those properties. + +This binding is similar to the [@RESOURCE binding](building-sites/elements/template-variables/bindings/resource-binding "RESOURCE Binding"), except it binds the TV to a [Chunk](building-sites/elements/chunks "Chunks"). For running PHP, use [@SNIPPET](building-sites/elements/template-variables/bindings/snippet-binding "SNIPPET Binding") instead. + ## See Also - [Template Variables](building-sites/elements/template-variables "Template Variables") - [Bindings](building-sites/elements/template-variables/bindings "Bindings") +- [SNIPPET Binding](building-sites/elements/template-variables/bindings/snippet-binding "SNIPPET Binding") diff --git a/en/building-sites/elements/template-variables/bindings/index.md b/en/building-sites/elements/template-variables/bindings/index.md index ada864393..4fa718db9 100644 --- a/en/building-sites/elements/template-variables/bindings/index.md +++ b/en/building-sites/elements/template-variables/bindings/index.md @@ -18,7 +18,8 @@ These Data Sources can be tied (or "bound") to a Template Variable for formattin - @FILE file\_path - @RESOURCE resource\_id -- @CHUNK chunk\_name +- @CHUNK chunk\_name \[properties\_as\_json\] +- @SNIPPET snippet\_name \[properties\_as\_json\] - @SELECT sql\_query - @DIRECTORY path\_relative\_to\_base\_path - @INLINE available in some Extras (e.g. getResources), this specifies a formatting chunk in-line as a string. diff --git a/en/building-sites/elements/template-variables/bindings/snippet-binding.md b/en/building-sites/elements/template-variables/bindings/snippet-binding.md index 070f88392..165f8fe39 100644 --- a/en/building-sites/elements/template-variables/bindings/snippet-binding.md +++ b/en/building-sites/elements/template-variables/bindings/snippet-binding.md @@ -13,7 +13,7 @@ The @SNIPPET Binding executes the specified MODX snippet. It should be used with ``` Binds the variable to a snippet. Where snippet_name is the name of the snippet. The returned value is the output of the snippet.\ -The JSON formatted properties are optional and are passed as scriptProperties to the snippet. +The JSON formatted properties are optional (MODX 3.0+) and are passed as scriptProperties to the snippet. ## Usage diff --git a/en/building-sites/elements/templates.md b/en/building-sites/elements/templates.md index ee7342c10..462be3521 100644 --- a/en/building-sites/elements/templates.md +++ b/en/building-sites/elements/templates.md @@ -50,6 +50,12 @@ After you've created one or more Templates, you can edit any Resource and choose Templates can contain any tags, including [Template Variables](building-sites/elements/template-variables "Template Variables"), [Chunks](building-sites/elements/chunks "Chunks"), [Snippets](extending-modx/snippets "Snippets"), and others. +### Manager Icon Class + +When you create or edit a Template, the **Manager Icon Class** field (`template_icon`) sets a CSS class for Resources that use that Template in the Resource tree. Use Font Awesome-style classes such as `icon-home` or `fa-home`. + +If this field is set, it takes precedence over the Content Type Icon for tree display. Leave it empty when you want the [Content Type](building-sites/resources/content-types) Icon (or the default resource / folder icon) to apply instead. + ### Using Resource Fields in the Template As you noticed from our Template sample code above, the fields of a Resource can be referenced using the `[[*fieldName]]` syntax. A list of available Resource Fields can be [found here](building-sites/resources#Resources-ResourceFields). For example, if we wanted to show the current Resource's pagetitle in our `
Hello [[+username]],
-A request for a password reset has been issued for your MODX user. If you sent this, you may follow this link and use this password to login. If you did not send this request, please ignore this email.
+```html +We received a request to change your MODX Revolution password. You can reset your password by clicking the button below and following the instructions on screen.
+ +If you did not send this request, please ignore this email.
+``` -
- Activation Link: [[+url_scheme]][[+http_host]][[+manager_url]]?modahsh=[[+hash]]
- Username: [[+username]]
- Password: [[+password]]
-
After you log into the MODX Manager, you can change your password again, if you wish.
+| Placeholder | Role | +| --- | --- | +| `[[+hash]]` | One-time activation hash (required in the reset URL as `modhash`) | +| `[[+url_scheme]]`, `[[+http_host]]`, `[[+manager_url]]` | Build the absolute manager URL | +| `[[+username]]` and other user fields | Available from the user object when the message is parsed | +| System config placeholders | Merged from `$modx->config` before parse | -Regards,
Site Administrator
Hello [[+username]],
-- A request for a password reset has been issued for your MODX user. If you - sent this, you may follow this link and use this password to login. If you - did not send this request, please ignore this email. -
- -
- Activation Link:
- [[+url_scheme]][[+http_host]][[+manager_url]]?modahsh=[[+hash]]
- Username: [[+username]]
- Password: [[+password]]
-
- After you log into the MODX Manager, you can change your password again, if - you wish. -
- -Regards,
Site Administrator
Мы получили запрос на изменение пароля вашего аккаунта. Вы можете сбросить пароль, нажав кнопку ниже и следуя инструкциям на экране.
+ +Если вы не отправляли такого запроса, просто проигнорируйте это письмо.
``` + +### Плейсхолдеры + +| Плейсхолдер | Назначение | +| --- | --- | +| `[[+hash]]` | Одноразовый hash активации (в URL сброса как `modhash`) | +| `[[+url_scheme]]`, `[[+http_host]]`, `[[+manager_url]]` | Абсолютный URL менеджера | +| `[[+username]]` и другие поля пользователя | Доступны при разборе сообщения | +| Плейсхолдеры из конфига | Подмешиваются из `$modx->config` перед parse | + +Не вставляйте `[[+password]]`. В MODX 3 пароль в этом письме не генерируется и не отправляется. + +### Поток сброса + +1. Пользователь запрашивает сброс на экране входа (`allow_manager_login_forgot_password` должен быть включён). +2. MODX сохраняет hash и шлёт лексиконное письмо со ссылкой `?modhash=[[+hash]]`. +3. Переход по ссылке открывает вход в режиме смены пароля. +4. Пользователь вводит и подтверждает новый пароль. + +### Устаревшая настройка `forgot_login_email` + +В Revolution 2.x шаблон лежал в системной настройке `forgot_login_email`. В MODX 3 настройка удалена. Если после апгрейда в БД ещё есть кастомное значение, перенесите HTML в лексикон `login_forgot_email` и уберите строку с `[[+password]]`. diff --git a/ru/building-sites/tag-syntax/index.md b/ru/building-sites/tag-syntax/index.md index 91b4c23aa..7d180b16e 100644 --- a/ru/building-sites/tag-syntax/index.md +++ b/ru/building-sites/tag-syntax/index.md @@ -59,6 +59,20 @@ MODX предоставляет удобный массив тегов, разл ]] ``` +## Одинарные квадратные скобки внутри тегов + +В MODX 3 внутри значений свойств тега (например в output filter) можно оставлять литеральные `[` и `]`, не ломая сбор тегов. [#13904](https://github.com/modxcms/revolution/pull/13904) + +```php +[[+label:notempty=`[required]`]] +``` + +Сами теги по-прежнему пишутся в двойных скобках: `[[ ... ]]`. + +## Значения-массивы в свойствах элементов (extras / кастомные парсеры) + +Если сниппет, чанк или другой элемент получает свойства-**массивы** (часто через PHP API, а не строку тега), MODX строит стабильную cache/tag-подпись через serialize этих массивов. Кастомные парсеры и подклассы элементов, которые сами собирают подпись тега, должны обрабатывать array-свойства так же, чтобы ключи кеша оставались сортируемыми и согласованными. [#14689](https://github.com/modxcms/revolution/pull/14689) + ## Свойства Все теги MODX могут принимать [свойства](building-sites/properties-and-property-sets), не только Сниппеты. diff --git a/ru/building-sites/tag-syntax/output-filters/index.md b/ru/building-sites/tag-syntax/output-filters/index.md index 8f0a18a22..47cba3410 100644 --- a/ru/building-sites/tag-syntax/output-filters/index.md +++ b/ru/building-sites/tag-syntax/output-filters/index.md @@ -123,6 +123,30 @@ translation: "building-sites/tag-syntax/output-filters" | urldecode | Преобразует входные данные из строки, удобной для URL, аналогично PHP [urldecode](http://www.php.net/manual/en/function.urldecode.php) | `[[+myparam:urldecode]]` | | filterPathSegment | Добавлено в 2.7. Преобразует ввод в удобную для URL строку с тем же механизмом, который превращает заголовок страницы в псевдоним, включая транслитерацию, если она включена. Полезно для пользовательских URL. | `[[+pagetitle:filterPathSegment]]` | +### Модификаторы пути к файлу + +Добавлены в MODX 3.0. Это обёртки над PHP [`pathinfo()`](https://www.php.net/manual/en/function.pathinfo.php). Они не проверяют, существует ли путь на диске. Параметры после модификатора игнорируются. + +| Модификатор | Описание | Пример | +| ----------- | -------- | ------ | +| dirname | Каталог без имени файла | `[[+filepath:dirname]]` → `/assets/images` для `/assets/images/logo.jpg` | +| basename | Имя файла с расширением | `[[+filepath:basename]]` → `logo.jpg` | +| filename | Имя файла без последнего расширения | `[[+filepath:filename]]` → `logo` | +| extension | Только последнее расширение (единственное число; не `extensions`) | `[[+filepath:extension]]` → `jpg` | + +Полезные краевые случаи: + +- `test.inc.php` → filename `test.inc`, extension `php` +- `file.tar.gz` → filename `file.tar`, extension `gz` +- `.htaccess` → пустой filename, extension `htaccess` +- Путь без расширения даёт пустую строку extension + +```php +[[*myImageTV:basename]] +[[*myImageTV:dirname]]/thumbs/[[*myImageTV:filename]].webp +[[+file:extension:lcase:is=`pdf`:then=`PDF`:else=`Other`]] +``` + ### Кэширование Как правило, любой контент в заполнителе, который, по вашему мнению, **может изменяться динамически**, должен быть кэширован. Например: diff --git a/ru/extending-modx/custom-manager-pages/modext/modext-modx-object.md b/ru/extending-modx/custom-manager-pages/modext/modext-modx-object.md index 9ff732e76..7a9558d3a 100644 --- a/ru/extending-modx/custom-manager-pages/modext/modext-modx-object.md +++ b/ru/extending-modx/custom-manager-pages/modext/modext-modx-object.md @@ -75,28 +75,21 @@ var userId = MODx.user.id; ### MODx.perm -Будет содержать следующие разрешения, если они будут предоставлены пользователю (они не будут существовать, если у пользователя нет разрешения): - -| Название | Описание | -| -------------------------- | ----------------------------------- | -| MODx.perm.resource_tree | Для просмотра дерева ресурсов. | -| MODx.perm.element_tree | Для просмотра дерева элементов. | -| MODx.perm.file_tree | Для просмотра дерева файлов. | -| MODx.perm.file_upload | Загружать файлы. | -| MODx.perm.file_manager | Использовать файловый браузер MODX. | -| MODx.perm.new_chunk | Создать новый чанк. | -| MODx.perm.new_plugin | Создать новый плагин. | -| MODx.perm.new_snippet | Создать новый сниппет. | -| MODx.perm.new_template | Создать новый шаблон. | -| MODx.perm.new_tv | Создать новую переменную шаблона. | -| MODx.perm.directory_create | Создать каталог в файловой системе. | +`MODx.perm` — карта **всех** имён manager-разрешений на boolean для текущего пользователя. Config JS читает distinct-строки `modAccessPermission` и заполняет ключи через `hasPermission()`. Фиксированного subset нет. [#13924](https://github.com/modxcms/revolution/pull/13924), [#14425](https://github.com/modxcms/revolution/pull/14425) + +Проверяйте любой ключ, который нужен Extra или CMP: ```javascript if (MODx.perm.file_upload) { /* ...код... */ } +if (MODx.perm.view_document) { + /* ... */ +} ``` +Частые ключи по-прежнему включают `resource_tree`, `element_tree`, `file_tree`, `file_upload`, `file_manager`, `new_chunk`, `new_plugin`, `new_snippet`, `new_template`, `new_tv` и `directory_create`. Отсутствующий ключ означает, что разрешения нет (считайте falsy). + ## Пользовательские методы Объект MODx также имеет довольно много пользовательских методов: diff --git a/ru/extending-modx/custom-manager-pages/modext/modx.grid.grid.md b/ru/extending-modx/custom-manager-pages/modext/modx.grid.grid.md index 8927c8a7b..1fe8ee1c8 100644 --- a/ru/extending-modx/custom-manager-pages/modext/modx.grid.grid.md +++ b/ru/extending-modx/custom-manager-pages/modext/modx.grid.grid.md @@ -84,9 +84,60 @@ MODx.grid.Grid добавляет несколько уникальных пар | preventSaveRefresh | Если автосохранение имеет значение true, после сохранения будет препятствовать обновлению сетки. Используется для более плавного редактирования. | 1 | | primaryKey | Если у ваших элементов сетки есть первичный ключ, который не является идентификатором, установите его здесь. | id | | storeId | Пользовательский идентификатор для предоставления хранилища в данной сетке. По умолчанию будет использоваться уникальный Ext ID. | Ext.id() | +| showActionsColumn | Если true, добавляет колонку действий (`modx-actions`) с иконками. Добавлено в MODX 3.0. | true | +| actionsColumnWidth | Ширина колонки действий. Авто: `50` для пиксельных колонок, `0.1` если все ширины ≤ 1. | auto | +| disableContextMenuAction | Если true, убирает шестерёнку контекстного меню и соответствующий путь меню действий. | false | Полный список всех параметров, не перечисленных здесь, см. в документации [ExtJS](http://sencha.com). +## Колонка действий (MODX 3.0+) + +`MODx.grid.Grid` и `MODx.grid.LocalGrid` используют общий `MODx.grid.GridBase`. При `showActionsColumn: true` MODX добавляет фиксированную колонку, renderer которой вызывает `getActions()`. + +Переопределите `getActions`, чтобы вернуть дополнительные кнопки-иконки. У каждого элемента нужны `action`, `icon` и `text`. Клик ищет на сетке метод с именем `action` (или Capitalized `action`). + +```javascript +getActions: function(value, metaData, record, rowIndex, colIndex, store) { + return [{ + action: 'removeElement', + icon: 'trash-o', + text: _('delete') + }]; +} +``` + +Если `disableContextMenuAction` не true, MODX также добавляет шестерёнку, которая открывает то же меню, что и правый клик (`getMenu` / данные `menu` процессора). + +Отключить колонку целиком: + +```javascript +Ext.applyIf(config, { + showActionsColumn: false +}); +``` + +## Подсветка редактируемых колонок (MODX 3.0+) + +Колонки с `editor` автоматически получают CSS-класс `x-editable-column` через `renderEditableColumn`. Тема менеджера показывает подсказку при наведении (иконка карандаша). Отдельного флага нет: задайте `editor`, если ячейка редактируется inline. + +## Ссылки в колонках (MODX 3.0+) + +В renderer используйте `renderLink(content, attributes, isSimulated, isSimulatedTag)`, чтобы обернуть значение в `` (или имитацию ссылки через span). + +```javascript +renderer: { + fn: function(value, metaData, record) { + return this.renderLink(value, { + href: '?a=context/update&key=' + record.data.key, + title: _('edit') + }); + }, + scope: this +} +``` + +Смежный helper: `getLinkTemplate(controllerPath, displayValueIndex, options)` для колонок `xtype: 'templatecolumn'`. + ## Пользовательские события MODx.grid.Grid добавляет несколько дополнительных событий, не найденных в объектах Ext.grid.Grid: diff --git a/ru/extending-modx/custom-manager-pages/modext/modx.grid.localgrid.md b/ru/extending-modx/custom-manager-pages/modext/modx.grid.localgrid.md index b3b2c9a8f..42769f16a 100644 --- a/ru/extending-modx/custom-manager-pages/modext/modx.grid.localgrid.md +++ b/ru/extending-modx/custom-manager-pages/modext/modx.grid.localgrid.md @@ -11,7 +11,9 @@ translation: "extending-modx/custom-manager-pages/modext/modx.grid.localgrid" Класс MODExt LocalGrid аналогичен классу [MODx.grid.Grid](extending-modx/custom-manager-pages/modext/modx.grid.grid "MODx.grid.Grid"), однако вместо того, чтобы использовать коннектор для заполнения его данными, он должен быть загружен через локальное хранилище. -При создании этого экземпляра в интерфейсе с вкладками рекомендуется установить в своей конфигурации protectRender: true, чтобы предотвратить проблемы с отображением JS. +LocalGrid наследует те же defaults GridBase, что и удалённые сетки: `showActionsColumn`, `getActions()`, подсветку editable-колонок и `renderLink()`. + +При создании этого экземпляра в интерфейсе с вкладками рекомендуется установить в своей конфигурации preventRender: true, чтобы предотвратить проблемы с отображением JS. ## Смотрите также diff --git a/ru/extending-modx/developing-restful-api.md b/ru/extending-modx/developing-restful-api.md index 792d1835a..2f1a8c836 100644 --- a/ru/extending-modx/developing-restful-api.md +++ b/ru/extending-modx/developing-restful-api.md @@ -333,6 +333,8 @@ public function verifyAuthentication() По умолчанию JSON. XML запрашивайте суффиксом `.xml` (`/rest/items.xml`) или через `defaultResponseFormat => 'xml'`. +При разборе входящего XML пустой XML-элемент в PHP-массиве становится пустой строкой (`''`), а не пустым массивом. [#14305](https://github.com/modxcms/revolution/pull/14305) Контроллеры с `empty()` или строгой проверкой `=== ''` ведут себя так же, как при JSON с `""`. + Тела success/failure используют ключи из конфига сервиса (`success`, `message`, `object`, плюс `errors` при ошибках полей). Списки используют `results` и `total`. HTTP-статус по умолчанию для успеха и ошибки: `200`. Передайте третий аргумент в `success()` / `failure()` или смените `defaultSuccessStatusCode` / `defaultFailureStatusCode`, если нужны коды вроде 201 или 404. diff --git a/ru/extending-modx/transport-packages/build-script.md b/ru/extending-modx/transport-packages/build-script.md index 61a8380a7..54262a37a 100644 --- a/ru/extending-modx/transport-packages/build-script.md +++ b/ru/extending-modx/transport-packages/build-script.md @@ -437,8 +437,11 @@ $builder->putVehicle($vehicle); Каждый пакет имеет так называемые "атрибуты пакета", которые можно передать любому Резольверу или Валидатору. Вы можете передать почти все, что хотите, в функцию `modPackageBuilder::setPackageAttributes()` в формате массива. Однако есть три специальных ключа, с которыми мы будем иметь дело. - **license** (string) - Это ваше лицензионное соглашение. Если MODX обнаружит во время установки, что этот файл не пуст, он предложит пользователю согласиться с этим, прежде чем он сможет продолжить установку пакета. -- **readme** (string) - Это содержит файл `readme`. Перед установкой, если файл не пуст, пользователь сможет просмотреть файл. Это может быть полезно, чтобы убедиться, что люди видят какие-либо требования перед установкой. -- **setup-options** (string) - И вот что самое интересное - это может быть HTML-форма (без тегов `form`), которая будет передавать любые введенные пользователем параметры в Резольверы или Валидаторы. Это означает, что вы можете принимать вводимые пользователем данные перед установкой и обрабатывать их во время установки! +- **readme** (string) - Это содержит файл `readme`. Перед установкой, если файл не пуст, пользователь сможет просмотреть файл. Это может быть полезно, чтобы убедиться, что люди видят какие-либо требования перед установкой. +- **changelog** (string) - Необязательные заметки о релизе в атрибутах пакета. +- **setup-options** (string) - И вот что самое интересное - это может быть HTML-форма (без тегов `form`), которая будет передавать любые введенные пользователем параметры в Резольверы или Валидаторы. Это означает, что вы можете принимать вводимые пользователем данные перед установкой и обрабатывать их во время установки! + +**Markdown в атрибутах пакета (MODX 3+):** при показе `license`, `readme` или `changelog` установщик рендерит строки как Markdown (Parsedown, safe mode). [#13853](https://github.com/modxcms/revolution/pull/13853) Можно оставить plain text, но заголовки, списки и ссылки Markdown работают без отдельного HTML-файла для этих трёх ключей. Итак, давайте использовать их в нашем скрипте сборки: diff --git a/ru/getting-started/upgrading-to-3.0/breaking-changes.md b/ru/getting-started/upgrading-to-3.0/breaking-changes.md index db88866f6..afec07dd3 100644 --- a/ru/getting-started/upgrading-to-3.0/breaking-changes.md +++ b/ru/getting-started/upgrading-to-3.0/breaking-changes.md @@ -21,8 +21,24 @@ translation: "getting-started/upgrading-to-3.0/breaking-changes" ## Очистка устаревшего функционала -- Поле `modResource->contentType` удалено. В Revolution 2.0 его заменило поле `content_type`, которое ссылается на экземпляр `modContentType`. [#14057](https://github.com/modxcms/revolution/pull/14057) -- `modParser095`, `modTranslate095` и `modTranslator` удалены. Это утилиты для переноса шаблонов из синтаксиса Evolution. [#14133](https://github.com/modxcms/revolution/pull/14133) +- Поле `modResource->contentType` удалено. Используйте целочисленное поле `content_type` (FK на `modContentType`). [#14057](https://github.com/modxcms/revolution/pull/14057) + + Было (в 3.0 не работает): + + ```php + $mime = $resource->get('contentType'); // поле удалено + ``` + + Стало: + + ```php + $contentTypeId = $resource->get('content_type'); + $contentType = $resource->getOne('ContentType'); // или $modx->getObject(modContentType::class, $contentTypeId) + $mime = $contentType ? $contentType->get('mime_type') : ''; + ``` + +- `modParser095`, `modTranslate095` и `modTranslator` удалены. Они только помогали переносить синтаксис тегов Evolution (0.9.x) в Revolution. Для миграции Evo→Revo их больше не вызывайте: конвертируйте шаблоны в обычные теги `[[...]]` вручную или своим инструментом и используйте стандартный `modParser`. [#14133](https://github.com/modxcms/revolution/pull/14133) +- Flash-based copy-to-clipboard в ExtJS удалён. Копирование в менеджере идёт через clipboard API браузера. [#13697](https://github.com/modxcms/revolution/pull/13697) - Каталог `/manager/min/` удалён. Не использовался с 2.5. [#12778](https://github.com/modxcms/revolution/pull/12778), [#13194](https://github.com/modxcms/revolution/pull/13194), [#14416](https://github.com/modxcms/revolution/pull/14416) - Удалены неиспользуемые сетки ExtJS: assets/modext/widgets/resource/modx.grid.resource.security.js, assets/modext/widgets/security/modx.grid.role.user.js, assets/modext/workspace/lexicon/language.grid.js, assets/modext/workspace/lexicon/lexicon.topic.grid.js [#14895](https://github.com/modxcms/revolution/pull/14895) - Привязка `@EVAL` удалена у TV [#13865](https://github.com/modxcms/revolution/pull/13865) diff --git a/ru/getting-started/upgrading-to-3.0/class-names.md b/ru/getting-started/upgrading-to-3.0/class-names.md index c44aed059..fafc88416 100644 --- a/ru/getting-started/upgrading-to-3.0/class-names.md +++ b/ru/getting-started/upgrading-to-3.0/class-names.md @@ -91,6 +91,8 @@ translation: "getting-started/upgrading-to-3.0/class-names" - All classes and functions related to the `xmlrpc` and `jsonrpc` services/utilities: `modXMLRPCResponse`, `modJSONRPCResponse`, `modXMLRPCResource` (+ platform classes), `modJSONRPCResource` (+ platform classes) - `modManagerControllerDeprecated` +Flash-хелперы copy-to-clipboard из ExtJS удалены вместе с Flash [#13697](https://github.com/modxcms/revolution/pull/13697). Используйте clipboard API браузера. + ## Изменения подписи - `modResponse::_construct` (и унаследовал `modManagerResponse`/`modConnectorResponse`) теперь помечен как «открытый» и больше не содержит амперсанд, поскольку объекты всегда передаются по ссылке. diff --git a/ru/getting-started/upgrading-to-3.0/index.md b/ru/getting-started/upgrading-to-3.0/index.md index 31102d31d..29074ce78 100644 --- a/ru/getting-started/upgrading-to-3.0/index.md +++ b/ru/getting-started/upgrading-to-3.0/index.md @@ -29,20 +29,30 @@ translation: "getting-started/upgrading-to-3.0" - Переработан установщик [#14507](https://github.com/modxcms/revolution/pull/14507) и вход в менеджер [#13773](https://github.com/modxcms/revolution/pull/13773). - Менеджер переработан. Улучшена работа на мобильных [#14700](https://github.com/modxcms/revolution/pull/14700), [#14735](https://github.com/modxcms/revolution/pull/14735). Изменены стили ресурсов в дереве [#14832](https://github.com/modxcms/revolution/pull/14832) - Язык можно переключать на лету [#14046](https://github.com/modxcms/revolution/pull/14046) -- Все разрешения менеджера автоматически доступны в `MODx.perm` [#13924](https://github.com/modxcms/revolution/pull/13924), [#14425](https://github.com/modxcms/revolution/pull/14425) +- Все разрешения менеджера автоматически доступны в `MODx.perm` [#13924](https://github.com/modxcms/revolution/pull/13924), [#14425](https://github.com/modxcms/revolution/pull/14425). См. [Объект MODx](extending-modx/custom-manager-pages/modext/modext-modx-object). - Перевод Google отключён в менеджере [#14414](https://github.com/modxcms/revolution/pull/14414) - Более последовательное дублирование ресурсов и элементов [#14411](https://github.com/modxcms/revolution/pull/14411) ### Пакеты -- Markdown теперь разбирается в атрибутах пакета (changelog, readme, license) [#13853](https://github.com/modxcms/revolution/pull/13853) +- Markdown теперь разбирается в атрибутах пакета (changelog, readme, license) [#13853](https://github.com/modxcms/revolution/pull/13853). См. [Создание скрипта сборки](extending-modx/transport-packages/build-script). ### Файлы и медиа -- Медиаисточники теперь используют Flysystem [#13709](https://github.com/modxcms/revolution/pull/13709) -- Каталоги ядра защищены от переименования и удаления из менеджера [#14374](https://github.com/modxcms/revolution/pull/14374) +- Медиаисточники теперь используют Flysystem [#13709](https://github.com/modxcms/revolution/pull/13709). См. [Файловая система](building-sites/media-sources/types/media-source-type-file-system) и [S3](building-sites/media-sources/types/media-source-type-s3). +- Каталоги ядра защищены от переименования и удаления из менеджера [#14374](https://github.com/modxcms/revolution/pull/14374). См. [источник File System](building-sites/media-sources/types/media-source-type-file-system). ### Ресурсы и шаблоны -- Ресурсы могут получить иконку по типу контента [#14383](https://github.com/modxcms/revolution/pull/14383) -- Новые модификаторы вывода для файлов: `dirname`, `basename`, `filename`, `extensions` [#14198](https://github.com/modxcms/revolution/pull/14198) +- Ресурсы могут получить иконку по типу контента [#14383](https://github.com/modxcms/revolution/pull/14383). См. [Типы содержимого](building-sites/resources/content-types). +- Новые модификаторы вывода для файлов: `dirname`, `basename`, `filename`, `extension` [#14198](https://github.com/modxcms/revolution/pull/14198). См. [Фильтры/модификаторы вывода](building-sites/tag-syntax/output-filters). + +### Безопасность и почта + +- Письмо «забыли пароль» использует ссылку сброса (`modhash`), а не пароль в письме [#13786](https://github.com/modxcms/revolution/pull/13786). См. [forgot_login_email](building-sites/settings/forgot_login_email). + +### Парсер и REST + +- Литеральные одинарные `[` / `]` внутри значений тегов поддерживаются [#13904](https://github.com/modxcms/revolution/pull/13904). См. [Синтаксис тегов](building-sites/tag-syntax). +- Значения-массивы в свойствах получают стабильную serialize-подпись тега [#14689](https://github.com/modxcms/revolution/pull/14689). См. [Синтаксис тегов](building-sites/tag-syntax). +- Пустые XML-элементы во входящем теле `modRestService` становятся `''` [#14305](https://github.com/modxcms/revolution/pull/14305). См. [RESTful API](extending-modx/developing-restful-api). diff --git a/ru/getting-started/upgrading-to-3.0/system-settings.md b/ru/getting-started/upgrading-to-3.0/system-settings.md index f005d2433..c929c0545 100644 --- a/ru/getting-started/upgrading-to-3.0/system-settings.md +++ b/ru/getting-started/upgrading-to-3.0/system-settings.md @@ -8,6 +8,7 @@ MODX 3.0 очистил значительное количество стары ## Удалены - `allow_tv_eval`, привязка `@EVAL` больше не поддерживается для TVs по соображениям безопасности [#13865](https://github.com/modxcms/revolution/pull/13865) +- `forgot_login_email`, письмо сброса пароля теперь из лексикона `login_forgot_email` и ссылки сброса, без пароля в письме [#13786](https://github.com/modxcms/revolution/pull/13786). См. [forgot_login_email](building-sites/settings/forgot_login_email) - `compress_js_max_files`, `manager_js_zlib_output_compression`, `manager_js_cache_file_locking`, `manager_js_cache_max_age`, `manager_js_document_root` что связано со старым динамическим менеджером JS minification [#13859](https://github.com/modxcms/revolution/pull/13859), [#14868](https://github.com/modxcms/revolution/pull/14868) - `editor_css_path` и `editor_css_selectors` был удален [#14843](https://github.com/modxcms/revolution/pull/14843). Эти настройки могут быть в [TinyMCE](https://github.com/modxcms/TinyMCE/issues/30) или других сторонних дополнениях, которые могут потребоваться для настройки недоступных настроек.) - `manager_language` [#13786](https://github.com/modxcms/revolution/pull/13786), заменено автоматическое определение языка и переключение на лету в менеджере [#14046](https://github.com/modxcms/revolution/pull/14046). [Узнайте больше о языке менеджера в 3.0](getting-started/upgrading-to-3.0/manager-language)