» » » Transfer [DLE 9.x - 10.x]

Transfer [DLE 9.x - 10.x]

Название:
Автор: rocksmart
CMS: DLE

Описание:
Данный хак позволяет вывести информацию из загружаемого шаблона в dle , не только в самом шаблоне, но и в других шаблонах подгружаемых для данной страницы.

Установка:
Открываем /engine/classes/templates.class.php:

После строки:
class dle_template {


Вставить:
var $transfer = array ();


После функции:
function get_real_time() {
list ( $seconds, $microSeconds ) = explode( ' ', microtime() );
return (( float ) $seconds + ( float ) $microSeconds);
}


Вставить:
/* Глобализация данных хак "transfer" create by rocksmart */
function transfer_result($matches=array()){
$index = $matches[2];
$itsdata = $matches[3];
$this->transfer[$index] = $itsdata;
}


В этом же файле найти строку:
if( isset( $this->result[$tpl] ) ) $this->result[$tpl] .= $this->copy_template;
 else $this->result[$tpl] = $this->copy_template;


Над ней вставить
/* Глобализация данных хак "transfer" create by rocksmart */
if (strpos ($this->template, "[transfer=" ) !== false) {
preg_replace_callback( "#\\[(transfer)=(.+?)\\](.*?)\\[/transfer\\]#is",array( &$this, 'transfer_result'),$this->copy_template);
foreach($this->transfer as $index => $itsdata){
$this->result['transfer'][$index][] = $itsdata;
}}$this->copy_template = preg_replace ( "#\\[(transfer)=(.+?)\\](.*?)\\[/transfer\\]#is","",$this->copy_template);


В index.php:
Над строкой
echo $tpl->result['main'];


Вставить:
/* Глобализация данных хак "transfer" create by rocksmart */
if(count($tpl->result['transfer'])>0){foreach($tpl->result['transfer'] as $index => $itsdata){
$tpl->result['main'] = str_replace ( '{transfer_'.$index.'}', implode($itsdata), $tpl->result['main'] );
}}$tpl->result['main'] = preg_replace( "#\\{transfer_(.+?)\\}#i", "",$tpl->result['main']);


/engine/classes/parse.class.php для защиты вставим:

После строки:
$source = str_ireplace( "{custom", "{custom", $source );


Вставить:
$source = str_ireplace( "{transfer", "{transfer", $source );


Установка закончена!


FAQ:
Для записи в буфер (глобальные) рассмотрим вариант трансфера для шаблона fullstory.tpl

[transfer=Уникальный идентификатор]какой либо текст с тегами соответствующими данному шаблону[/transfer]


Например я хочу вывести картинки данной новости в не шаблона fullstory.tpl.

В fullstory.tpl вставить:
[transfer=fullimages]<ul>
<li><img src="{image-1}" /></li>
<li><img src="{image-2}" /></li>
<li><img src="{image-3}" /></li></ul>
[/transfer]


В main.tpl прописываем следующий код:
{transfer_fullimages}


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

Комментарии

4

JacobClyne

Посетители 12 марта 2014 10:26
Это же шедевр :О спасибо огромное
4
а это сработает например с комментариями в краткой новости??

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.