Новости Joomla

Вышел WT Quick links v.2.4.0 - релиз модуля для Joomla

Вышел WT Quick links v.2.4.0 - релиз модуля для Joomla.Это модуль-конструктор для быстрого создания набора элементов. Это могут быть ссылки на компоненты Joomla, пункт меню или пользовательская ссылка. Есть условия для исключений показа элементов списка. Вы можете создавать собственные макеты вывода модуля, создавая таким образом почти всё, что угодно: от простого списка ссылок до стены фотографий на главную страницу или ссылки-теги для перелинковки категорий интернет-магазина, список FAQ, табы или аккордеоны. Модуль позволяет выводить изображения, адаптивные изображения, видео, адаптивные видео.v.2.4.0. Что нового?Добавлена поддержка новых компонентов. Добавлены новые типы ссылок и исключений для них: - Phoca Download, - Phoca Gallery, - RadicalMart (@radicalmart).Joomla 6. Успешно протестирована работа модуля на Joomla 6-alpha2.РазработчикамПроведён большой рефакторинг кода. Для типов ссылок созданы классы-драйверы. Теперь для того, чтобы добавить новый тип ссылки в модуль достаточно скопировать класс-образец из
modules/mod_wt_quick_links/src/Driver/Collection и наполнить его данными по образцу, а так же добавить необходимые языковые константы в панели администратора Joomla.Модуль бесплатный. Страница расширенияGitHub расширенияJoomla Extensions Directory👩‍💻 Подпишись на @joomlafeed.#joomla #разработка

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

👩‍💻 Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note"     name="your_note_for_user"     label="Заголовок примечания"     title="Альтернативный способ для заголовка"     description="Текст примечания"     class="col-12 alert alert-info"     heading="h1"     close="true"/>
heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён.Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле
<field type="systempluginstatus"      name="systempluginstatus"     addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>
-
type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:
<?php// namespace для атрибута addfieldprefixnamespace Joomla\Module\Wtquicklinks\Site\Fields;// нельзя напрямую обращаться к этому файлуdefined('_JEXEC') or die;// подключаем родительский класс для переопределенияuse Joomla\CMS\Form\Field\NoteField;use Joomla\CMS\Language\Text;use Joomla\CMS\Plugin\PluginHelper;// имя класса и имя файла точь-в-точьclass SystempluginstatusField extends NoteField{     protected $type = 'Systempluginstatus';     protected function getLabel()          {               // если плагин не включён               if(PluginHelper::isEnabled('system','wtquicklinks')) {                    // меняем свойства родительского класса                    $this->class = 'alert alert-danger w-100';                    $this->element['label'] = '⚠️ А-а-а-а!';                    $this->element['description'] = 'Плагин не включён!!';                    // и просто рендерим его с нашими свойствами                    return parent::getLabel();               }          // А иначе всё хорошо, скрываем поле из виду.          $this->parentclass = 'd-none';          return '';     }}
Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает.@webtolkru#joomla #php #webdev #разработка

Обновлена информация в Плане развития Joomla

👩‍💻 Обновлена информация в Плане развития Joomla.Здесь собрана информация о датах релизов, описаны принципы версионирования, указаны ответственные за релизы, а так же даты окончания поддержки релизов. Опираясь на эту информацию вы можете планировать развитие ваших интернет-проектов.👩‍💻 Что нового?⛔️ Joomla 4.Дата окончания исправления ошибок безопасности в версии 4.x - 14 октября 2025г. ⚠️ После этой даты Joomla 4 прекратит получать какие-либо обновления, в том числе безопасности - вообще. Рекомендуем обновить ваши сайты до актуальной Joomla 5.✅ Joomla 5.- Дата окончания исправления ошибок в версии 5.x - 13 октября 2026г.- Дата окончания исправления ошибок безопасности в версии 5.x - 12 октября 2027 года.- Текущая актуальная (на момент написания заметки) версия - 5.3.1.- Опубликовано расписание выхода релизов Joomla 5.4. Стабильный релиз ожидается 14 октября 2025 года.✅ Joomla 6.- Дата окончания исправления ошибок в версии 6.x - 17 октября 2028г.- Дата окончания исправления ошибок безопасности в версии 6.x - 16 октября 2029г.- Опубликовано расписание выхода релизов Joomla 6.0. Стабильный релиз ожидается 14 октября 2025 года.- Для разработчиков уже доступна Joomla 6.0.0-alpha1.✅ Joomla! Framework.Обновлена информация о Joomla! Framework - полноценном PHP-фреймворке для разработки. Он в версиях 1.х и 2.х был самостоятельным параллельным проектом, однако начиная с версии Joomla 4.0 стал её основой. Добавлена информация о Joomla! Framework 3.x, который вышел 6 октября 2023 года. Его можно использовать в тех случаях, когда вам в проекте не нужна CMS Joomla целиком.Подробнее на сайте Joomla-сообщества Joomlaportal.ru#joomla #community

