Посоветуйте, как решить проблему слишком большого [*content*].

На сайте продолжаю выискивать ошибки.
Одну из ошибок вываливал ddTypograf. Причем, на одних документах все нормально, но других из этого же раздела давал ошибку.
Оказалось, в php.ini стоит 10 секунд на max_execution_time.
Добавил в сниппете исправление увеличив только для сниппета время выполнения до 40 секунд (путем подбора для документа с ошибкой).

<?php
ini_set('max_execution_time', 40);
return require MODX_BASE_PATH.'/assets/snippets/ddTypograph/ddTypograph.php';

В общем слишком долго сниппет обрабатывает документ, потому возник вопрос, а как разбить сам документ автоматически на страницы.

На мой взгляд есть два пути —
  1. Cоздавать основной документ как родительский, вписывать туда все что положено и начало текста в [*content*], а все что далее как дочерние документы с текстом. И уже все это сниппетом типа DocLister выводить внутри ddTypograf
  2. Чтобы не переделывать страницы уже готовые, сделать автоматический разбор [*content*] и при превышении количества символов бить на страницы
  3. Или же в готовом документе использовать уже имеющийся в TinyMCE
    <!-- pagebreak -->
    и по нему генерить страницы
С первым то понятно как. Повозиться и потом документы с огромным текстовым контентом вручную на поддокументы.
А как реализовать второй или третий?

1 комментарий

avatar
Если ddTypograf вызывается при выводе, то нужно переделать чтобы обработка выполнялась при сохранении документа. Можно вместо ddTypograf использовать плагин для tinyMCE. Можно повесить обработку на крон.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.