На днях встретил этот замечательный хак для DLE в продаже, позже нашел его в паблике. Чтобы не забыть и чтобы потом его долго не искать, напишу его здесь… Править нужно всего три файла и займет это не более минуты. Его работоспособность мной проверена на 10.0. Подробнее в полной новости.

Открыть engine/modules/functions.php

Найти:

if( ! defined( 'DATALIFEENGINE' ) ) {

die( "Hacking attempt!" );

}

Ниже вставить:

function if_xfields ($fieldname, $fieldvalue, $text, $show = true) {
global $xfieldsdata;

$value_array = explode("|", $fieldvalue);

if ($show === true) {

if (count($xfieldsdata) > 0 AND isset($xfieldsdata[$fieldname]) AND in_array(strip_tags($xfieldsdata[$fieldname]), $value_array))
return stripslashes(htmlspecialchars_decode($text));
else
return false;
} elseif ($show === false) {

if (count($xfieldsdata) > 0 AND isset($xfieldsdata[$fieldname]) AND in_array(strip_tags($xfieldsdata[$fieldname]), $value_array))
return false;
else
return stripslashes(htmlspecialchars_decode($text));

} else
return false;

}

Открыть файл engine/modules/show.full.php

Найти (Который в конце файла, если их несколько, то последний):

        $tpl->compile( 'content' );

if( $user_group[$member_id['user_group']]['allow_hide'] ) $tpl->result['content'] = str_ireplace( "[hide]", "", str_ireplace( "[/hide]", "", $tpl->result['content']) );
else $tpl->result['content'] = preg_replace ( "#\[hide\](.+?)\[/hide\]#ims", "<div class=\"quote\">" . $lang['news_regus'] . "</div>", $tpl->result['content'] );

$news_id = $row['id'];
$allow_comments = $row['allow_comm'];

$allow_add = true;

if ( $config['max_comments_days'] ) {

ВЫШЕ вставить:

        $if_xf_hide = strpos($tpl->copy_template, "[if_xf_hide");
$if_xf = strpos($tpl->copy_template, "[if_xf");

if ($if_xf OR $if_xf_hide) {

if (count($xfieldsdata) == 0) $xfieldsdata = xfieldsdataload( $row['xfields'] );

if ($if_xf)
$tpl->copy_template = preg_replace ( "#\\[if_xf field=['\"](.+?)['\"] value=['\"](.+?)['\"]\\]([^\[]+)\\[/if_xf\\]#ies", "if_xfields('\\1', '\\2', '\\3')", $tpl->copy_template );
if ($if_xf_hide)
$tpl->copy_template = preg_replace ( "#\\[if_xf_hide field=['\"](.+?)['\"] value=['\"](.+?)['\"]\\]([^\[]+)\\[/if_xf_hide\\]#ies", "if_xfields('\\1', '\\2', '\\3', false)", $tpl->copy_template );

unset($xfieldsdata);
}

В шаблон fullstory.tpl вставить теги следующего вида:

[if_xf field="Имя поля" value="Значение которое оно должно принять"]Текст, который нужно вывести в случае, если указанное поле примет указанное значение[/if_xf]

И альтернативный ему:

[if_xf_hide field="Имя поля" value="Значение которое оно должно принять"]Текст, который будет скрыт, если указанное поле примет указанное значение[/if_xf_hide]

Пример сформированного тега:

[if_xf field="field" value="Да"]Текст Текст Текст Текст[/if_xf]

[if_xf_hide field="field" value="Нет"]Текст Текст Текст Текст[/if_xf_hide]

В коде некоторые символы режутся, прикрепляю файл с исходником

  Отображать или скрывать контент в зависимости от значения дополнительного поля (1,2 Kb, 413 загрузок)
Последнее обновление программы: 3 Январь 2014

Метки: , ,

Запись сделана 3 января 2014 в 8:50 и размещена в рубрике DLE/HTML/CSS/JS. Вы можете следить за комментариями через RSS 2.0 фид.
Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web Memori.ru Mister Wong Агентство Socialink korica.info Ваау! МоёМесто.ru News2.ru БобрДобр.ru feedblog sportexec.info

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

WordPress: 8.44MB | MySQL:70 | 1,037sec