Новости 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 Ответов
  • 1734 Просмотров
*

Aurika

  • Захожу иногда
  • 72
  • 1 / 0
Отступ над шапкой сайта
« : 20.11.2013, 18:11:09 »
Помогите пожалуйста найти причину. Над шапкой сайта отступ. При чем два макета и на одном макете отступа нет, а на втором есть. У обоих макетов одинаковый CSS, т.е. проблема видимо в коде страницы, а не в стилях. Проверила коды, не нашла. Отступ виден в Opera, IE, Chrome и Яндекс браузере. В мазиле что-то его не видно.

Все извиняюсь, решила проблему присвоив диву класс и поставив ему отрицательный отступ. По дурацки, но хоть отступ пропал.
« Последнее редактирование: 20.11.2013, 18:26:11 от Aurika »
*

fbr

  • Завсегдатай
  • 1672
  • 206 / 7
Re: Отступ над шапкой сайта
« Ответ #1 : 20.11.2013, 18:27:32 »
Приведите в порядок шаблон сначала.
Куча тегов, которым положено быть в <head> у вас размещено в <body>
Промахнулись? ;)
*

Aurika

  • Захожу иногда
  • 72
  • 1 / 0
Re: Отступ над шапкой сайта
« Ответ #2 : 20.11.2013, 19:10:57 »
Куча тегов, которым положено быть в <head> у вас размещено в <body>
Промахнулись? ;)

Какой например тег?
Еще раз ссылку дам, потом уберу, а то сайт не мой http://ida200.bget.ru/mastif/

Может ли это быть связано с тем, что это технический адрес сайта с хостинга так как домен ещё не прикреплен? У меня код на локальном сервере  короче чем сейчас отображается на сайте.

Я коды проверила у обоих макетов и с отступом который и без - оба практически одинаковые, но на одном отступ есть, а на втором нет.
« Последнее редактирование: 20.11.2013, 19:17:33 от Aurika »
*

fbr

  • Завсегдатай
  • 1672
  • 206 / 7
Re: Отступ над шапкой сайта
« Ответ #3 : 20.11.2013, 20:29:06 »
Какой например тег?
Все! :)
в index.php (ссылку вы убрали) шаблона у вас примерно такое:
Код: html4strict
<html>
<head></head>
<body>
...
<meta>
<meta>
<script>
<link>
...
Все они должны быть в <head>! Вы не знали?
*

fbr

  • Завсегдатай
  • 1672
  • 206 / 7
Re: Отступ над шапкой сайта
« Ответ #4 : 20.11.2013, 20:32:50 »
Ага, ссылка рабочая)) Откройте файрбагом и посмотрите сами

Ладно... В общем так:

В файле index.php должен быть код

<head>

  <jdoc:include type="head" />

  <link ...

</head>

<body>
..
У вас, по видимому, то что выделено жирным, а может быть и еще что-то ... влеплено не туда, ниже тега <body>
« Последнее редактирование: 20.11.2013, 20:41:06 от fbr »
*

Aurika

  • Захожу иногда
  • 72
  • 1 / 0
Re: Отступ над шапкой сайта
« Ответ #5 : 20.11.2013, 21:57:30 »
Да нет, все mata link i script в head у меня.

Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />
<?php mosShowHead(); ?>
<link href="<?php echo "$GLOBALS[mosConfig_live_site]/templates/$GLOBALS[cur_template]/css/template_css.css";?>" rel="stylesheet" type="text/css" media="all" />
<link rel="shortcut icon" href="<?php echo "$GLOBALS[mosConfig_live_site]/templates/$GLOBALS[cur_template]/favicon.ico"; ?>" />

<!-- This so you can see the CSS styles in DW  you can delete file once editing Template is complete-->
<link href="css/template_css.css" rel="stylesheet" type="text/css" media="all" />
<script type="text/javascript">
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
</head>
<body bgcolor="#B4D8F8" topmargin="0" bottommargin="0" onload="MM_preloadImages('images/img2_06.jpg','images/img2_08.jpg','images/img2_10.jpg','images/img2_14.jpg','images/img2_16.jpg','images/img2_19.jpg','images/img2_20.jpg','images/img2_21.jpg','images/img2_22.jpg','images/img2_23.jpg')">

