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

malkawian

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Уважаемые форумчане, подскажите решение вопросика:

Есть Joomla 1.6 + компонент AcyMailing 2.0

Нужно сделать, чтобы при создании материала, в определенном разделе происходила отправка писем всем подписчикам.
Как сделать рассылку понятно, но вот как привязать её к событию создания материала, да еще и в определенном разделе, ума не приложу.
« Последнее редактирование: 29.08.2013, 09:58:20 от b2z »
*

malkawian

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Идея как это реализовать появилась, но смутная.

Решил написать плагин, который при добавлении материала выдергивал бы нужные поля этого материала и передавал бы в компонент AcyMailing для отправки рассылки.

Только никак не разберусь с плагинами. Точнее с используемыми событиями. Написал плагин по инструкции на форуме, изменил под 1.6, установил, сделал активным и нифига не работает. Сам класс плагина загружается, но на события никакой реакции нет. В чем проблема?

Код
<?php
defined('_JEXEC') or die('Restricted access');
jimport('joomla.application.plugin.helper');

class plgContentSendacymailing extends JPlugin
{

function __construct(&$subject)
{
parent::__construct($subject);
  }

  function onAfterContentSave(){
die('content saving');
  }

}
?>

*

malkawian

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Какие тут все не общительные однако...

Буду писать что делал и что из этого вышло, может пригодится кому в будущем.

Решение проблемы с запуском плагина нашел: в 1.6 изменили название событий и вместо
Код
onAfterContentSave
стало
Код
onContentAfterSave

Пишем тело плагина...
*

malkawian

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Завис на следующей проблеме. Не отправляется письмо с помощью компонента AcyMailing.

Код плагина теперь такой:
Код
<?php
defined('_JEXEC') or die('Restricted access');
jimport('joomla.plugin.plugin');

class plgContentSendacymailing extends JPlugin
{

function __construct(&$subject)
{parent::__construct($subject);}

function onContentAfterSave($context, &$article, $isNew){
if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_acymailing'.DS.'helpers'.DS.'helper.php')) return true;
if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_acymailing'.DS.'helpers'.DS.'mailer.php')) return true;
if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_acymailing'.DS.'classes'.DS.'listmail.php')) return true;
$mailer = new mailerHelper();
$mailer->Subject = $article->title;
$mailer->Body = $article->introtext;
$mailer->to[] = 'user@domain.com';
$mailer->send();
echo $mailer->reportMessage;
echo $mailer->errorNumber;
die('content saving event catched');
    }


}
?>

Причем       
Код
echo $mailer->reportMessage;
Выдает сообщение об успешной отправке.
Думал, что проблема с настройкой компонента, но и в компоненте твориться что-то странное:
При отправке тестового письма из окна настроек все проходит отлично. Письмо отправляется и доходит практически моментально. А если создать новое сообщение и отправить тестовое письмо для этого сообщения, то начинается полтергейст: компонент сообщает об успешной отправке, но ничего на почту не приходит. То же самое, если запустить это сообщение в рассылку. Успешный отчет при нулевом результате. Кто-нибудь с таким сталкивался?
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
*

malkawian

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Уже.

Есть такой класс:
/components/com_acymailing/inc/phpmailer/class.phpmailer.php
Который отвечает за отправку почты компонентом Acymailing. До него данные доходят, передаются в PHP функцию mail() и  результат всегда TRUE, значит письмо ушло. Но из одного места письма доходят, а из другого нет. Проверял входные данные, все в порядке.

Ничего не понимаю.
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
*

Magi

  • Захожу иногда
  • 113
  • 0 / 0
У меня есть пример хака для Joomla 1.0.x с помощью которого почта отправляется на адрес списка рассылки mailman, а потом соответственно подписчикам. Если интересует могу выложить.
*

malkawian

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
У меня есть пример хака для Joomla 1.0.x с помощью которого почта отправляется на адрес списка рассылки mailman, а потом соответственно подписчикам. Если интересует могу выложить.

Да, было бы замечательно.
*

Magi

  • Захожу иногда
  • 113
  • 0 / 0
Если получится переделать под 1.7 выложите здесь.

