Шаблон печати на странице записи + Отображение AJAX запроса

Пишите ваши предложения здесь.
Ответить
uvex
Спонсор
Спонсор
Сообщения: 153
Зарегистрирован: 10 окт 2016, 13:42
Имя: Алексей
Откуда: Санкт-Петербург
Организация: TASKKIT.PRO
Контактная информация:

Шаблон печати на странице записи + Отображение AJAX запроса

Сообщение uvex »

Не знаю один ли я столкнулся с такой необходимостью, но решил поделиться.

1. Отображение своего шаблона на странице записи т.к. пользователям не нужно 90% того, что есть на странице.
И так как все равно готовится шаблон для печати, то почему бы не использовать его и отображать сразу на странице записи.

2. в форме проводятся расчеты "на лету" в AJAX запросе с формированием динамического чертежа.
отобразить результат этих расчетов на странице записи и на печати.

Решение, может костыльное, я не совсем программист.

форма ввода для рассчетов ТЗ на резку материала
1.jpg
В конце кода записываем результат в базу данных в поле 2313 - Тип поля Статический текст по шаблону

Это нам дает возможность использовать результат из базы данных в шаблоне для печати
Подошел только этот тип поля.

Код: Выделить всё

// Сохраняем результат в поле с ID 2313
db_query("UPDATE app_entity_38 SET field_2313 = '" . addslashes($result_html) . "' WHERE id = '{$item_id}'");
получаем отображение результата наших вычислений на странице записи.
2.jpg

Дальше на странице записи добавляем JS код который отображает наш заранее созданный шаблон для экспорта/печати
в котором уже есть ссылка на поле Тип поля Статический текст по шаблону
3.jpg

Код: Выделить всё

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
    <div id="printtz" class="export-template"></div>
        <script>
        $(function () {
            // Ссылка на шаблон для printtz
            const url = `https://site/index.php?module=items/export_template&path==36-45/38-[id]&templates_id=16 #export_templates_preview`;

            // Загружаем содержимое в printtz
            $("#printtz").load(url, function () {
                // Отобразить #printtz вместо .item-content-box.ckeditor-images-content-prepare
                $(".item-content-box.ckeditor-images-content-prepare").html($("#printtz").html());
                
                // Затем скроем printtz, если больше не нужен
                $("#printtz").hide();
            });
        });
    </script>
</body>
В итоге получаем страницу записи с нашим шаблоном и отображением AJAX и в форме печати тоже все есть.
4.jpg
5.jpg

Собственно предложение:
1. Почему бы не сделать шаблон для экспорта в настройках как опция для отображения страницы печати.
6.jpg
Одна колонка
Две колонки
Шаблон печати

2. Ввести тип поля, который позволит отображать из базы данных html - вроде тип поля LONGTEXT
Ответить