Новости Joomla

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

goga_pgasovav

  • Захожу иногда
  • 385
  • 4 / 0
  • Внимательный джумловод
Всех с Наступающим!
Возникла экстренная задача: добавить одно дополнительное текстовое поле для категории.
Постоянно пользуюсь Custom Field для материалов, но как провернуть подобное для категорий понятия не имею?
Может у кого-то есть мысли по этому поводу?

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

Всех заранее благодарю!
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Плагина не знаю, можно хардкодно через доп поле в базе данных и пару строк кода в файлах (придется их обновлять при общем обновлении движка, но это не страшно).
Штатного материала для доп полей к категории не встречал, видимо нет его вообще.
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

zikkuratvk

  • Глобальный модератор
  • 4818
  • 344 / 2
  • Обслуживаем проекты - дорого.
Плагина не знаю, можно хардкодно через доп поле в базе данных и пару строк кода в файлах (придется их обновлять при общем обновлении движка, но это не страшно).
Штатного материала для доп полей к категории не встречал, видимо нет его вообще.
В базовых полях есть sql поле, можно сделать любую выборку из базы.
В целом по аналогии можно сделать https://docs.joomla.org/SQL_form_field_type
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
В базовых полях есть sql поле, можно сделать любую выборку из базы.
В целом по аналогии можно сделать https://docs.joomla.org/SQL_form_field_type
ТС хотел сделать доп поле для категории, а не материала, не прокатит, да и при чем тут выборка из базы. Доп поля только для материалов, не для категорий
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

goga_pgasovav

  • Захожу иногда
  • 385
  • 4 / 0
  • Внимательный джумловод
beliyadm, спасибо, что отозвались.
Видимо действительно нет плагина для подобных целей. Довольно долго искал, читал забугорные форумы, и всё бестолку...
Хардкорности, конечно, именно в данном вопросе не хотелось, но видимо придётся именно так сделать.
Попробую разобраться.
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
для категорий возможно подойдёт это: https://github.com/JPathRu/attributes
набор типов полей ограничен и нерасширяем, но вполне применимо для простейших задач
*

zikkuratvk

  • Глобальный модератор
  • 4818
  • 344 / 2
  • Обслуживаем проекты - дорого.
ТС хотел сделать доп поле для категории, а не материала, не прокатит, да и при чем тут выборка из базы. Доп поля только для материалов, не для категорий
Ну какая разница добавит пускай поле в категории, не вижу проблем, они поддерживаются из коробки.

https://s.mail.ru/2LRy/BxoN2y6cD - для тех кто не в курсе :-)
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

goga_pgasovav

  • Захожу иногда
  • 385
  • 4 / 0
  • Внимательный джумловод
zikkuratvk
Век живи — век учись!  :D
Нереальная благодарность! Понятия не имел о таком функционале из коробки :o
*

goga_pgasovav

  • Захожу иногда
  • 385
  • 4 / 0
  • Внимательный джумловод
Итак, продолжаем борьбу!  ^-^
Создал категорию полей для категории, создал парочку полей в ней.
Всё появилось в соотв. вкладочке. Вбил данные в поля.
Но вот беда: вывести эти данные тем же способом, что я вывожу в материале, увы, не выходит!

В начале шаблона blog.php пишу такое:

Код
$myCustomFields = array();
foreach($this->category->jcfields as $jcfield) {
    $myCustomFields[$jcfield->name] = $jcfield->value;
}

Теперь в нужном месте пишу:

Код
<?php if (isset($myCustomFields['page-h1']) and !empty($myCustomFields['page-h1'])) { ?>
        <h1><?php echo $myCustomFields['page-h1']; ?></h1>
<?php } ?>

И ничего не выводится.
var_dump($myCustomFields) возвращает 'array(0) { }'

У кого-то будут предположения, что я делаю не так?  :'(
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Кстати тоже не знал про доп поля категорий, даже не заглядывал в этот селект, плюс zikkuratvk добавил

