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

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Кто-то знает как реализовать отправку сообщения пользователю при удалении объявления модератором за нарушение?

Представляю это так:

1. Создать в админке три новых поля в разделе Email:
- Послать письмо пользователю о удалении объявления модератором? (Да/Нет)
- Тема письма о удалении объявления модератором
- Текст письма о удалении объявления модератором

2. При удалении объявления модератором будет отправляться это письмо

Подскажите пожалуйста!
« Последнее редактирование: 24.07.2013, 21:42:47 от max_1985 »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
плагин на событие если нет события можешь сам сгенерировать. Смотри исходный код функцию удаления
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
плагин на событие если нет события можешь сам сгенерировать. Смотри исходный код функцию удаления
дело в том что при удалении объявления системой приходит письмо.
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
В общем начал так:

В administrator/components/com_adsmanager/tables/adsconfiguration.php
дописал:
Код
var $send_email_del_admin_to_user;
var $admin_del_subject;
var $admin_del_text;

В базе создал три поля в xxx_adsmanager_config
send_email_del_admin_to_user
admin_del_subject
admin_del_text

В /administrator/components/com_adsmanager/views/admin/tmpl/configuration.php
После:
Код
<tr>
<td><?php echo JText::_('ADSMANAGER_EMAIL_ON_EXPIRATION_TO_USER'); ?></td>
<td>
<select id='send_email_on_expiration_to_user' name='send_email_on_expiration_to_user'>
<option value='1' <?php if ($this->conf->send_email_on_expiration_to_user == 1) { echo "selected"; } ?>><?php echo JText::_('ADSMANAGER_YES'); ?></option>
<option value='0' <?php if ($this->conf->send_email_on_expiration_to_user == 0) { echo "selected"; } ?>><?php echo JText::_('ADSMANAGER_NO'); ?></option>
 </select>
</td>
<td></td>
</tr>
Вставляем:
Код
<tr>
<td><?php echo JText::_('ADSMANAGER_SEND_DEL_ADMIN_TO_USER'); ?></td>
<td>
<select id='send_email_del_admin_to_user' name='send_email_del_admin_to_user'>
<option value='1' <?php if ($this->conf->send_email_del_admin_to_user == 1) { echo "selected"; } ?>><?php echo JText::_('ADSMANAGER_YES'); ?></option>
<option value='0' <?php if ($this->conf->send_email_del_admin_to_user == 0) { echo "selected"; } ?>><?php echo JText::_('ADSMANAGER_NO'); ?></option>
 </select>
</td>
<td>&nbsp;</td>
</tr>
После:
Код
<tr id="tr_expiration_subject">
<td><?php echo JText::_('ADSMANAGER_EXPIRATION_SUBJECT'); ?></td>
<td><input type="text" name="expiration_subject" value="<?php echo htmlspecialchars($this->conf->expiration_subject); ?>" /></td>
<td>&nbsp;</td>
</tr>
<tr id="tr_expiration_text">
<td><?php echo JText::_('ADSMANAGER_EXPIRATION_TEXT'); ?></td>
<td><?php echo $editor->display( 'expiration_text', $this->conf->expiration_text , '100%', '350', '75', '20' ) ; ?></td>
<td>&nbsp;</td>
</tr>
Вставляем:
Код
<tr id="tr_admin_del_subject">
<td><?php echo JText::_('ADSMANAGER_ADMIN_DEL_SUBJECT'); ?></td>
<td><input type="text" name="admin_del_subject" value="<?php echo htmlspecialchars($this->conf->admin_del_subject); ?>" /></td>
<td>&nbsp;</td>
</tr>
<tr id="tr_admin_del_text">
<td><?php echo JText::_('ADSMANAGER_ADMIN_DEL_TEXT'); ?></td>
<td><?php echo $editor->display( 'admin_del_text', $this->conf->admin_del_text , '100%', '350', '75', '20' ) ; ?></td>
<td>&nbsp;</td>
</tr>


В /administrator/language/ru-RU/ru-RU.com_adsmanager.ini дописуем в конце 3 строчки:
Код
ADSMANAGER_SEND_DEL_ADMIN_TO_USER="Послать письмо пользователю о удалении объявления модератором?"
ADSMANAGER_ADMIN_DEL_SUBJECT="Тема письма о удалении объявления модератором"
ADSMANAGER_ADMIN_DEL_TEXT="Текст письма о удалении объявления модератором"

Помогите в дальнейших действиях в самом функционале!
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
В общем решил так:
В файле /administrator/components/com_adsmanager/controllers/contents.php

В function remove()

Дописал такое условие:
if ($conf->send_email_del_admin_to_user == 1) {   
            $cid = JRequest::getVar( 'cid', array(), '', 'array' );      
            foreach($cid as $id) {
               $model = $this->getModel( "content");
               $c = $model->getContent($id,false);
               $usermodel = $this->getModel("user");
               $user = $usermodel->getUser($c->userid);
               $model->sendMailToUser($conf->admin_del_subject,$conf->admin_del_text,$user,$c,$conf,"validation");
               
            }
         }


Если что лишнее или не так можете подправить!
*

Serafon

  • Захожу иногда
  • 55
  • 5 / 0