<div align="center">
<table border="0" cellpadding="0" cellspacing="0" width="1074" height="793">
<!-- MSTableType="layout" -->
<tr>
 <td valign="top" colspan="3" height="442">
<!-- MSCellType="ContentBody" -->
<img border="0" src="images/img1_01.jpg" width="1074" height="3"><br>
<img border="0" src="images/img1_02.jpg" width="269" height="294"><img border="0" src="images/img1_03.jpg" width="266" height="294"><img src="images/img1_04.jpg" alt="Бульмастифы" width="311" height="294" border="0"><img border="0" src="images/img1_05.jpg" width="228" height="294"><br>
<a href="/mastif" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image27','','images/img2_06.jpg',1)"><img src="images/img1_06.jpg" alt="Главная" name="Image27" width="269" height="37" border="0" id="Image27" /></a><img border="0" src="images/img1_07.jpg" width="805" height="37"><br>
   <a href="index.php?option=com_content&amp;view=article&amp;id=2" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image28','','images/img2_08.jpg',1)"><img src="images/img1_08.jpg" alt="Новости" name="Image28" width="269" height="35" border="0" id="Image28" /></a><img border="0" src="images/img1_09.jpg" width="805" height="35"><br>
            <a href="index.php?option=com_content&amp;view=article&amp;id=3" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image29','','images/img2_10.jpg',1)"><img src="images/img1_10.jpg" alt="Кобели" name="Image29" width="269" height="34" border="0" id="Image29" /></a><img border="0" src="images/img1_11.jpg" width="50" height="34"><img border="0" src="images/img1_12.jpg" width="50" height="34"><img border="0" src="images/img1_13.jpg" width="705" height="34"><br>
<a href="index.php?option=com_content&amp;view=article&amp;id=4" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image30','','images/img2_14.jpg',1)"><img src="images/img1_14.jpg" alt="Суки" name="Image30" width="269" height="40" border="0" id="Image30" /></a><img border="0" src="images/img1_15.jpg" width="805" height="40"></td>
</tr>
<tr>
<td valign="top" width="269" background="images/img1_26.jpg">
<!-- MSCellType="ContentBody" -->
<a href="index.php?option=com_content&amp;view=article&amp;id=5" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image31','','images/img2_16.jpg',1)"><img src="images/img1_16.jpg" alt="Выставки" name="Image31" width="269" height="30" border="0" id="Image31" /></a><br>
<a href="index.php?option=com_content&amp;view=article&amp;id=6" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image32','','images/img2_19.jpg',1)"><img src="images/img1_19.jpg" alt="Щенки" name="Image32" width="269" height="37" border="0" id="Image32" /></a><br>
<a href="index.php?option=com_content&amp;view=article&amp;id=7" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image33','','images/img2_20.jpg',1)"><img src="images/img1_20.jpg" alt="Галерея" name="Image33" width="269" height="37" border="0" id="Image33" /></a><br>
<a href="index.php?option=com_content&amp;view=article&amp;id=8" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image34','','images/img2_21.jpg',1)"><img src="images/img1_21.jpg" alt="Мемориал" name="Image34" width="269" height="35" border="0" id="Image34" /></a><br>
<a href="index.php?option=com_content&amp;view=article&amp;id=9" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image35','','images/img2_22.jpg',1)"><img src="images/img1_22.jpg" alt="Ссылки" name="Image35" width="269" height="32" border="0" id="Image35" /></a><br>
<a href="index.php?option=com_content&amp;view=article&amp;id=10" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image36','','images/img2_23.jpg',1)"><img src="images/img1_23.jpg" alt="Контакты" name="Image36" width="269" height="37" border="0" id="Image36" /></a><br>
 <img border="0" src="images/img1_25.jpg" width="269" height="88"></td>
 <td valign="top" width="671" bgcolor="#F3E3D1">
<!-- MSCellType="ContentBody" -->
<?php mosMainBody(); ?></td>
<td valign="top" height="283" width="134" background="images/img1_18.jpg">
<!-- MSCellType="ContentBody" -->
<img border="0" src="images/img1_18.jpg" width="136" height="189"></td>
</tr>
<tr>
<td valign="top" colspan="3" height="68">
<!-- MSCellType="ContentBody" -->
<img border="0" src="images/img1_27.jpg" width="505" height="105"><a href="http://aurika-web.com/"><img src="images/img1_28.jpg" alt="Создание сайта питомнику" width="202" height="105" border="0"></a><img border="0" src="images/img1_29.jpg" width="367" height="105"><br>
<img border="0" src="images/img1_30.jpg" width="1074" height="86"></td>
</tr>
</table>
</div>

</body>
</html>

Поискала писком строчку <jdoc:include type="head" /> в index.php там вообще такой надписи нет.
« Последнее редактирование: 20.11.2013, 22:02:38 от Aurika »
*

fbr

  • Завсегдатай
  • 1672
  • 206 / 7
Re: Отступ над шапкой сайта
« Ответ #6 : 20.11.2013, 22:17:12 »
Вы в FireBug сами можете посмотреть?

Вообще, шаблон - что-то древнее не  j1.5 ...

« Последнее редактирование: 20.11.2013, 22:28:43 от fbr »
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: Отступ над шапкой сайта
« Ответ #7 : 20.11.2013, 22:56:39 »
Вы в FireBug сами можете посмотреть?

Вообще, шаблон - что-то древнее не  j1.5 ...



Тогда уж надо в Chrome смотреть, FireBug все нормально показывает .
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

fbr

  • Завсегдатай
  • 1672
  • 206 / 7
Re: Отступ над шапкой сайта
« Ответ #8 : 20.11.2013, 23:17:22 »
http://ida200.bget.ru/mastif/
Тогда уж надо в Chrome смотреть, FireBug все нормально показывает .
Действительно ... Странно. Разная разметка в Chrome и лисе

Вот это что такое? <?php mosShowHead(); ?>
*

Aurika

  • Захожу иногда
  • 72
  • 1 / 0
Re: Отступ над шапкой сайта
« Ответ #9 : 21.11.2013, 18:29:17 »
http://ida200.bget.ru/mastif/Действительно ... Странно. Разная разметка в Chrome и лисе

Вот это что такое? <?php mosShowHead(); ?>

В инете нашла описание:
mosShowHead(); - Функция для вывода title, мететегов (description, keywords, Generator, robots, author) и ссылки на favicon.ico сайта в заголовке страниц Joomla.
*

fbr

  • Завсегдатай
  • 1672
  • 206 / 7
Re: Отступ над шапкой сайта
« Ответ #10 : 21.11.2013, 18:44:18 »
Aurika, я к сожалению не знаком со структурой вашего шаблона .. Что-то очень старое, похоже. Поэтому затрудняюсь делать предположения, что у вас не так.

Но на скриншоте, который я выложил выше, хорошо видно, что в Chrome все то, чему положено быть в <head>, находится в <body>
В IE, кстати, тоже самое. В остальных браузерах на месте.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Чем лучше всего делать резервные копии сайта?

Автор 7Azimuth

Ответов: 115
Просмотров: 57421
Последний ответ 29.11.2023, 14:41:12
от sivers
Joomla 1.5 как убрать кнопку редактировать материант с сайта

Автор andriy465

Ответов: 5
Просмотров: 3661
Последний ответ 12.11.2023, 23:37:03
от all_zer
Не могу распаковать jpa архив сайта Akeeba backup. ajax error

Автор smadkz

Ответов: 4
Просмотров: 1782
Последний ответ 26.12.2020, 15:15:15
от stendapuss
Версия сайта для слабовидящих

Автор nikos

Ответов: 22
Просмотров: 44208
Последний ответ 27.11.2020, 11:04:18
от chernobyl
Поиск статьи по url сайта в админке Joomla 1.5

Автор Tema

Ответов: 5
Просмотров: 2043
Последний ответ 14.08.2020, 07:16:44
от rsn