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

qpwoeiruty

  • Новичок
  • 5
  • 0 / 0
Спасибо модераторам, что не удаляют и дают делать первые шаги на пути к хорошему сайту СВОИМИ РУКАМИ (и чужой головой  ;D )

Вопрос очень простой.

есть нарисованная шапка. это картинка. размер 1111х112 пикселей, jpg.
нужно просто поместить её в самый верх сайта по центру.

где и что нужно прописать? нужно картинку порезать? в таблицу вставить? делаю первые шаги и многого не понимаю.

я поковырял templates\jclick\index.php
но боюсь испортить так как не понимаю ни чего.

я так понимаю, что нужно всего пару строк прописать.
научите пожалуйста.

тот же вопрос к нижней части сайта.
есть картинка - её нужно в самый низ сайта по центру.

Спасибо за ответы. ^-^
*

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
*

qpwoeiruty

  • Новичок
  • 5
  • 0 / 0
Re: как сделать шапку и низ для сайта ?
« Ответ #3 : 09.09.2008, 18:09:03 »
Спасибо ребята Вы мне очень помогли.
Я два дня искал нашел много инфы но боюсь испортить код.

Напиши хоть в каком файле править код.
*

Robinson

  • Захожу иногда
  • 442
  • 72 / 1
Re: как сделать шапку и низ для сайта ?
« Ответ #4 : 09.09.2008, 18:16:32 »
Сделайте копию файла index.php и положите в укромное местечко, - при нужде можно будет его достать. В шаблоне есть папка image, в ней картинки, надо найти по внешнему виду нужную и заменить на свою, только имя, расширение и размеры должны быть как у "родной". С картинок тоже можно сделать резервные копии.
*

qpwoeiruty

  • Новичок
  • 5
  • 0 / 0
Re: как сделать шапку и низ для сайта ?
« Ответ #5 : 09.09.2008, 18:18:31 »
у меня в шаблоне нету вверху картинки . я бы уже заменил.
может мне пришлете кусок кода как у вас в index.php

а я его себе поставлю.
*

Aleks_El_Dia

  • Живу я здесь
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: как сделать шапку и низ для сайта ?
« Ответ #6 : 09.09.2008, 19:02:08 »
уффф...выложи шаблон сюда.
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

qpwoeiruty

  • Новичок
  • 5
  • 0 / 0
Re: как сделать шапку и низ для сайта ?
« Ответ #7 : 09.09.2008, 21:11:18 »
<?php
/*----------------------------------------------------------------------
#Youjoomla Defaul Index -
# ----------------------------------------------------------------------
# Copyright (C) 2007 You Joomla. All Rights Reserved.
# Designed by: You Joomla
# License: GNU, GPL
# Website: http://www.youjoomla.com
------------------------------------------------------------------------*/
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
$iso = split( '=', _ISO );
// xml prolog - quirks mode
//echo '<?xml version="1.0" encoding="'. $iso[1] .'"?' .'>';

// TOP MENU SWITCH //
$menu_name = "mainmenu";// mainmenu by default, can be any Joomla! menu name
#DO NOT EDIT BELOW THIS LINE
$sitewidth = 'wide'; //width:1000px; /*change width on fly 800=764 1024=1000*/

// ENTER YOUR TAB NAMES//
$tab1 ='Featured';
$tab2 ='Entertainment';
$tab3 ='Sport';
$tab4 ='Marketplace';

// SEO SECTION //

$seo  = 'site'; # JUST FOLOW THE TEXT
$tags = 'site';    # JUST FOLOW THE TEXT

// SITE TOOLS SWITCH //
$tolls =0; // 0 = hide site tools | 1 = SHOW ALL TOOLS | 2 = FONT RESIZER ONLY | 3 = COLOR CHANGER ONLY |


// DEFAULT COLOR //
$defaultcss = 'red';  // red | green | blue

