Новости Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

👩‍💻 SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla.Компонент - менеджер цифровых проектов для Joomla! CMS. Компонент обеспечивает создание каталога цифровых проектов и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей.👩‍💻 v.2.5.0. Что нового?Схемы структур данных для серверов обновлений. Теперь с SW JProjects вы может создавать сервер обновлений не только для расширений Joomla, но и свои собственные. Например, вам нужно, чтобы структура данных сервера обновлений была другая и формат должен быть, например, не XML, а JSON. Формирование структуры данных для сервера обновлений расширений Joomla вынесено в отдельный плагин. Вы можете создать свой собственный плагин и реализовать в нём нужную вам структуру данных, добавив или наоборот исключив отображаемые данные. Сервер обновлений в компоненте по-прежнему отображает информацию о списке проектов и их версиях, о конкретном проекте и его changelog.Можно выбрать схему данных сервера обновлений глобально для всего компонента, выбрать другую схему данных для категории проектов, а так же выбрать схему в каждом проекте.

Разработчикам в качестве образца можно посмотреть плагин схемы данных для Joomla в составе компонента или же плагин-образец JSON-схемы на GitHub.
Группа плагинов swjprojects. Для нужд компонента создана группа плагинов swjprojects. В частности, в этой группе находится плагин структуры данных Joomla расширений для сервера обновлений.Изменение языковых констант. Изменены некоторые языковые константы в панели администратора. Если вы делали переопределение констант - переопределите их снова.👩‍💻 Joomla 6. Внесены изменения для корректной установки и работы компонента на Joomla 6. Компонент успешно протестирован на Joomla 6-beta2.Минимальная версия Joomla - 5. Подняты минимальные системные требования: Joomla 5.0.0 и PHP 8.1.
- Страница расширения👉 Плагин-образец кастомной JSON-схемы данных для сервера обновлений на GitHub.- GitHub расширения- Документация на GitHub- Joomla Extensions Directory#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 Гость просматривают эту тему.
  • 2 Ответов
  • 1708 Просмотров
*

KryaKusha

  • Новичок
  • 1
  • 0 / 0
Привет, киберфорум!
Недавно убрал с сайта поле под главным горизонтальным меню, в котором находились строка местонахождения на сайте(которую меня попросили убрать совсем) и поисковая строка.
Никак не могу перенести модуль поиска по сайту в другое место.
Здесь само меню сайта. Красным отмечена область, куда нужно вставить поисковую строку.
Горизонтальное меню называется topmenu.
Из php кода я убрал модуль subhead, в котором есть и строка поиска и навигатор по сайту:
<div id="subhead">
	
	
	
	
<?
php if($this->countModules('position-2')) : ?>
	
            
	
<jdoc:include type="modules" name="position-2" />
	
	
	
	
<?php endif; ?>
	
	
	
	
<?php if($this->countModules('position-0')) : ?>
	
	
	
	
	
<div id="search">
	
	
	
             <jdoc:include type="modules" name="position-0" />
	
	
	
	
	
</div>
	
	
	
	
<?php endif; ?>
	
	
	
</div>

Вот сам php код:
<?php
defined
'_JEXEC' ) or die( 'Access to this location is RESTRICTED.' );
echo 
'<?xml version="1.0" encoding="utf-8"?'.'>'
?>
<!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" xml:lang="<?php echo $this->language?>" lang="<?php echo $this->language?>" >
<head>
	
<?php require("head_includes.php"); ?>
	
<jdoc:include type="head" />
</head>
<body>
	
<?php if($whatWidth == 1) : ?>
	
	
<div id="wrapper" style="max-width:<?php echo htmlspecialchars($this->params->get('pageMaxWidth'));?>;">
	
<?php endif;?>
	
<?php if($whatWidth == 0) : ?>
	
	
<div id="wrapper" style="width:<?php echo htmlspecialchars($this->params->get('pageWidth'));?>;">
	
<?php endif;?>
	
	
<?php require("modules/toppanel.php"); ?>
	
	
<?php require("modules/beforehead.php"); ?>
	
	
<div id="header_container">
	
	
	
<?php if (($this->params->get('showHeader'))!=0) : ?>
	

	
	
	
	
<div id="header">
	
	
	
	
	
<?php if($this->countModules('headermodule1')) : ?>
	
	
	
	
	
	
<div id="headermodule1">
	
	
	
	
	
	
	
<jdoc:include type="modules" name="headermodule1" />
	
	
	
	
	
	
	
<div class="clr"></div>
	
	
	
	
	
	
</div>
	
	
	
	
	
<?php endif; ?>
	
	
	

	
	
	
	
	
<?php if($this->countModules('banner')) : ?>
	
	
	
	
	
	
<div id="banner_outer">
	
	
	
	
	
	
	
