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

miscwrk

  • Захожу иногда
  • 82
  • 0 / 0
Помогите пожалуйста, в компоненте JEvents есть несколько режимов просмотра событий, на месяц, на неделю, на день.
При просмотре на неделю, дата заголовка выводится с помощью кода:
Цитировать
<?php echo  $data['startdate'] . ' - ' . $data['enddate'] ;?>

Дата получается вида "29 Июнь 2015 - 05 Июль 2015".
Это некрасиво, как вывести дату в формате "29/06/2015 - 05/07/2015"?

И если кто-то столкнулся с такой же проблемой, то вот решение для просмотра событий за день:

Код
Цитировать
<?php echo JEventsHTML::getDateFormat($this->year, $this->month, $this->day, 0); ?>
надо заменить на
Цитировать
<?php echo JEventsHTML::getDateFormat($this->year, $this->month, $this->day, 4); ?>

тогда дата вида "Понедельник 29 Июнь 2015" поменяется на "29/06/2015"

или на
Цитировать
<?php echo JEventsHTML::getDateFormat($this->year, $this->month, $this->day,"<span class='year'>%Y</span>-<span class='month'>%m</span>-<span class='day'>%d</span>"); ?>
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: JEvents, изменение формата даты
« Ответ #1 : 28.07.2015, 10:09:42 »
Не пользуюсь JEvents, но по аналогии попробуйте так
Код: php-brief
$data['startdate']=explode(' ',$data['startdate']);
$data['startdate']=JEventsHTML::getDateFormat($data['startdate'][2],$data['startdate'][1],$data['startdate'][0],4);
$data['enddate']=explode(' ',$data['enddate']);
$data['enddate']=JEventsHTML::getDateFormat($data['enddate'][2],$data['enddate'][1],$data['enddate'][0],4);

echo  $data['startdate'] . ' - ' . $data['enddate'] ;
P.S. И наверняка в админке должен быть пункт выбора формата даты.
« Последнее редактирование: 28.07.2015, 10:18:11 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

miscwrk

  • Захожу иногда
  • 82
  • 0 / 0
Re: JEvents, изменение формата даты
« Ответ #2 : 28.07.2015, 17:17:56 »

Большое спасибо! Но это не помогло, при выводе появилась ошибка
Цитировать
Warning: mktime() expects parameter 4 to be long, string given in ...\www\components\com_jevents\libraries\jevdate.php on line 238

а дату выводит вот такую "28/07/2015 - 28/07/2015   " то есть на один день, хотя и в правильном формате )

вот весь код

Код
<?php 
defined('_JEXEC') or die('Restricted access');

$cfg = JEVConfig::getInstance();

$this->data = $data = $this->datamodel->getWeekData($this->year, $this->month, $this->day);

$option = JEV_COM_COMPONENT;
$Itemid = JEVHelper::getItemid();
$hasevents = false;



echo '<fieldset class="ev_fieldset_area"><legend class="ev_fieldset">' . JText::_('JEV_EVENTSFOR'). '&nbsp;' . JText::_('JEV_WEEK')
. ' : </legend>' . "\n";
echo '<table align="center" width="100%" cellspacing="0" cellpadding="0" class="ev_table">' . "\n";
?>
    <tr valign="top">
        <td colspan="2"  align="center" class="cal_td_daysnames week">
           <!-- <div class="cal_daysnames"> -->
<?php

$data['startdate']=explode(' ',$data['startdate']);
$data['startdate']=JEventsHTML::getDateFormat($data['startdate'][2],$data['startdate'][1],$data['startdate'][0],4);
$data['enddate']=explode(' ',$data['enddate']);
$data['enddate']=JEventsHTML::getDateFormat($data['enddate'][2],$data['enddate'][1],$data['enddate'][0],4);
 
echo  $data['startdate'] . ' - ' . $data['enddate'] ;

?>
<br><br>

<!--
<?php echo  $data['startdate'] . ' - ' . $data['enddate'] ;?>
-->
            <!-- </div> -->
        </td>
    </tr>