1. Положить в корень ЦМС файл for_mail.php.
2. В корне ЦМС открываем файл index2.php и после строки
require_once( 'includes/joomla.php' );
вставляем
require_once( 'for_mail.php' );
3. В дире administrator в файле index2.php после строки
require_once( '../configuration.php' );
вставляем
require_once( '../for_mail.php' );
4. В дире components/com_content открываем файл content.php и ищем строку
if (!$row->store()) {
и после закрывающей '}' вставляем строку
SendNewsMail($row->id);
5. В дире administrator/components/com_content открываем файл
admin.content.php и ищем строку
if (!$row->store()) {
и после закрывающей '}' вставляем строку
SendNewsMail($row->id);

[вложение удалено Администратором]
*

WolfHunter

  • Захожу иногда
  • 50
  • 1 / 0
Идея как это реализовать появилась, но смутная.

Решил написать плагин......

какой плагин?! вы чё?!
есть такая штука называется тэги. например этот: {autocontent:cat1-|min:1|max:5|order:id,DESC|filter:created|type:intro|link|pict:1}
из категории 1 тащит статьи от 1 и до 5, сортировка по ID, только новые, только вступление, активный заголовок, показывать изображения.
ВСЁ! что еще надо хорошему человеку )))))

P.S. ну и естественно нужна Business или enterprise версия, для настройки крон
*

malkawian

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
А для тех, кто не готов раскошеливаться на бизнес или энтерпрайз версии готов поделиться плагином:)

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

class plgContentSendacymailing extends JPlugin
{
function __construct(&$subject) {parent::__construct($subject);}

function onContentAfterSave($context, &$article, $isNew){
if($isNew) { //проверяем запись и если она новая, запускаем процедуру формирования и отправки письма
if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_acymailing'.DS.'helpers'.DS.'mailer.php')) return true;
$db =& JFactory::getDBO(); //получаем соединение с БД
$query = 'SELECT subid, email, name FROM [JOOMLA_TABLE_PREFIX]_acymailing_subscriber WHERE enabled = 1'; // делаем запрос для получения всех активных подписчиков
$db->setQuery($query); //выполняем запрос
$db->query();
$allSubid = $db->loadRowList(); //получаем результаты запроса
$mailer = new mailerHelper();
$mailer->Subject = $article->title; //заполняем тему письма
$mailer->Body = $article->introtext; //заполняем текст письма
$to = array(); //заполняем получателей
foreach($allSubid as $subscriber) {
$mailer->to[] = array($subscriber[2],$subscriber[1]);
}
$mailer->send(); //отправляем письмо
}


    }
}
?>

Плагин максимально простой с минимумом наворотов. Не подходит для большого количества адресатов.
Нарастить функционал очень просто, поэтому, если есть желающие, милости просим заняться этим вопросом и поделиться результатами.
*

WolfHunter

  • Захожу иногда
  • 50
  • 1 / 0
Это для тех у кого нет денег и в то же время из принципа не хочет пользоваться.... ну, это..... уже бесплатным
*

malkawian

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
А также для тех, у кого нет крона или он не знает что это такое:)
*

Magi

  • Захожу иногда
  • 113
  • 0 / 0
Плагин вроде подразумевает наличие XML файла. А как ставить этот?
*

malkawian

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
я сделал самый примитивный вариант. Выглядит примерно так:
Код
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE install SYSTEM "http://dev.joomla.org/xml/1.5/plugin-install.dtd">
<install type="plugin" version="1.5" group="content">
<name>AcyMailing : (auto)Sending articles</name>
<creationDate>07 2011</creationDate>
<version>1.0</version>
<author>IT-Nanny</author>
<authorEmail>web@it-nanny.ru</authorEmail>
<authorUrl>http://www.it-nanny.ru</authorUrl>
<copyright>Copyright (C) 2011 IT-Nanny.</copyright>
<description>Automatically sending e-mail with Article add</description>
<files>
<filename plugin="sendacymailing">sendacymailing.php</filename>
</files>

</install>
*

WolfHunter

  • Захожу иногда
  • 50
  • 1 / 0
А также для тех, у кого нет крона
а чё, такое бывает?

Подскажите, как оптимизировать процесс отправки писем, у меня отправляется всего 300 писем в час.
Когда создаю сообщение, делаю его отправить, он отправляет на все 9000 адресов, НО! они не доходят. Посмотрела обработку очереди, там стоит что 300 писем в час. Я так понимаю, что они зависают на сервере.
Как сделать так, что отправлял сразу все и они нормально доставлялись?
Спасибо за ответ!
*