<div id="banner">
	
	
	
	
	
             <jdoc:include type="modules" name="banner"/>
	
	
	
	
	
	
	
</div>
	
	
	
	
	
	
</div>
	
	
	
	
	
<?php endif; ?>
	
	
	

	
	
	
	
	
<div id="logo">
	
	
	
	
	
	
<?php if (($this->params->get('showimgLogo'))!=0) : ?>
	
	
	
	

	
	
	
	
	
	
	
<a class="imglogo" href="index.php"><img alt="Logo" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/images/logo/<?php echo htmlspecialchars($this->params->get('imgLogo'));?>"/></a>
	
	
	
	
	
	
<?php endif;?>
	
	
	
	
	
	
<?php if (($this->params->get('showMediaLogo'))!=0) : ?>
	
	
	
	

	
	
	
	
	
	
	
<a class="medialogo" href="index.php"><img alt="Logo" src="<?php echo $this->baseurl ?>/<?php echo htmlspecialchars($this->params->get('mediaLogo'));?>"/></a>
	
	
	
	
	
	
<?php endif;?>
	
	
	
	
	
	
<?php if (($this->params->get('showtextLogo'))!=0) : ?>
	
	
	
	

	
	
	
	
	
	
	
<a style="color:#<?php echo htmlspecialchars($this->params->get('logoColor'));?>;" class="logo" href="index.php"><?php echo htmlspecialchars($this->params->get('textLogo'));?></a>
	
	
	
	
	
	
<?php endif;?>
	
	
	
	
	
	
<?php if (($this->params->get('showSlogan'))!=0) : ?>
	
	
	
	

	
	
	
	
	
	
	
<div style="color:#<?php echo htmlspecialchars($this->params->get('sloganColor'));?>;" class="slogan"><?php echo htmlspecialchars($this->params->get('slogan'));?></div>
	
	
	
	
	
	
<?php endif;?>
	
	
	
	
	
</div>
	

	
	
	
	
	
<?php if($this->countModules('headermodule2')) : ?>
	
	
	
	
	
	
<div id="headermodule2">
	
	
	
	
	
	
	
<jdoc:include type="modules" name="headermodule2" />
	
	
	
	
	
	
	
<div class="clr"></div>
	
	
	
	
	
	
</div>
	
	
	
	
	
<?php endif; ?>
	
	
	

	
	
	
	
	
<span class="heckl">&nbsp;</span>
	
	
	
	
	
<span class="heckr">&nbsp;</span>
	
	
	
	
</div>
	
	
	
<?php endif; ?>
	
	
	

	
	
	
<?php require("modules/afterhead.php"); ?>
	
	
	
<?php if($this->countModules('position-1')) : ?>
	
	
	
	
<div id="topmenu_container">
	
	
	
	
	
<div id="topmenu">
	
	
	
             <jdoc:include type="modules" name="position-1" />
	
	
	
	
	
</div>
	
	
	
	
	

	
	
	
	
	
<div class="clr"></div>
	
	
	
	
</div>
	
	
	
<?php endif; ?>
	
	
	
<?php if($this->countModules('position-1-1')) : ?>
	
             <jdoc:include type="modules" name="position-1-1" />
	
	
	
	
<div class="clr"></div>
	
	
	
<?php endif; ?>
	
	
</div>
	
	
<?php if($this->countModules('position-2 or position-0')) : ?>
	
	
	

	
	
<?php endif; ?>
	
	
<div id="container">
	
	
	
<?php if($this->countModules('slider')) : ?>
	
	
	
	
<div id="slider">
	
	
	
	
	
<jdoc:include type="modules" name="slider" />
	
	
	
	
</div>
	
	
	
	
<div class="clr"></div>
	
	
	
<?php endif; ?>
	
	
	
<?php require("modules/top.php"); ?>
	
	
	
<?php if($this->countModules('position-7')) : ?>
	
	
	
	
<div id="leftcol">
	
	
             <jdoc:include type="modules" name="position-7" style="lvround_left" />
	
	
	
	
</div>
	
	
	
<?php endif; ?>
	
	

	
	
    <div id="content_out<?php echo $contentwidth?>">
	
	
	
	
<?php require("modules/advert_top.php"); ?>
	
	
	
	
<div id="maincontent">
	
	
	
	
	
<jdoc:include type="message" />
	

<?php require_once(dirname(__FILE__).'/css/system.php'); ?>
	
	
	
	
	

	
	
	
	
	
<jdoc:include type="component" />
	
	
	
	
</div>
	
	
	
	
<div class="clr"></div>
	
	
	
	
<span class="shadow-left">&nbsp;</span>
	
	
	
	
<span class="shadow-right">&nbsp;</span>
	
	
	
	
<?php require("modules/advert_btm.php"); ?>
	
	
	
</div>
	
	
	
