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

Gazon

  • Захожу иногда
  • 138
  • 7 / 0
  • Образец морали куртуазной
Изменение цветов в biz_blue_ii
« : 20.08.2009, 17:41:09 »
Решил я значит из светлого шаблона biz_blue_ii сделать шаблон в темной цветовой гамме. Каких-либо кардинальных изменений не произвел, ибо пока не умею, да и шаблон данный меня полностью устраивает. Изменил лишь цветовую гамму. Никак не могу решить одну проблему: при смене цветов на темные, остались так называемые пустые полоски над модулями.  "закрасить".  ^-^

Код
/****
author - rgb (raduga) http://mambasana.ru
***/

body,html {
  padding          : 0;
  margin           : 0;
  margin-bottom    : 10px;
  
    }

#body_bg{
background     : url (../images/bg_top.gif) #1C1C1C repeat-x top left;
}

.main {
  text-align       : left;
  width            : 100%;
  margin           : 0;
  padding          : 0;
}


.mod {
  background       : #00FF00;
  width            : 2px;
}

td, tr, p, div {
  font-family      : Arial, Verdana, Tahoma, Helvetica, sans-serif;
  font-size        : 11px;
  color            : #B5B5B5;
}

hr {
  color            : #00FF00;
  height           : 1px;
  width            : 100%;
}

form {
margin           : 0;
padding          : 0;
}

img {
border: 0 none;
}

.leftrow {
  width            : 200px;
  height           : 100%;
  margin-right     : 0;
  background       : #363636;

}

.rightrow {
  height           : 100%;
  width            : 200px;
  margin-left      : 0;
  background       : #363636;

 }

.back_button {
  color            : #00FF00;
  font-family      : Tahoma, Arial, Verdana, Helvetica, sans-serif;
  font-size        : 11px;
  font-weight      : normal;
  padding-bottom   : 3px;
  margin-right     : 4px;
  float            : right;
  line-height      : 20px;
  }

.button {
  font-size        : 11px;
  color            : #B5B5B5;
  border           : 1px solid #696969;
  margin           : 3px;
  background-color : #4F4F4F;
  padding          : 2px !important;
  padding          : 1px;
  cursor           : pointer;
}

.inputbox {
 color        : #B5B5B5;
 background   : #4F4F4F;
 border       : 1px solid #828282;
 margin       : 3px;

}

h1 {font-size        : 18px;
    color            : #00FF00;
    margin           : 5px 0;
}

h2 {font-size        : 16px;
    color            : #00FF00;
    margin           : 5px 0;
}

h3 {font-size        : 14px;
    color            : #00FF00;
    margin           : 5px 0;
}

form#form-login{
background: #363636;
color: #00FF00;
margin: 5px 0 15px 0;
text-align:left
      }

form#form-login fieldset{
border: none;
}

form#form-login fieldset label {}
form#form-login ul a
{}



.contact_email  {
  width            : 100%;
}

.contact_email .inputbox {
  width            : 345px;

}

table.moduletable, table.moduletable_menu, table.moduletable_text {
margin           : 0 0 8px 0;
width            : 100%;
      background       : url (../images/mod_bottom.gif) #363636 repeat-x bottom left;
      padding-bottom   : 2px;
}

table.moduletable th, table.moduletable_menu th, table.moduletable_text th{
      
    font-family          : Tahoma, Arial, Verdana,  Helvetica, sans-serif;
font-size          : 12px;
font-weight        : bold;
text-align         : left;
width              : 100%;
      background         : url (../images/mod.gif) #363636 repeat-x top left;
      color              : #00FF00;
padding            : 2px;
      text-indent        : 10px;
line-height        : 22px;
       border-bottom: 1px solid #9C9C9C;
   
}

table.moduletable td, table.moduletable_menu td{
    padding-top: 2px;
  
     }

.lcol table.moduletable th, .lcol table.moduletable_menu th, .rcol table.moduletable th, .rcol table.moduletable_menu th{
      
      background         : url (../images/mod_lr.gif) #1C1C1C repeat-x top left;
      color              : #CFCFCF;

   
}

