Новости 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 Ответов
  • 3698 Просмотров
*

smls

  • Захожу иногда
  • 137
  • 8 / 1
В некоторых компонентах, есть пункты меню, которые хочется скрыть от неавторизировашихся пользователей (самим компонентом это не предусмотрено). Меню из текстовых ссылок. Можно что-то приписать к этой ссылке в шаблоне компонента, чтоб незалогнившиеся её не видели?
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
простое условие
Код
if ($my->id) { blablabla показать твои ссылки }
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
каков вопрос - таков ответ :)
*

smls

  • Захожу иногда
  • 137
  • 8 / 1
простое условие
Код
if ($my->id) { blablabla показать твои ссылки }
Спасибо, сработало :)
*

smls

  • Захожу иногда
  • 137
  • 8 / 1
 Ещё один вопрос. А что нужно дописать, чтоб ссылку видела только определенная группа пользователей?
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Код
if ($my->usertype== "желаемая группа") { blablabla показать твои ссылки }
*

smls

  • Захожу иногда
  • 137
  • 8 / 1
...Чёта завис я на одном месте, либо не срабатывает, либо не показывает всем, либо ошибку выдает.
В этой таблице

Код
<table border="0" width="100%" cellpadding="5" onmouseover="EZOver(this)" onmouseout="EZOut(this)" onclick="location.href='<?php echo sefRelToAbs("index.php?option=com&amp;Itemid=$Itemid&amp;task=detail&amp;id=$row->id");?>'">
<tr>
<td width="<?php echo $er_thumbwidth;?>" valign="top" align="center">
<span class="h3"><strong><?php if ( $row->type ){ ?><?php if ( $row->type==1 ){ ?><?php echo _TYPE_SALE;?><?php } ?><?php if ($row->type==2){ ?><?php echo _TYPE_RENTAL;?><?php } ?></strong><?php } ?></span>


<a href="<?php echo sefRelToAbs("index.php?option=com&amp;Itemid=$Itemid&amp;task=detail&amp;id=$row->id");?>"><?php if ($row->image1) { ?><img src="components/com/<?php echo $er_imagedirectory;?><?php if ( $er_thumbcreation !== 'none' ) { ?>/th<?php } ?>/<?php echo $row->image1;?>" border="0" hspace="15" width="<?php echo $er_thumbwidth;?>" alt="" /><?php }else{ ?><img src="components/com/<?php echo $er_imagedirectory;?>/th/nothumb.gif" border="0" hspace="15" width="<?php echo $er_thumbwidth;?>" alt="" /><?php } ?></a></td>
<td valign="top"><span class="h3"><strong><a href="<?php echo sefRelToAbs("index.php?option=com&amp;Itemid=$Itemid&amp;task=detail&amp;id=$row->id");?>"><?php echo $row->adline;?> -
<?php if ( $row->freq==0 ) { ?>
<?php if ( $row->price==0 ) { ?><?php echo _POA;?>
<?php } else { ?>
<?php echo $er_currencysign.''.$formatted_price;?><?php } ?>
<?php } ?>
<?php if ( $row->freq>0 ) { ?>
<?php echo $er_currencysign.''.$formatted_price;?>
<?php if ( $row->freq==1 ){ ?><?php echo _RENTAL_NIGHTLY;?><?php } ?>
<?php if ( $row->freq==2 ){ ?><?php echo _RENTAL_WEEKLY;?><?php } ?>
<?php if ( $row->freq==3 ){ ?><?php echo _RENTAL_FNIGHT;?><?php } ?>
<?php if ( $row->freq==4 ){ ?><?php echo _RENTAL_MONTH;?><?php } ?>
<?php if ( $row->freq==5 ){ ?><?php echo _RENTAL_SQFT;?><?php } ?>
<?php if ( $row->freq==6 ){ ?><?php echo _RENTAL_SQMTR;?><?php } ?>
<?php if ( $row->freq==7 ){ ?><?php echo _RENTAL_SPARE;?><?php } ?>
<?php } ?></a></strong>
</span> <span class="smalldark"><strong><?php if ( $row->sold ) { ?>(<?php echo $row->sold;?>)<?php } ?></strong></span><br /></br>
<?php echo $row->smalldesc;?>... <a href="<?php echo sefRelToAbs("index.php?option=com&amp;Itemid=$Itemid&amp;task=detail&amp;id=$row->id");?>"><strong><?php echo _READMORE;?></strong></a>

