Новости Joomla

Как тестировать Joomla PHP-разработчику? Компонент Patch tester.

👩‍💻 Как тестировать Joomla PHP-разработчику? Компонент Patch tester.Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать. На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla. Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора. Видео на YouTubeВидео на VK ВидеоВидео на RuTubeКомпонент на GitHub https://github.com/joomla-extensions/patchtester@joomlafeed#joomla #php #webdev #community

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6.2PageBuilder Toolkit - это специализированный плагин для конструктора страниц Yootheme Pro, содержит набор различных утилит для ускорения процесса работы и отладки макета, множественные улучшения в интерфейсе, включая поддержку dark mode, подсказки, быстрая смена разрешения в окне просмотра и много чего еще.v.1.6.2 Что нового?- Индикатор статусов: теперь не просто показывает состояние запросов, но и делает автоматические попытки их отправки при кратковременных сбоях в сети, а если это не помогло, то переводит конструктор в ручной режим, что позволяет сохранит макет и настройки темы прежде чем вы потеряете все, что было сделано с момента последнего сохранения- Подсветка ошибок в макете: плагин анализирует код страницы и может автоматически подсвечивать data атрибуты с кучей мусора, которые попадают в код страницы при копипасте из Figma в TinyMCE (пригодится для старых макетов, в текущей работе плагин сам очищает код мусора). Также есть подсветка семантических ошибок сборки - дубли h1 тега на странице и вложенных друг в друга заголовков.- Улучшена поддержка будущего релиза Yootheme Pro 5 и редактора CodeMirror 6Плагин для русскоязычных пользователей доступен в каталоге расширений SovMart и распространяется за символическую плату (100р). Разработчики Joomla расширений и партнеры автора могут получить плагин бесплатно.Для работы плагина необходим конструктор страниц Yootheme Pro.Разработчик плагина - участник нашего сообщества Александр Судьбинов (@alexrevo), член официальной группы поддержки Yootheme Pro. Страница расширенияОписание на сайте автора@joomlafeed#joomla #yootheme

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

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

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

malkawian

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

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

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

b2z

  • Глобальный модератор
  • 7288
  • 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
Просмотров: 3412
Последний ответ 12.07.2020, 12:46:06
от NataliS
Вывод контента com_content материалов и категорий по id. Решение

Автор Fedor Vlasenko

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

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

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

Автор JustRe1ax

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

Автор D.E.

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