<?php if($this->countModules('position-8')) : ?>
	
	
	
	
<div id="rightcol">
	
	
             <jdoc:include type="modules" name="position-8" style="lvround_right" />
	
	
	
	
</div>
	
	
	
<?php endif; ?>
	

	
	
	
<div class="clr"></div>
	
	
</div>
	
	
<?php require("modules/bottom.php"); ?>
	
	
<div class="clr"></div>
	
</div>
	
<?php if($whatWidth == 1) : ?>
	
	
<div id="foot_container" style="max-width:<?php echo htmlspecialchars($this->params->get('pageMaxWidth'));?>;">
	
<?php endif;?>
	
<?php if($whatWidth == 0) : ?>
	
	
<div id="foot_container" style="width:<?php echo htmlspecialchars($this->params->get('pageWidth'));?>;">
	
<?php endif;?>
	
	
<?php require("modules/foot.php"); ?>
	
	
	
	
<?php if($this->countModules('footer')) : ?>
	
	
	
	
	
<div id="footermodule">
	
	
	
	
	
	
<jdoc:include type="modules" name="footer" />
	
	
	
	
	
</div>
	
	
	
	
<?php endif; ?>
	
	
	

	

	
	
<?php if (($this->params->get('showSubfoot'))!=0) : ?>
	

	
	
	
<div id="subfoot">
	
	
	
	
<?php if (($this->params->get('showCopy'))!=0) : ?>
	
	
	
	

	
	
	
	
	
<div class="copytext">&copy; <?php echo htmlspecialchars($this->params->get('copyText'));?></div>
	
	
	
	
<?php endif;?>
	
	
	
</div>
	
	
<?php endif; ?>
	
	
	

	

	
	
<div class="clr"></div>
	
	
	
<div id="footer">
	
	
	
	
<div class="footer-inner">
	
	
	
	
	
<span class="feckl">&nbsp;</span>
	
	
	
	
	
<span class="feckr">&nbsp;</span>
	
	
	
	
	
<div id="scroll_up"> <a href="#" class="lv-tooltip" id="gotop" title="Scroll to top">&uarr;&uarr;&uarr;</a></div>
	
	
	
	
	
<?php require("modules/footermodules.php"); ?>
	
	
	
	
</div>
	
	
	
	
<div class="footer-bottom">
	
	
	
	
	
<?php if (($this->params->get('showDate'))!=0) : ?>
	
	
	
	

	
	
	
	
  
	
	
<span id="date"><?php $format =''; echo JHTML::_('date''now'$format $format JText::_('DATE_FORMAT_LC1')); ?></span>
	
	
	
	
	
<?php endif;?>
	
	
	
  
	
	
<span id="copy"><a href="http://joomla3x.ru/" title="joomla 3">joomla3x</a></span>
	
	
	
	
</div>
	
	
	
</div>
	
	

	
	
<div class="clr"></div>
	
</div>
	

	
<?php require("modules/sidepanel.php"); ?>
	
<jdoc:include type="modules" name="debug" />
</body>
</html>

Вот поиск в файле css:
[CSS].search input.button {
   margin:0;
   padding:1px 2px !important;
   vertical-align:middle;
}[/CSS]
Помогите пожалуйста добавить поиск на сайт, очень надо.
*

rqoon

  • Новичок
  • 7
  • 0 / 0
Модуль поиска, глядя на код, был в позиции 'position-0' которая была в том самом "id="subhead'".
Код

<div id="search">

             <jdoc:include type="modules" name="position-0" />

</div>
Нужно просто назначить модулю поиска другую позицию.
*

levitan

  • Захожу иногда
  • 142
  • 1 / 0
Расширения - менеджер модулей - выбрать нужный - выбор позиции. И выбирайте ту, которая Вам требуется. Позиции (если не отключен просмотр в настройках системы) можно просмотреть, добавив в конце адреса сайта ?tp=1
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать плавающий модуль?

Автор THeCMeX

Ответов: 2
Просмотров: 1181
Последний ответ 08.03.2021, 22:21:01
от Flexderection
Как сделать плавающий блок/модуль. Пример есть!

Автор Good_user

Ответов: 8
Просмотров: 12420
Последний ответ 04.04.2020, 13:49:11
от jan_dax
helix 3 не могу заставить работать position: sticky;

Автор platonische

Ответов: 0
Просмотров: 1763
Последний ответ 04.01.2020, 16:01:16
от platonische
Не могу вывести картинку нужно размера

Автор stonehand

Ответов: 3
Просмотров: 1174
Последний ответ 22.03.2019, 21:55:29
от sivers
Как вставить красивю кнопку CSS в модуль/материал?

Автор kunsaid

Ответов: 6
Просмотров: 2880
Последний ответ 02.10.2018, 23:16:12
от kunsaid