Новости Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

👩‍💻 SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla.Компонент - менеджер цифровых проектов для Joomla! CMS. Компонент обеспечивает создание каталога цифровых проектов и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей.👩‍💻 v.2.5.0. Что нового?Схемы структур данных для серверов обновлений. Теперь с SW JProjects вы может создавать сервер обновлений не только для расширений Joomla, но и свои собственные. Например, вам нужно, чтобы структура данных сервера обновлений была другая и формат должен быть, например, не XML, а JSON. Формирование структуры данных для сервера обновлений расширений Joomla вынесено в отдельный плагин. Вы можете создать свой собственный плагин и реализовать в нём нужную вам структуру данных, добавив или наоборот исключив отображаемые данные. Сервер обновлений в компоненте по-прежнему отображает информацию о списке проектов и их версиях, о конкретном проекте и его changelog.Можно выбрать схему данных сервера обновлений глобально для всего компонента, выбрать другую схему данных для категории проектов, а так же выбрать схему в каждом проекте.

Разработчикам в качестве образца можно посмотреть плагин схемы данных для Joomla в составе компонента или же плагин-образец JSON-схемы на GitHub.
Группа плагинов swjprojects. Для нужд компонента создана группа плагинов swjprojects. В частности, в этой группе находится плагин структуры данных Joomla расширений для сервера обновлений.Изменение языковых констант. Изменены некоторые языковые константы в панели администратора. Если вы делали переопределение констант - переопределите их снова.👩‍💻 Joomla 6. Внесены изменения для корректной установки и работы компонента на Joomla 6. Компонент успешно протестирован на Joomla 6-beta2.Минимальная версия Joomla - 5. Подняты минимальные системные требования: Joomla 5.0.0 и PHP 8.1.
- Страница расширения👉 Плагин-образец кастомной JSON-схемы данных для сервера обновлений на GitHub.- GitHub расширения- Документация на GitHub- Joomla Extensions Directory#joomla #расширения

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

👩‍💻 Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод triggerEvent(), с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:- создать объект класса события- передать в него параметры

use Joomla\CMS\Event\AbstractEvent;use Joomla\CMS\Factory;use Joomla\CMS\Plugin\PluginHelper;// Грузим плагины нужных группPluginHelper::importPlugin('system');// Создаём объект события$event = AbstractEvent::create('onAfterInitUniverse', [    'subject' => $this,    'data'    => $data, // какие-то данные    'article' => $article, // ещё материал вдовесок    'product' => $product, // и товаров подвезли]);// Триггерим событиеFactory::getApplication()->getDispatcher()->dispatch(    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'    $event);// Получаем результаты// В случае с AbstractEvent это может быть не 'result',// а что-то ещё - куда сами отдадите данные.// 2-й аргумент - значение по умолчанию, // если не получены результаты$results = $event->getArgument('result', []);
Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов $event->getArticle(), $event->getData(), $event->getProduct() и подобными - реализуете сами под свои нужды. Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе eventClass
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;$event = MyCoolEvent::create('onAfterInitUniverse', [    'subject'    => $this,    'eventClass' => MyCoolEvent::class, // ваш класс события    'data'       => $data, // какие-то данные    'article'    => $article, // ещё материал вдовесок    'product'    => $product, // и товаров подвезли]);
Ожидаемо, что класс вашего события будет расширять AbsractEvent или другие классы событий Joomla.🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент subject обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой stdClass или объект Joomla\registry\Registry.
@joomlafeed#joomla #php #webdev

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

jservice

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

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

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

b2z

  • Глобальный модератор
  • 7287
  • 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

  • Глобальный модератор
  • 7287
  • 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

  • Глобальный модератор
  • 7287
  • 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

  • Глобальный модератор
  • 7287
  • 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
Просмотров: 1877
Последний ответ 01.12.2013, 13:24:42
от sergvlask
JFactory::getUser($id); fatal error

Автор alxcube

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