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

strannik-yura

  • Давно я тут
  • 511
  • 44 / 1
  • :)
как изменить отображение результатов голосования в модуле mod_apoll-2.1

http://strannik.flyfm.net/index.php/component/apoll/apoll/3-g3

но из-за шаблона результаты голосования отображаются по центру и цветная полоска шире, чем рамка.
Подскажите, как сделать выравнивание по left
уменьшить ширину полосы  и что бы не вылазила за границы при 100% результате
с помощью средств разработчиков в опере посмотрел, вот что увидел

Код
<div style="padding:3px;">Так себе - 0%</div>
<div style="width:100%; height:10px; padding:1px; border:1px solid #cccccc;">
<div style="width: 2%; height:10px;background:#800080;"/>

но при установки стандартного шаблона отображается нормально.
Значит нужно исправлять в шаблоне, но где так и не понял.
С CSS можно сказать не дружу
*

strannik-yura

  • Давно я тут
  • 511
  • 44 / 1
  • :)
вот файл template.css
Код
html {
  height: 100%;
  margin-bottom: 0px;
}

form {
  margin: 0;
  padding: 0;
}

img,table {
border: none;
}

body {
font-family: Tahoma, Arial, sans-serif;
line-height: 1.3em;
margin: 0;
padding: 0;
font-size: 12px;
color: #333;
}

body.contentpane {
background: #FeFeFe;
}

a:link, a:visited {
text-decoration: underline;
font-weight: normal;
color: #555;
outline: none;
}

a:hover {
text-decoration: none;
font-weight: normal;
color: #333;
}

input.button, .validate  {
color: #333;
font-size: 10px;
border: 1px solid #555;
}

.search input.button {
text-align: right;
}

input.button:hover, .validate:hover  {

}

p {
margin-top: 0;
margin-bottom: 5px;
text-align: justify;
text-indent: 1.5em;
}

.inputbox {
border: 1px solid #555;
color: #333;
padding: 2px;
}
.inputbox:hover {

}

/*****************************************/
/*** Template specific layout elements ***/
/*****************************************/
#page_bg {
padding: 0;
background: #FeFeFe url(../images/bg.jpg) top left repeat-x;
}

div.center {
text-align: center;
margin: 0 auto;
padding: 0;
width: 920px;
}

div#wrapper {
margin: 0 auto;
width: 920px;
text-align: left;
background: url(../images/content.jpg) top center repeat-y;
}

#header {
height: 436px;
background: url(../images/header.jpg) top center no-repeat;
margin: 0 auto;
width: 942px;
}

#content {
width: 880px;
margin: 0 auto;
padding: 4px 20px;
overflow: hidden;
}

#content_bottom {
background: url(../images/content_bottom.jpg) top center no-repeat;
height: 10px;
}

#logo {
padding: 40px 0 0 0;
text-align: center;
margin: 0 auto;
width: 900px;
}

#logo a, #logo a:link, #logo a:hover {
font-weight: normal;
font-family: Verdana, Arial, sans-serif;
font-size: 26px;
padding: 0;
margin: 0;
letter-spacing: 1px;
color: #11a14c;
text-decoration: none;
outline: none;
line-height: 36px;
}

.pill_m {
text-align: left;
margin: 0 auto;
padding: 0;
background: #E7F1B4;
width: 920px;
height: 30px;
}

#pillmenu {
float: left;
margin: 0;
}

#pillmenu ul {
margin: 0;
padding: 0 40px;
list-style: none;
}

#pillmenu li {
float: left;
margin: 0;
padding: 0;
height: 30px;
}

#pillmenu li:hover {

}

#pillmenu li a#active_menu-nav {
color: #946B2B;
}

#pillmenu li a {
font-family: Verdana, Tahoma, sans-serif;
font-size: 14px;
float: left;
display: block;
line-height: 30px;
padding: 0 8px;
color: #0d753b;
text-decoration: none;
font-weight: normal;
text-transform: lowercase;
}

#pillmenu li a:hover {
color: #946B2B;
}

