Вставить переменную в блок на главной.

  • 5 Ответов
  • 88 Просмотров

kusakov

  • Сообщений: 5
    • Просмотр профиля
Здравствуйте! Подскажите пожалуйста... :-[
На главной у нас есть блок с выводом новых фоток. Понадобилось в этом блоке вывести не только переменную title в шаблоне photos/thumb.tpl, но и переменную subtitle. Как это реализовать? Помогите пожалуйста!
« Последнее редактирование: 16 Июня 2022, 14:39:01 от kusakov »

Neon

  • Сообщений: 931
    • Просмотр профиля
    • Danneo CMS
Re: Вставить переменную в блок на главной.
« Ответ #1 : 16 Июня 2022, 15:02:51 »
В блоке block/b-Photos.php добавить переменную subtitle.
// Вывод
$content[] = $tm->parse(array
              (
                  'title'     => $api->siteuni($item['title']),
                  'date'      => $ins['public'],
                  'thumb'     => $item['image_thumb'],
                  'alt'       => $ins['alt'],
                  'url'       => $ins['url'],
                  'author'    => $ins['author'],
                  'langrate'  => $lang['all_rating'],
                  'titlerate' => $ins['title_rate'],
                  'rating'    => $ins['rate'],
                  'langhits'  => $lang['all_hits'],
                  'hits'      => $item['hits'],
                  'comment'   => $lang['comment_total'],
                  'count'     => $ins['count']
              ),
              $ins['template']);
Добавить в вывод строку, ниже title
'subtitle'  => $api->siteuni($item['subtitle']),
И далее в шаблон: template/Modern/mod/photos/thumb.tpl,  добавить переменную {subtitle}
<h4 class="hyphenate">{subtitle}</h4>
Для более органичного представления html-теги оформления можно создать свои.
DANNEO ™

kusakov

  • Сообщений: 5
    • Просмотр профиля
Re: Вставить переменную в блок на главной.
« Ответ #2 : 16 Июня 2022, 15:08:56 »
Я это делал. К сожалению, не выводит. Мне нужно,чтобы это он брал из таблицы _photos. Попробовал добавить переменную $test='123456'; Все прекрасно выводит. А этот субтитл не хочет на главноой в блоке выводить...(((
Вместо {subtitle} в шаблоне пустое место.Хотя в таблице данные есть.
« Последнее редактирование: 16 Июня 2022, 15:20:51 от kusakov »

Neon

  • Сообщений: 931
    • Просмотр профиля
    • Danneo CMS
Re: Вставить переменную в блок на главной.
« Ответ #3 : 16 Июня 2022, 17:58:49 »
В настройках блока, поле "Мод для вывода" => photos
Кроме этого, для каждого фото при добавлении/редактировании должно быть заполнено поле "Подзаголовок".
Иначе, будет пусто.
DANNEO ™

kusakov

  • Сообщений: 5
    • Просмотр профиля
Re: Вставить переменную в блок на главной.
« Ответ #4 : 20 Июня 2022, 07:51:23 »
Никак не выводит этот subtitle. Photos в настройках блока стоит. При добавлении фотографии Подзаголовок добавляю. Все равно при выводе пустота.
На последнем вложении подзаголовок {subtitle} прописан после "_". Т.е. должно получится Заголовок_Подзаголовок.

P.S. Попробовал также для интереса вставлять в файл b-photos.php переменные cpu, image и другие, а в вывод на главной в блоке ставил {cpu}, {image}
Текст из этих калонок таблицы все прекрасно выводит. Не выводится только этот subtitle. Такое ощущение как раз, что оно не выводится из-за того, что в каком-то sql запросе selekt from photos нет как раз запроса на вывод этого subtitle в блок на главной странице.
Хотя если перейти на полную фотку из этого блока, то субтитл выводится без проблем....(((

P.P.S.
Волшебство какое-то.... Попробовал в таблицу _photos добавить новый столбец podzagolovok типом varchar 255. Потом в файлике b-photos.php добавил 'podzagolovok'  => $api->siteuni($item['podzagolovok']),
В блоке вывода соответственно поставил {podzagolovok}. В phpmyadmin в этой таблице просто прописал руками test. Выводит прекрасно всё! А вот из столбца subtitle никак не выводит! Мистика какая-то!

P.P.P.S.
Решил кардинально сделать ход конем. В admin/mod/photos/index.php добавил переменную $podzagolovok. Добавил новое поле при добавлении фотографии. Данные в столбец podzagolovok заносятся прекрасно. И в thumb.tpl сделал вывод этой переменной {podzagolovok}
Все работает прекрасно.Результат достигнут. Но subtitle так и не выводится ))))
« Последнее редактирование: 20 Июня 2022, 09:26:05 от kusakov »

Neon

  • Сообщений: 931
    • Просмотр профиля
    • Danneo CMS
Re: Вставить переменную в блок на главной.
« Ответ #5 : 21 Июня 2022, 18:46:36 »
Да, в этом блоке сложный запрос, одновременно из двух таблиц '_photos' и '_photos_cat'.
Поля 'subtitle' присутствуют в обоих таблицах, и они пересекаются.
Нужно просто конкретизировать запрос.
Из таблицы с категориями нам не нужны все поля, а только 'catcpu', которое используется для формирования ссылки.
Замените
	$inq = $db->query
(
"SELECT a.*, b.* FROM ".$basepref."_".$bs['mod']." AS a
LEFT JOIN ".$basepref."_".$bs['mod']."_cat AS b ON (a.catid = b.catid)
WHERE".$cats." a.act = 'yes' ORDER BY ".(($bs['random'] == 'yes') ? 'MD5(RAND())' : $bs['sort'].' '.$bs['order'])." LIMIT ".$bs['col']
);
На
	$inq = $db->query
(
"SELECT a.*, b.catcpu FROM ".$basepref."_".$bs['mod']." AS a
LEFT JOIN ".$basepref."_".$bs['mod']."_cat AS b ON (a.catid = b.catid)
WHERE".$cats." a.act = 'yes' ORDER BY ".(($bs['random'] == 'yes') ? 'MD5(RAND())' : $bs['sort'].' '.$bs['order'])." LIMIT ".$bs['col']
);
Почему не полностью текст выводится не знаю, возможно, просто не вмещается в разметку блока.
Судя по скриншоту, он достаточно узкий.
DANNEO ™