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

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Кто знает, как сделать меню с картинками, расположенными вверху над текстовой ссылкой?

[вложение удалено Администратором]
Fatal error - это не фатально!!! Я проверила.
*

Antosha

  • Захожу иногда
  • 420
  • 52 / 0
  • Плохо спорить плохо
Добавьте к каждому пункту меню и поиграйтесь с Valign и halign у картинки, а также с float у span самого пункта меню
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

gdX

  • Глобальный модератор
  • 995
  • 128 / 0
  • Открыт к заказам по дизайну
Для внешнего контейнера (в чем эти элементы находятся):
Код: css
text-align: center;

Для картинки выставляете:
Код: css
display: block;

Если текстовка будет шире картинки, то для картинки надо добавить выравнивание по горизонтали:
Код: css
margin: 0 auto;

Картинку, в настройках меню выставить слева.
*

Antosha

  • Захожу иногда
  • 420
  • 52 / 0
  • Плохо спорить плохо
Автора меню хочет стандартное модифицировать как я понял.

Как наверстать с нулю такое - понятно.
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
В принципе, стандартное меню и модифицируется, только кое-что никак не могу прописать правильно. Картинки я описываю в классе модуля и они все садятся правильно и равномерно:
Код
table.moduletable-pict img{
float: left;
display: block;
valign: top;
padding: 5px;
}
, а вот текстовки в классе меню, но поскольку они разной длины, они получаются не всегда на нужном месте, уезжают:
Код
.mainlevel-pict{
position: relative;
valign: bottom;
color: #c3b9af;
font-style: italic;
font-weight: bold;
font-size: 14px;
top: 120px;
padding-left: 25px;
padding-right: 20px;
}
Что бы еще приписать (или убрать?)?
Fatal error - это не фатально!!! Я проверила.
*

Antosha

  • Захожу иногда
  • 420
  • 52 / 0
  • Плохо спорить плохо
valign: bottom; не корректно, тем более у вас position: relative;

Проще всего контейнер с картинкой сделать фиксированной ширины, пор размер картинки тогда и тексту деваться будет некуда, как вниз.
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Контейнер! А как его употребить? Я взяла обычное меню и поставила legacy горизонтально. Там получается один ряд, одна ячейка. И картинки сами по себе, а тексты сами по себе (насколько я понимаю), в файле legacy.php убрала nowrap. А как задать, чтобы каждая пара  картинка + ссылка помещались в отдельный контейнер - не знаю.
Fatal error - это не фатально!!! Я проверила.
*

Antosha

  • Захожу иногда
  • 420
  • 52 / 0
  • Плохо спорить плохо
Так наверное они в контейнере li?
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Когда ставишь legacy горизонтально, список не образуется, только таблица с одной ячейкой, а вот если поставить "плоский список", получается список, но выглядит он неважно, я уж не знаю почему - в две колонки идут все пункты, а их 8 и лучше они бы шли в 4 колонки, но я не понимаю, от чего это зависит.
Fatal error - это не фатально!!! Я проверила.
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Можно плоский список сделать нормальный, нужной ширины, но почему-то картинки со ссылками выводятся лесенкой, вот так. Это-то почему? Что ни движение, то загадка!

[вложение удалено Администратором]
Fatal error - это не фатально!!! Я проверила.
*

cor_ar

  • Захожу иногда
  • 137
  • 27 / 1
попробуйте сделать с помощью списков.
Вот кое что нашел, может поможет  http://webmolot.com/recipe/virtus/1/solution/
*

gdX

  • Глобальный модератор
  • 995
  • 128 / 0
  • Открыт к заказам по дизайну