#leftcolumn ,#rightcolumn {
margin: 0;
width: 180px;
float: left;
text-align: left;
padding: 0;
}

div#maincolumn {
float: left;
width: 500px;
padding: 0 10px;
}

div#maincolumn_full {
float: left;
width: 678px;
padding: 0 0 0 10px;
}

div.nopad {
overflow: hidden;
padding: 0;
}

div.nopad ul {
clear: both;
}

td.middle_pad {
width: 20px;
}

#banner_l {
text-align: left;
padding: 0 0 0 24px;
}

#footer {
margin: 0 auto;
width: 920px;
height: 50px;
text-align: center;
vertical-align: top;
padding-bottom: 10px;
}

#footer p {
height: 20px;
text-align: right;
padding: 10px 30px 0 0;
color: #666;
}

/*****************************************/
/*** Joomla! specific content elements ***/
/*****************************************/

div.offline {
background: #fffebb;
width: 100%;
position: absolute;
top: 0;
left: 0;
font-size: 1.2em;
padding: 5px;
}

/* headers */
div.componentheading {
height: 22px;
padding: 8px 0 0 10px;
}
table.blog {

}
h1 {
padding: 0;
font-family: Tahoma, Arial, sans-serif;
font-size: 1.3em;
font-weight: bold;
vertical-align: bottom;
color: #333;
text-align: left;
width: 100%;
}

h2, .contentheading {
padding: 0;
font-family: Tahoma, Arial, sans-serif;
font-size: 12px;
vertical-align: middle;
color: #333;
text-align: left;
font-weight: bold;
}

table.contentpaneopen h3 {
margin-top: 25px;
}

h4 {
font-family: Tahoma, Arial, sans-serif;
color: #333;
}

h3, .componentheading, table.moduletable th, legend {
margin: 0;
font-family: Tahoma, Arial, sans-serif;
font-size: 14px;
text-align: left;
color: #555;
padding: 0;
}
/* small text */
.small {
font-size: 10px;
color: #555;
font-weight: normal;
text-align: left;
}

.modifydate {
height: 20px;
vertical-align: bottom;
font-size: 10px;
color: #555;
font-weight: normal;
text-align: right;
}

.createdate {
height: 20px;
vertical-align: top;
font-size: 10px;
color: #555;
font-weight: normal;
vertical-align: top;
padding-top: 0px;
}

a.readon {
display: block;
float: right;
line-height: 14px;
font-size: 10px;
text-decoration: none;
padding: 1px 2px 1px 2px;
}

a.readon:hover {
color: #333;
}