.sectiontableheader {
  font-size        : 12px;
  font-weight      : normal;
  text-transform   : uppercase;
  letter-spacing   : 1px;
  background         : url (../images/mod_lr.gif) #1C1C1C repeat-x top left;
  color              : #CFCFCF;
  padding          : 3px;
}

td.sectiontableheader a {
color              : #00FF00;
}

.sectiontableentry1 {
  vertical-align   : top;
  padding          : 3px;
  background       : #363636;
  border-bottom    : 1px solid #363636;
  line-height      : 18px;

}

.sectiontableentry2 {
  vertical-align   : top;
  padding          : 3px;
  border-bottom    : 1px solid #363636;
  background       : #363636;
  line-height      : 18px;
  }

.sectiontableentry1 img{
 
padding-top: 3px !important;
padding-top: 1px;
}

.sectiontableentry2 img{
 padding-top: 3px !important;
 padding-top: 1px;

}

a:link, a:visited {
  
  color            : #FFA500;
  text-decoration  : none;
  font-weight      : bold;
}

a:hover {
  color            : #CD8500;
  text-decoration  : none;
  font-weight      : bold;
}



a.category:link, a.category:visited {
  font-size        : 11px;
  font-weight      : bold;
}

a.readon:link, a.readon:visited {
  color            : #FFA500;
  font-family      : Tahoma, Arial, Verdana, Helvetica, sans-serif;
  font-size        : 11px;
  background       : url (../images/readon.gif) no-repeat;
  white-space      : normal;
  font-weight      : normal;
  padding          : 1px 0 3px 18px;
  float            : right;
  line-height      : 10px;
  text-decoration  : underline;
}

a.readon:hover {
  color            : #CD8500;
  font-family      : Tahoma, Arial, Verdana, Helvetica, sans-serif;
  font-size        : 11px;
  background       : url (../images/readon.gif) no-repeat;
  white-space      : normal;
  font-weight      : normal;
  padding          : 1px 0 3px 18px;
  line-height      : 10px;
  text-decoration  : underline;
}

ul {
  margin           : 2px;
  padding-left     : 10px;
  list-style       : none;
}

li {
  
  line-height      : 15px;
  padding-left     : 10px;
  padding-top      : 0;
  background-image : url (../images/strelka.gif) ;
  background-repeat: no-repeat;
  background-position: 0px 5px;
}

table.contenttoc {
  border           : 1px solid #00FF00;
  background       : #00FF00;
  padding          : 5px;
  margin-left      : 2px;
  margin-bottom    : 2px;
}

.pagenavcounter {
  font-size        : 10px;
  color            : #00FF00;
}

.pagenavbar {
  border-top       : 1px solid #00FF00;
  padding          : 2px;
}

.pagination span { padding: 2px; }
.pagination a    { padding: 2px; }

a.pagination:link, a.pagination:visited {
  font-size        : 11px;
  color            : #00FF00;
  text-decoration  : none;
}

a.pagination:hover {
  font-size        : 11px;
  color            : #00FF00;
  text-decoration  : none;
}

div.date {
  float:right;
  font-size        : 11px;
  font-weight      : bold;
  color            : #CD8500;
  width: 140px;
  text-align: right;
}

div.pw {
  float:left;
  width: 580px;
}

.small {
  font-size        : 10px;
  color            : #B5B5B5;
}

.smalldark {
  font-size        : 10px;
  color            : #B5B5B5;
}

.createdate, .modifydate {
  float            : left;
  font-size        : 10px;
  color            : #B5B5B5;
  font-weight      : bold;
}

.content_vote {
  font-size        : 10px;
  height           : 22px;
  padding-top      : 2px;
  padding-bottom   : 2px;
}

.content_rating {
  font-size        : 10px;
  color            : #B5B5B5;
}

.pathway {
  font-size        : 11px;
  color            : #CD8500;
  }

a.pathway:link, a.pathway:visited {
  font-size        : 11px;
  padding-left     : 0;
}