0 Пользователей и 1 Гость просматривают эту тему.
  • 17 Ответов
  • 2328 Просмотров
*

kostolom_brn

  • Осваиваюсь на форуме
  • 19
  • 4 / 0
Здравствуйте, пожалуйста помогите  !
Я делаю плагин который добавляет в каждую страницу сайта HTML код такого содержания
Код
<link type='text/css' href='typography.css' rel='stylesheet'>
В идеале надо, чтобы добавлялось сразу же после <head>
Т.е. после открывающего <head>, а не после закрывающего </hed>

Подскажите php код для этого дела.
Всё остальное готово, манифест и т.д.
Просто не понимаю как сделать сам php скрипт для этого дела.
« Последнее редактирование: 03.11.2013, 00:14:30 от kostolom_brn »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Федор, а если надо прям сразу после <head>, а не где-то там в середине?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Разбирать буфер вывода регулярками.
По событию public function onAfterRender()
Или подключать динамически с помощью js (не совсем хорошо)
В Joomla нет возможности управлять порядком подключения CSS. Разве, что вы будете сортировать массив по событию onBeforeCompileHead
В группах упоминают, что в 4 версии планируют сделать динамическую загрузку js. Но это споры пока.
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
угу, вот я о том же...иногда нужно подключить перед всеми подключениями
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
угу, вот я о том же...иногда нужно подключить перед всеми подключениями
Код: php-brief
$doc->addCustomTag("<link type='text/css' href='typography.css' rel='stylesheet'>" );
P. S. Так выведет самым последним
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Либо так.. если я правильно понял что надо..
Код: php
$styleSheets = JFactory::getDocument()->_styleSheets;
$newStyles = array();
$url = 'путь к стилю который надо вывести первым';
$newStyles[$url] = array( 'mime'=>'text/css', 'media'=>'', 'attribs'=>'' );
JFactory::getDocument()->_styleSheets = $newStyles + $styleSheets;
« Последнее редактирование: 03.11.2013, 01:12:28 от Istaan »
*

kostolom_brn

  • Осваиваюсь на форуме
  • 19
  • 4 / 0
Помог последний совет. Встраивается самым первым CSS на странице.
Вот содержание файла плагина:
Код
function Mytypography()
{
$styleSheets = JFactory::getDocument()->_styleSheets;
$newStyles = array();
$url = '/plugins/system/mytypography/typography.css';
$newStyles[$url] = array( 'mime'=>'text/css' );
JFactory::getDocument()->_styleSheets = $newStyles + $styleSheets;
}
Mytypography();

p.s.
ВСЕМ СПАСИБО!  *DRINK*
поставить + в репу не нашёл как  >:(
*

kostolom_brn

  • Осваиваюсь на форуме
  • 19
  • 4 / 0
Под-вопрос так сказать:
А как сделать в mytypography.xml (это к этому плагину) указания о том где брать обновления?
Задача: указать в плагине где проверять обновления.
Нигде не нашёл информацию об этом...
*

kostolom_brn

  • Осваиваюсь на форуме
  • 19
  • 4 / 0
И ещё вопросик по локализации...
Сделал плагин, все языковые переменные правильно прописал.
Все файлы правильно прописал.
Но вот после установки:

Вот что получается, в менеджере ВСЕХ плагинов — нет перевода:

А в настройках самого плагина есть перевод:


Вот приложил готовый плагин, посмотрите пожалуйста, может я где ошибся?!  !
http://yadi.sk/d/AClNPTwZC3NQA - 4КБ
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
поставить + в репу не нашёл как  >:(
Надо 10 сообщений набрать и можно будет менять карму )

И ещё вопросик по локализации...
Сделал плагин, все языковые переменные правильно прописал.
Все файлы правильно прописал.
1. Посмотрите или языковые файлы после уставновки перенеслись в CMS
2. в файлах *.sys.ini
написано:
Цитировать
PLG_SYS_mytypography="Типография на сайте"
PLG_SYS_mytypography_XML_DESC="Плагин для интеграции типографии на сайте"
тоесть часть с  маленькой буквы! возможно потому (файлы *.sys.ini) используются по все системе, а просто .ini в контексте текущего плагина!

А как сделать в mytypography.xml (это к этому плагину) указания о том где брать обновления?
Задача: указать в плагине где проверять обновления.
Нигде не нашёл информацию об этом...

скрипт установки / обновления / удаления и сервер обновлений
*

kostolom_brn

  • Осваиваюсь на форуме
  • 19
  • 4 / 0
Пасиба, буду разбираться и плюсы поставлю, теперь могу :-)

p.s.
русификация заработала корректно (совет помог). ::)
« Последнее редактирование: 03.11.2013, 15:17:27 от kostolom_brn »
*

