Новости Joomla

Состоялся Joomla meetup. Москва.Вчера, 10 апреля 2025г. в Москве состоялся мини Joomla-митап

Состоялся Joomla meetup. Москва.Вчера, 10 апреля 2025г. в Москве состоялся мини Joomla-митап

Состоялся Joomla meetup. Москва.Вчера, 10 апреля 2025г. в Москве состоялся мини Joomla-митап. Митап - это неформальная, некоммерческая встреча участников IT-сообщества для обмена опытом, обсуждения общих планов, действий по развитию сообщества.На этой встрече обсудили настоящее и будущее Joomla, глобальные мысли о возможном проведении Joomla Day Russia, а также менее глобальные, но от этого не менее важные и интересные - о создании Joomla User Group (JUG) - Moscow. В рамках JUG обычно проводятся регулярные встречи как оффлайн, так и онлайн или гибридного формата. Обмен опытом, мнениями, дружеская подсказка, сделанная вовремя - это Joomla User Group. Пока что ещё продумываются детали и идёт поиск места для оффлайн-встреч.👩‍💻 Для координации встреч участников сообщества в Москве был создан отдельный чат: гостиницы, станции метро, площадки для проведения мероприятий и кафе/рестораны для их продолжения - в чате Joomla Meetup Moscow. Иногда 10-15 минут личной встречи заменяют несколько часов переписки или телефонных разговоров. Если вы оказались в столице по рабочим или личным делам - пишите, вам будут рады.На фото: Владимир Елисеев @progreccor (разработчик Radical Form и др.), в середине - чета Толкачевых: Диана и Сергей (@sergeytolkachyov, расширения WebTolk, админ чата сообщества) и Владимир Сергиенко (@aixman, маркетолог и разработчик, админ чата сообщества).

Вышли релизы безопасности Joomla 5.2.6 и Joomla 4.4.13

Релиз безопасности Joomla 5.2.6

Проект Joomla спешит сообщить о выпуске Joomla 5.2.6 и Joomla 4.4.13. Это релиз безопасности для серии Joomla 5.2 и релиз безопасности для серии Joomla 4.4.

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

AlekVolsk

  • Гуру
  • 6913
  • 415 / 4
В одном поле основной таблицы надо хранить несколько ссылок на другую (второстепенную) таблицу, хочу сделать это посредством типа поля checkboxes: наименования option берутся из второстепенной таблицы, хранимые значения в поле основной таблицы - id выбранных option из второстепенной таблицы.
В общем, что-то аналогичное полю категории с атрибутом multiple: указание в поле нескольких значений, являющимися записями в другой таблице.

Как такое реализовать можно?
*

AlekVolsk

  • Гуру
  • 6913
  • 415 / 4
Похоже, я опять вопрос задал через назад...
*

AlekVolsk

  • Гуру
  • 6913
  • 415 / 4
В xml-списке полей (models/forms/) объявил поле как <field name="cblist" type="checkboxes" label="LIST">, как мне его в модели(?) теперь заполнить значениями и таблицы бд?
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
В xml-списке полей (models/forms/) объявил поле как <field name="cblist" type="checkboxes" label="LIST">, как мне его в модели(?) теперь заполнить значениями и таблицы бд?
в модели можно использовать метод loadFormData, если модель наследуется от JModelForm
*

AlekVolsk

  • Гуру
  • 6913
  • 415 / 4
Да, JModelForm, но loadFormData возвращает значения из текущей записи связанной таблицы, а список option надо заполнить значениями из другой таблицы, и уже каждый option будет чекед/унчекед согласно значению связанного со списком поля, возвращаемого loadFormData, имхо, option должны быть заполнены до вызова loadFormData, или я опять ничего не понимаю?
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
Код
   protected function loadFormData()
    {
        $data = $this->getItem();
        
        $data->cblist = array(1,2,3); // тут делается нужный запрос

        return $data;
    }

или как вариант создать свой тип поля и в нем делать уже запрос
« Последнее редактирование: 23.12.2014, 16:04:20 от SmokerMan »
*