/* form validation */
.invalid { border-color: #ff0000; }
label.invalid { color: #ff0000; }


/** overlib **/

.ol-foreground {
background-color: #f1f1f1;
color: #333;
}

.ol-background {
background-color: #f1f1f1;
color: #333;
}

.ol-textfont {
font-family: Tahoma, Arial, sans-serif;
font-size: 10px;
}

.ol-captionfont {
font-family: Tahoma, Arial, sans-serif;
font-size: 12px;
color: #f6f6f6;
font-weight: bold;
}
.ol-captionfont a {
background-color: #f1f1f1;
color: #333;
text-decoration: none;
font-size: 12px;
}

.ol-closefont {}

/* menu links */
a.mainlevel:link, a.mainlevel:visited {
padding-left: 5px;
}

a.mainlevel:hover {

}

/* spacers */
span.article_separator {
display: block;
height: 20px;
}

.article_column {

}

.column_separator {

}

td.buttonheading {
text-align: right;
width: 0;
}

.clr {
clear: both;
}

table.blog span.article_separator {
display: block;
height: 20px;
}



/* table of contents */
table.contenttoc {
  margin: 5px;
  border: 1px solid #ccc;
  padding: 5px;
}

table.contenttoc td {
  padding: 0 5px;
}


/* content tables */
td.sectiontableheader {
  color: #333;
  font-weight: bold;
  padding: 4px;
  border-bottom: 1px solid #666;
}

tr.sectiontableentry0 td,
tr.sectiontableentry1 td,
tr.sectiontableentry2 td {
  padding: 4px;
}

td.sectiontableentry0,
td.sectiontableentry1,
td.sectiontableentry2 {
  padding: 3px;
  color: #FFF;
  font-size: 10px;
}


/* content styles */
.contentpaneopen, table.contentpane {
margin: 0;
padding: 0;
}

table.contentpane td{
text-align: left;
}

table.contentpane td.contentdescription {
width: 100%;
}

table.contentpane  {
text-align: left;
text-indent: 1.5em;
float: left;
width: 100%;
margin: 8px;
}

table.contentpane ul li a .category {
color: #FF8800;
}

table.contentpane ul li {
color: #333;
}

table.contentpaneopen {
margin: 2px 8px;
}

table.contentpaneopen li {
margin-bottom: 5px;
}

table.contentpaneopen fieldset {
border: 0;
border-top: 1px solid #669933;
}

table.contentpaneopen h3 {
margin-top: 25px;
}

table.contentpaneopen h4, table.contentpaneopen h5, table.contentpaneopen h6 {
font-family: Tahoma, Arial, sans-serif;
color: #333;
font-size: 12px;
}

.highlight {
background-color: #fffebb;
}

/* module control elements */
table.user1user2 div.moduletable {
margin-bottom: 0px;
}

div.moduletable, div.module {
  margin-bottom: 25px;
}

div.module_menu, div.module, div.module_text {
margin: 0;
padding: 0;
}

div.module_menu div, div.module, div.module_text div  {

}

div.module_menu div div, div.module div div, div.module_text div div {
margin-bottom: 14px;
padding: 0;
background: url(../images/column_bottom.jpg) bottom center no-repeat;
}

div.module_menu div div div, div.module div div div{
padding: 2px 0 12px 0;
background: url(../images/column_top.jpg) top center no-repeat;
}

div.module div div div {
text-align: left;
}

div.module_menu div div div div, div.module div div div div, div.module_text div div div div  {
background: transparent;
padding: 4px 8px;
margin: 0 auto;
}

div.bannergroup_text {
display: block;
width: 164px;
color: #FFF;
}

div.module div div div form {
padding: 10px 0 0 0;
width: 164px;
margin: 0 auto;
text-align: left;
}

div.module div div div form ul {
margin: 0;
padding: 0 0 10px 40px;
}

div.module_menu ul {
list-style: none;
}

div.module_menu ul li{
margin: 0;
padding: 0;
}

div.module_menu ul li a:link, div.module_menu ul li a:visited {
font-weight: bold;
background: transparent url(../images/blue/bullet2.jpg) top left no-repeat;
padding: 2px 0 2px 25px;
line-height: 24px;
}


#leftcolumn div.module table ,#rightcolumn div.module table {

}

#leftcolumn div.module table.poll {

}

#leftcolumn div.module table.poll td {
text-align: left;
}

/* LEFT COL H3 */
#leftcolumn h3, #rightcolumn h3 {
color: #FFF;
font-family: Verdana, Tahoma, Arial, sans-serif;
font-size: 12px;
text-align: center;
height: 43px;
width: 180px;
text-decoration: none;
padding: 0;
background: url(../images/h3.jpg) top center no-repeat;
font-weight: normal;
line-height: 46px;
margin: 0;
}

#leftcolumn .moduletable_menu, #leftcolumn .moduletable, #leftcolumn .moduletable_text, #leftcolumn .c,
#rightcolumn .moduletable_menu, #rightcolumn .moduletable, #rightcolumn .moduletable_text, #rightcolumn .c {
margin: 0 0 16px 0;
padding: 0 0 8px 0;
}

#leftcolumn ul.menu, #rightcolumn ul.menu {
margin: 8px auto 0 auto;
padding: 0;
list-style: none;
width: 164px;
}

#leftcolumn ul.menu li, #rightcolumn ul.menu li {
margin: 0;
padding: 0;
}

#leftcolumn ul.menu li:hover, #rightcolumn ul.menu li:hover {

}

