Предположим у нас есть сайт. Большой сайт! ОЧЕНЬ БОЛЬШОЙ САЙТ!!1
И свершилось чудо! Нам надо изменить дизайн основных страниц. В виду особенностей CMS DJEM придется публиковать весь сайт, что есть печать, так как операция эта не быстрая.
Минут 10 назад родилась идея.
Шаг первый.
Удаляем все файлы сгенерированные джемом.
Шаг второй.
Через htaccess делаем редирект на скрипт, если запрашиваемый файл не существует.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ <['main.system.php.Scripts.Publisher']._file> [L]
Шаг третий.
Пишем скрипт.
<?php include($_SERVER['DOCUMENT_ROOT'] . '<['main.system.php.config']._file>'); $resource = R('DJEM')->Query( 'SELECT * FROM files WHERE file_name="?" AND file_field="_file" LIMIT 1', $_SERVER['REQUEST_URI'] ); if($resource->Size()) { $row = $resource->Fetch(); $server = new DJEMServer(R('DJEM')); $server->PublishDocument($row['file_document_id']); header('Location: ' . $row['file_name']); } else { include($_SERVER['DOCUMENT_ROOT'] . '<['main.system.error_page.404']._file>'); } ?>
Таким образом документ будет опубликован в момент обращения пользователя к нему.