Изображение полного текста материала в качестве фона

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

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн kik84

В статейном разделе сайта каждый материал содержит "Изображение полного текста материала". Подскажите алгоритм действий, чтобы оно выводилось не просто в статье, а было фоновое, в идеале через background-image.

*

Оффлайн effrit

  • *****
  • 7438
  • [+]822 / [-]7
  • effrit.com
    • Просмотр профиля
    • effrit.com
переопределить шаблон вывода статьи.
посмотреть в папке со штатным beez - \beez3\html\com_content\article\
там оно получается через
$images->image_fulltext
переписываем шаблон, чтобы это значение выводилось в style="..."

это если фоном для блока со статьей.
если же надо его фоном всего документа сделать, тогда проще в индексном файле дергать ID стать и цеплять фоновое изображение с именем ID

*

Оффлайн kik84

если же надо его фоном всего документа сделать, тогда проще в индексном файле дергать ID стать и цеплять фоновое изображение с именем ID

Да, надо именно фон для всего документа. Вроде как работает:
$article_id = $app->input->getInt('id', '');
$img_background = "images/articles/img_{$article_id}.jpg";
и вывод
<div class="img_background" style="background-image: url(<?php echo $img_background; ?>);">

Получается, что заранее надо знать id, чтобы дать правильное имя файлу. А можно ли это сделать через image_fulltext, но в шаблоне?


*

Оффлайн effrit

  • *****
  • 7438
  • [+]822 / [-]7
  • effrit.com
    • Просмотр профиля
    • effrit.com
можно, только надо будет отдельный запрос в базу создавать, на сколько я понимаю.
что-то типа такого

// получаем интротекст для правой колонки если в режиме статьи
if($article_id){
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select($db->quoteName('introtext'))
->from($db->quoteName('#__content'))
->where('id = '. $db->Quote($article_id));

$db->setQuery($query);
$intro = $db->loadResult();
}

только вместо интротекст дергать изображение.
гугли )

*

Оффлайн kik84

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

// получаем интротекст для правой колонки если в режиме статьи
if($article_id){
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select($db->quoteName('introtext'))
->from($db->quoteName('#__content'))
->where('id = '. $db->Quote($article_id));

$db->setQuery($query);
$intro = $db->loadResult();
}

только вместо интротекст дергать изображение.
гугли )

Не осилил( Но код сохранил на будущее)

*

Оффлайн effrit

  • *****
  • 7438
  • [+]822 / [-]7
  • effrit.com
    • Просмотр профиля
    • effrit.com
блин, столько плюсов - должен быть уже умней меня! :)

@$article_id = (JRequest::getVar('option')==='com_content' && JRequest::getVar('view')==='article')? JRequest::getInt('id') : 0; // получаем ID статьи или 0

if($article_id){
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select($db->quoteName('images'))
->from($db->quoteName('#__content'))
->where('id = '. $db->Quote($article_id));

$db->setQuery($query);
$data = $db->loadResult();
$pics = json_decode($data);
echo $pics->image_fulltext;
}