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

daradan

  • Осваиваюсь на форуме
  • 41
  • 1 / 0
русификация шаблона
« : 06.10.2011, 08:05:02 »
Добрый день!
У меня такой вопрос: поставил Joomla версии 1.5.20 и шаблон-демо jb rasa, теперь не могу русифицировать результат поиска и окошко которое появляется при нажатии на отправку материала e-mail-ом... >:(
Спасибо...

нашел некоторые слова из результата посика где можно переименовать, но кириллицу не поддерживает
\templates\jbrasa\html\com_search\search\default_results.php
\templates\jbrasa\html\com_search\search\default_form.php
« Последнее редактирование: 06.10.2011, 08:26:32 от daradan »
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: русификация шаблона
« Ответ #1 : 06.10.2011, 09:34:24 »
Попробуйте сохранить эти файлы в utf
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

daradan

  • Осваиваюсь на форуме
  • 41
  • 1 / 0
Re: русификация шаблона
« Ответ #2 : 06.10.2011, 10:31:53 »
Попробуйте сохранить эти файлы в utf

Спасибо помогло!
в "результате поиска" почти все перевел кроме заголовка (Search) в менеджер модулей изменил назваение не меняется и окошко которое появляется при нажатии на отправку материала e-mail-ом...(открыл всю папку com mailto ни к чему не привело) >:(
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: русификация шаблона
« Ответ #3 : 06.10.2011, 10:41:08 »
почти все перевел кроме заголовка (Search)

Посмотрите в index.php шаблона, это может быть там прописано.
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

daradan

  • Осваиваюсь на форуме
  • 41
  • 1 / 0
Re: русификация шаблона
« Ответ #4 : 06.10.2011, 10:59:16 »
Посмотрите в index.php шаблона, это может быть там прописано.
проверил index.php такого слово не нашел
переименовал Search на Поиск
\templates\jbrasa\html\com_search\search\default_form.php
, теперь вообще этот надпись не появляется (думаю заголовок не будет нужен ^-^)
перевод на навигацию то же нигде найти не могу (главное что самых нужных слов перевел в "результатах посика"),

теперь главное как перевести вот это
http://pics.kz/v/6Dj
и письмо со словами This is an e-mail from (ХХХ) sent by УУУ (ZZZ). You may also find the following link interesting:

*

FerrumLogic

  • Захожу иногда
  • 213
  • 17 / 0
  • Я ушел чтобы с разбегу вернуться
Re: русификация шаблона
« Ответ #5 : 06.10.2011, 13:39:13 »
дайте ссылку на сайт, так легче наверное будет
*

daradan

  • Осваиваюсь на форуме
  • 41
  • 1 / 0
Re: русификация шаблона
« Ответ #6 : 06.10.2011, 13:48:00 »
дайте ссылку на сайт, так легче наверное будет

вот
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: русификация шаблона
« Ответ #7 : 06.10.2011, 14:29:16 »
Поле для поиска лучше выделить рамкой или цветом, а то не понятно.
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: русификация шаблона
« Ответ #8 : 06.10.2011, 14:32:36 »
вот

Зашел на сайт, у меня это окошко на русском.

Закрыть окно
Введите e-mail Вашего друга

E-mail кому:

Отправитель:

Ваш e-mail:
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

daradan

  • Осваиваюсь на форуме
  • 41
  • 1 / 0
Re: русификация шаблона
« Ответ #9 : 06.10.2011, 14:34:24 »
Зашел на сайт, у меня это окошко на русском.

Закрыть окно
Введите e-mail Вашего друга

E-mail кому:

Отправитель:

Ваш e-mail:

я только что перевел, нашел здесь
/components/com_mailto/views/mailto/tmpl/default.php

Поле для поиска лучше выделить рамкой или цветом, а то не понятно.
насчет этого как делать не знаю... :(
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: русификация шаблона
« Ответ #10 : 06.10.2011, 14:49:37 »
насчет этого как делать не знаю... :(

/templates/jbrasa/css/theme.css

#search .inputbox, #search_searchword

background-color: transparent;
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

daradan

  • Осваиваюсь на форуме
  • 41
  • 1 / 0
Re: русификация шаблона
« Ответ #11 : 06.10.2011, 20:11:43 »
/templates/jbrasa/css/theme.css

#search .inputbox, #search_searchword

background-color: transparent;

Сделал как Вы сказали, ничего не изменилось...думаю потому что там картинка (обвел эту картинкой рамкой в фотошопе)
Код
/* Search Styling
-----------------------------------------------------------------------------*/
#searchWrap {position: relative}
#search {float: right;background: url(../images/search.jpg) no-repeat;padding: 0 0 4px 20px;position: absolute;right: 0;margin-top: 7px;margin-right: 10px;width: 180px;display: inline;top: 8px;z-index: 11;color: #fff}
#search .inputbox,#search_searchword {border: none;background-color: transparent;font-size: 13px;color: #000000;padding-bottom: 0;margin: 4px 0 0 10px;float: left;width: 60%}
#searchForm .button {margin-top: 8px}
#search input.button {border: none;height: 25px;width: 60px;text-align: center;float: right;margin:4px 4px 0 0;text-transform: uppercase;font-size: 82%}

переименовал окошко которое появляется при нажатии на отправку материала e-mail-ом...
/components/com_mailto/views/sent/tmpl/default.php
/components/com_mailto/views/mailto/tmpl/default.php
« Последнее редактирование: 06.10.2011, 21:29:18 от daradan »
*

daradan

  • Осваиваюсь на форуме
  • 41
  • 1 / 0
Re: русификация шаблона
« Ответ #12 : 07.10.2011, 07:20:48 »
нашел перевод "Total: NN results found." в "результате поиска" но при переводе NN изчезает
до
после
Код
$this->result	= JText::sprintf( 'TOTALRESULTSFOUND', $total );
160 строка
/components/com_search/views/search/view.html.php
Код
<?php
/**
 * @version $Id: view.html.php 14401 2010-01-26 14:10:00Z louis $
 * @package Joomla
 * @subpackage Weblinks
 * @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
 * @license GNU/GPL, see LICENSE.php
 * Joomla! is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 * See COPYRIGHT.php for copyright notices and details.
 */

// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die( 'Restricted access' );

jimport( 'joomla.application.component.view');

/**
 * HTML View class for the WebLinks component
 *
 * @static
 * @package Joomla
 * @subpackage Weblinks
 * @since 1.0
 */
class SearchViewSearch extends JView
{
function display($tpl = null)
{
global $mainframe;

require_once(JPATH_COMPONENT_ADMINISTRATOR.DS.'helpers'.DS.'search.php' );

// Initialize some variables
$pathway  =& $mainframe->getPathway();
$uri      =& JFactory::getURI();

$error = '';
$rows = null;
$total = 0;

// Get some data from the model
$areas      = &$this->get('areas');
$state = &$this->get('state');
$searchword = $state->get('keyword');

$params = &$mainframe->getParams();

$menus = &JSite::getMenu();
$menu = $menus->getActive();

// because the application sets a default page title, we need to get it
// right from the menu item itself
if (is_object( $menu )) {
$menu_params = new JParameter( $menu->params );
if (!$menu_params->get( 'page_title')) {
$params->set('page_title', JText::_( 'Поиск' ));
}
} else {
$params->set('page_title', JText::_( 'Поиск' ));
}

$document = &JFactory::getDocument();
$document->setTitle( $params->get( 'page_title' ) );

// Get the parameters of the active menu item
$params = &$mainframe->getParams();

// built select lists
$orders = array();
$orders[] = JHTML::_('select.option',  'newest', JText::_( 'Newest first' ) );
$orders[] = JHTML::_('select.option',  'oldest', JText::_( 'Oldest first' ) );
$orders[] = JHTML::_('select.option',  'popular', JText::_( 'Most popular' ) );
$orders[] = JHTML::_('select.option',  'alpha', JText::_( 'Alphabetical' ) );
$orders[] = JHTML::_('select.option',  'category', JText::_( 'Section/Category' ) );

$lists = array();
$lists['ordering'] = JHTML::_('select.genericlist',   $orders, 'ordering', 'class="inputbox"', 'value', 'text', $state->get('ordering') );

$searchphrases = array();
$searchphrases[] = JHTML::_('select.option',  'all', JText::_( 'All words' ) );
$searchphrases[] = JHTML::_('select.option',  'any', JText::_( 'Any words' ) );
$searchphrases[] = JHTML::_('select.option',  'exact', JText::_( 'Exact phrase' ) );
$lists['searchphrase' ]= JHTML::_('select.radiolist',  $searchphrases, 'searchphrase', '', 'value', 'text', $state->get('match') );

// log the search
SearchHelper::logSearch( $searchword);

//limit searchword

if(SearchHelper::limitSearchWord($searchword)) {
$error = JText::_( 'SEARCH_MESSAGE' );
}

//sanatise searchword
if(SearchHelper::santiseSearchWord($searchword, $state->get('match'))) {
$error = JText::_( 'IGNOREKEYWORD' );
}

if (!$searchword && count( JRequest::get('post') ) ) {
//$error = JText::_( 'Enter a search keyword' );
}

// put the filtered results back into the model
// for next release, the checks should be done in the model perhaps...
$state->set('keyword', $searchword);

if(!$error)
{
$results = &$this->get('data' );
$total = &$this->get('total');
$pagination = &$this->get('pagination');

require_once (JPATH_SITE.DS.'components'.DS.'com_content'.DS.'helpers'.DS.'route.php');

for ($i=0; $i < count($results); $i++)
{
$row = &$results[$i]->text;

if ($state->get('match') == 'exact')
{
$searchwords = array($searchword);
$needle = $searchword;
}
else
{
$searchwords = preg_split("/\s+/u", $searchword);
$needle = $searchwords[0];
}

$row = SearchHelper::prepareSearchContent( $row, 200, $needle );
$searchwords = array_unique( $searchwords );
$searchRegex = '#(';
$x = 0;
foreach ($searchwords as $k => $hlword)
{
$searchRegex .= ($x == 0 ? '' : '|');
$searchRegex .= preg_quote($hlword, '#');
$x++;
}
$searchRegex .= ')#iu';

$row = preg_replace($searchRegex, '<span class="highlight">\0</span>', $row );

$result =& $results[$i];
   if ($result->created) {
   $created = JHTML::Date ( $result->created );
   }
   else {
   $created = '';
   }

   $result->created = $created;
   $result->count = $i + 1;
}
}

$this->result = JText::sprintf( 'TOTALRESULTSFOUND', $total );

$this->assignRef('pagination',  $pagination);
$this->assignRef('results', $results);
$this->assignRef('lists', $lists);
$this->assignRef('params', $params);

$this->assign('ordering', $state->get('ordering'));
$this->assign('searchword', $searchword);
$this->assign('searchphrase', $state->get('match'));
$this->assign('searchareas', $areas);

$this->assign('total', $total);
$this->assign('error', $error);
$this->assign('action',    $uri->toString());

parent::display($tpl);
}
}
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: русификация шаблона
« Ответ #13 : 07.10.2011, 10:00:59 »
Сделал как Вы сказали, ничего не изменилось

Поле для ввода поиска в фале theme.css называется #search .inputbox, #search_searchword
У него прописан прозрачный фон background-color: transparent;
Изминете transparent например на #oooooo или #FFFFFF
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

daradan

  • Осваиваюсь на форуме
  • 41
  • 1 / 0
Re: русификация шаблона
« Ответ #14 : 07.10.2011, 20:09:02 »
umbabaraumba, большое спасибо что помогли в переводе шаблона.
поставил бы плюс, но пока думаю из-за опыта нет доступа к кнопке +... :'(
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как вывести путь до шаблона с помощью API Joomla?

Автор elche

Ответов: 13
Просмотров: 15810
Последний ответ 11.09.2018, 23:48:50
от DK-Scorp
Стили шаблона

Автор karkan25

Ответов: 12
Просмотров: 4539
Последний ответ 21.05.2017, 16:40:32
от karkan25
Проблема с изменением логотипа штатного шаблона rhuk_milkyway Joomla_1.5

Автор Porohok

Ответов: 6
Просмотров: 4870
Последний ответ 22.03.2017, 10:34:23
от Porohok
Настройка неадаптивного шаблона

Автор Zegeberg

Ответов: 4
Просмотров: 4590
Последний ответ 21.06.2016, 00:21:06
от Zegeberg
Редактирование шаблона

Автор gdmitry

Ответов: 1
Просмотров: 4421
Последний ответ 04.06.2016, 20:25:32
от Taatshi