Автозагрузка TPL шаблонов статических страниц

Автозагрузка TPL шаблонов статических страниц
Данный модуль предназначен для удобного и простого создания статических страниц без использования функционала самого движка.
Достаточно создать TPL файл и страница будет доступна по адресу имени файла.

Установка
В папке с шаблоном создать папку static в ней будут размещаться tpl файлы — где имя файла будет являться именем статической страницы. К примеру файл {THEME}/static/demo.tpl будет открываться по адресу example.com/demo.html

Открыть файл engine/init.php
Найти строки:

	$name = @$db->safesql( trim( totranslit( $_GET['page'], true, false ) ) );
	$static_result = $db->super_query ( "SELECT * FROM " . PREFIX . "_static WHERE name='{$name}'" );
	$category_skin = $static_result['template_folder'];

Заменить на:

	$static_name = totranslit( $_GET['page'] );
	if( file_exists( ROOT_DIR . "/templates/{$config['skin']}/static/{$static_name}.tpl" ) ) $do = "static_autoload";
	else
	{
		$name = @$db->safesql( trim( totranslit( $_GET['page'], true, false ) ) );
		$static_result = $db->super_query ( "SELECT * FROM " . PREFIX . "_static WHERE name='{$name}'" );
		$category_skin = $static_result['template_folder'];
	}

Открыть engine/engine.php
Найти строку:

switch ( $do ) {

После нее вставить:

	case "static_autoload":
		include ENGINE_DIR . "/mods/$do.php";
		break;

Создать файл engine/mods/static_autoload.php с содержимым:
Автозагрузка TPL шаблонов статических страниц PHP код файла

<?PHP
if(!defined('DATALIFEENGINE'))die("Access Denied");

$header_tags = array( 'title', 'description', 'keywords', 'noindex' );
$tpl->load_template("static/{$static_name}.tpl");

$static_metatags = array();
foreach( $header_tags as $tag )
{
	preg_match( "#\[$tag=(.*?)\]#i", $tpl->copy_template, $found );
	$tpl->copy_template = str_replace( $found[0], '', $tpl->copy_template );
	$static_metatags[$tag] = trim( htmlspecialchars( stripslashes( $found[1] ), ENT_QUOTES, $config['charset'] ) );
}
$tpl->compile('content');
$tpl->clear();

$dle_module = $do = 'static';
$disable_index = $static_metatags['noindex'] ? true : false;
$static_descr = $static_metatags['title'];
$metatags['description'] = $static_metatags['description'] ?: $static_metatags['title'];
$metatags['keywords'] = $static_metatags['keywords'];

На этом все. В самом файле шаблона можно использовать теги чтобы указать свои метатеги. Пример файла:

[title=Метазаголовок тестовой страницы]
[description=Описание тестовой страницы для наглядности работы]
[keywords=Ключевые, слова, тестовой, страницы, тестового сайта]
[noindex=1]

<h1>Пример страницы</h1>
<div style="padding-top:15px">Текст тестовой страницы</div>

где [noindex=1] 1 — запретить индексацию, 0 — разрешить.

С уважением,
Олег Александрович a.k.a. Sander
Источник: sandev.pro

Просмотров:

Добавить комментарий

Adblock
detector