Forums / National / Russian / Тех. поддержка / Проблема вывода информации в тег

prostogorod
#1 2025-02-18 17:32

Cotonti релиз 0.9.25. В предыдущих версиях кота, все отлично работало. Перестал работать тег вывода информации

$all_text .= $t1->text('MAIN');

Есть такая конструкция:

$m = cot_import('m', 'G', 'ALP');
if (!isset($m) || empty($m)) { 
    $m = 'all'; 
}

require_once cot_incfile('page', 'module');

if( $m == 'all' ){
   
    $t1 = new XTemplate(cot_tplfile(array('page', 'profile', 'all'), 'module'));
    .... 

    $t1->parse('MAIN');
    $all_text .= $t1->text('MAIN');
	
}

elseif( $m == 'articles' ){

    $t1 = new XTemplate(cot_tplfile(array('page', 'profile', 'articles'), 'module'));
    
    ....

    $t1->parse('MAIN');
    $t->assign('PROFILE_CONTENT', $t1->text('MAIN'));

}

 

Вся информация выводится в тег {PROFILE_CONTENT} при любых значения переменой $m.  Если  $m == 'articles' то все работает отлично.  Вся проблема в $all_text .= $t1->text('MAIN');  Происходит вывод пустого шаблона. Помогите, пожалуйста, ни как не могу решить проблему. Спасибо!


Dit bericht is bewerkt door prostogorod (2025-02-18 22:37, 3 maanden ago)
Kabak
#2 2025-02-18 19:07

А где выводится $all_text ?  В эту переменную добавляется $t1->text('MAIN'); 

, но где $all_textзагоняется в шаблон $t ?

 

может так будет лучше 

if( $m == 'all' ){
 
    .... 
 
    $t1->parse('MAIN');

    $all_text .= $t1->text('MAIN');
    $t->assign('PROFILE_CONTENT', $all_text);

// или сразу не добавляя всё в $all_text
$t->assign('PROFILE_CONTENT', $t1->text('MAIN'));

}
 
elseif( $m == 'articles' ){
     
    ....
 
    $t1->parse('MAIN');
    $t->assign('PROFILE_CONTENT', $t1->text('MAIN'));
 
}

 

prostogorod
#3 2025-02-18 22:19
#48232 Kabak:

А где выводится $all_text ? 

В том то и дело  в предыдущих версиях кота, все отлично работало.

 

Нет, не работает. Так, также выводит пустой шаблон страницы.

$t1->parse('MAIN');
 
$all_text .= $t1->text('MAIN');
$t->assign('PROFILE_CONTENT', $all_text);

А так, вообще ничего не выводит.

$t1->parse('MAIN');
$t->assign('PROFILE_CONTENT', $t1->text('MAIN'));

 

Kabak
#4 2025-02-19 06:13

Нужно в отладчике смотреть что содержит $t1->text('MAIN');

в разных вариациях if( $m == 'all' ) и elseif( $m == 'articles' )

Я не вижу другого пути.  К сожалению, нужно видеть всю логику работы программы чтобы тут что-то советовать.

Запускайте отладчик и по шагам анализируйте что содержат перменные и почему.

Kort
#5 2025-02-19 06:57

Возможно изменилась версия PHP, а $all_text до этого не была определена и ошибки заглушены? Попробуй просто

...
$all_text = $t1->text('MAIN');
...

 

SED.by - создание сайтов, разработка плагинов и тем для Котонти
prostogorod
#6 2025-02-19 14:41

Всем спасибо!  Все-таки проблема в формирование названия tpl-файла для вывода информации. Теперь все работает!


Dit bericht is bewerkt door prostogorod (2025-02-19 18:58, 3 maanden ago)