include ($mosConfig_absolute_path."/templates/" . $mainframe->getTemplate() . "/settings.php");
require($mosConfig_absolute_path."/templates/" . $mainframe->getTemplate() . "/suckerfish2.php");
?>
<!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; ?>" />
<link rel="shortcut icon" href="<?php echo $mosConfig_live_site;?>/images/favicon.ico" />
<link href="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/css/<?php echo $defaultcss ?>.css" rel="stylesheet" title="" type="text/css" media="all"/>
<?php if($tolls == 1 || $tolls == 3) { ?>
<link rel="alternate stylesheet" type="text/css" href="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/css/red.css" title="red"/>
<link rel="alternate stylesheet" type="text/css" href="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/css/blue.css" title="blue" />
<link rel="alternate stylesheet" type="text/css" href="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/css/green.css" title="green" />
<?php } ?>
<?php if ( $my->id ) { initEditor(); }?>
<?php mosShowHead(); ?>
<!--[if lte IE 6]>
<style type="text/css">
#logo,#headerr{
   behavior: url(<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/css/iepngfix.htc);
}
</style>
<![endif]-->
<!--[if  IE 6]>
<link href="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/css/iesucks.css" rel="stylesheet" title="" type="text/css" media="all"/>
<![endif]-->
<script type="text/javascript" src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/src/mootools.js"></script>
<script type="text/javascript" src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/src/sve.js"></script>
</head>
<body>
    <div id="shades">
<div id="centar" style="width:<?php echo $site ?>;">
<!-- *********START MENU SHELF ********* -->
<div id="menuwrap"><div id="menushelf"><div id="menushelfr">

</div></div></div>

<!-- *********END MENU SHELF********* -->
<!-- *********START HEADER ********* -->
<div id="headerbg"><div id="headerr"></div>
<div id="logo"><h1><a href="index.php" title="<?php echo $tags?>"><?php echo $seo ?></a></h1></div>
<div id="<?php echo $divb ?>"  style="width:<?php echo $bannerwidth ?>;"><?php mosLoadModules('banner',-2);?></div>
</div>
<!-- *********END HEADER ********* -->

<div id="pathway">
<div id="path"><?php mospathway() ?></div>
<?php if($tolls == 1) { ?>
<div id="toolbar">
<!-- STYLE SWITCH--><a href="#" onclick="setActiveStyleSheet('blue');return false;">
<img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/blue.gif" title="Change to blue" alt="" align="top" border="0" /></a><a href="#" onclick="setActiveStyleSheet('red');return false;"><img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/bordo.gif" title="Change to red" alt="" align="top" border="0" /></a><a href="#" onclick="setActiveStyleSheet('green');return false;"><img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/green.gif" title="Change to green" alt="" align="top" border="0" /></a>
<!-- END STYLE SWITCH-->
<!--font resizer-->
<a href="javascript:void(0)" title="Decrease font size" onclick="changeFontSize(-1);return false;">
<img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/smallfont.gif" alt="" align="top" border="0" />
</a><a href="javascript:void(0)" title="Revert font size to default" onclick="revertStyles(); return false;">
<img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/medfont.gif" alt="" align="top" border="0" />
</a><a href="javascript:void(0)" title="Increase font size" onclick="changeFontSize(1);return false;">
<img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/largefont.gif" alt="" align="top" border="0" />
</a>
<!--end font resizer-->
</div><?php } ?>
<?php if($tolls == 2) { ?>
<div id="toolbar">
<a href="javascript:void(0)" title="Decrease font size" onclick="changeFontSize(-1);return false;">
<img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/smallfont.gif" alt="" align="top" border="0" />
</a><a href="javascript:void(0)" title="Revert font size to default" onclick="revertStyles(); return false;">
<img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/medfont.gif" alt="" align="top" border="0" />
</a><a href="javascript:void(0)" title="Increase font size" onclick="changeFontSize(1);return false;">
<img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/largefont.gif" alt="" align="top" border="0" />
</a>
<!--end font resizer-->
</div><?php } ?>
<?php if($tolls == 3) { ?>
<div id="toolbar">
<!-- STYLE SWITCH--><a href="#" onclick="setActiveStyleSheet('blue');return false;">
<img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/blue.gif" title="Change to blue" alt="" align="top" border="0" /></a><a href="#" onclick="setActiveStyleSheet('red');return false;"><img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/bordo.gif" title="Change to red" alt="" align="top" border="0" /></a><a href="#" onclick="setActiveStyleSheet('green');return false;"><img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/green.gif" title="Change to green" alt="" align="top" border="0" /></a>
<!-- END STYLE SWITCH-->
</div><?php } ?>
</div>
<!-- *******************************START SITE WRAPS ********************************** -->
<div id="<?php echo $wrap?>">
<div id="<?php echo $insidewrap ?>">
<?php if (mosCountModules('user3')) { ?>
<!--**********************MIDDLE MOD**********************-->
<div id="midmodwrap">
<div id="srh"><?php mosLoadModules('user3',-2);?></div></div>
<!--**********************END MIDDLE MOD**********************-->
<?php } ?>
<!-- *********START TOP SHELF ************* -->
<?php if (mosCountModules('user1') || mosCountModules('user2')) { ?>
<div id="topshelf">
     <div id="topr" style="width:<?php echo $topwidth ?>"><?php mosLoadModules('user1',-3);?></div>
     <div id="topl" style="width:<?php echo $topwidth ?>"><?php mosLoadModules('user2',-3);?></div>
</div>
<?php } ?>
<!-- *********END TOP SHELF ************* -->
<div id="<?php echo $mainbody ?>">
<div id="<?php echo $content ?>">
<div class="inside">
<?php if (mosCountModules('tab1') || mosCountModules('tab2') || mosCountModules('tab3') || mosCountModules('tab4')) { ?>
<div id="topmod">
<?php mosLoadModules('top',-3);?> 
<!--****************start tabs*******************-->
 <!-- start slide-->
 <script type="text/javascript" src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/src/slide.js">
</script>
  <!-- tabs-->
   <div id="demo-bar">
   <div id="karnav">
    <div id="movediv">
    <ul>
    <li><a id="link1" href="#" name="link1"><span><?php echo $tab1 ?></span></a></li>
    <li><a id="link2" href="#" name="link2"><span><?php echo $tab2 ?></span></a></li>
    <li><a id="link3" href="#" name="link3"><span><?php echo $tab3 ?></span></a></li>
    <li><a id="link4" href="#" name="link4"><span><?php echo $tab4 ?></span></a></li>
    </ul>
    </div>
    </div>
</div>
  <!--end tabs-->
 <div id="swr3">
  <div class ="swr">
  <div class ="swr2">
 <div id="slidewrap">
<div id="mainslide">
<div class="scrolling-content" id="content1">
<div id="adv1">
<?php mosLoadModules('tab1',-2); ?></div>
</div><!--end 1-->
<div class="scrolling-content" id="content2">
<div id="adv2">
<?php mosLoadModules('tab2',-2); ?></div>
</div><!--end 2-->
<div class="scrolling-content" id="content3">
<div id="adv3">
<?php mosLoadModules('tab3',-2); ?></div>
</div><!--end 3-->
<div class="scrolling-content" id="content4">
<div id="adv4">
<?php mosLoadModules('tab4',-2); ?></div>
</div><!--end 4-->
</div><!--end mainslide-->
</div><!--end wraper-->
</div>
</div>
 </div>
 <!-- end slide-->
<!--*************End Tabs *******************-->
</div><?php } ?>
<?php if (mosCountModules('advert1') || mosCountModules('advert2')) { ?>
<!--***********************AD1 shelf*******************-->
<div id="ad1"><div id="ad1w">

<div id="a2" style="width:<?php echo $ad1width ?>"><?php mosLoadModules('advert1',-3);?></div>
<div id="a1" style="width:<?php echo $ad1width ?>"><?php mosLoadModules('advert2',-3);?></div>


</div></div>
<!--***********************end AD1 shelf*******************-->
<?php } ?>