FerrumLogic

  • Захожу иногда
  • 213
  • 17 / 0
  • Я ушел чтобы с разбегу вернуться
С такой скоростью рассылки Вас добавят в спам-листы
*

malkawian

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
В таком случае нужно использовать очереди отправки компонента AcyMailing, либо придумывать что-то своё.
*

WolfHunter

  • Захожу иногда
  • 50
  • 1 / 0
С такой скоростью рассылки Вас добавят в спам-листы
сто пудов. надо максимум 300
у меня в настройках:
Послать  сообщений 100 и перед отправкой следующего пакета сообщений ждать 5 мин
с такой же настройкой ваши 9000 писем разошлются за 7.5 часов
*

неон

  • Осваиваюсь на форуме
  • 37
  • 2 / 0
Подскажите кто знает как в этом компоненте настраивается функция  -Отказаться от рассылки писем:-
*

WolfHunter

  • Захожу иногда
  • 50
  • 1 / 0
не понял вопроса.
пользователь жмёт кнопочку и там выбирает от каких рассылок отказаться
*

неон

  • Осваиваюсь на форуме
  • 37
  • 2 / 0
Данный компонента я использую только для рассылки писем зарегистрировавшимся пользователям (типа пора зайти и посмотреть что нового на сайте) Использую стандартный шаблон компонента немного переделаны под себя. В шаблоне есть активная ссылка на отказ от рассылки, при нажатии перекидывает на сайт и на этом все.Мне кажется в настройках компонента надо поставить какую та ссылку на удаления рассылки. Но где ее взять и куда поставить ума не приложу.
*

WolfHunter

  • Захожу иногда
  • 50
  • 1 / 0
Теперь понятно
Конфигурация->Интерфейсы->Страница отказа от подписки
у меня так


думаю больше ничего не нужно
*

WolfHunter

  • Захожу иногда
  • 50
  • 1 / 0
ссылка должна быть типо этой
http://сайт.ru/index.php?option=com_acymailing&ctrl=user&task=optout&mailid=38&subid=1983&key=4aa970e08fe0a8ad298b70a0b1586965&Itemid=71
и при отказе появляется вот это
*

неон

  • Осваиваюсь на форуме
  • 37
  • 2 / 0
Спасибо, разобрался.
+
*

cat_helena

  • Новичок
  • 1
  • 0 / 0
Уже.

Есть такой класс:
/components/com_acymailing/inc/phpmailer/class.phpmailer.php
Который отвечает за отправку почты компонентом Acymailing. До него данные доходят, передаются в PHP функцию mail() и  результат всегда TRUE, значит письмо ушло. Но из одного места письма доходят, а из другого нет. Проверял входные данные, все в порядке.

Ничего не понимаю.
Скажите, как разобрались с доставкой писем. У меня сейчас та же прблема.
*

malkawian

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Скажите, как разобрались с доставкой писем. У меня сейчас та же прблема.

http://joomlaforum.ru/index.php/topic,172873.msg978008.html#msg978008
*

AnDS

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Хочу сделать автоматическую рассылку, в настройках (Конфигурация--Обработка очереди) отображается сообщение: "Вероятно планировщик не включен, не забудьте его создать!"

Подскажите, как создать планировщик?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с редактированием материалов

Автор olesya

Ответов: 15
Просмотров: 2972
Последний ответ 12.07.2020, 12:46:06
от NataliS
Вывод контента com_content материалов и категорий по id. Решение

Автор Fedor Vlasenko

Ответов: 16
Просмотров: 22635
Последний ответ 01.10.2018, 14:32:38
от Fedor Vlasenko
AcyMailing 5.8.1

Автор Дедушка эЛ

Ответов: 0
Просмотров: 1219
Последний ответ 02.01.2018, 15:53:34
от Дедушка эЛ
Вывод определенных материалов на главной

Автор JustRe1ax

Ответов: 4
Просмотров: 1592
Последний ответ 08.12.2017, 11:21:47
от JustRe1ax
404 только для новых материалов

Автор D.E.

Ответов: 6
Просмотров: 2112
Последний ответ 25.11.2017, 09:25:39
от G_islam05