К содержимому
Вывод в теме

Вывод в теме

Обновлено

Автоматическое подключение

Плагин подключает готовые формы через события Shop-Script. Тема должна выводить результат соответствующего события.

Событие Что возвращает плагин
backend_order Блок в секции info_section карточки заказа в Магазине
frontend_my_order Блок на странице заказа в личном кабинете
checkout_render_auth Форму после контактных данных при соответствующем выборе «Оформление заказа»
checkout_render_payment Форму после выбора оплаты при соответствующем выборе «Оформление заказа»
checkout_render_confirm Форму после подтверждения при соответствующем выборе «Оформление заказа»
frontend_checkout Форму на шаге confirmation старого пошагового оформления

События оформления обрабатываются только с премиум-лицензией. Значение «Нет» выключает форму оформления. Событие order_action.create привязывает временные файлы к созданному заказу; оно не выводит интерфейс.

Если блок не появляется при верных настройках, разработчику нужно проверить вызов и вывод нужного события в теме. Хелперы ниже возвращают данные, а не готовую форму загрузки.

Получить файлы заказа

Сигнатура метода:

shopOrderattachHelper::getFiles($order_id, $frontend = false);

$order_id — внутренний идентификатор заказа Shop-Script. Значение true во втором аргументе формирует ссылки для витрины, false — ссылки для бэкенда. При пустом идентификаторе возвращается пустой массив. Записи сортируются по id по возрастанию.

Пример для шаблона страницы заказа на витрине, в который передан внутренний идентификатор заказа $order_id:

{if !empty($wa->shop->orderattachPlugin->version())}
    {$files = shopOrderattachHelper::getFiles($order_id, true)}
    {if !empty($files)}
        <ul>
            {foreach $files as $file}
                <li>
                    <a href="{$file.url|escape}">{$file.name|escape}</a>
                </li>
            {/foreach}
        </ul>
    {/if}
{/if}

Размещайте этот код в контексте заказа, доступ к которому уже проверен приложением. Сам хелпер получает файлы по переданному идентификатору и не проверяет права текущего покупателя.

Поля результата

Поле Содержимое
id Идентификатор записи файла
order_id Идентификатор заказа; до создания заказа используется идентификатор сессии
name, original_filename Исходное имя загруженного файла
filename Имя сохранённого файла на диске с добавленной уникальной частью
url Ссылка для выбранного режима витрины или бэкенда
size Размер в байтах
ext Расширение файла
upload_datetime Дата и время загрузки
uploaded_by_user 1 для загрузок с витрины, 0 для загрузок из Магазина
temporary 1 для временной загрузки, 0 после привязки к заказу
available_for_user Поле базы данных; при загрузке записывается 1, хелпер по нему список не фильтрует
hash Хеш файла, используемый в ссылке витрины
status Строка finished, добавляемая хелпером для компонента списка

В режиме витрины url содержит путь вида plugin/orderattach/download/<file_id>/<hash>/ с префиксом приложения. Второй аргумент true меняет формат ссылки, но не фильтрует файлы и не проверяет лицензию или настройки показа.

Получить настройки

shopOrderattachHelper::getSettings();

Метод возвращает массив, индексированный техническими именами настроек. Значение находится в поле value; у переключателей это строки "true" и "false", а не логические значения PHP.

Пример чтения заголовка:

{if !empty($wa->shop->orderattachPlugin->version())}
    {$settings = shopOrderattachHelper::getSettings()}
    {$settings.section_title.value|escape}
{/if}

При самостоятельном выводе учитывайте «Статус плагина» и настройки нужной страницы: хелперы не применяют их автоматически.

Шаблоны интерфейса

В составе установленного плагина используются:

templates/actions/backend/BackendOrder.html
templates/actions/frontend/FrontendCheckout.html
templates/actions/frontend/FrontendMyOrder.html

Они передают данные в JavaScript-компоненты и подключают собранные скрипты форм. Код обращается к этим шаблонам по пути внутри плагина; отдельного механизма переопределения копированием файла в тему в продукте нет. Для собственного списка используйте хелпер; для диагностики отсутствующей формы проверяйте события темы.