<td width="65" align="center"><a href="<?php echo sefRelToAbs("index.php?option=com&amp;Itemid=$Itemid&amp;task=edit&amp;id=$row->id");?>" title = "<?php echo _LISTINGS_EDIT;?>"><img src = "components/com/images/edit.png" width="15" height="15" border="0" alt="<?php echo _LISTINGS_EDIT;?>" /></a>
<a href = "javascript:if (confirm('<?php echo _CHECKDELETE;?>')){ location.href='index.php?option=com&amp;Itemid=<?php echo $Itemid;?>&amp;task=deleteit&amp;id=<?php echo $row->id?>';}" title="<?php echo _DELETE_LISTING;?>"><img src="components/com/images/trash.png" width="15" height="15" border="0" alt="<?php echo _DELETE_LISTING;?>" /></a> </td>

</td>
</tr>
</table>

Нужно спрятать вот эту часть:
Код
<td width="65" align="center"><a href="<?php echo sefRelToAbs("index.php?option=com&amp;Itemid=$Itemid&amp;task=edit&amp;id=$row->id");?>" title = "<?php echo _LISTINGS_EDIT;?>"><img src = "components/com/images/edit.png" width="15" height="15" border="0" alt="<?php echo _LISTINGS_EDIT;?>" /></a>
<a href = "javascript:if (confirm('<?php echo _CHECKDELETE;?>')){ location.href='index.php?option=com&amp;Itemid=<?php echo $Itemid;?>&amp;task=deleteit&amp;id=<?php echo $row->id?>';}" title="<?php echo _DELETE_LISTING;?>"><img src="components/com/images/trash.png" width="15" height="15" border="0" alt="<?php echo _DELETE_LISTING;?>" /></a> </td>
Куда, что вставить нужно?
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Код
<? if ($my->usertype== "Super Administrator") {?>
<td width="65" align="center"><a href="<?php echo sefRelToAbs("index.php?option=com&amp;Itemid=$Itemid&amp;task=edit&amp;id=$row->id");?>" title = "<?php echo _LISTINGS_EDIT;?>"><img src = "components/com/images/edit.png" width="15" height="15" border="0" alt="<?php echo _LISTINGS_EDIT;?>" /></a>
<a href = "javascript:if (confirm('<?php echo _CHECKDELETE;?>')){ location.href='index.php?option=com&amp;Itemid=<?php echo $Itemid;?>&amp;task=deleteit&amp;id=<?php echo $row->id?>';}" title="<?php echo _DELETE_LISTING;?>"><img src="components/com/images/trash.png" width="15" height="15" border="0" alt="<?php echo _DELETE_LISTING;?>" /></a> </td>
<? } ?>
*

smls

  • Захожу иногда
  • 137
  • 8 / 1
Не показывает, ни кому :(
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
так ты под кем смотришь, и добавил ли в самом начале это?
Код
<? defined( '_VALID_MOS' ) or die( 'Доступ закрыт' ); global $my; ?>
- только чуваку в группе Super Administrator будет видно!
« Последнее редактирование: 30.10.2008, 16:59:14 от ShadowXak »
*

smls

  • Захожу иногда
  • 137
  • 8 / 1
global $my не добавил...
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
так заработало нет?
*

smls

  • Захожу иногда
  • 137
  • 8 / 1
Да теперь работает.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

как сделать ссылку в статье?

Автор karina_bk

Ответов: 10
Просмотров: 4593
Последний ответ 19.04.2012, 12:38:39
от karina_bk
Ссылка только на главной

Автор supernoob

Ответов: 4
Просмотров: 2630
Последний ответ 30.07.2011, 00:12:40
от supernoob
как сделать ссылку в тексте?

Автор tysson

Ответов: 16
Просмотров: 32923
Последний ответ 16.05.2011, 13:43:53
от qdodge
Как вставить во всплывающее окно только текстовый материал

Автор alexecon

Ответов: 6
Просмотров: 4763
Последний ответ 19.01.2011, 12:57:53
от systempapa
Как сделать ссылку на внутренний контент?

Автор Olechka

Ответов: 4
Просмотров: 4706
Последний ответ 16.10.2010, 01:15:29
от alaris