Новости Joomla

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

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

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

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

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

Читать статью на Хабре.

@joomlafeed

🏆 Открыто голосование за 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 Гость просматривают эту тему.
  • 37 Ответов
  • 9904 Просмотров
*

jservice

  • Захожу иногда
  • 118
  • 1 / 0
Добрый день, подскажите пожалуйста что за ошибка Fatal error: Call to undefined method UsersModelLogin::store()

Адаптирую компонент с джула 1.5 под 3.0  и получаю эту ошибку при обращении в пост запросе к  view.html.php

Хоть куда копнуть, кто знает.Пожалуйста.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

jservice

  • Захожу иногда
  • 118
  • 1 / 0
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #2 : 22.07.2014, 11:08:42 »
Спойлер
[свернуть]
*

jservice

  • Захожу иногда
  • 118
  • 1 / 0
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #3 : 22.07.2014, 11:17:24 »
Получаю ошибку получается на вывод результата.Но не пойму что за такой метод  method UsersModelLogin::store()
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #4 : 22.07.2014, 11:25:22 »
Вы уверенны что на этой странице возникает ошибка? Приведите полный текст ошибки которую увидели на экране!
*

jservice

  • Захожу иногда
  • 118
  • 1 / 0
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #5 : 22.07.2014, 11:26:37 »
Fatal error: Call to undefined method UsersModelLogin::store() in /home/сайт/components/com_users/views/regwebinar/view.html.php on line 60


да на строке $result = $model->store($data);
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #6 : 22.07.2014, 11:27:13 »
а ну это значит что в вашей модели login в классе UsersModelLogin нет метода store
*

jservice

  • Захожу иногда
  • 118
  • 1 / 0
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #7 : 22.07.2014, 11:36:09 »
О спасибо уже хоть что то... Теперь разобраться как ее правильно добавить бы... ^-^
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #8 : 22.07.2014, 11:37:28 »
О спасибо уже хоть что то... Теперь разобраться как ее правильно добавить бы... ^-^
Ну очевидно скопировать из старого компонента!
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #9 : 22.07.2014, 11:43:46 »
Блин, почему у Вас Представление занимается регистрацией? Почему в Представлении у Вас бизнес-логика (registerToWebinar, sendMailAboutPayment и т.п.)? Что-то у Вас не то с архитектурой компонента...
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #10 : 22.07.2014, 11:49:35 »
Блин, почему у Вас Представление занимается регистрацией? Почему в Представлении у Вас бизнес-логика (registerToWebinar, sendMailAboutPayment и т.п.)? Что-то у Вас не то с архитектурой компонента...
))) Я только хотел задать тот же вопрос...
*

jservice

  • Захожу иногда
  • 118
  • 1 / 0
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #11 : 22.07.2014, 11:50:49 »
да уж, компонент самопальный.И главное в полторашке  пашет на ура.А в третей так все изменилось.И изминение только классов не помогает.

вот была модель в старой полторашной Joomla

Спойлер
[свернуть]
*

jservice

  • Захожу иногда
  • 118
  • 1 / 0
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #12 : 22.07.2014, 11:57:29 »
А модели логин не было, и вообще ее нет в вроде в полторахе
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #13 : 22.07.2014, 11:58:11 »
Ну подозреваю что у вас не пашет по причине того что у вас модель называется так:
class UserModelRegwebinar extends JModel и наследуется от JModel
в 3.0 класса JModel нету, это интерфейс, от которого наследоваться нельзя! Унаследуйтесь для начала от JModelLegacy
*

jservice

  • Захожу иногда
  • 118
  • 1 / 0
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #14 : 22.07.2014, 12:09:15 »
Унаследуйтесь для начала от JModelLegacy

Унаследовал... Все тоже ...не пропускает, так и выдает ошибку на линии 60

Спойлер
[свернуть]
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #15 : 22.07.2014, 12:19:09 »
Понятно! Все банально
Имя вида: usersViewregwebinar
Имя модели: UserModelRegwebinar
У вас разное название компонента для вида и модели! Вид не находит модель! Файл модели должен иметь класс UsersModelRegwebinar
*

jservice

  • Захожу иногда
  • 118
  • 1 / 0
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #16 : 22.07.2014, 12:32:52 »
Понятно! Все банально


Сейчас  название компонента для вида   class UsersViewRegwebinar extends JViewLegacy
 название для вида  модели  class UsersModelRegwebinar extends JModelLegacy

И все таже ошибка _http://3.web-studio.biz.ua/component/users/?view=regwebinar

Что компонент еще хочет не понятно...
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #17 : 22.07.2014, 12:44:25 »
Да все тут понятно - поле неперепаханное...

Что у Вас в $model ? Сделайте var_dump($model) - узнаете, какой класс подключается.
И класс Контроллера как называется? (если он есть конечно).
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #18 : 22.07.2014, 12:51:16 »
Файл с классом модели называется regwebinar.php и лежит в папке models?
*

jservice

  • Захожу иногда
  • 118
  • 1 / 0
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #19 : 22.07.2014, 12:53:32 »
да именно так regwebinar.php и лежит  в моделях  components/com_users/models/
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #20 : 22.07.2014, 12:57:10 »
да именно так regwebinar.php и лежит  в моделях  components/com_users/models/
Контроллер походу надо редактировать. В com_users Контроллер в зависимости от Представления устанавливает Модель.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #21 : 22.07.2014, 12:57:37 »
Попробовать:
$model = $this->getModel('regwebinar');
$result = $model->store($data);
Если не поможет то после
$model = $this->getModel();
вставьте print_r($model);
и скажите нам что выдало!
*

