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

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
Чё то я плаваю в PHP....короче после заливки на хост на Мэйне  ругается на 27 строку Index.php шаблона,коментирую её-он ругается на 28 и так далее))) Где ошибка,подскажите товарищи пожалуйста)

<!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>
   <jdoc:include type="head" />
   <?php
25   global $leftcolumn_width, $rightcolumn_width;
26   $live_site        = $mainframe->getCfg('live_site');
27   $menu_name        = $this->params->get("menuName", "mainmenu");
   $menu_type        = $this->params->get("menuType", "moomenu");
   $menu_side        = $this->params->get("menuSide", "left");
   $leftinset_width  = $this->params->get("leftinsetWidth", "285");
   $rightinset_width = $this->params->get("rightinsetWidth", "175");
      
   // moomenu options
   $moo_bgiframe     = ($this->params->get("moo_bgiframe'","0") == 0)?"false":"true";
   $moo_delay        = $this->params->get("moo_delay", "500");
   $moo_duration     = $this->params->get("moo_duration", "400");
   $moo_fps          = $this->params->get("moo_fps", "100");
   $moo_transition   = $this->params->get("moo_transition", "Expo.easeOut");   
« Последнее редактирование: 22.07.2010, 20:13:56 от stardel »
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Кто нормально разбирается в PHP? )
« Ответ #1 : 22.07.2010, 20:14:43 »
Вот прямо так и пишет?
Fatal error: Ругаюсь на 27 строку Index.php шаблона.
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
Re: Кто нормально разбирается в PHP? )
« Ответ #2 : 22.07.2010, 20:16:35 »
Lex      Ага))) вот: Fatal error: Call to a member function get() on a non-object in /home/seventh1/public_html/Bunker/templates/grunge/index.php  on line 27
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Кто нормально разбирается в PHP? )
« Ответ #3 : 22.07.2010, 20:20:00 »
я бы для начала посмотрел бы
var_dump( $this );
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Кто нормально разбирается в PHP? )
« Ответ #4 : 22.07.2010, 20:29:07 »
Ну что сказать. Метод get вызван вне обьекта. $this где-то переопределяется. Где по приведенному куску не видно.
Попробуй так
Код: php
$doc = &JFactory::getDocument();
  $menu_name = $doc->params->get("menuName", "mainmenu");
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
Re: Кто нормально разбирается в PHP? )
« Ответ #5 : 22.07.2010, 21:45:41 »
Lex Да что то не нахожу....(( пардон за такой большой кусок кода)
Спойлер
[свернуть]
« Последнее редактирование: 22.07.2010, 22:26:43 от userxp »
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Кто нормально разбирается в PHP? )
« Ответ #6 : 22.07.2010, 21:53:17 »
require( YOURBASEPATH.DS."menu_styleswitcher.php");
require( YOURBASEPATH.DS."menu_styles.php");
Может тут.
Предложенный вариант работает или нет.
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

icom

  • Давно я тут
  • 830
  • 202 / 4
Re: Кто нормально разбирается в PHP? )
« Ответ #7 : 22.07.2010, 21:57:08 »
уберите
Код
require( YOURBASEPATH.DS."menu_styleswitcher.php");
require( YOURBASEPATH.DS."menu_styles.php");
и напишите какую ошибку выдаст
*

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
Re: Кто нормально разбирается в PHP? )
« Ответ #8 : 22.07.2010, 22:03:37 »
icom убрал,ругается  на 26ую,  Fatal error: Call to a member function get() on a non-object in /home/seventh1/public_html/Bunker/templates/grunge/index.php  on line 26

26    $menu_name        = $this->params->get("menuName", "mainmenu");