Можно плоский список сделать нормальный, нужной ширины, но почему-то картинки со ссылками выводятся лесенкой, вот так. Это-то почему? Что ни движение, то загадка!
Скорее всего это из-за свойства float.
Приведите HTML и CSS код блока меню, чтобы понять что к чему.
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Ну, вот описание модуля:
Код
table.moduletable-pict {
width: 100%;
}
table.moduletable-pict img {
float: left;
display: block;
padding: 5px;
}
h3,table.moduletable-pict th {
text-align: center;
font-style: italic;
font-weight: bold;
padding-bottom: 5px;
}
И вот описание меню:
Код
.mainlevel-pict{
position: relative;
color: #c3b9af;
font-style: italic;
font-weight: bold;
font-size: 14px;
top: 120px;
}
.mainlevel-pict li{
width: 95px;
height: 125px;
text-align: center;
}
a.mainlevel-pict, a.mainlevel-pict:link, a.mainlevel-pict:visited{
text-decoration: none;
}
a.mainlevel-pict:hover{
text-decoration: underline;
}
А вот то, что пишет исходный код страницы:
Код
<table cellpadding="0" cellspacing="0" class="moduletable-pict">
<tr>
<th valign="top">
Все коллекции Admonter: </th>
</tr>
<tr>
<td>

<ul id="mainlevel-pict"><li><a href="/index.php?option=com_content&amp;view=article&amp;id=50&amp;Itemid=68" class="mainlevel-pict" >Antico</a> <img src="/images/stories/antico_logo.jpg" border="0" alt="Antico"/></li>
- ну, и так далее все ссылки в <li>///</li> - и все ссылки лесенкой :)
Fatal error - это не фатально!!! Я проверила.
*

Antosha

  • Захожу иногда
  • 420
  • 52 / 0
  • Плохо спорить плохо
Дайте  лучше ссылку на реальный сайт, всем станет более понятней в чем проблема

Но в любом случаи лучше Легаси не использовать, таблицы - прошлый век
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
http://www.new.evropoly.com/index.php?option=com_content&view=article&id=48&Itemid=50
В настоящий момент стоит вариант легаси-плоский список.
Fatal error - это не фатально!!! Я проверила.
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Лесенка была результатом всего лишь вертикального списка, я исправила на горизонтальный и все картинки встали в ряд, как надо, но ссылки по-прежнему веду себя независимо от картинок, хотя они размещаются в одном контейнере <li></li> с фиксированной шириной...

Код
<ul id="mainlevel-pict"><li><a href="/index.php?option=com_content&amp;view=article&amp;id=50&amp;Itemid=68" class="mainlevel-pict" >Antico</a> <img src="/images/stories/antico_logo.jpg" border="0" alt="Antico"/></li>
Fatal error - это не фатально!!! Я проверила.
*

gdX

  • Глобальный модератор
  • 995
  • 128 / 0
  • Открыт к заказам по дизайну
Вы как-то запутано подходите к реализации этого блока.
Смотрю, Вы хотите разместить текст под картинкой, реализуя это передвижением текстового блока с помощью css.
Почему бы не реализовать это в самом php файле, организовав нужный вывод? К примеру так:
Код: html4strict
<ul>
<li><a><img />text</a></li>
...
<li><a><img />text</a></li>
</ul>
При таком подходе будет проще реализовать то, что показано на картинке в первом Вашем вопросе.

При этом, у Вас на теге <li> выставлено свойство display: inline; и задана ширина.
Объектам с таким свойством нельзя задать ширину — они строковые и расширяются в зависимости от содержимого, но не больше внешнего блока.