kostolom_brn

  • Осваиваюсь на форуме
  • 19
  • 4 / 0
Не смог разобраться с тем как получить параметры плагина и обработать их.
Задача такая.
В настройках плагина будет выбор:
Включение шрифтов(параметры выпадающим списком):
  • выкл
  • включить старые
  • включить новые

В зависимости от выбранного будет включаться интеграция того или иного CSS

Прочитал всякие руководства и так и не смог разобраться, до 3х ночи просидел и не понял как это реализовать. :'(
Я прикрепил плагин (http://yadi.sk/d/eu9EhdTaC5eKK - 4кб), посмотрите пожалуйста, и если сможете, дайте новый рабочий код для mytypography.php
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Оу не удивительно что у вас не пашет! в плагине должен быть класс, а не просто функция
class plgГруппаПлагинаИмяПлагина extends JPlugin{

}

и уже внутри этого класса использовать $this->params->get( 'typography_basic', 1 )

вы можете у меня почитать у меня в блоге о создании плагина
а с помощью моего сервиса для создания каркасов плагина можете создать нужный вам плагин в нужной группе, уже будет присутствовать класс нужный, с нужными вам действиями, и можете сразу создать необходимые для плагина параметры!
*

kostolom_brn

  • Осваиваюсь на форуме
  • 19
  • 4 / 0
Ночью я пытался сделать в конструкторе плагинов, но мне выдавал нулевой архив. сейчас сделался. но всёравно не получается взять переменные из настроек плагина.
В настройках есть переменная typography_fontawesome у неё 3 значения (off, old, new)
Хочу получить значение переменной и в зависимости от ней выполнить действия (функцию).
В идеале сделать так: $переменная=получаем из настроек;
if ($переменная == "old"){работает функция для old;}
Вот содержание файла mytypography.php полученного при помощи конструктора:
Код
<?php
defined( '_JEXEC' ) or die;

class plgSystemMytypography extends JPlugin
{
/**
* Class Constructor
* @param object $subject
* @param array $config
*/
public function __construct( & $subject, $config )
{
parent::__construct( $subject, $config );
$this->loadLanguage();
}

$wwwww=$this->params->get('typography_fontawesome');

}
В конце это я пытался состряпать переменную в которую загрузить значение из настроек, но ничего не получается. ошибка, белый экран.

Пожалуйста, помогите, ума не хватает самому  >:(
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Потому что вам нужно писать в теле метода!
я вижу у вас совсем с ООП слабенько )))
Добавьте в ваш класс метод:
Код: php
<?php
defined( '_JEXEC' ) or die;

class plgSystemMytypography extends JPlugin
{
/**
* Class Constructor
* @param object $subject
* @param array $config
*/
public function __construct( & $subject, $config )
{
parent::__construct( $subject, $config );
$this->loadLanguage();
}
function onAfterInitialise(){
$wwwww=$this->params->get('typography_fontawesome');
var_dump($wwwww);
}
}

метод onAfterInitialise выполнится сам после инициализации приложения, дополнительно его никак вызывать не надо!
*

kostolom_brn

  • Осваиваюсь на форуме
  • 19
  • 4 / 0
Всё... родила царица в ночь, не то сына не то дочь  :D
Малость подшаманю хелпер и скоро добавлю на JED и сюда ссыль пульну.

p.s.
в репу добавил  *DRINK*
*

kostolom_brn

  • Осваиваюсь на форуме
  • 19
  • 4 / 0
Ещё вопросик:
Плагин сделал, работает, но хочу сделать помощь по типографии (примеры использования).
Надо сделать чтобы когда заходишь в настройки плагина, слева, там где краткое описание, вставить HTML код (описание с примерами).
Как правильно это сделать? Просто в языковой файл добавить или ещё есть нормальный способ? А то в языковой файл HTML как-то стрёмно добавлять, кавычки и всё такое...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Перенесено: Плагин создания полной резервной копии сайта+отправки на ЯндексДиск

Автор b2z

Ответов: 0
Просмотров: 1610
Последний ответ 03.03.2014, 15:09:58
от b2z
Как подгружать js в head из события onContentAfterDisplay ?

Автор mainet

Ответов: 2
Просмотров: 1426
Последний ответ 22.01.2014, 11:39:26
от mainet
[Решено] Как в плагине отправить скрипт в head ?

Автор mainet

Ответов: 1
Просмотров: 1505
Последний ответ 03.12.2012, 12:19:44
от hooten
Как отправить код в head ?

Автор mainet

Ответов: 11
Просмотров: 4860
Последний ответ 19.07.2012, 22:04:14
от mainet
field type=filelist directory

Автор Black Moon

Ответов: 1
Просмотров: 1337
Последний ответ 08.10.2011, 23:10:02
от Lex