Lex закоментил по вашему совету эти строки:

                           require( YOURBASEPATH.DS."menu_styleswitcher.php");
                           require( YOURBASEPATH.DS."menu_styles.php");                        -не помогает((
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Кто нормально разбирается в PHP? )
« Ответ #9 : 22.07.2010, 22:09:52 »
Ну что сказать. Метод get вызван вне обьекта. $this где-то переопределяется. Где по приведенному куску не видно.
Попробуй так
Код: php
$doc = &JFactory::getDocument();
  $menu_name = $doc->params->get("menuName", "mainmenu");
Не могу добиться вразумительного ответа. Этот вариант работает или нет.
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
Re: Кто нормально разбирается в PHP? )
« Ответ #10 : 22.07.2010, 22:18:59 »
Lex Если вот так:

<?php
   global $leftcolumn_width, $rightcolumn_width;
   
    $doc = &JFactory::getDocument();
  $menu_name = $doc->params->get("menuName", "mainmenu");
   
   $live_site        = $mainframe->getCfg('live_site');     -то  не помогает(((
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Кто нормально разбирается в PHP? )
« Ответ #11 : 22.07.2010, 22:42:11 »
А ниже
$menu_name        = $this->params->get("menuName", "mainmenu");
осталось? Или закомментировал?
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
Re: Кто нормально разбирается в PHP? )
« Ответ #12 : 22.07.2010, 23:04:12 »
Lex  нет,не осталось((( счас у меня вот так:

<head>
	
<
jdoc:include type="head" />
	
<?
php
	
global 
$leftcolumn_width$rightcolumn_width;
	

	
 
$doc = &JFactory::getDocument();
  
$menu_name $doc->params->get("menuName""mainmenu");
	

	
$live_site        $mainframe->getCfg('live_site');   
	

	
$menu_type        $this->params->get("menuType""moomenu");
	
$menu_side        $this->params->get("menuSide""left");
	
$leftinset_width  $this->params->get("leftinsetWidth""285");
	
$rightinset_width $this->params->get("rightinsetWidth""175");

*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Кто нормально разбирается в PHP? )
« Ответ #13 : 22.07.2010, 23:29:18 »
Ну если прямо вот эта строка
$menu_name = $doc->params->get("menuName", "mainmenu");
возвращает ошибку вызова вне обьекта. То хз. Похоже проблема не в шаблоне. Как вариант - криво залилось на хостинг. Попробуй этот шаблон на чистой установке на этом хостинге.
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
Re: Кто нормально разбирается в PHP? )
« Ответ #14 : 23.07.2010, 00:00:21 »
Lex короче снёс шаблон,поставил заново через админку,почему то после этого не все папки были в шаблоне,копирул с локалеи и заработало))))    Всем СПС большое!
*

taravasya

  • Осваиваюсь на форуме
  • 26
  • 1 / 0
Re: Кто нормально разбирается в PHP? )
« Ответ #15 : 12.03.2013, 20:08:12 »
Подскажите правильный синтаксис этой строки:
Код
<a href=on-lajn-magazin.html?page=shop.product_details&amp;flypage=vmj_ritz.tpl&amp;product_id=" . $dbp->f("product_id"). "&amp;category_id=" . $dbp->f("category_id"). ">" . $dbp->f("product_name"). "</a></td>
Мне нужно в неё добавить тег:
Код
target="_blank"
В изначальном виде ссылка работает. Если пытаюсь добавить тег, то перестаёт работать... Как только уже не пробовал...
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: Кто нормально разбирается в PHP? )
« Ответ #16 : 12.03.2013, 20:21:25 »
Сразу после <a
Цитировать
<a target='_blank'
P.S. Поправил, кавычки попробуйте одинарные
« Последнее редактирование: 12.03.2013, 20:24:32 от Efanych »
Создание сайтов, шаблонов, помощь в решении проблем.
*

taravasya

  • Осваиваюсь на форуме
  • 26
  • 1 / 0
Re: Кто нормально разбирается в PHP? )
« Ответ #17 : 12.03.2013, 20:28:38 »
Efanych, спасибо! С одинарными кавычками заработало как положено. Собственно... если честно я пробовал менять место расположения тега. Но делать в нём одинарные кавычки не пробовал... (((
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться