Перейти к публикации

Вывод контента в свой шаблон.


Рекомендованные сообщения

Доброго времени суток.

Понадобилось сделать свою страницу на дле с возможностью полного изменения шаблона.

То есть при обращении к скрипту index.php?do=bookreader выводить абсолютно другой шаблон для сайта.

Все сделано так:

1. В файл engine/engine.php было добавлено

case "bookreader" :

		include ENGINE_DIR . '/modules/bookreader.php';

		break;
2. в папке engine/modules/ был создан файл bookreader.php 3. в папке templates/default/ был создан файл bookreader.tpl 4. файл bookreader.php имеет следующий код
<?php



if( ! defined( 'DATALIFEENGINE' ) ) {

	die( "Hacking attempt! На всякий случай ваш IP был записан." );

}

$tpl->load_template( 'bookreader.tpl' );

$tpl->set( '{blabla}', "Текст который нужно увидеть." );

$tpl->compile( 'content' );

$tpl->clear();

?>
5. Для того что бы по в этом скрипте мне выводить только свой дизайн я исправил main.tpl так:(main_all.tpl - там хранится основной шаблон сайта)

[aviable=bookreader] {include file="bookreader.tpl"} [/aviable]

[not-aviable=bookreader] {include file="main_all.tpl"} [/not-aviable]
6. В файле bookreader.tpl такой код
<style>

body {

margin: 0px;

padding: 0px;

background: #999;

}

DIV.content1 {

	background: #999;

	font-size: 16px;

	margin: 0;

	padding-left: 5px;

	overflow: auto; 

	height: 94%;

}


.panel {

	background: #666666;

	font-size: 90%;

	margin: 0;

	padding: 2px;

	height: 5%;

}

</style>


<div class="panel">

asd

</div>

<div class="content1">

{blabla}

</div>

Проблема в том что на выходе в браузере моя переменная {blabla} не заменяется на текст Текст который нужно увидеть.

Что я делаю не так?

Всем заранее спасибо.

Плюсомет наготове. :)

Ссылка на сообщение
Поделиться на других сайтах

За пункт номер один, можно поставить много минусов. Ваша возможность реализуется полностью без правки файлов скрипта http://dle-news.ru/extras/online/index.html?modules_include.html

Ссылка на сообщение
Поделиться на других сайтах

за использование style в шаблоне тоже минус :) Ибо стили должны быть заключены в head.

5 пункт не понятен. А так вроде должно работать :)

Изменено пользователем kangalexey
Ссылка на сообщение
Поделиться на других сайтах

я понимаю что мол при обновлении удобнее будет. А кроме этого?

этого мало? В этом и есть преимущество, чтобы при обновлении все работало автоматически

Ссылка на сообщение
Поделиться на других сайтах

вроде все решил как сделать.

Кому интересно все это теперь выглядит так.

Все сделано так:

1. Для того что бы по в этом скрипте мне выводить только свой дизайн я исправил main.tpl так:(main_all.tpl - там хранится основной шаблон сайта)

[aviable=bookreader]{include file="engine/modules/bookreader.php"} [/aviable]

[aviable=bookreader] {include file="bookreader.tpl"} [/aviable]

[not-aviable=bookreader] {include file="main_all.tpl"} [/not-aviable]
2. в папке engine/modules/ был создан файл bookreader.php 3. в папке templates/default/ был создан файл bookreader.tpl 4. файл bookreader.php имеет следующий код
<?php



if( ! defined( 'DATALIFEENGINE' ) ) {

        die( "Hacking attempt! На всякий случай ваш IP был записан." );

}

$tpl->load_template( 'bookreader.tpl' );

$tpl->set( '{blabla}', "Текст который нужно увидеть." );

$tpl->compile( 'main' );

echo $tpl->result['main'];

$tpl->global_clear ();

?>
6. В файле bookreader.tpl такой код
<style>

body {

margin: 0px;

padding: 0px;

background: #999;

}

DIV.content1 {

        background: #999;

        font-size: 16px;

        margin: 0;

        padding-left: 5px;

        overflow: auto; 

        height: 94%;

}


.panel {

        background: #666666;

        font-size: 90%;

        margin: 0;

        padding: 2px;

        height: 5%;

}

</style>


<div class="panel">

asd

</div>

<div class="content1">

{blabla}

</div>

Теперь все вроде хорошо работает. При переходе на index.php?do=bookreader выходит абсолютно другой шаблон на страницу, но нужные мне глобальные переменные остаются на местах.

kangalexey, это для примера что бы меньше писать на форум.

5 пункт был о том что бы выводился абсолютно другой дизайн на странице.

celsoft, переделал по вашему совету, но проблема была в другом.

А по поводу обновления, мне было бы не влом переписать пару строк при обновлении. Тем более что модуль пишется только для себя. Но раз уж переделал и все работает то пускай все так и останется. Возможно позже и вправду пригодится.

Изменено пользователем blaga
Ссылка на сообщение
Поделиться на других сайтах

оказалось что работало все немного не так как хотелось бы. БЫли косяки в виде удвоения дизайна.

что бы исправить ошибку нужно исправить первый пункт.

1. Для того что бы по в этом скрипте мне выводить только свой дизайн я исправил main.tpl так:(main_all.tpl - там хранится основной шаблон сайта)

[aviable=bookreader]{include file="engine/modules/bookreader.php"} [/aviable]

[not-aviable=bookreader] {include file="main_all.tpl"} [/not-aviable]

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...