Можно сделать проще и хардкодно (все равно нативный код тащит запрос в базу, так что лишней нагрузки не будет)
В шаблоне blog.php пишите
Код
    $db	= JFactory::getDBO();
$query = '
select *
from #__fields_values as fv
where fv.item_id = "'.$this->category->id.'"
';
$db->setQuery($query);
    $rows = $db->loadObjectList();
    foreach ($rows as $row) {
    switch ($row->field_id)
{
case '3':
    $fieldtest = $row->value;
    break;
}
    }
    echo $fieldtest;

Где $row->field_id == 3 это ID доп поля категории (ну или материала, смысл один) и выводите переменную $fieldtest в нужном месте. Если несколько доп полей - делаете несколько кейсов с соответствующими ID полей
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

goga_pgasovav

  • Захожу иногда
  • 385
  • 4 / 0
  • Внимательный джумловод
beliyadm, спасибо!
Я уже сам сделал нечто подобное запросом к БД. Может конечно не так изящно )

Код
$cat_id = $this->category->id;
$db = &JFactory::getDBO();
$id = JRequest::getString('id');
$db->setQuery("SELECT value FROM #__fields_values WHERE item_id = '$cat_id' AND field_id = '28'");
$params = $db->loadResult();

Подсмотрел в phpMyAdmin, что ID моего поля = 28.

Тут конечно не даёт покоя вопрос: почему же для категории не работает стандартное обращение к полю по его имени, что прекрасно работает в материале?
Недоработка разработчиков Joomla?
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Я уже сам сделал нечто подобное запросом к БД. Может конечно не так изящно
Нормальный запрос, но - если поле только одно, если несколько (по аналогии с материалов аля каталог - лучше таскать не по ID поля, а по ID материала в массив).

Почему не работает - даже знать не хочу, мне нативный подход не нравится. В любом случае он тоже делает запрос к БД и при этом не самый оптимальный. Так что в плане нагрузки мы ничего в данном подходе не усугубляем, зато полностью контролируем ситуацию ))

Подсмотрел в phpMyAdmin, что ID моего поля = 28.
Это видно в админке, в разделе полей столбец ID справа в таблице (ну или в режиме редактирования в урле будет), для этого в базу лазить излишне
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
даже знать не хочу, мне нативный подход не нравится.
...мы ничего в данном подходе не усугубляем, зато полностью контролируем ситуацию ))
Захардкодив айдишник? Сменился прогер, новый контент-менеджер что-то изменил в админке ("я ничего не трогала")...

Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Захардкодив айдишник? Сменился прогер, новый контент-менеджер что-то изменил в админке ("я ничего не трогала")...
Так ID доп поля и его системное имя (alias) после создания изменить уже нельзя, какая разница как мы на фронте к нему будем обращаться - по коду или имени? Вообще без разницы
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Поиск в Материал- Блог категории

Автор mag_num83

Ответов: 1
Просмотров: 325
Последний ответ 14.09.2023, 20:36:34
от beliyadm
Как назначить пункту меню ссылку на категории К2?

Автор kochevnik

Ответов: 1
Просмотров: 312
Последний ответ 12.03.2023, 16:26:44
от kochevnik
[Решено] Ссылка на домен и текущий шаблон в блоге категории

Автор goga_pgasovav

Ответов: 2
Просмотров: 358
Последний ответ 06.03.2023, 16:30:23
от goga_pgasovav
[Решено] Получить список тегов каждого материала в блоге категории

Автор goga_pgasovav

Ответов: 1
Просмотров: 411
Последний ответ 02.03.2023, 14:20:21
от goga_pgasovav
Ошибка 1054 Unknown column 'created_by' in 'field list' VirtueMart

Автор Evgen Kulibin

Ответов: 3
Просмотров: 791
Последний ответ 26.02.2023, 01:56:42
от lakshmi