Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Почему не работает rss канал сайта?

Почему не работает rss канал сайта?


     11.11.2014    Общие вопросы по PHP, Хаки    1351

вопрос
Использовал хак для возможности использования разных шаблонов коротких новостей на главной. Для этого в /engine/moodules/show.short.php после
while($row = $db->get_row($sql_result)){

вставил
$bds_tpl = $cat_info[$row['category']]['short_tpl'] ? $cat_info[$row['category']]['short_tpl'] : 'shortstory';
if ($bds_tpl != $bdssh)
{
$tpl->load_template($bds_tpl.'.tpl');
$bdssh = $bds_tpl;
}


и после
$row['category'] = intval( $row['category'] );

вставил
$cat_idd = $row['category'];
if( isset( $view_template ) and $view_template == "rss" ) {
}
elseif( $category_id and $cat_info[$category_id]['short_tpl'] != '' ) $tpl->load_template( $cat_info[$category_id]['short_tpl'] . '.tpl' );
elseif( $cat_idd and $cat_info[$cat_idd]['short_tpl'] != '' ) $tpl->load_template( $cat_info[$cat_idd]['short_tpl'] . '.tpl' );
else $tpl->load_template( 'shortstory.tpl' );


С шаблонами все работает, но вот перестал работать rss сайта, при переходе сайт/rss.xml получаем сообщение Template not found: /templates/shortstory.tpl. Может кто-то поможет исправить этот косяк хака?

Ответил: ПафНутиЙ


последний кусок кода должен быть таким:
$cat_idd = $row['category'];
if( $category_id and $cat_info[$category_id]['short_tpl'] != '' ) {
    $tpl->load_template( $cat_info[$category_id]['short_tpl'] . '.tpl' );
} elseif( $cat_idd and $cat_info[$cat_idd]['short_tpl'] != '' ) {
    $tpl->load_template( $cat_info[$cat_idd]['short_tpl'] . '.tpl' );
} else {
    $tpl->load_template( 'shortstory.tpl' );
}

Комментарии пользователей (2)

morefilms
57 | 3

morefilms - 11 ноября 2014 23:57 - Юзер

ПафНутиЙ, к сожалению, ничего не изменилось, версия дле у меня 10.0

morefilms
57 | 3

morefilms - 12 ноября 2014 01:05 - Юзер

Нашел другой способ, с ним rss работает, пока не увидел косяков других. Может кому еще пригодится:
Находим:
$news_found = FALSE;

Ниже вставляем:
$short_main = FALSE;

Находим:
       else $tpl->load_template( 'shortstory.tpl' );

Заменяем на:
        else
        {
            if ( $category_id ) $tpl->load_template( 'shortstory.tpl' );
            else
            {
                $template = get_vars( 'template' );

                    
                if ( ! $template )
                {
                    $template = array ( );
                    
                    foreach( $cat_info as $key => $value )
                    {
                        if ( $cat_info[$key]['short_tpl'] != '' AND file_exists( $tpl->dir . DIRECTORY_SEPARATOR . $cat_info[$key]['short_tpl'] . '.tpl' ) )
                            $template[$key] = file_get_contents( $tpl->dir . DIRECTORY_SEPARATOR . $cat_info[$key]['short_tpl'] . '.tpl' );
                    }
                    
                    if ( file_exists( $tpl->dir . DIRECTORY_SEPARATOR . 'shortstory.tpl' ) ) $template[0] = file_get_contents( $tpl->dir . DIRECTORY_SEPARATOR . 'shortstory.tpl' );
                    else die( 'Не возможно загрузить shortstory.tpl' );
                    
                    set_vars( 'template', $template );
                }
                
                $short_main = true;
            }
        }

Находим:
        while ( $row = $db->get_row( $sql_result ) ) {

Ниже вставляем:
        if ( $short_main )
        {
            if ( isset( $template[intval( $row['category'] )] ) ) $tpl->copy_template = $template[intval( $row['category'] )];
            else $tpl->copy_template = $template[0];
            
            if ( ! $xfound AND ( strpos( $tpl->copy_template, "[xfvalue_" ) !== false OR strpos( $tpl->copy_template, "[xfgiven_" ) !== false ) )
            {
                $xfound = true;
                $xfields = xfieldsload();
            }
        }

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

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