a.pathway:hover {
  font-size        : 11px;
  padding-left     : 0;
}

table.content{
  width            : 100%;
  padding          : 0;
  border-collapse  : collapse;
  border-spacing   : 0;
  margin-bottom    : 10px;
}

table.contentpane {
  width            : 100%;
  border-spacing   : 0;
  padding-left     : 5px;
  padding-right    : 5px;
  margin-bottom    : 5px;
}

table.contentpaneopen {
  width            : 100%;
  border-spacing   : 0;
  padding-left     : 5px;
  padding-right    : 5px;
  margin-bottom    : 5px;
}

.poll {
color : #00FF00;
line-height : 12px;
font-weight: normal;
      
}

.pollstableborder{
  border-color     : #00FF00;
  text-align: left;
}

.contentheading, .componentheading {
  border-bottom    : 1px solid #9C9C9C;
  font-size        : 13px;
  font-weight      : bold;
  line-height      : 16px;
  text-transform   : uppercase;
  text-align       : left;
  text-indent      : 0;
  color            : #CD8500;
  width            : 100%;
  padding          : 1px;
  margin: 3px 0px;
  }

td.article_column{
padding-right: 5px;
}

.footer {
  font-size        : 11px;
  font-weight      : normal;
  height           : 31px;
  border-top       : 1px solid #9C9C9C;
  color            : #828282;
 }

.lcol {
   vertical-align   : top;
   background       : #363636;
   padding-top: 5px;
   border-left       : 1px solid #9C9C9C;
   padding-left: 3px;

}

.rcol {
   vertical-align   : top;
   background       : #363636;
   padding-top: 5px;
   border-right       : 1px solid #9C9C9C;
   padding-right: 3px;

}

.foot {
  background       : none;
  vertical-align   : top;
  
}


.contentdescription {
  width          : auto !important;
  margin         : 0;
  padding        :  0;
  padding-top    : 5px;
  text-align     : left;
}

td.top1{
margin: 0;
padding:  0;
height: 28px !important;
height: 25px;
padding-top:  0px !important;
padding-top:  3px;
padding-left: 2.5%;
padding-right: 2.5%;
background : url (../images/shadow.jpg) #363636 repeat-x top;

}

table.top2{
background : #363636;

}

#searchbox {
  margin           : 0;
  padding          : 0;
  margin-top       : 13px;
  margin-left      : 10px;
  width            : 130px;
  font-size        : 11px;
  color            : #CD8500;
  padding          : 2px !important;
  padding          : 1px;
  border           : 1px solid #8B5A00;
  background       : none;
  
   }

td.logoheader {
  margin: 0;
  padding:  0;
  background     : url (../images/header.jpg)  #1C1C1C no-repeat bottom left;
  height         : 200px;
  width          : 100%;
  
 }

td.topnav {
  margin : 0px;
  padding:  0px;
  background     : url (../images/bg_top.gif) repeat-x top left;
  height         : 42px;
  width          : 770px;
  
 }

td.bgline {
  margin : 0px;
  padding:  0px;
  background     : url (../images/s.gif) repeat-y;
  width          : 7px;
 }


#mainlevel-nav {
  font-size        : 11px;
  list-style       : none;
  padding          : 0;
  margin           : 0;
  margin-left      : 1px;
 
}

#mainlevel-nav li {
  float            : right;
  display          : block;
  list-style       : none;
  background-image : none;
  padding-left     : 2px;
  padding-right    : 2px;
  margin           : 0;
  width            : auto !important;
  font-size        : 11px;
  line-height      : 28px;
  white-space      : nowrap;
  border-left      : 1px solid #363636;

}
#mainlevel-nav li a {
  
  padding-left     : 10px;
  padding-right    : 10px;
  font-size        : 11px;
  color            : #CD8500;
  text-decoration  : none;
  
}

#mainlevel-nav li a:hover {
  font-size        : 11px;
  color            : #FFA500;
    
}

.blog_more {
margin   : 10px 0 7px 7px;
}

.buttonheading {
padding  : 0 2px;
}

