Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Какой правильный код вывода доп полей в другом файле?

Какой правильный код вывода доп полей в другом файле?


     23.12.2020    dle    Все вопросы » Общие вопросы    821

вопрос
Здравствуйте, есть php файл модуля ufav, пытаюсь вывести в шаблоне доп поля загружаемого изображения, вот сам код

<?php
if(!defined('DATALIFEENGINE')){die("Hacking attempt!");}
//==========================================================================
$m = "20"; //Длинна заголовка
$v = "25"; //Длинна описания
$f = "8"; //Количество публикаций
$n = "<div class='errorfav'>Здесь будут отображаться приложения, которые вы добавили в <a href='/favorites'>Избранное</a>.</div>"; //Если у юзера нету закладок
//==========================================================================
if( ! defined( 'DATALIFEENGINE' ) ) {die( "Hacking attempt!" );}$is_change = false;if ($config['allow_cache'] != "yes") {$config['allow_cache'] = "yes";$is_change = true;}$uFav = dle_cache( "uFav", $config['skin'] );
if($member_id['favorites'] > 0) {$db->query("SELECT * FROM " . PREFIX . "_post WHERE id IN ({$member_id['favorites']}) ORDER BY date DESC LIMIT 0,$f");while ($row = $db->get_row()){$message = substr( stripslashes (strip_tags($row['short_story'], '')), 0,$v )."...";if(dle_strlen($row['title'], $config['charset']) > $m){$title = dle_substr($row['title'], 0, $m, $config['charset']) . "...";} else {$title = $row['title'];}$shortnews = $row['short_story'];$noscreen = $s;if ($member_id['favorites']) {$favorites = count(explode("," ,$member_id['favorites']));} else $favorites = '0';if (preg_match_all('#]*\\ssrc=(\'|")(.*?)\\1.*?>#i',$shortnews,$total))foreach( $total[2] as $shortnews ){$tpl->set( '{screen}',$shortnews);} else {$tpl->set( '{screen}',$noscreen);}$tpl->load_template('ufav_skin.tpl');
$tpl->set( '[delete]', "<li><a id=\"fav-id-{$row['id']}\" href=\"$PHP_SELF?do=favorites&doaction=del&id={$row['id']}\">" );$tpl->set( '[/delete]', "</a></li>" );$tpl->set('{news_id}', $row['id']);$tpl->set('{url-link}', $config["http_home_url"]."index.php?newsid=".$row['id']);$tpl->set('{title}', $title);$tpl->set('{text}', $shortnews);$tpl->set('{message}', $message);$tpl->compile('uFav');$tpl->clear();}$db->free();create_cache("uFav", $uFav, $config['skin']);echo $top;echo $tpl->result['uFav'];}else {echo $n;}if ($is_change) $config['allow_cache'] = false;
?>


Пробовал добавить код сандера после $tpl->load_template('ufav_skin.tpl');
if( strpos( $tpl->copy_template, "[xfvalue_" ) !== false AND !empty($xfieldsdata) AND !empty($xfields)) {
    foreach ( $xfields as $value ) {
        $preg_safe_name = preg_quote( $value[0], "'" );
        if( empty( $xfieldsdata[$value[0]] ) ) $tpl->copy_template = preg_replace( "'\\[xfgiven_{$preg_safe_name}\\](.*?)\\[/xfgiven_{$preg_safe_name}\\]'is", "", $tpl->copy_template );
        else $tpl->copy_template = preg_replace( "'\\[xfgiven_{$preg_safe_name}\\](.*?)\\[/xfgiven_{$preg_safe_name}\\]'is", "\\1", $tpl->copy_template );
        $tpl->copy_template = str_replace( "[xfvalue_{$preg_safe_name}]", stripslashes( $xfieldsdata[$value[0]] ), $tpl->copy_template );
    }
}else $tpl->copy_template = preg_replace( "'\\[xfgiven_{$preg_safe_name}\\](.*?)\\[/xfgiven_{$preg_safe_name}\\]'is", "", $tpl->copy_template );


Но не работает, подскажите как решить вопрос

Ответа пока нет


5 комментариев

Vital555
Юзер

Vital555 - 23 декабря 2020 10:28 -

Можно что бы [catlist= еще работал

New-dev.ru
Эксперт

New-dev.ru - 24 декабря 2020 10:42 -

Попробуйте добавить перед вашей строкой
if( strpos( $tpl->copy_template, "[xfvalue_" ) !== false AND !empty($xfieldsdata) AND !empty($xfields)) {
этот код
$xfields = xfieldsload();
if( count($xfields) ) $xfieldsdata = xfieldsdataload( $row['xfields'] );

Astral
Юзер

Astral - 24 декабря 2020 10:56 -

К сожалению не дало результата, в коде выводится само доп поле из шаблона

New-dev.ru
Эксперт

New-dev.ru - 24 декабря 2020 11:14 -

Кэш сбрасывали? Посмотрите также что в переменных $xfields и $xfieldsdata

Astral
Юзер

Astral - 24 декабря 2020 11:21 -

Да сбрасывал, в этом доп поле у меня у новости идет иконка, Тип поля: загружаемое изображение

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 06.03.2014 vip.boss  Общие вопросы
наверх