Новости Joomla

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™. Интервью с волонтёрами 🎈Ну что, друзья, вот и настал этот долгожданный момент. Мы выпустили первое издание собственного журнала под эгидой NorrNext, который включает в себя интервью с видными деятелями сообщества из разных стран и континентов.Общий нарратив: показать, что нас объединяет (Joomla) и узнать больше о людях, которые вносят свой вклад в развитие платформы в своих сообществах. 20 лет — это много. Давайте же узнаем о коллегах 🎁 Первый цикл включает такие страны, как Австрия, Испания, Латвия, Россия, Румыния, Тайланд, Черногория, Чехия.⚙️ С кем интервью: ✔️ Владимир Елисеев 🇷🇺✔️ Дмитрий Рекун 🇱🇻✔️ Дмитрий Цымбал 🇷🇺✔️ Евгений Сивоконь 🇷🇺 ✔️ Сергей Толкачёв 🇷🇺✔️ Dénes Székely 🇷🇴✔️ Jan Pavelka 🇨🇿✔️ Miljan Vujosevic 🇲🇪✔️ Sergio Iglesias 🇪🇸✔️ Sigrid Gramlinger 🇦🇹✔️ Pisan Chueatchatchai 🇹🇭‼️ Новые интервью будут добавляться до конца декабря 2025. Заходите по ссылке время от времени💡👉 Читать далее

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

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Товарищи, в настройках каждой категории мы можем добавить изображение для этой категории.
И в шаблоне, например блога категории, вывод этого изображения делается вот так:

Код
<?php if ($this->params->get('show_description_image') && $this->category->getParams()->get('image')) : ?>
<img src="<?php echo $this->category->getParams()->get('image'); ?>" alt="<?php echo htmlspecialchars($this->category->getParams()->get('image_alt'), ENT_COMPAT, 'UTF-8'); ?>"/>
<?php endif; ?>

Как то же самое сделать внутри index.php шаблона?

Определять, что  в данный момент отображается категория, я умею:
Код
function showPage($x = array()){ return array_intersect_assoc($x,  $_REQUEST) == $x; }
if (showPage(array('option' => 'com_content', 'view' => 'category'))) { ... }

Но как добраться до остальных параметров категории я пока не знаю.
Заранее спасибо всем, кто может объяснить, как это делается.
« Последнее редактирование: 12.07.2024, 16:11:42 от goga_pgasovav »
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Немного продвинулся в этой задаче:

Код
<?php if (showPage(array('option' => 'com_content', 'view' => 'category'))) {

$cat_id = $app->input->getInt('id', 0);
$db = JFactory::getDbo();
$query = $db
    ->getQuery(true)
    ->select($db->quoteName('params'))
    ->from($db->quoteName('#__categories'))
    ->where($db->quoteName('id'). ' = ' .$cat_id);
$db->setQuery($query);
$params = $db->loadObjectList();
var_dump($params);
} ?>

В var_dump() получаю такой объект:

Код
object(stdClass)#878 (1) {
  ["params"]=>
  string(108) "{"category_layout":"","image":"images\/backgrounds\/Bildschirmfoto_2024-06-06_um_191317.png","image_alt":""}"
}

А что делать дальше не знаю   !!!???!!!

*

fbr

  • Завсегдатай
  • 1677
  • 208 / 7
попробуйте так:
$params = json_decode($params);
$my_img = $params->image;
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
попробуйте так:
$params = json_decode($params);
$my_img = $params->image;
Спасибо! Пробовал json_decode, ничего не выводит.

Попробовал ещё explode, предварительно заменив LoadObject на LoadResult в getDbo() запросе.
Код
$param = explode(',', $params);
echo $param[1];

Получаю опять строку:
Код
"image":"images\/backgrounds\/Bildschirmfoto_2024-06-06_um_191317.png"
  :dry:
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
В итоге домучал до вот такого, на мой взгляд совсем некрасивого, решения:

Код
//get category image
if (showPage(array('option' => 'com_content', 'view' => 'category'))) {
$cat_id = $app->input->getInt('id', 0);
$db = JFactory::getDbo();
$query = $db
    ->getQuery(true)
    ->select($db->quoteName('params'))
    ->from($db->quoteName('#__categories'))
    ->where($db->quoteName('id'). ' = ' .$cat_id);
$db->setQuery($query);
$params = $db->loadResult();
$param = explode(',', $params);
$bckgrnd = str_replace(str_split('\\"'), '', explode(':', $param[1])[1]);
}

Таким образом я получаю из параметра image путь к изображению категории.
Естественно можно получить другой параметр, указав его номер вместо первого '[1]'.

Далее, в нужном месте выводим это изображение в виде фона.
В моём случае я этот фон вешаю на wrapper верхнего уровня, т.е. <body>.

Код
<body<?php if ($bckgrnd != null) { echo ' style="background-image: url('.$bckgrnd.');"'; } ?>>

Возможно кто-то знает, как сделать оптимальнее, и без getDbo(), буду признателен.
*

fbr

  • Завсегдатай
  • 1677
  • 208 / 7
у меня работает вот так
Код
<?php function showPage($x = array()){ 
return array_intersect_assoc($x,  $_REQUEST) == $x;
}
if (showPage(array('option' => 'com_content', 'view' => 'category'))) {

$cat_id = $app->input->getInt('id', 0);
$db = JFactory::getDbo();
$query = $db
    ->getQuery(true)
    ->select($db->quoteName('params'))
    ->from($db->quoteName('#__categories'))
    ->where($db->quoteName('id'). ' = ' .$cat_id);
$db->setQuery($query);
//$_params = $db->loadObjectList();
$_params = $db->loadResult();
var_dump($_params);
$dfd = json_decode($_params);
$myimg = $dfd->image;
echo '<p>' . $myimg . '</p>';
} ?>
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Спасибо! Так действительно оптимальнее, хотя я думал как-то обойтись без getDbo().
Итоговый вариант:

Код
function showPage($x = array()){ return array_intersect_assoc($x,  $_REQUEST) == $x; }
if (showPage(array('option' => 'com_content', 'view' => 'category'))) {
    $cat_id = $app->input->getInt('id', 0);
    $db = JFactory::getDbo();
    $query = $db
        ->getQuery(true)
        ->select($db->quoteName('params'))
        ->from($db->quoteName('#__categories'))
        ->where($db->quoteName('id'). ' = ' .$cat_id);
    $db->setQuery($query);
    $params = json_decode($db->loadResult());
    $bckgrnd = str_replace(str_split('\\"'), '', $params->image);
}

str_replace и str_split выполняются для того, чтобы привести в порядок url изображения
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Вывод значений из custom fields материала в модуле по имени поля

Автор goga_pgasovav

Ответов: 3
Просмотров: 1453
Последний ответ 30.12.2024, 13:22:11
от goga_pgasovav
sp easy image gallery размножает фотки

Автор yalo

Ответов: 0
Просмотров: 555
Последний ответ 09.12.2024, 23:10:08
от yalo
[Решено] Перестали работать переходы по меню сайта

Автор AlexP750

Ответов: 12
Просмотров: 2083
Последний ответ 06.02.2024, 12:42:26
от AlexP750
Блог | Тайтл, description подкатегории

Автор darkghost

Ответов: 0
Просмотров: 619
Последний ответ 02.02.2024, 22:25:53
от darkghost
Получить ошибку

Автор KevinSimon

Ответов: 0
Просмотров: 656
Последний ответ 22.09.2023, 15:20:21
от KevinSimon