AlekVolsk

  • Гуру
  • 6913
  • 415 / 4
Код: php
    $db = $this->getDbo();
    $query = $db->getQuery(true);
    $query->select('id, name')->from('#__classif');
    $data->cblist = $db->setQuery($query)->loadObjectList();
Полю присваивается массив значений, список option остается пуст
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
Полю присваивается массив значений, список option остается пуст
а с чего оно будет не пустым, если эти значения для типа checkboxes должны задаваться в XML
тут же происходит просто подстановка выбранных значений для конкретной записи

Опять же, вопрос не понятен что должно и куда подставятся.
Если нужно сделать свой select, то создается свой тип поля и в нем делается что нужно
*

AlekVolsk

  • Гуру
  • 6913
  • 415 / 4
так задача: список оптионс сформировать динамически, из значений таблицы бд
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
так ответ:
Если нужно сделать свой select, то создается свой тип поля и в нем делается что нужно
https://docs.joomla.org/Creating_a_custom_form_field_type
*

AlekVolsk

  • Гуру
  • 6913
  • 415 / 4
Сделал свое поле:
Спойлер
[свернуть]

В атрибут src записываем строкой вида "таблица.ключ.метка": соответственно имя таблицы без префикса, из которой тянутся записи. имя поля, из которого формируются value чекбоксов, имя поля для лэйбла. Например: src="categories.id.title", каждый оптионс будет в виде чекбокса с value=id, рядом будет метка с выводом title.

Отмеченные оптионс хранятся в checkedOptions поля (как и в стандартном checkboxes).
*

AlekVolsk

  • Гуру
  • 6913
  • 415 / 4
Теперь вопрос: как в loadFormData записать в checkedOptions значение из текущей записи, возвращаемой getItems, и прочитать обратно из checkedOptions в поле записи.
Здесь http://ссылка вырезана, так как домен распространяет вирусы/standartnye-tipy-polej/checkboxes немного есть, но не догоню чего-то, как применить это.
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Код: php
   $db = $this->getDbo();
    $query = $db->getQuery(true);
    $query->select('id, name')->from('#__classif');
    $data->cblist = $db->setQuery($query)->loadObjectList();
Полю присваивается массив значений, список option остается пуст
Присваивается массив объектов а не значений! Вы уверенны что у вас правильно потом поле понимает что ему надо брать?)
*

AlekVolsk

  • Гуру
  • 6913
  • 415 / 4
не уверен, пока оно вообще ничего не принимает и не отдлает
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
попробуйте просто
$data->cblist  = array(и тут списко существубщих значений);
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
И да сделать это не в protected function loadFormData()
а  в
Код: php
public function getItem($pk = null){
if ($item = parent::getItem($pk)){
$item->cblist  = array(...);
}
return $item;
}
*

AlekVolsk

  • Гуру
  • 6913
  • 415 / 4
$data->cblist = array(2,5);
ноль эффекта
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
я лично ничего не понял что нужно сделать)

cblist - вообще куда нибудь записывается?
если записывается, то в своем поле можно получить выбранные значение через $this->value и не надо ни в какую модель лезть.
*

AlekVolsk

  • Гуру
  • 6913
  • 415 / 4
cblist - текстовое поле в таблице базы, содержит массив значений.
В админке этот массив нужно показать в виде списка чекбоксов (чекбокслист), в котором отмечены те чекбоксы, чьи значения входят в массив cblist.
Задача:
- при создании новой записи в админке, записать в массив cblist значения отмеченных (checked="true") чекбоксов из чекбокслиста;
- при открытии записи на редактирование в чекбокслисте отметить (checked="true") те чекбоксы, значения которых входит в массив cblist.

Чекбокслист имеет свойство checkedOptions, через которое доступно чтение/запись отмеченных в чекбокслисте чекбоксов в виде перечисленных через запятую без пробелов значений.

(от частого упоминания слова чекбокс у меня уже крыша едет)
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
XML:
Код: xml
<field
name="checkboxes"
type="checkboxes"
label="Опции"
description="Описание поля"
class="my-class">
<option value="1">Опция 1</option>
<option value="2">Опция 2</option>
<option value="3">Опция 3</option>
<option value="4">Опция 4</option>
</field>

шаблон:
Код: php
<div class="control-group">
<div class="control-label"><?php echo $this->form->getLabel( 'checkboxes' ); ?></div>
<div class="controls"><?php echo $this->form->getInput( 'checkboxes' ); ?></div>
</div>

Модель:
Код: php
public function getItem( $id = null )
{
if ( $item = parent::getItem( $id ) ) {
$item->checkboxes = array( 1, 3 );
}
return $item;
}

В итоге ставятся флажки на первый и третий чекбокс!
« Последнее редактирование: 23.12.2014, 19:49:38 от Istaan »
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
чекбокс, чекбокс, чекбокс, чекбокс, чекбокс, чекбокс, чекбокс, чекбокс, чекбокс
while(true){ echo 'checkbox';}
*

AlekVolsk

  • Гуру
  • 6913
  • 415 / 4
Пример.
В XML пишу:
Код: xml
<field name="categories" type="checkboxesdb" label="COM_CRMT_COUNTRIES_LIST" class="well well-small" src="categories.id.title"/>

Во вьюхе пишу:
Код: php
echo $this->form->getInput('categories');

На выходе получаю:
Спойлер
[свернуть]
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
А в модели что вы пишите?)
*

AlekVolsk

  • Гуру
  • 6913
  • 415 / 4
XML:
Код: xml
<field
name="checkboxes"
type="checkboxes"
label="Опции"
description="Описание поля"
class="my-class">
<option value="1">Опция 1</option>
<option value="2">Опция 2</option>
<option value="3">Опция 3</option>
<option value="4">Опция 4</option>
</field>
Одно маленькое уточнение: у меня оптионс тянуться из отдельной таблицы динамически (код поля выше в 10 посту)

В модели:
Код: php
public function getItem( $id = null )
{
if ( $item = parent::getItem( $id ) ) {
$item->categories= array(2,5);
}
return $item;
}
 
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Конечно у вас так не получится, у вас тип поля checkboxesdb это явно не стандартный джумловскией чекбокс ) По этому и не выйдет у вас так )
*

AlekVolsk

  • Гуру
  • 6913
  • 415 / 4
правильно, я сам его вот только создал, потому что в стандартный не получается динамически прописать оптионс
*

AlekVolsk

  • Гуру
  • 6913
  • 415 / 4
хотя публичные свойства у обоих полей идентичные (свой на базе оригинального делал)
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Путь к новому типу указали?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

AlekVolsk

  • Гуру
  • 6913
  • 415 / 4
хм.. где и как именно? файл вообще лежит там же. где и все поля J: \libraries\joomla\form\fields\
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
В XML, addfieldpath.

P.S. А, в libraries положили? Файл так и называется: checkboxesdb.php?
Не будь паразитом, сделай что-нибудь самостоятельно!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Опциональное поле в форме

Автор borro

Ответов: 21
Просмотров: 1873
Последний ответ 28.12.2020, 12:16:13
от platonische
Как написать сложное кастомное поле?

Автор Gover

Ответов: 1
Просмотров: 784
Последний ответ 11.07.2018, 00:14:34
от fsv
Если нужно добавить поле в subform repeatable своим ява скриптом - как сделать?

Автор Progreccor

Ответов: 7
Просмотров: 1015
Последний ответ 03.04.2018, 16:03:54
от Progreccor
Поле для прикрепления файлов в администраторе

Автор Joker_V

Ответов: 1
Просмотров: 1125
Последний ответ 09.04.2016, 21:17:02
от Joker_V
Добавляю поле Featured в компоненте

Автор platonische

Ответов: 6
Просмотров: 1304
Последний ответ 21.10.2015, 18:06:48
от Aleks.Denezh