Страница 1 из 1
Шаблоны для экспорта (docx) - не копируются настройки по той же сущности
Добавлено: 03 ноя 2021, 15:08
alcompstudio
Добрый день!
Скопировал шаблон для экспорта docx , и настройки не сохранились в новый шаблон - он пустой.
Если не предусмотрено, можно ли добавить такую возможность для данного вида - чтобы все настройки тех же полей копировались, иначе как-то нелогично висит кнопка копирования для этого вида. И зачем пустая настройка нужна тогда, ведь в этом и вся суть копирования данного сложного шаблона.
http://joxi.ru/bmoenVVF75kz7A
Re: Шаблоны для экспорта (docx) - не копируются настройки по той же сущности
Добавлено: 05 ноя 2021, 08:50
support
Добавил. Файл из архива замените в plugins\ext\modules\templates\actions\
Сообщите результат.
Re: Шаблоны для экспорта (docx) - не копируются настройки по той же сущности
Добавлено: 05 ноя 2021, 12:11
alcompstudio
Да, работает, элементы копируются. Буду тестировать далее.
Re: Шаблоны для экспорта (docx) - не копируются настройки по той же сущности
Добавлено: 05 ноя 2021, 17:02
alcompstudio
При сохранении шаблона появилась такая ошибка
http://joxi.ru/J2boYllHgR9MxA
Версия 2.9.1, может с этим что-то связано?
UPD
нет, на 2.9.2 тоже такая ошибка, наверное с 3-й версии что-то вошло...
Re: Шаблоны для экспорта (docx) - не копируются настройки по той же сущности
Добавлено: 05 ноя 2021, 18:14
support
нет, на 2.9.2 тоже такая ошибка, наверное с 3-й версии что-то вошло...
Точно, тогда верните файл обратно. И замените только действие copy
Код: Выделить всё
case 'copy':
$templates_id = _get::int('templates_id');
$templates_query = db_query("select * from app_ext_export_templates where id='" . $templates_id . "'");
if ($templates = db_fetch_array($templates_query))
{
unset($templates['id']);
$templates['name'] = $templates['name'] . ' (' . TEXT_EXT_NAME_COPY . ')';
db_perform('app_ext_export_templates', $templates);
$new_template_id = db_insert_id();
//copy blocks
$id_to_replace = [];
$blocks_query = db_query("select * from app_ext_items_export_templates_blocks where templates_id={$templates_id}");
while($blocks = db_fetch_array($blocks_query))
{
$block_id = $blocks['id'];
unset($blocks['id']);
$blocks['templates_id'] = $new_template_id;
db_perform('app_ext_items_export_templates_blocks', $blocks);
$new_block_id = db_insert_id();
$id_to_replace[$block_id] = $new_block_id;
}
//prepare parent_id
foreach($id_to_replace as $block_id=>$new_block_id)
{
db_query("update app_ext_items_export_templates_blocks set parent_id={$new_block_id} where parent_id={$block_id} and templates_id={$new_template_id}");
}
}
redirect_to('ext/templates/export_templates');
break;