/*LEFT COL LINK*/
#leftcolumn ul.menu li a, #leftcolumn ul.menu li a:link,
#rightcolumn ul.menu li a, #rightcolumn ul.menu li a:link {
line-height: 18px;
padding: 0 0 0 8px;
text-decoration: none;
color: #FFF;
font-weight: normal;
font-size: 11px;
background: url(../images/menu_row.gif) center left no-repeat;
margin: 0;
height: 18px;
}

#leftcolumn ul.menu li a:hover, #rightcolumn ul.menu li a:hover {
color: #ddd;
}

/*LEFT COL CURRENT LINK*/
#leftcolumn ul.menu li#current a, #leftcolumn ul.menu li#current a:link,
#rightcolumn ul.menu li#current a, #rightcolumn ul.menu li#current a:link {
line-height: 18px;
padding: 0 0 0 8px;
text-decoration: none;
color: #ddd;
font-weight: normal;
font-size: 11px;
background: url(../images/menu_row.gif) center left no-repeat;
margin: 0;
height: 18px;
}

#leftcolumn ul.menu li#current a:hover, #rightcolumn ul.menu li#current a:hover {

}

/*LEFT COL SUB LINK*/
#leftcolumn ul.menu li#current ul li a, #leftcolumn ul.menu li#current ul li a:link {
text-decoration: none;
color: #FFF;
margin: 0 0 0 6px;
font-size: 11px;
background: url(../images/submenu_row.gif) center left no-repeat;
font-weight: normal;
display: block;
line-height: 18px;
padding: 0 0 0 18px;
border: none;
height: 18px;
}

#leftcolumn ul.menu li ul li#current a, #leftcolumn ul.menu li ul li#current a:link, #leftcolumn ul.menu li ul li#current a:visited, #leftcolumn ul.menu li ul li#current a:hover {
font-size: 11px;
margin: 0 0 0 6px;
padding: 0 0 0 18px;
text-decoration: none;
border: none;
color: #ddd;
background: url(../images/submenu_row.gif) center left no-repeat;
height: 18px;
line-height: 18px;
}
/*SUBMENU POSITION*/
#leftcolumn ul.menu li#current ul {
margin: 0;
padding: 0;
}

#leftcolumn ul.menu li#current ul li {
margin: 0;
padding: 0;
}

/*CURRENT SUBMENU POSITION*/
#leftcolumn ul.menu li ul {
margin: 0;
padding: 0;
}

#leftcolumn ul.menu li#current ul li a:hover {
color: #ddd;
}

#leftcolumn ul.menu li ul, #rightcolumn ul.menu li ul {
list-style: none;
}

/* forms */
#leftcolumn .moduletable ul, #rightcolumn .moduletable ul {
margin: 6px 0;
padding: 0;
list-style: none;
}

#leftcolumn .moduletable ul li, #rightcolumn .moduletable ul li {
margin: 0;
padding: 0 2px;
}

table.adminform textarea {
  width: 540px;
  height: 400px;
  font-size: 1em;
  color: #000099;
}

form#form-login fieldset {
border: 0 none;
margin: 0;
padding: 4px 7px 9px 7px;
}
form#form-login ul li{
padding: 0;
}

form#form-login ul li a {
text-align: left;
padding: 0;
font-size: 10px;
color: #FFF;
}

