digitorum.ru

Как меня найти

Профиль

icq: 4415944

Что такое djem и с чем его едят: публикация всего сайта.

DJEM, DJEM 2.0, php

Предположим у нас есть сайт. Большой сайт! ОЧЕНЬ БОЛЬШОЙ САЙТ!!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>');
		
	}
	
?>

 

Таким образом документ будет опубликован в момент обращения пользователя к нему.

Возможно будет интересно: