Новости Joomla

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Подходы, описанные в статье, полезны в тех случаях, когда вы работаете с данными в com_fields - механизме создания и редактирования пользовательских полей ядра Joomla и при использовании FieldsHelper. Многие сторонние компоненты не используют эту возможность, поэтому данная статья будет полезна лишь частично.

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

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

Alex_B

  • Захожу иногда
  • 196
  • 39 / 0
Связанные таблицы MySQL
« : 18.06.2007, 13:12:39 »
Я делаю две таблицы в MySQL.

1 таблица:

| idL | val1 | val2 |

2 таблица

| idP | idL | val3 |

Вторая таблица должна получить idL которое хранится в первой.


Сначала я заполняю 1-ю таблицу:


$mdb
->setQuery("INSERT INTO #__table1 (val1, val2) VALUES (‘$val1’,’$val2’ )");
$mdb->query();


Значение idL формируется автоматически MySQL и мне не известно.

Затем я должен заполнить вторую таблицу и указать в соответствующем поле именно idL, которое было присвоено. Но как я могу его узнать?
(возможна ситуация при которой в первой таблице будут совершенно одинаковые строки, различающиеся только idL)

Спасибо.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Связанные таблицы MySQL
« Ответ #1 : 18.06.2007, 13:18:33 »
вообще, есть такая функция как mysql_insert_id(), которая возвращает значение последнего сгенерированного автоинкрементного значения в последнем выполненном insert-запросе.

Вот более подробное описание:
Цитировать
mysql_insert_id() returns the ID generated for an AUTO_INCREMENT column by the previous INSERT query using the given link_identifier. If link_identifier isn't specified, the last opened link is assumed.

mysql_insert_id() returns 0 if the previous query does not generate an AUTO_INCREMENT value. If you need to save the value for later, be sure to call mysql_insert_id() immediately after the query that generates the value.
*

Alex_B

  • Захожу иногда
  • 196
  • 39 / 0
Re: Связанные таблицы MySQL
« Ответ #2 : 18.06.2007, 13:30:58 »
smart, спасибо!
*

boston

  • Захожу иногда
  • 495
  • 222 / 3
Re: Связанные таблицы MySQL
« Ответ #3 : 18.06.2007, 14:27:01 »
В классе базы данных Joomla это выглядит так:
Цитировать
   function insertid() {
      return mysql_insert_id( $this->_resource );
   }
Для получения результата в твоём случае необходимо:
Цитировать
$mdb->setQuery("INSERT INTO #__table1 (val1, val2) VALUES (‘$val1’,’$val2’ )");
$mdb->query();
$new_id = $mdb->insertid(); // твой идентификатор
Самая новая Joostina 1.3.0.5 UTF-8 stable | О найденных ошибках сообщаем | Расширения Joostina
*

Alex_B

  • Захожу иногда
  • 196
  • 39 / 0
Re: Связанные таблицы MySQL
« Ответ #4 : 18.06.2007, 15:06:18 »
boston, у меня и просто вызов функции вроде работает:

$new_id = mysql_insert_id();
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Связанные таблицы MySQL
« Ответ #5 : 18.06.2007, 16:41:38 »
ну конечно работает...
пока у тебя текущий ресурс линк указывает на твою бд, а если нет?..
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Alex_B

  • Захожу иногда
  • 196
  • 39 / 0
Re: Связанные таблицы MySQL
« Ответ #6 : 18.06.2007, 16:50:43 »
ну конечно работает...
пока у тебя текущий ресурс линк указывает на твою бд, а если нет?..
Я вызываю
mysql_insert_id()
сразу после

$mdb
->setQuery("INSERT INTO #__table1 (val1, val2) VALUES (‘$val1’,’$val2’ )");
$mdb->query();


Т.е. все вместе:

$mdb
->setQuery("INSERT INTO #__table1 (val1, val2) VALUES (‘$val1’,’$val2’ )");
$mdb->query();
$new_id mysql_insert_id();


Может так случиться что "текущий ресурс линк" укажет не на мою бд? Лучше сделать как предложил boston?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Связанные таблицы MySQL
« Ответ #7 : 18.06.2007, 17:22:51 »
Может так случиться что "текущий ресурс линк" укажет не на мою бд? Лучше сделать как предложил boston?
случиться по идее не может, но лучше сделать как сказал Бостон - это капельку корректнее, с точки зрения программирования для Joomla
*

Alex_B

  • Захожу иногда
  • 196
  • 39 / 0
Re: Связанные таблицы MySQL
« Ответ #8 : 18.06.2007, 21:39:32 »
Всем спасибо.
*

Ayat

  • Захожу иногда
  • 64
  • 0 / 0
Re: Связанные таблицы MySQL
« Ответ #9 : 30.04.2010, 15:05:54 »
подскажите мне где вы все это пишите, на phpmyadmin или где? например я через компонент fabrik создал таблицы и формы теперь не могу их связать(таблицы) между собой. хочу резко отписать я работаю на жумала 1.5 на денвере
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод таблицы, деление на страницы

Автор March Cat

Ответов: 6
Просмотров: 1369
Последний ответ 09.01.2019, 18:49:15
от dmitry_stas
checkbox придать вид таблицы в файле XML

Автор xenos

Ответов: 5
Просмотров: 1753
Последний ответ 17.07.2017, 16:16:11
от vipiusss
Загрузить в форму компонента данные из другой таблицы БД

Автор fox7812

Ответов: 11
Просмотров: 1634
Последний ответ 26.05.2014, 22:11:30
от b2z
MySQL - цикл в цикле - как сделать проще

Автор verstalshik

Ответов: 30
Просмотров: 3945
Последний ответ 29.04.2014, 21:52:54
от robert
Компонент для редактирования таблицы БД

Автор maxsl_89

Ответов: 4
Просмотров: 1682
Последний ответ 27.03.2014, 13:24:57
от maxsl_89