Joomla 2.5, AdsManager 2.9.5
Все сделал по инструкции... в админке в компоненте AdsManager, в разделе "Email" появилась функция отправки письма после удаления объявления модератором (появилась кнопка разрешения отправки письма (выбор ДА/НЕТ, а также строка темы письма и текста письма).
В общем все настроил в админке... создал на сайте объявления, потом удалил его с админки и... письмо так и не приходит :(((
Подскажите в чем может быть дело?  :'(

Почему-то кажется, что что-то не так в этом коде:
Код
if ($conf->send_email_del_admin_to_user == 1) {   
            $cid = JRequest::getVar( 'cid', array(), '', 'array' );     
            foreach($cid as $id) {
               $model = $this->getModel( "content");
               $c = $model->getContent($id,false);
               $usermodel = $this->getModel("user");
               $user = $usermodel->getUser($c->userid);
               $model->sendMailToUser($conf->admin_del_subject,$conf->admin_del_text,$user,$c,$conf,"validation");
               
            }
         }
« Последнее редактирование: 19.02.2014, 04:09:30 от Serafon »
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Выложи function remove() целиком.
*

Serafon

  • Захожу иногда
  • 55
  • 5 / 0
Выложи function remove() целиком.
http://rghost.ru/download/52528871/4061080609cf6d52837f7f11e498a68a3f4639ce/contents.php - это ссылка на скачку самого файла contents.php

function remove() в нем прописана так:
Код
function remove()
{
if ($conf->send_email_del_admin_to_user == 1) {   
            $cid = JRequest::getVar( 'cid', array(), '', 'array' );     
            foreach($cid as $id) {
               $model = $this->getModel( "content");
               $c = $model->getContent($id,false);
               $usermodel = $this->getModel("user");
               $user = $usermodel->getUser($c->userid);
               $model->sendMailToUser($conf->admin_del_subject,$conf->admin_del_text,$user,$c,$conf,"validation");
               
            }
         }

$app = JFactory::getApplication();

$content = JTable::getInstance('contents', 'AdsmanagerTable');

$ids = JRequest::getVar( 'cid', array(0));
if (!is_array($ids)) {
$table = array();
$table[0] = $ids;
$ids = $table;
}

$model = $this->getModel( "configuration");
$conf = $model->getConfiguration();

$model = $this->getModel( "field");
$plugins = $model->getPlugins();

foreach($ids as $id){
$content->delete($id,$conf,$plugins);
}

$cache = JFactory::getCache( 'com_adsmanager');
$cache->clean();

$app->redirect( 'index.php?option=com_adsmanager&c=contents', JText::_('ADSMANAGER_CONTENT_REMOVED') );
}
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
попробуйте заменить на
Код
function remove()
{
$app = JFactory::getApplication();

$content = JTable::getInstance('contents', 'AdsmanagerTable');

                                       
$ids = JRequest::getVar( 'cid', array(0));
if (!is_array($ids)) {
$table = array();
$table[0] = $ids;
$ids = $table;
}

$model = $this->getModel( "configuration");
$conf = $model->getConfiguration();

                        if ($conf->send_email_del_admin_to_user == 1) {
$cid = JRequest::getVar( 'cid', array(), '', 'array' );
foreach($cid as $id) {
$model = $this->getModel( "content");
$c = $model->getContent($id,false);
$usermodel = $this->getModel("user");
$user = $usermodel->getUser($c->userid);
$model->sendMailToUser($conf->admin_del_subject,$conf->admin_del_text,$user,$c,$conf,"validation");

}
}

$model = $this->getModel( "field");
$plugins = $model->getPlugins();

foreach($ids as $id){
$content->delete($id,$conf,$plugins);

                                       
}

$cache = JFactory::getCache( 'com_adsmanager');
$cache->clean();

$app->redirect( 'index.php?option=com_adsmanager&c=contents', JText::_('ADSMANAGER_CONTENT_REMOVED') );
}
*

Serafon

  • Захожу иногда
  • 55
  • 5 / 0
Спасибо!
Сейчас заменю, проверю и отпишусь  ;)
*

Serafon

  • Захожу иногда
  • 55
  • 5 / 0
max_1985 спасибо, заработало!
С меня ОГРОМЕННЫЙ плюс!  *DRINK*
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Редактировать все объявления

Автор den_ko

Ответов: 32
Просмотров: 12730
Последний ответ 25.11.2021, 10:43:38
от FlexNL
Слетают категории объявления

Автор guardnext

Ответов: 1
Просмотров: 3487
Последний ответ 09.07.2019, 10:10:59
от guardnext
AdsManger не удаляет объявления

Автор kozhenevsky

Ответов: 0
Просмотров: 1524
Последний ответ 15.02.2018, 12:08:29
от kozhenevsky
Лечим кнопку "Delete from favorites" на странице объявления. AdsManager 3.1.11

Автор Mick_20

Ответов: 1
Просмотров: 1751
Последний ответ 24.12.2017, 22:28:14
от vadim73
Как добавить поле id объявления

Автор Den85

Ответов: 9
Просмотров: 2776
Последний ответ 11.11.2017, 15:18:48
от Den85