Pārlūkot izejas kodu

#2933 Accounts administration: send custom mail to selected accounts

RomanL 5 gadi atpakaļ
vecāks
revīzija
75748433eb

+ 38 - 0
modules/boonex/accounts/classes/BxAccntGridAdministration.php

@@ -158,6 +158,44 @@ class BxAccntGridAdministration extends BxBaseModProfileGridAdministration
             echoJson(array('popup' => array('html' => $sContent, 'options' => array('closeOnOuterClick' => false))));
         }
     }
+	
+	public function performActionSendMessage()
+    {
+		$sAction = 'send_message';
+		
+        $CNF = &$this->_oModule->_oConfig->CNF;
+
+        $aIds = bx_get('ids');
+        if(!$aIds || !is_array($aIds))
+            return echoJson(array());
+		
+		$oForm = BxDolForm::getObjectInstance('bx_accounts_account', 'bx_accounts_send_test');
+        if (!$oForm)
+            return '';
+		
+        $oForm->aFormAttrs['action'] = BX_DOL_URL_ROOT . 'grid.php?' . bx_encode_url_params($_GET, array('_r'));
+        $oForm->initChecker();
+        if($oForm->isSubmittedAndValid()) {
+        	$aIdsAffected = array();
+			foreach($aIds as $iId) {
+				if(sendMail('user1@roma1.ru', $oForm->getCleanValue('message_subject'), $oForm->getCleanValue('message_text').BxDolAccount::getInstance()->getEmail($iId), 0, [], BX_EMAIL_MASS, 'text', false, ['From' => "=?UTF-8?B?" . base64_encode(getParam('site_title')) . "?= <" . getParam('site_email_notify') . ">"], false)){
+					$aIdsAffected[] = $iId;
+				}	
+			}
+			
+            echoJson(count($aIdsAffected) > 0 ? array('grid' => $this->getCode(false), 'blink' => $aIdsAffected) : array('msg' => _t($CNF['T']['grid_action_err_perform'])));
+        }
+        else {
+            
+            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('bx-account-send-message', _t('_bx_accounts_form_display_account_send_message'), $this->_oModule->_oTemplate->parseHtmlByName('manage_item.html', array(
+                'form_id' => $oForm->id,
+                'form' => $oForm->getCode(true),
+                'object' => $this->_sObject,
+                'action' => $sAction
+            )));
+            echoJson(array('popup' => array('html' => $sContent, 'options' => array('closeOnOuterClick' => false))));
+        }
+    }
     
     public function performActionAdd()
     {

+ 9 - 0
modules/boonex/accounts/install/langs/en.xml

@@ -9,6 +9,7 @@
     <string name="_bx_accounts_form_display_account_settings_email_popup"><![CDATA[Edit Email]]></string>
     <string name="_bx_accounts_form_display_account_create_popup"><![CDATA[Create new Account]]></string>
     <string name="_bx_accounts_form_display_account_settings_password_popup"><![CDATA[Reset Password]]></string>
+	 <string name="_bx_accounts_form_display_account_send_message"><![CDATA[Send test email]]></string>
 
     <string name="_bx_accnt_page_title_sys_manage_administration"><![CDATA[Manage All Accounts]]></string>
     <string name="_bx_accnt_page_title_manage"><![CDATA[Manage Accounts]]></string>
@@ -78,6 +79,7 @@
     <string name="_bx_accnt_grid_action_title_adm_unlock_account"><![CDATA[Unlock]]></string>
     <string name="_bx_accnt_grid_action_title_adm_delete"><![CDATA[Delete]]></string>
     <string name="_bx_accnt_grid_action_title_adm_delete_with_content"><![CDATA[Delete With Content]]></string>
+	<string name="_bx_accnt_grid_action_title_adm_send_message"><![CDATA[Send email]]></string>
     <string name="_bx_accnt_grid_action_title_adm_more_actions"><![CDATA[More Actions]]></string>
     <string name="_bx_accnt_grid_action_title_adm_more_add"><![CDATA[Add new]]></string>
     <string name="_bx_accnt_grid_action_err_delete"><![CDATA[Cannot delete the selected account(s).]]></string>
@@ -91,6 +93,13 @@
 
     <string name="_bx_accnt_form_login_input_caption_system_email_confirmed"><![CDATA[Email confirmed]]></string>
     <string name="_bx_accnt_form_account_input_email_confirmed"><![CDATA[Email confirmed]]></string>
+	<string name="_bx_accnt_form_account_input_caption_system_message_subject"><![CDATA[Subject]]></string>
+    <string name="_bx_accnt_form_account_input_caption_message_subject"><![CDATA[Subject]]></string>
+	<string name="_bx_accnt_form_account_input_message_subject_error"><![CDATA[Subject can't be empty]]></string>
+	<string name="_bx_accnt_form_account_input_caption_system_message_text"><![CDATA[Text]]></string>
+    <string name="_bx_accnt_form_account_input_caption_message_text"><![CDATA[Text]]></string>
+	<string name="_bx_accnt_form_account_input_message_text_error"><![CDATA[Text can't be empty]]></string>
+	<string name="_bx_accnt_form_display_send_message"><![CDATA[Send email]]></string>
  
     <string name="_bx_accnt_txt_more"><![CDATA[{0} more]]></string>
     <string name="_bx_accnt_txt_see_more"><![CDATA[See more]]></string>

+ 1 - 0
modules/boonex/accounts/install/sql/enable.sql

@@ -103,6 +103,7 @@ INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon
 ('bx_accounts_administration', 'bulk', 'delete', '_bx_accnt_grid_action_title_adm_delete', '', 0, 1, 6),
 ('bx_accounts_administration', 'bulk', 'delete_with_content', '_bx_accnt_grid_action_title_adm_delete_with_content', '', 0, 1, 7),
 ('bx_accounts_administration', 'bulk', 'export', '_bx_accnt_grid_action_title_adm_export', '', 0, 0, 8),
+('bx_accounts_administration', 'bulk', 'send_message', '_bx_accnt_grid_action_title_adm_send_message', '', 0, 0, 9),
 ('bx_accounts_administration', 'single', 'edit_email', '_bx_accnt_grid_action_title_adm_edit_email', '', 0, 0, 0),
 ('bx_accounts_administration', 'single', 'reset_password', '_bx_accnt_grid_action_title_adm_reset_password', '', 0, 0, 0),
 ('bx_accounts_administration', 'single', 'resend_remail', '_bx_accnt_grid_action_title_adm_resend_remail', '', 0, 0, 0),

+ 13 - 3
modules/boonex/accounts/install/sql/install.sql

@@ -7,7 +7,8 @@ INSERT INTO `sys_objects_form` (`object`, `module`, `title`, `action`, `form_att
 
 INSERT INTO `sys_form_displays` (`display_name`, `module`, `object`, `title`, `view_mode`) VALUES
 ('bx_accounts_account_settings_email', @sName, 'bx_accounts_account', '_sys_form_display_account_settings_email', 0),
-('bx_accounts_account_create', @sName, 'bx_accounts_account', '_sys_form_display_account_create', 0);
+('bx_accounts_account_create', @sName, 'bx_accounts_account', '_sys_form_display_account_create', 0),
+('bx_accounts_send_test', @sName, 'bx_accounts_account', '_bx_accnt_form_display_send_message', 0);
 
 INSERT INTO `sys_form_inputs` (`object`, `module`, `name`, `value`, `values`, `checked`, `type`, `caption_system`, `caption`, `info`, `required`, `collapsed`, `html`, `attrs`, `attrs_tr`, `attrs_wrapper`, `checker_func`, `checker_params`, `checker_error`, `db_pass`, `db_params`, `editable`, `deletable`) VALUES
 ('bx_accounts_account', @sName, 'email', '', '', 0, 'text', '_sys_form_login_input_caption_system_email', '_sys_form_account_input_email', '', 1, 0, 0, '', '', '', 'Email', '', '_sys_form_account_input_email_error', 'Xss', '', 0, 0),
@@ -18,7 +19,9 @@ INSERT INTO `sys_form_inputs` (`object`, `module`, `name`, `value`, `values`, `c
 ('bx_accounts_account', @sName, 'password', '', '', 0, 'password', '_sys_form_login_input_caption_system_password', '_sys_form_account_input_password', '', 1, 0, 0, '', '', '', 'Preg', 'a:1:{s:4:"preg";s:38:"~^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).{8,}~";}', '_sys_form_account_input_password_error', '', '', 0, 0),
 ('bx_accounts_account', @sName, 'controls', '', 'do_submit,do_cancel', 0, 'input_set', '', '', '', 0, 0, 0, '', '', '', '', '', '', '', '', 0, 0),
 ('bx_accounts_account', @sName, 'do_cancel', '_adm_btn_cancel_submit', '', 0, 'button', '_adm_btn_cancel_submit', '', '', 0, 0, 0, 'a:2:{s:7:"onclick";s:45:"$(''.bx-popup-applied:visible'').dolPopupHide()";s:5:"class";s:22:"bx-def-margin-sec-left";}', '', '', '', '', '', '', '', 0, 0),
-('bx_accounts_account', @sName, 'email_confirmed', '1', '', 1, 'switcher', '_bx_accnt_form_login_input_caption_system_email_confirmed', '_bx_accnt_form_account_input_email_confirmed', '', 0, 0, 0, '', '', '', '', '', '', 'Int', '', 0, 0);
+('bx_accounts_account', @sName, 'email_confirmed', '1', '', 1, 'switcher', '_bx_accnt_form_login_input_caption_system_email_confirmed', '_bx_accnt_form_account_input_email_confirmed', '', 0, 0, 0, '', '', '', '', '', '', 'Int', '', 0, 0),
+('bx_accounts_account', @sName, 'message_subject', '', '', 0, 'text', '_bx_accnt_form_account_input_caption_system_message_subject', '_bx_accnt_form_account_input_caption_system_message_subject', '', 1, 0, 0, '', '', '', 'Avail', '', '_bx_accnt_form_account_input_message_subject_error', 'Xss', '', 1, 0),
+('bx_accounts_account', @sName, 'message_text', '', '', 0, 'textarea', '_bx_accnt_form_account_input_caption_system_message_text', '_bx_accnt_form_account_input_caption_message_text', '', 1, 0, 0, '', '', '', 'Avail', '', '_bx_accnt_form_account_input_message_text_error', 'Xss', '', 1, 0);
 
 
 INSERT INTO `sys_form_display_inputs` (`display_name`, `input_name`, `visible_for_levels`, `active`, `order`) VALUES
@@ -35,7 +38,14 @@ INSERT INTO `sys_form_display_inputs` (`display_name`, `input_name`, `visible_fo
 ('bx_accounts_account_create', 'email_confirmed', 2147483647, 1, 4),
 ('bx_accounts_account_create', 'controls', 2147483647, 1, 5),
 ('bx_accounts_account_create', 'do_submit', 2147483647, 1, 6),
-('bx_accounts_account_create', 'do_cancel', 2147483647, 1, 7);
+('bx_accounts_account_create', 'do_cancel', 2147483647, 1, 7),
+
+('bx_accounts_send_test', 'message_subject', 2147483647, 1, 1),
+('bx_accounts_send_test', 'message_text', 2147483647, 1, 2),
+('bx_accounts_send_test', 'controls', 2147483647, 1, 3),
+('bx_accounts_send_test', 'do_submit', 2147483647, 1, 4),
+('bx_accounts_send_test', 'do_cancel', 2147483647, 1, 5);
+
 
 
 -- STUDIO PAGE & WIDGET

+ 19 - 0
modules/boonex/accounts/template/manage_item.html

@@ -0,0 +1,19 @@
+<div class="bx-pgt-new-key">
+    <div class="bx-pgt-new-key-cnt">
+        __form__
+        <script language="javascript">
+            $(document).ready(function () {
+                $("#__form_id__").ajaxForm({ 
+                    dataType: "json",
+                    beforeSubmit: function (formData, jqForm, options) {
+                        bx_loading($("#__form_id__"), true);
+                    },
+                    success: function (data) {
+                        $(".bx-popup-applied:visible").dolPopupHide();
+                        glGrids.__object__.processJson(data, '__action__');
+                    }
+                });
+            });
+        </script>
+    </div>
+</div>

+ 9 - 0
modules/boonex/russian/data/langs/bx_accounts/ru.xml

@@ -9,6 +9,7 @@
     <string name="_bx_accounts_form_display_account_settings_email_popup"><![CDATA[Изменить email]]></string>
     <string name="_bx_accounts_form_display_account_create_popup"><![CDATA[Создать новый аккаунт]]></string>
     <string name="_bx_accounts_form_display_account_settings_password_popup"><![CDATA[Сбросить пароль]]></string>
+    <string name="_bx_accounts_form_display_account_send_message"><![CDATA[Отправить тестовое письмо]]></string>
 
     <string name="_bx_accnt_page_title_sys_manage_administration"><![CDATA[Управление всеми аккаунтами]]></string>
     <string name="_bx_accnt_page_title_manage"><![CDATA[Управление аккаунтами]]></string>
@@ -78,6 +79,7 @@
     <string name="_bx_accnt_grid_action_title_adm_unlock_account"><![CDATA[Разблокировать]]></string>
     <string name="_bx_accnt_grid_action_title_adm_delete"><![CDATA[Удалить]]></string>
     <string name="_bx_accnt_grid_action_title_adm_delete_with_content"><![CDATA[Удалить вместе с содержимым]]></string>
+    <string name="_bx_accnt_grid_action_title_adm_send_message"><![CDATA[Отправить письмо]]></string>
     <string name="_bx_accnt_grid_action_title_adm_more_actions"><![CDATA[Дополнительно]]></string>
     <string name="_bx_accnt_grid_action_title_adm_more_add"><![CDATA[Добавить новый]]></string>
     <string name="_bx_accnt_grid_action_err_delete"><![CDATA[Невозможно удалить выбранный(ные) аккаунт(ы).]]></string>
@@ -91,6 +93,13 @@
 
     <string name="_bx_accnt_form_login_input_caption_system_email_confirmed"><![CDATA[Email подтвержден]]></string>
     <string name="_bx_accnt_form_account_input_email_confirmed"><![CDATA[Email подтвержден]]></string>
+    <string name="_bx_accnt_form_account_input_caption_system_message_subject"><![CDATA[Тема письма]]></string>
+    <string name="_bx_accnt_form_account_input_caption_message_subject"><![CDATA[Тема письма]]></string>
+    <string name="_bx_accnt_form_account_input_message_subject_error"><![CDATA[Тема письма не может быть пустой]]></string>
+    <string name="_bx_accnt_form_account_input_caption_system_message_text"><![CDATA[Текст письма]]></string>
+    <string name="_bx_accnt_form_account_input_caption_message_text"><![CDATA[Текст письма]]></string>
+    <string name="_bx_accnt_form_account_input_message_text_error"><![CDATA[Текст письма не может быть пустой]]></string>
+    <string name="_bx_accnt_form_display_send_message"><![CDATA[Отправка тестового письма]]></string>
 
     <string name="_bx_accnt_txt_more"><![CDATA[{0} ещё]]></string>
     <string name="_bx_accnt_txt_see_more"><![CDATA[Ещё]]></string>