/* thumbnails */
div.mosimage         {  margin: 5px; }
div.mosimage_caption {  font-size: .90em; color: #333; }

div.caption       { padding: 0 10px 0 10px; }
div.caption img   { border: 1px solid #CCC; }
div.caption p     { font-size: .90em; color: #333; text-align: center; }

/* Parameter Table */
table.paramlist {
margin-top: 5px;
}

table.paramlist td.paramlist_key {
width: 128px;
text-align: left;
height: 30px;
}

table.paramlist td.paramlist_value {
}

div.message {
font-family: Tahoma, Arial, sans-serif;
font-weight: bold;
font-size : 14px;
color : #c30;
text-align: center;
width: auto;
background-color: #f9f9f9;
border: solid 1px #d5d5d5;
margin: 3px 0px 10px;
padding: 3px 20px;
}

/* Banners module */

/* Default skyscraper style */
.bannergroup {
}

.banneritem {
}

/* Text advert style */

.banneritem_text {
padding: 4px;
font-size: 11px;
}

.bannerfooter_text {
padding: 4px;
font-size: 11px;
text-align: right;
}

/* System Messages */
/* see system general.css */

.pagination span { padding: 2px; }
.pagination a    { padding: 2px; }

/* Polls */
.pollstableborder td {
text-align: left;
}

/* Frontend Editing*/
fieldset {
border: 1px solid #ccc;
margin-top: 15px;
padding: 15px;
}

legend {
margin: 0;
padding: 0 10px;
}

td.key {
border-bottom:1px solid #eee;
color: #333;
}

/* Tooltips */
.tool-tip {
float: left;
background: #ffc;
border: 1px solid #D4D5AA;
padding: 5px;
max-width: 200px;
}

.tool-title {
padding: 0;
margin: 0;
font-size: 100%;
font-weight: bold;
margin-top: -15px;
padding-top: 15px;
padding-bottom: 5px;
background: url(../../system/images/selector-arrow.png) no-repeat;
}

.tool-text {
font-size: 100%;
margin: 0;
}

/* System Standard Messages */
#system-message dd.message ul {
padding: 0;
margin: 0;
background: none;
border: none;
}

/* System Error Messages */
#system-message dd.error ul {
color: #c00;
background: none;
border: none;
padding: 0;
margin: 0;
}

/* System Notice Messages */
#system-message dd.notice ul {
color: #c00;
background: none;
border: none;
padding: 0;
margin: 0;
}

#system-message dd {
text-indent: 0;
}

#system-message dd ul {
list-style-type: none;
color: #c00;
background: none;
border: none;
}

#system-message {
margin-top: 5px;
}



/* ****************************************************************************** */
/* blue */
input, button {

}
/* blue */
input[type="checkbox"], input[type="radio"]{
   background: transparent;
   border: none;
}

/* -------------------------- */
a.sgfooter:link, a.sgfooter:visited {
color: #555;
font-family: Tahoma, Arial, sans-serif;
text-decoration: none;
}
a.sgfooter:hover {
color: #555;
font-family: Tahoma, Arial, sans-serif;
text-decoration: none;
}
#sgf {
font-size: 12px;
text-align: center;
width: 100%;
margin: 0 auto;
color: #555;
font-family: Tahoma, Arial, sans-serif;
}
.sgf {
text-align: right;
font-size: 12px;
font-family: Tahoma, Arial, sans-serif;
color: #555;
text-decoration: none;
}
.sgf1 {
font-size: 12px;
font-family: Tahoma, Arial, sans-serif;
color: #555;
text-align: left;
}

a.sglink:link, a.sglink:visited {
color: #555;
font-size: 12px;
font-family: Tahoma, Arial, sans-serif;
text-decoration: none;
}
a.sglink:hover {
color: #555;
font-family: Tahoma, Arial, sans-serif;
text-decoration: none;
}
*

strannik-yura

  • Давно я тут
  • 511
  • 44 / 1
  • :)
может не там создал тему, если так то перенесите в нужную
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль mod_custom: где сохраняется добавляемый код?

Автор r0m4n

Ответов: 8
Просмотров: 3213
Последний ответ 20.12.2023, 09:52:48
от kit2m2
Как правильно изменить Akeeba Backup Professional на Akeeba Backup Core?

Автор epson950

Ответов: 0
Просмотров: 1151
Последний ответ 08.07.2021, 13:06:30
от epson950
SP Page Builder Pro Настройка отображения блоков на разных разрешениях

Автор Nikias

Ответов: 2
Просмотров: 1350
Последний ответ 21.01.2021, 20:13:45
от SmiP
Модуль Layer Slider (John Gera, George Krupa, Janos Biro, Balint Polgarfi)

Автор wayn

Ответов: 1
Просмотров: 1363
Последний ответ 15.12.2019, 13:10:49
от beliyadm
Модуль sp page builder

Автор denchik82

Ответов: 13
Просмотров: 7107
Последний ответ 19.02.2019, 07:34:58
от bayersoff