<?php mosMainBody(); ?>
<?php if (mosCountModules('advert3') || mosCountModules('user10')) { ?>
<!--***********************AD6 shelf*******************-->
<div id="ad6"><div id="ad6w">

<div id="a4" style="width:<?php echo $ad6width ?>"><?php mosLoadModules('advert3',-3);?></div>
<div id="a3" style="width:<?php echo $ad6width ?>"><?php mosLoadModules('user10',-3);?></div>

</div></div>
<!--***********************end AD6 shelf*******************-->
<?php } ?>
<?php if (mosCountModules('bottom')) { ?>
<div id="bottmod">
<?php mosLoadModules('bottom',-3);?> 
</div><?php } ?>
</div></div>

<?php if (mosCountModules('left')) { ?>
<div id="<?php echo $left ?>">
<div class="inside"><!-- keep mods of edges-->

<?php mosLoadModules('left',-2);?>
<!-- end inside--></div><!-- end modsl--></div><!-- end left side-->
<?php } ?>
</div> <!--end of main-body-->
<!-- right side always stand alone-->
<?php if (mosCountModules('right')) { ?>
<div id="<?php echo $right ?>">
<div class="inside"> <!-- keep mods of edges-->

<?php mosLoadModules('right',-3);?></div>
<!-- end of inside --></div><!-- end right side-->
<?php } ?>
<div class="clr"></div>
</div><!-- end of insidewrap--></div> <!--end of wrap-->
</div><!-- end centar-->
</div><!-- shadow-->
<?php if (mosCountModules('user8') || mosCountModules('user7') || mosCountModules('user6') || mosCountModules('user5') || mosCountModules('user4')) { ?>
<div id="footerwrap">
<div id="footwr" style="width:<?php echo $site ?>;">
<?php if (mosCountModules('user4')) { ?>
<div id="f5" style="width:<?php echo $bottomwidth ?>"><?php mosLoadModules('user4',-2);?></div><?php } ?>
<?php if (mosCountModules('user5')) { ?>
<div id="f4" style="width:<?php echo $bottomwidth ?>"><?php mosLoadModules('user5',-2);?></div><?php } ?>
<?php if (mosCountModules('user6')) { ?>
<div id="f3" style="width:<?php echo $bottomwidth ?>"><?php mosLoadModules('user6',-2);?></div><?php } ?>
<?php if (mosCountModules('user7')) { ?>
<div id="f2" style="width:<?php echo $bottomwidth ?>"><?php mosLoadModules('user7',-2);?></div><?php } ?>
<?php if (mosCountModules('user8')) { ?>
<div id="f1" style="width:<?php echo $bottomwidth ?>"><?php mosLoadModules('user8',-2);?></div><?php } ?>
</div>
</div><?php } ?>
<div id="copyright"><div id="copyl"  style="width:<?php echo $site ?>;"><div id="copyr">
<div class="copyright"><?php mosLoadModules('footer',-1);?></div>
<!--
<a href="http://www.youjoomla.com">Copyright  Youjoomla.com</a><a href="index.php?option=com_rss&amp;feed=RSS2.0&amp;no_html=1">
   <img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/rss.gif" alt="" align="top" border="0" />