span.article_separator {
display:block;
height:15px;
clear: both;
}

div.caption       { padding: 0 10px 0 10px; }
div.caption img   { border: 1px solid #00FF00; }
div.caption p     { font-size: .90em; color: #00FF00; text-align: center; }

div.mosimage         {  margin: 5px; }
div.mosimage_caption {  font-size: .90em; color: #00FF00; }

.caption {border: 1px solid #00FF00; padding: 3px;}

/*  Main Menu */
table.moduletable_menu ul, table.moduletable_menu ul li
{
  background-image: none;
  list-style:none;
  display           : block;
  width             : auto;
  margin           : 1px 0px;
  padding          : 0;
  font-size        : 12px;
  background       : none;
  

}



table.moduletable_menu ul li a, table.moduletable_menu ul li a:link, table.moduletable_menu ul li a:visited
{
  display          : block;
  font-size        : 12px;
  border           : 1px solid #4F4F4F;
  background-color : #1C1C1C;
  font-weight      : normal;
  padding          : 2px 0;
  color            : #FFA500;
  font-weight      : bold;
  padding-left     : 10px;

}

table.moduletable_menu ul li a:hover
{
  border           : 1px solid #4F4F4F;
  background-color : #1C1C1C;
  font-size        : 12px;
  font-weight      : normal;
  color            : #CD8500;
  text-decoration  : none;
  padding-left     : 10px;
  font-weight      : bold;

}
table.moduletable_menu ul li.active a:link, table.moduletable_menu ul li.active  a:visited
{
  color            : #CD8500;
  border           : 1px solid #4F4F4F;
  background-color : #1C1C1C;
  font-weight      : bold;
}



table.moduletable_menu ul li ul li a:link, table.moduletable_menu ul li ul li a:visited, table.moduletable_menu ul li ul li ul li a:link, table.moduletable_menu ul li ul li ul li a:visited
{
   display          : block;
   font-family      : Tahoma, Verdana, Arial, Helvetica, sans-serif;
   font-size        : 11px;
   font-weight      : bold;
   color            : #00FF00;
   padding      : 3px 1px 3px 5px;
   margin  : 3px;
   text-decoration  : none;
   padding-left     : 15px;
   border: none;
}

table.moduletable_menu ul li ul li a:hover, table.moduletable_menu ul li ul li ul li a:hover
{ background:none;
  font-size        : 11px;
  font-weight      : normal;
  color            : #00FF00;
  text-decoration  : none;
  padding-left     : 15px;

}

table.moduletable_menu ul li.active ul li a:link, table.moduletable_menu ul li.active ul li a:visited, table.moduletable_menu ul li.active ul li ul li a:link, table.moduletable_menu ul li.active ul li ul li a:visited
{
   display          : block;
   font-family      : Tahoma, Verdana, Arial, Helvetica, sans-serif;
   font-size        : 11px;
   font-weight      : bold;
   color            : #CD8500;
   padding        : 3px 1px 3px 5px;
   margin           : 3px;
   text-decoration  : none;
   padding-left     : 15px;
   border: none;
}

table.moduletable_menu ul li.active ul li a:hover, table.moduletable_menu ul li.active ul li ul li a:hover
{ background:none;
  font-size        : 11px;
  font-weight      : normal;
  font-weight      : bold;
  color            : #FFA500;
  text-decoration  : none;
  padding-left     : 15px;

}

table.moduletable_menu ul li.active ul li#current a
{ background:none;
  font-size        : 11px;
  font-weight      : bold;
  color            : #FFA500;
  text-decoration  : none;
  padding-left     : 15px;

}

table.adminform textarea {
  width      : 450px;
  height     : 400px;
  color      : #FF0000;
}


/* Tooltips */
.tool-tip {
float: left;
background: #FF0000;
border: 1px solid #ff0000;
padding: 5px;
max-width: 200px;
}

.tool-title {
padding: 0;
margin: 0;
font-size: 12px;
font-weight: bold;
margin-top: -15px;
padding-top: 15px;
padding-bottom: 5px;
background: url (../../system/images/selector-arrow.png) no-repeat;
}

.tool-text {
font-size: 12px;
margin: 0;
}


/* System Standard Messages */
#system-message dd.message ul { background: #C3D2E5 url (../../images/notice-info.png) 4px center no-repeat;}

/* System Error Messages */
#system-message dd.error ul { color: #c00; background: #E6C0C0 url (../../system/images/notice-alert.png) 4px center no-repeat; border-top: 3px solid #DE7A7B; border-bottom: 3px solid #DE7A7B;}

/* System Notice Messages */
#system-message dd.notice ul { color: #c00; background: #EFE7B8 url (../../system/images/notice-note.png) 4px center no-repeat; border-top: 3px solid #F0DC7E; border-bottom: 3px solid #F0DC7E;}

/* Counters */
#counters a img{
    filter:progid:DXImageTransform.Microsoft.Alpha (opacity=60); /* IE 5.5+*/
    -moz-opacity: 0.6; /* Mozilla 1.6 и ниже */
    -khtml-opacity: 0.6; /* Konqueror 3.1, Safari 1.1 */
    opacity: 0.6; /* CSS3 - Mozilla 1.7b +, Firefox 0.9 +, Safari 1.2+, Opera 9 */
}

#counters a:hover img{
    filter:progid:DXImageTransform.Microsoft.Alpha (opacity=100); /* IE 5.5+*/
    -moz-opacity: 1; /* Mozilla 1.6 и ниже */
    -khtml-opacity: 1; /* Konqueror 3.1, Safari 1.1 */
    opacity: 1; /* CSS3 - Mozilla 1.7b +, Firefox 0.9 +, Safari 1.2+, Opera 9 */
}

/* Posters */
#posters a img{
    filter:progid:DXImageTransform.Microsoft.Alpha (opacity=80); /* IE 5.5+*/
    -moz-opacity: 0.8; /* Mozilla 1.6 и ниже */
    -khtml-opacity: 0.8; /* Konqueror 3.1, Safari 1.1 */
    opacity: 0.8; /* CSS3 - Mozilla 1.7b +, Firefox 0.9 +, Safari 1.2+, Opera 9 */
}

#posters a:hover img{
    filter:progid:DXImageTransform.Microsoft.Alpha (opacity=100); /* IE 5.5+*/
    -moz-opacity: 1; /* Mozilla 1.6 и ниже */
    -khtml-opacity: 1; /* Konqueror 3.1, Safari 1.1 */
    opacity: 1; /* CSS3 - Mozilla 1.7b +, Firefox 0.9 +, Safari 1.2+, Opera 9 */
}