jservice

  • Захожу иногда
  • 118
  • 1 / 0
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #22 : 22.07.2014, 13:05:01 »
После:

$model = $this->getModel('regwebinar');
$result = $model->store($data);

Notice: Undefined index: regwebinar in /home/сайт/3/libraries/legacy/view/legacy.php on line 425

Fatal error: Call to a member function store() on a non-object in /home/сайт/3/components/com_users/views/regwebinar/view.html.php on line 60



*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #23 : 22.07.2014, 13:09:26 »
Скажите по какой ссылке вы попадаете в этот вид? И покажите ваш контроллер по умолчанию!
*

jservice

  • Захожу иногда
  • 118
  • 1 / 0
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #24 : 22.07.2014, 13:12:05 »
Скажите по какой ссылке вы попадаете в этот вид? И покажите ваш контроллер по умолчанию!

По ссылке  _http://3.web-studio.biz.ua/component/users/?view=regwebinar

и контролер

Спойлер
[свернуть]
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #25 : 22.07.2014, 13:16:18 »
Хм, вы что стандартный компонент com_users переделываете? Вы понимаете что если кто то обновит сайт все что вы сделали скорее всего слетит!
*

jservice

  • Захожу иногда
  • 118
  • 1 / 0
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #26 : 22.07.2014, 13:20:18 »
это понятно, фишка в том что в старой версии он этот компонент не был представлен в роутере и в контролере.Это так уже просто мучаюсь с ним не один день и решил попробовать обЪявить его в роутер и в контролер.

да и после :  

$model = & $this->getModel();
print_r($model);
$result = $model->store($data);

Выдало :    Fatal error: Class UserViewRegwebinar cannot extend from interface JView in /home/сайт/3/components/com_users/views/regwebinar/view.html.php on line 28
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #27 : 22.07.2014, 13:31:23 »
У вас не выдает по одной банальной причине! В контроллере по умолчанию для вашего вида не устанавливается модель!
*

jservice

  • Захожу иногда
  • 118
  • 1 / 0
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #28 : 22.07.2014, 13:32:45 »
Да и на старой версии 1.5 был пост запрос с формы к компоненту :

Код
<form class="form-validate" method="post" action="/component/user/regwebinar"> <label for="username"><span class="red">*</span> Ваше имя:</label> <input class="required" type="text" size="25" name="username" /> <label for="phone"><span class="red">*</span> Номер телефона:</label><input class="required" type="text" size="25" name="phone" /> <label for="email"><span class="red">*</span>Ваш E-mail:</label><input class="required validate-email" type="text" size="25" name="email" /> <label for="organization"><span class="red">*</span> Организация:</label><input class="required" type="text" size="25" name="organization" /> <input type="hidden" name="summ" value="780" /> <input type="hidden" name="eventid" value="265199" /> <input type="hidden" name="title" value="СОСТАВЛЕНИЕ КРЕДИТНОГО БАЛАНСА" /> <input type="hidden" name="datetime" value="24.06.2014    16.00-18.00 (мск)" /> <br /> <button class="validate" type="submit" id="submit_mail">Отправить и оплатить!</button> </form> 

Сейчас  на третей Joomla по другому:

Код
<form action="/component/users/?view=regwebinar" method="post" class="form-validate"> <label for="username"><span class="red">*</span> Ваше имя:</label> <input name="username" size="25" type="text" class="required" /> <label for="phone"><span class="red">*</span> Номер телефона:</label><input name="phone" size="25" type="text" class="required" /> <label for="email"><span class="red">*</span>Ваш E-mail:</label><input name="email" size="25" type="text" class="required validate-email" /> <label for="organization"><span class="red">*</span> Организация:</label><input name="organization" size="25" type="text" class="required" /> <input value="780" name="summ" type="hidden" /> <input value="265199" name="eventid" type="hidden" /> <input value="СОСТАВЛЕНИЕ КРЕДИТНОГО БАЛАНСА" name="title" type="hidden" /> <input value="24.06.2014    16.00-18.00 (мск)" name="datetime" type="hidden" /> <br /> <button id="submit_mail" type="submit" class="validate">Отправить и оплатить!</button> </form>

Так как если при запросе /component/users/regwebinar  переводит на форму входа  /component/users/?view=login
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Fatal error: Call to undefined method UsersModelLogin::store()
« Ответ #29 : 22.07.2014, 13:32:47 »
Перед
Код: php
default:
  $model = $this->getModel('Login');
  break;
Добавьте:
Код: php
case 'regwebinar':
  $model = $this->getModel('regwebinar');
  break;
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Fatal error: Cannot redeclare showQuestions() (previously declared in

Автор sergvlask

Ответов: 2
Просмотров: 2003
Последний ответ 01.12.2013, 13:24:42
от sergvlask
JFactory::getUser($id); fatal error

Автор alxcube

Ответов: 11
Просмотров: 3665
Последний ответ 05.08.2013, 12:39:08
от alxcube