Новости 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 Гость просматривают эту тему.
  • 10 Ответов
  • 4642 Просмотров
*

dimon5991

  • Захожу иногда
  • 59
  • 0 / 0
Форма регистрации K2
« : 10.03.2012, 12:48:22 »
У меня сейчас такая форма регистрации:

Как сделать, чтобы при нажатии регистрация было такое:

Заранее благодарен!
*

noname-dev

  • Захожу иногда
  • 281
  • 17 / 0
Re: Форма регистрации K2
« Ответ #1 : 10.03.2012, 13:56:17 »
Найдите шаблон формы регистрации,найдите в нем textarea и внутри впишите что вам нужно.
*

dimon5991

  • Захожу иногда
  • 59
  • 0 / 0
Re: Форма регистрации K2
« Ответ #2 : 10.03.2012, 19:34:20 »
Это в register.php?
*

dimon5991

  • Захожу иногда
  • 59
  • 0 / 0
Re: Форма регистрации K2
« Ответ #3 : 11.03.2012, 21:46:31 »
Помогите в этом вопросе очень нужно
*

dimon5991

  • Захожу иногда
  • 59
  • 0 / 0
Re: Форма регистрации K2
« Ответ #4 : 13.03.2012, 22:35:58 »
register.php содержание
Код
<?php
/**
 * @version $Id: register.php 478 2010-06-16 16:11:42Z joomlaworks $
 * @package K2
 * @author JoomlaWorks http://www.joomlaworks.gr
 * @copyright Copyright (c) 2006 - 2010 JoomlaWorks, a business unit of Nuevvo Webware Ltd. All rights reserved.
 * @license GNU/GPL license: http://www.gnu.org/copyleft/gpl.html
 */

// no direct access
defined('_JEXEC') or die('Restricted access');

?>

<script type="text/javascript">
//<![CDATA[
window.onDomReady(function(){
document.formvalidator.setHandler('passverify', function (value){
return ($('password').value == value);
});
});
//]]>
</script>

<!-- K2 user register form -->

<?php if(isset($this->message)) $this->display('message'); ?>

<form action="<?php echo JRoute::_( 'index.php?option=com_user' ); ?>" enctype="multipart/form-data" method="post" id="josForm" name="josForm" class="form-validate">

  <?php if ( $this->params->def( 'show_page_title', 1 ) ) : ?>
  <div class="componentheading<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
  <?php echo $this->escape($this->params->get('page_title')); ?>
  </div>
  <?php endif; ?>

  <div id="k2Container" class="k2AccountPage">

  <table cellpadding="0" cellspacing="0">
  <tr>
  <th colspan="2"><?php echo JText::_( 'Account details' ); ?></th>
  </tr>
    <tr>
      <td><label id="namemsg" for="name"><?php echo JText::_( 'Name' ); ?></label></td>
      <td><input type="text" name="name" id="name" size="40" value="<?php echo $this->escape($this->user->get( 'name' )); ?>" class="inputbox required" maxlength="50" />
        * </td>
    </tr>
    <tr>
      <td><label id="usernamemsg" for="username"><?php echo JText::_( 'User name' ); ?></label></td>
      <td><input type="text" id="username" name="username" size="40" value="<?php echo $this->escape($this->user->get( 'username' )); ?>" class="inputbox required validate-username" maxlength="25" />
        * </td>
    </tr>
    <tr>
      <td><label id="emailmsg" for="email"><?php echo JText::_( 'Email' ); ?></label></td>
      <td><input type="text" id="email" name="email" size="40" value="<?php echo $this->escape($this->user->get( 'email' )); ?>" class="inputbox required validate-email" maxlength="100" />
        * </td>
    </tr>
    <tr>
      <td><label id="pwmsg" for="password"><?php echo JText::_( 'Password' ); ?></label></td>
      <td><input class="inputbox required validate-password" type="password" id="password" name="password" size="40" value="" />
        * </td>
    </tr>
    <tr>
      <td><label id="pw2msg" for="password2"><?php echo JText::_( 'Verify Password' ); ?></label></td>
      <td><input class="inputbox required validate-passverify" type="password" id="password2" name="password2" size="40" value="" />
        * </td>
    </tr>
  <tr>
  <th colspan="2"><?php echo JText::_( 'Personal details' ); ?></th>
  </tr>
<!-- K2 attached fields -->
    <tr>
      <td><label id="gendermsg" for="gender"><?php echo JText::_( 'Gender' ); ?></label></td>
      <td><?php echo $this->lists['gender']; ?></td>
    </tr>
    <tr>