« Последнее редактирование: 28.07.2015, 17:24:59 от miscwrk »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: JEvents, изменение формата даты
« Ответ #3 : 28.07.2015, 17:28:11 »
Не знаю, почему исправленный вами код должен работать, потому что по сути он выглядит так
Код: php-brief
$data['startdate']=JEventsHTML::getDateFormat($this->year, $this->month, $this->day, 4);
$data['enddate']=JEventsHTML::getDateFormat($this->year, $this->month, $this->day, 4);
 
echo  $data['startdate'] . ' - ' . $data['enddate'] ;
, то есть даты начала и конца одинаковые.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

miscwrk

  • Захожу иногда
  • 82
  • 0 / 0
Re: JEvents, изменение формата даты
« Ответ #4 : 28.07.2015, 17:30:03 »

я уже исправил сообщение, просто увидел что ошибка не появляется и на радостях отписался ) а дата одинаковая )
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: JEvents, изменение формата даты
« Ответ #5 : 28.07.2015, 17:36:11 »
Не понял, мой код выводит одинаковые даты?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

miscwrk

  • Захожу иногда
  • 82
  • 0 / 0
Re: JEvents, изменение формата даты
« Ответ #6 : 28.07.2015, 17:40:14 »
Не понял, мой код выводит одинаковые даты?

да, он выводит вот такое

Цитировать
Warning: mktime() expects parameter 4 to be long, string given in ...\www\components\com_jevents\libraries\jevdate.php on line 238

Warning: mktime() expects parameter 4 to be long, string given in ...\www\components\com_jevents\libraries\jevdate.php on line 238
28/07/2015 - 28/07/2015

дата не только одинаковая, но и сегодняшняя, хотя я выбираю неделю "конец июня - начало июля"
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: JEvents, изменение формата даты
« Ответ #7 : 28.07.2015, 17:45:57 »
Не может быть. Уберите его и посмотрите, что выводится.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

miscwrk

  • Захожу иногда
  • 82
  • 0 / 0
Re: JEvents, изменение формата даты
« Ответ #8 : 28.07.2015, 17:53:34 »
Вот смотрите, вот такой код шаблона, привожу его полностью:
Код
<?php 
defined('_JEXEC') or die('Restricted access');

$cfg = JEVConfig::getInstance();

$this->data = $data = $this->datamodel->getWeekData($this->year, $this->month, $this->day);

$option = JEV_COM_COMPONENT;
$Itemid = JEVHelper::getItemid();
$hasevents = false;



echo '<fieldset class="ev_fieldset_area"><legend class="ev_fieldset">' . JText::_('JEV_EVENTSFOR'). '&nbsp;' . JText::_('JEV_WEEK')
. ' : </legend>' . "\n";
echo '<table align="center" width="100%" cellspacing="0" cellpadding="0" class="ev_table">' . "\n";
?>
    <tr valign="top">
        <td colspan="2"  align="center" class="cal_td_daysnames week">
           <!-- <div class="cal_daysnames"> -->

<?php echo  $data['startdate'] . ' - ' . $data['enddate'] ;?>

выводит дату вида "29 Июнь 2015 - 05 Июль 2015"

а вот такой код шаблона:

Код
<?php 
defined('_JEXEC') or die('Restricted access');

$cfg = JEVConfig::getInstance();

$this->data = $data = $this->datamodel->getWeekData($this->year, $this->month, $this->day);

$option = JEV_COM_COMPONENT;
$Itemid = JEVHelper::getItemid();
$hasevents = false;



echo '<fieldset class="ev_fieldset_area"><legend class="ev_fieldset">' . JText::_('JEV_EVENTSFOR'). '&nbsp;' . JText::_('JEV_WEEK')
. ' : </legend>' . "\n";
echo '<table align="center" width="100%" cellspacing="0" cellpadding="0" class="ev_table">' . "\n";
?>
    <tr valign="top">
        <td colspan="2"  align="center" class="cal_td_daysnames week">
           <!-- <div class="cal_daysnames"> -->
