Хак Transfer для DLE


Хак Transfer - глобализация тегов DLE позволяет выводить информацию из загружаемого шаблона в dle в самом шаблоне, но и в других шаблонах DataLife Engine подгружаемых для данной страницы. Глобализация тегов хак для dle созданный автором rocksmart с помощью универсального значения "transfer", сделает возможным выводить теги работающие только в полной новости, в топ новости (Topnews) шаблоне и других.
Плюсы:
+ Можно будет выводить данные всех тегов которые присутствуют в данном шаблоне в других шаблонах загружаемых на данной странице.

Итак, установка:
Редактировать будем 3 файла.

Открываем 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/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);


Открываем файл /engine/classes/parse.class.php для защиты ставим:
После строки:

$source = str_ireplace( "{custom", "{custom", $source );


Вставляем:

$source = str_ireplace( "{transfer", "{transfer", $source );


Теперь рассмотрим применения:

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

Например:
в fullstory.tpl
в любом месте прописываем:

[transfer=views]Просмотров: {views}[/transfer]


В любом нужном нам месте main.tpl прописываем:

{transfer_views}


А дальше ваша фантазия для написания и добавления тегов по шаблону дле.

Код в fullstory такой был:

 [transfer=title]{title}[/transfer]
                     [transfer=tags]{tags}[/transfer]
                [transfer=views]Просмотров: {views}[/transfer]
                  [transfer=data]Дата: [day-news]{date}[/day-news][/transfer]
                    [transfer=comments-num][com-link]<b>{comments-num}</b>[/com-link][/transfer]
                 [transfer=rate] [rating]<div class="rating">{rating}</div>[/rating][/transfer]
            	[transfer=fullimages]


В main.tpl выводил так:

{transfer_views} фильма {transfer_title}</ul>
           <ul class="topnews">     {transfer_data}</ul>
    <ul class="topnews">Получил комментариев: {transfer_comments-num}</ul>
     <ul class="topnews">Рейтинг: {transfer_rate}</ul>
    {transfer_fullimages}
  {transfer_tags}


В main.tpl можно вывести и всю статистику но при просмотре статистики!
Так же теги профиля при просмотре профиля!

Примечание для разработчиков:
При написании новых модулей или скриптов не использовать в коде компиляцию массива с ключем "transfer", так как он объявляется автоматически
$tpl->compile ( 'transfer' );


Автор: rocksmart
Скачать хаки для дле, как Transfer вывод тегов работающие только в полной новости, в топ новости (Topnews) шаблоне

Hak-Transfer-globalizaciya-tegov-DLE.rar [138,75 Kb] (cкачиваний: 72)
  • 60
Добавить комментарий

Оставить комментарий

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent