Новости Joomla

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

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
Просмотров: 10247
Последний ответ 25.11.2021, 10:43:38
от FlexNL
Слетают категории объявления

Автор guardnext

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

Автор kozhenevsky

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

Автор Mick_20

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

Автор Den85

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