Если же все оставить на своих местах, то можно убрать у тега <a> свойство position:relative; и, соответственно, top:120px;
Тогда тексты встанут горизонтально вровень с картинками, но сверху них.
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Да, наверное, я избрала порочный путь. Стыдно, конечно, спрашивать, но в каком именно php-файле выводится меню? Я бы с удовольствием отказалась от легаси, но почему-то в простом списке отображаются либо картинки - если они включены, либо список текстовок. :((
Fatal error - это не фатально!!! Я проверила.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Аня, но ведь я еще давно предлагал именно такое решение, что сейчас озвучил gdX, это было недели три назад наверно еще.....
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Да где этот вывод контролируется?!
Fatal error - это не фатально!!! Я проверила.
*

gdX

  • Глобальный модератор
  • 995
  • 128 / 0
  • Открыт к заказам по дизайну
Реализовать подобный вывод можно в этом файле:
\www\modules\mod_mainmenu\legacy.php
Надо будет кое-что там переделать, чтобы добиться такого вывода.
*

css-wizard

  • Осваиваюсь на форуме
  • 14
  • 2 / 0
собственно вот рабочий пример для данной структуры html

<!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; charset=utf-8" />
<title>menu</title>
<style>
* { margin:0; padding:0 }
html, body { width:100%; height:100% }
ul { list-style:none }
li { float:left; width:100px; height:120px; position:relative; margin-right:15px; }
img { display:block; height:100px; width:100px; left: 0px; top: 0px; position: absolute; z-index:1;}
a { display: block; width: 100px; height:20px; padding-top:100px; text-align: center; z-index: 2; position:absolute; top:0; left:0; background:url (hackie.png);}
a:hover { text-decoration:none }
</style>
</head>
<body>
<ul>
  <li><img src="1.img" /><a href="#">item1</a></li>
  <li><img src="2.img" /><a href="#">item2</a></li>
  <li><img src="3.img" /><a href="#">item3</a></li>
  <li><img src="4.img" /><a href="#">item4</a></li>
  <li><img src="5.img" /><a href="#">item5</a></li>
  <li><img src="6.img" /><a href="#">item6</a></li>
</ul>
</body>
</html>


что стоит отметить, чтобы всё это работало в ie обязательно должен быть прописан background:url (hackie.png) хотя картинка может и не быть, только тогда он понимает ссылку как весь блок.
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Все равно не получается. Я так охарактеризовала вывод этого меню в css. Модуль:
Код
table.moduletable-pict {
width: 100%;
}
table.moduletable-pict li{
display: inline;
Стиль меню:
Код
.mainlevel-pict li{
float:left;
position:relative;
margin-right:15px; 
}
.mainlevel-pict img {
display:block;
height:90px;
width:90px;
left: 0px;
top: 0px;
position: absolute;
z-index: 1;
}
a.mainlevel-pict li{
display: block;
width: 110px;
height:20px;
padding-top:110px;
text-align: center;
z-index: 2;
position:absolute;
top:0;
left:0;
background:url (hackie.png);
}
a.mainlevel-pict li:hover {
text-decoration:none
}

Но все-таки выводится текстовая ссылка справа от картинки. http://www.new.evropoly.com/index.php?option=com_content&view=article&id=48&Itemid=50
А вот если убрать li из a.mainlevel-pict li, текст. ссылка не видна вообще - такой интересный факт.
Fatal error - это не фатально!!! Я проверила.
*

css-wizard

  • Осваиваюсь на форуме
  • 14
  • 2 / 0
a.mainlevel-pict li   - это что? вообще-то надо писать наоборот
li a.mainlevel-pict
то, что вложено - вконце

и уберите display: inline;
float по-умолчанию задает display:block; в моём случае элементы li именно такими и должны быть
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Только очень странная конструкция a.mainlevel-pict li дает видимые текстовые ссылки, иначе - вешалка, текст вообще не видно! И только при display: inline; список делается горизонтальным. Вот такие дела. Загадочные. Наверное, сделаю просто меню в картинках.
Fatal error - это не фатально!!! Я проверила.
*

gdX

  • Глобальный модератор
  • 995
  • 128 / 0
  • Открыт к заказам по дизайну
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Да я бы с удовольствием переделала вывод, программистских знаний не хватает! Не понимаю, куда что воткнуть. Филолог я вообще-то. Так уж сложились обстоятельства, что мне нужно это хитрое меню сверстать, отступать поздно... На крайняк, сделаю картинками, это я уж могу  (при том, что текстовые ссылки в коде есть, но почему-то не отображаются...).
Fatal error - это не фатально!!! Я проверила.
*

gdX

  • Глобальный модератор
  • 995
  • 128 / 0
  • Открыт к заказам по дизайну
Используете стандартное меню для вывода этого блока, указывая для каждого пункта свое изображение?
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Да, стиль: легаси плоский список. Если сделать обычный список, текст. ссылки не видны.
Fatal error - это не фатально!!! Я проверила.
*

gdX

  • Глобальный модератор
  • 995
  • 128 / 0
  • Открыт к заказам по дизайну
Вот таким способом можно реализовать Ваше меню:
Открываете файл www\modules\mod_mainmenu\legacy.php

Находите там такой блок:
Код
	// replace & with amp; for XHTML compliance
// remove slashes from excaped characters
$mitem->name = stripslashes (htmlspecialchars ($mitem->name));

switch ($mitem->browserNav)
{
// cases are slightly different
case 1 :
// open in a new window
$txt = '<a href="' . $mitem->url . '" target="_blank" class="' . $menuclass . '" ' . $id . '>' . $mitem->name . '</a>';
break;

$image = '<img src="'.JURI::base (true).'/images/stories/' . $menu_image . '" border="0" alt="' . $mitem->name . '"/>';
if ($params->get ('menu_images_align')) {
$txt = $txt . ' ' . $image;
} else {
$txt = $image . ' ' . $txt;
}
}
}


И заменяете на такой:
Код
	// replace & with amp; for XHTML compliance
// remove slashes from excaped characters
$mitem->name = stripslashes (htmlspecialchars ($mitem->name));

if ($params->get ('menu_images'))
{
$menu_params = new stdClass ();
$menu_params = new JParameter ($mitem->params);

$menu_image = $menu_params->def ('menu_image', -1);
if (($menu_image <> '-1') && $menu_image) {
$image = '<img src="'.JURI::base (true).'/images/stories/' . $menu_image . '" border="0" alt="' . $mitem->name . '"/>';
}
}

switch ($mitem->browserNav)
{
// cases are slightly different
case 1 :
// open in a new window
$txt = '<a href="' . $mitem->url . '" target="_blank" class="' . $menuclass . '" ' . $id . '>' . $mitem->name . '</a>';
break;

case 2 :
// open in a popup window
$txt = "<a href=\"#\" onclick=\"javascript: window.open ('" . $mitem->url . "', '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=550'); return false\" class=\"$menuclass\" " . $id . ">" . $mitem->name . "</a>\n";
break;

case 3 :
// don't link it
$txt = '<span class="' . $menuclass . '" ' . $id . '>' . $mitem->name . '</span>';
break;

default : // formerly case 2
// open in parent window
if ($params->get ('menu_images_align')) {
$txt = '<a href="' . $mitem->url . '" class="' . $menuclass . '" ' . $id . '>' . $mitem->name . $image . '</a>';
} else {
$txt = '<a href="' . $mitem->url . '" class="' . $menuclass . '" ' . $id . '>'. $image . $mitem->name . '</a>';
}
break;
}


Добавляете такой css:
Код: css
#mainlevel_img{width:100%;overflow:hidden;list-style:none;margin:0;padding:0;}
#mainlevel_img li{float:left;text-align:center;}
#mainlevel_img img{display:block;margin:0 auto;}
#mainlevel_img a{display:block;}

В админ. части в модуле меню выставил суффикс класса меню «_img».

И вот уже вырисовывается меню, похожее на то, что Вы хотели получить.
Остальное, думаю, что реализуете своими силами.

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

Кликабельность псевдоэлемента в пункте меню

Автор vasilii.pupkov

Ответов: 4
Просмотров: 3232
Последний ответ 29.12.2021, 23:15:38
от v42bis
Выпадающее меню

Автор DrShepard

Ответов: 10
Просмотров: 2898
Последний ответ 20.10.2021, 12:36:16
от DrShepard
Как сделать?

Автор Twins

Ответов: 3
Просмотров: 1859
Последний ответ 01.07.2021, 13:11:51
от xpank
Как сделать кнопку формы аккаунта?

Автор Evgen Kulibin

Ответов: 0
Просмотров: 1023
Последний ответ 22.04.2021, 22:15:06
от Evgen Kulibin
Как сделать плавающий модуль?

Автор THeCMeX

Ответов: 2
Просмотров: 1181
Последний ответ 08.03.2021, 22:21:01
от Flexderection