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

prostogorod
#1 18.02.2025 17:32

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

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

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

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$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');  Происходит вывод пустого шаблона. Помогите, пожалуйста, ни как не могу решить проблему. Спасибо!

Отредактировано: prostogorod (18.02.2025 22:37, 3 месяца назад)
Kabak
#2 18.02.2025 19:07

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

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

 

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

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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 18.02.2025 22:19
#48232 Kabak:

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

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

 

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

PHP
1
2
3
4
$t1->parse('MAIN');
  
$all_text .= $t1->text('MAIN');
$t->assign('PROFILE_CONTENT', $all_text);

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

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

 

Kabak
#4 19.02.2025 06:13

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

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

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

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

Kort
#5 19.02.2025 06:57

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

PHP
1
2
3
...
$all_text = $t1->text('MAIN');
...

 

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

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

Отредактировано: prostogorod (19.02.2025 18:58, 3 месяца назад)