</a>
      <a href="http://jigsaw.w3.org/css-validator/check/referer" target="_blank" title="CSS Validity" style="text-decoration: none;">

      <img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/CSS.gif" border="none" alt="CSS Valid" />
      </a>
      <a href="http://validator.w3.org/check/referer" target="_blank" title="XHTML Validity" style="text-decoration: none;">
      <img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/xhtml.gif" border="none" alt="XHTML Valid" />
      </a><a href="#shades">
       
        <img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/gotop.gif" border="none" alt="Go to top" />
       
        </a>
-->

</div></div></div>
</body>
</html>

*

qpwoeiruty

  • Новичок
  • 5
  • 0 / 0
Re: как сделать шапку и низ для сайта ?
« Ответ #8 : 09.09.2008, 21:42:17 »
Правильный файл выложил ?
*

Aleks_El_Dia

  • Живу я здесь
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: как сделать шапку и низ для сайта ?
« Ответ #9 : 09.09.2008, 23:28:08 »
Прикрепи весь архив с шаблоном
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Re: как сделать шапку и низ для сайта ?
« Ответ #10 : 10.09.2008, 11:21:16 »
Правильный файл выложил ?
Бле...
есть же ВВкоды - [ code][/ code] для вставки кода на форум!!!
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Re: как сделать шапку и низ для сайта ?
« Ответ #11 : 10.09.2008, 11:27:42 »
Вот для Шапки
Код
<table width="1111" height="112" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><img src="<?php echo $mosConfig_live_site;?>/templates/НазваниеШаблона/images/КартинкаШапки.jpg" width="1111" height="112" border="0" /></td>
  </tr>
</table>
Вот для низа
Код
<table width="1111" height="112" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><img src="<?php echo $mosConfig_live_site;?>/templates/НазваниеШаблона/images/КартинкаНиза.jpg" width="1111" height="112" border="0" /></td>
  </tr>
</table>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Валидация сайта

Автор Pinin

Ответов: 26
Просмотров: 4559
Последний ответ 08.05.2017, 17:08:56
от Pinin
Восстановление управляемости сайта на Joomla 1.0.12 после обновления php до версии 5.5 и последовате

Автор galogen

Ответов: 6
Просмотров: 4772
Последний ответ 15.02.2017, 01:58:44
от Alex Revo
Как реализовать рассылку новостей с сайта?

Автор mystique

Ответов: 6
Просмотров: 6039
Последний ответ 08.01.2017, 16:16:51
от vipiusss
как восстановить обычный вид для редактирования сайта?

Автор fasis

Ответов: 10
Просмотров: 6024
Последний ответ 11.08.2016, 15:13:29
от KKAAZZOO
Меню сайта. Выделение активной страницы в меню.

Автор Dies

Ответов: 9
Просмотров: 10118
Последний ответ 27.01.2016, 12:29:26
от Daser