<td class="key">
<label id="descriptionmsg" for="description"><?php echo JText::_('K2_DESCRIPTION'); ?></label>
</td>
<td>
<?php echo $this->editor; ?>
</td>
    </tr>
    <tr>
      <td><label id="imagemsg" for="image"><?php echo JText::_( 'User image (avatar)' ); ?></label></td>
      <td><input type="file" id="image" name="image"/>
        <?php if ($this->K2User->image): ?>
        <img class="k2AdminImage" src="<?php echo JURI::root().'media/k2/users/'.$this->K2User->image; ?>" alt="<?php echo $this->user->name; ?>" />
        <input type="checkbox" name="del_image" id="del_image" />
        <label for="del_image"><?php echo JText::_('Check this box to delete current image or just upload a new image to replace the existing one'); ?></label>
        <?php endif; ?></td>
    </tr>
   
    <?php if(count(array_filter($this->K2Plugins))): ?>
    <!-- K2 Plugin attached fields -->
  <tr>
  <th colspan="2"><?php echo JText::_( 'Additional details' ); ?></th>
  </tr>
    <?php foreach ($this->K2Plugins as $K2Plugin):?>
    <?php if(!is_null($K2Plugin)): ?>
    <tr>
      <td colspan="2"><?php echo $K2Plugin->fields; ?></td>
    </tr>
    <?php endif;?>
    <?php endforeach; ?>
    <?php endif; ?>
  </table>

  <div class="k2AccountPageNotice"><?php echo JText::_( 'REGISTER_REQUIRED' ); ?></div>

  <div class="k2AccountPageUpdate">
  <button class="button validate" type="submit">
  <?php echo JText::_('Register'); ?>
  </button>
  </div>

  </div>

  <input type="hidden" name="task" value="register_save" />
  <input type="hidden" name="id" value="0" />
  <input type="hidden" name="gid" value="0" />
  <input type="hidden" name="K2UserForm" value="1" />
  <?php echo JHTML::_( 'form.token' ); ?>

</form>
*

noname-dev

  • Захожу иногда
  • 281
  • 17 / 0
Re: Форма регистрации K2
« Ответ #5 : 14.03.2012, 20:00:00 »
Описание выводится этим кодом:
Код
<?php echo $this->editor; ?>
значит нужно искать в другом файле
*

dimon5991

  • Захожу иногда
  • 59
  • 0 / 0
Re: Форма регистрации K2
« Ответ #6 : 14.03.2012, 22:59:02 »
а может лучше создать дополнительные поля как здесь указано http://joomlaforum.ru/index.php/topic,44640.0.html но это для стандартной формы регистрации а мне на К2 нужно а как его на К2 реализовать не знаю?
*

dimon5991

  • Захожу иногда
  • 59
  • 0 / 0
Re: Форма регистрации K2
« Ответ #7 : 15.03.2012, 23:16:12 »
Что никто нечего не знает я просто в шоке, а еще форум в поддержку Joomla 5 дней никто ответа дать не может
*

noname-dev

  • Захожу иногда
  • 281
  • 17 / 0
Re: Форма регистрации K2
« Ответ #8 : 16.03.2012, 09:00:22 »
Тут много кто это может сделать, но не бесплатно. Было бы свободное время, возможно помог бы.
*

Kintim

  • Осваиваюсь на форуме
  • 39
  • 1 / 0
Re: Форма регистрации K2
« Ответ #9 : 11.09.2012, 16:21:33 »
Народ... а вопрос до сих пор очень актуален!!
Кто в курсе подскажите пожалуйста... очень нужно
*

mendosa

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
  • Не презирай совета ничьего.
Re: Форма регистрации K2
« Ответ #10 : 09.04.2014, 16:45:36 »
Тебе же сказали.Есть модуль K2 user .Откроешь его и там поля
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Убрать http:// из поля формы регистрации и профиля

Автор lgmax

Ответов: 2
Просмотров: 1964
Последний ответ 20.01.2021, 18:52:22
от dizastill
Где формируются подсказки при регистрации через K2?

Автор vm0777

Ответов: 0
Просмотров: 1187
Последний ответ 27.07.2018, 13:46:07
от vm0777
Форма комментариев для разных групп пользователей

Автор recived

Ответов: 1
Просмотров: 879
Последний ответ 21.02.2018, 18:00:21
от recived
[Решено] Форма - Добавить материал с главной страницы

Автор lgmax

Ответов: 6
Просмотров: 1373
Последний ответ 30.07.2017, 12:01:48
от Septdir
Задача убрать в регистрации (авторизация осуществляется через модуль k2) подтверждение адреса элект

Автор biper

Ответов: 0
Просмотров: 1025
Последний ответ 10.11.2016, 10:11:40
от biper