<?php

$data['startdate']=explode(' ',$data['startdate']);
$data['startdate']=JEventsHTML::getDateFormat($data['startdate'][2],$data['startdate'][1],$data['startdate'][0],4);
$data['enddate']=explode(' ',$data['enddate']);
$data['enddate']=JEventsHTML::getDateFormat($data['enddate'][2],$data['enddate'][1],$data['enddate'][0],4);
 
echo  $data['startdate'] . ' - ' . $data['enddate'] ;

?>
<br><br>

<!--
<?php echo  $data['startdate'] . ' - ' . $data['enddate'] ;?>
-->

Выводит вот такое сообщение и дату:

Цитировать
Warning: mktime() expects parameter 4 to be long, string given in \www\components\com_jevents\libraries\jevdate.php on line 238

Warning: mktime() expects parameter 4 to be long, string given in \www\components\com_jevents\libraries\jevdate.php on line 238
28/07/2015 - 28/07/2015
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: JEvents, изменение формата даты
« Ответ #9 : 28.07.2015, 18:11:56 »
Хм, mktime(), да? Понятно. Ладно, сделаем на коленках
Код: php-brief
$months=array('Январь'=>'01','Февраль'=>'02','Март'=>'03','Апрель'=>'04','Май'=>'05','Июнь'=>'06','Июль'=>'07','Август'=>'08','Сентябрь'=>'09','Октябрь'=>'10','Ноябрь'=>'11','Декабрь'=>'12');

$data['startdate']=explode(' ',$data['startdate']);
$data['startdate'][1]=$months[trim($data['startdate'][1])];
$data['startdate']=implode('/',$data['startdate']);

$data['enddate']=explode(' ',$data['enddate']);
$data['enddate'][1]=$months[trim($data['enddate'][1])];
$data['enddate']=implode('/',$data['enddate']);
 
echo  $data['startdate'] . ' - ' . $data['enddate'] ;
Это г-код, лучше поищите в админке, как менять формат даты.
« Последнее редактирование: 28.07.2015, 18:22:17 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

miscwrk

  • Захожу иногда
  • 82
  • 0 / 0
Re: JEvents, изменение формата даты
« Ответ #10 : 28.07.2015, 18:18:42 »

Большое спасибо, что помогаете.
Теперь выводит вот так: "29//2015 - 05//2015"

То есть не выводит месяц.

В админке я обыскался, там есть только в одном месте что-то похожее и изменение никак не отражается на данном заголовке.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: JEvents, изменение формата даты
« Ответ #11 : 28.07.2015, 18:23:12 »
Поправил код, и файл должен быть сохранен в кодировке "UTF8 без BOM".
Не будь паразитом, сделай что-нибудь самостоятельно!
*

miscwrk

  • Захожу иногда
  • 82
  • 0 / 0
Re: JEvents, изменение формата даты
« Ответ #12 : 28.07.2015, 18:26:37 »

Большое спасибо! Теперь все работает!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

JEvents размер модуля календаря

Автор sosny

Ответов: 0
Просмотров: 958
Последний ответ 25.02.2019, 20:03:22
от sosny
JEvents Убрать лишние слова

Автор tmpnikl

Ответов: 0
Просмотров: 928
Последний ответ 14.01.2019, 10:46:35
от tmpnikl
JEvents при создании события вылезает ошибка

Автор Tanyaks

Ответов: 8
Просмотров: 1408
Последний ответ 31.10.2018, 17:26:35
от NewUsers
Изменение размера textarea в модуле

Автор Leo1986

Ответов: 3
Просмотров: 963
Последний ответ 04.10.2018, 16:19:09
от Leo1986
Как удалить событие из календаря Jevents (история не сохраняет)

Автор nqui

Ответов: 0
Просмотров: 1061
Последний ответ 05.09.2017, 23:08:29
от nqui