На обилие color: #00FF00 не обращайте внимания, небольшие проблемные места, которые решу позже  ::)
« Последнее редактирование: 21.08.2009, 02:53:53 от Gazon »
*

Gazon

  • Захожу иногда
  • 138
  • 7 / 0
  • Образец морали куртуазной
Re: Изменение цветов в biz_blue_ii
« Ответ #1 : 21.08.2009, 02:53:36 »
Дело решено своими силами. Проблема была в коде главной страницы, помог Firebug.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Изменение JA Purity

Автор green45

Ответов: 71
Просмотров: 41099
Последний ответ 01.01.2016, 14:39:28
от Naum
Как в шаблоне с возможностью переключения цветов оставить только один цвет?

Автор MarinaE

Ответов: 2
Просмотров: 2346
Последний ответ 07.08.2014, 09:57:24
от MarinaE
Изменение ширины позиций под модули в шаблоне ICKI Sports Gavick

Автор Outstanding

Ответов: 4
Просмотров: 1919
Последний ответ 14.07.2013, 23:49:27
от Outstanding
Изменение ширины шаблона

Автор genkuk

Ответов: 8
Просмотров: 4070
Последний ответ 12.08.2012, 08:36:09
от alex75300
Изменение позиции highlight

Автор aspidx

Ответов: 2
Просмотров: 1752
Последний ответ 28.07.2012, 19:34:27
от aspidx