Просмотр исходного кода

#108 - some new features and updates.

AntonLV 12 лет назад
Родитель
Сommit
79fa3f5436

+ 6 - 1
modules/boonex/invites/classes/BxInvGridRequests.php

@@ -44,18 +44,23 @@ class BxInvGridRequests extends BxTemplGrid
 
         $sText = _t('_bx_invites_msg_invitation');
 
+		bx_import('BxDolForm');
+        $oForm = BxDolForm::getObjectInstance($this->_oModule->_oConfig->getObject('form_request'), $this->_oModule->_oConfig->getObject('form_display_request_send'));
+
         $aIdsAffected = array ();
         foreach($aIds as $iId) {
 			$aRequest = $this->_oModule->_oDb->getRequests(array('type' => 'by_id', 'value' => $iId));
 			if(empty($aRequest) || !is_array($aRequest))
 				continue;
 
-        	$mixedResult = $this->_oModule->invite($aRequest['email'], $sText);
+        	$mixedResult = $this->_oModule->invite(BX_INV_TYPE_FROM_SYSTEM, $aRequest['email'], $sText);
         	if($mixedResult === false)
         		continue;
 
 			$this->_oModule->isAllowedInvite($iProfileId, true);
 
+			$oForm->delete($iId);
+
             $aIdsAffected[] = $iId;
             $iAffected++;
         }

+ 18 - 4
modules/boonex/invites/classes/BxInvModule.php

@@ -11,6 +11,9 @@
 
 bx_import('BxDolModule');
 
+define('BX_INV_TYPE_FROM_MEMBER', 'from_member');
+define('BX_INV_TYPE_FROM_SYSTEM', 'from_system');
+
 class BxInvModule extends BxDolModule
 {
     /**
@@ -71,7 +74,7 @@ class BxInvModule extends BxDolModule
         	$sEmails = bx_process_input($oForm->getCleanValue('emails'));
         	$sText = bx_process_pass($oForm->getCleanValue('text'));
 
-        	$mixedResult = $this->invite($sEmails, $sText, $iInvites, $oForm);
+        	$mixedResult = $this->invite(BX_INV_TYPE_FROM_MEMBER, $sEmails, $sText, $iInvites, $oForm);
         	if($mixedResult !== false)
         		$sResult = _t('_bx_invites_msg_invitation_sent', (int)$mixedResult);
         	else
@@ -153,19 +156,30 @@ class BxInvModule extends BxDolModule
         return $this->_oDb->getRequests(array('type' => 'count_all'));
 	}
 
-	public function invite($sEmails, $sText, $iLimit = false, $oForm = null)
+	public function invite($sType, $sEmails, $sText, $iLimit = false, $oForm = null)
 	{
 		$iProfileId = $this->getProfileId();
 		$iAccountId = $this->getAccountId($iProfileId);
 
 		bx_import('BxDolKey');
 		$oKeys = BxDolKey::getInstance();
-		if(!$oKeys)
+		if(!$oKeys || !in_array($sType, array(BX_INV_TYPE_FROM_MEMBER, BX_INV_TYPE_FROM_SYSTEM)))
 			return false;
 
 		$sKeyCode = $this->_oConfig->getKeyCode();
 		$iKeyLifetime = $this->_oConfig->getKeyLifetime();
 
+		$sEmailTemplate = '';
+		switch($sType) {
+			case BX_INV_TYPE_FROM_MEMBER:
+				$sEmailTemplate = 'bx_invites_invite_form_message';
+				break;
+
+			case BX_INV_TYPE_FROM_SYSTEM:
+				$sEmailTemplate = 'bx_invites_invite_by_request_message';
+				break;
+		}
+
 		if(empty($oForm))
 			$oForm = $this->getFormObjectInvite();
 
@@ -173,7 +187,7 @@ class BxInvModule extends BxDolModule
 		$sJoinUrl = BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=create-account');
 
 		bx_import('BxDolEmailTemplates');
-		$aMessage = BxDolEmailTemplates::getInstance()->parseTemplate('bx_invites_invite_form_message', array(
+		$aMessage = BxDolEmailTemplates::getInstance()->parseTemplate($sEmailTemplate, array(
 			'text' => $sText
 		), $iAccountId, $iProfileId);
 

+ 8 - 0
modules/boonex/invites/install/langs/en.xml

@@ -82,6 +82,14 @@
 <p>{text}</p>
 <hr />
 <p>Click the following link to join: <a href="{join_url}">{join_url}</a></p>
+<bx_include_auto:_email_footer.html />]]></string>
+
+	<string name="_bx_invites_et_invite_by_request_message"><![CDATA[Invite by request message.]]></string>
+	<string name="_bx_invites_et_invite_by_request_message_subject"><![CDATA[Invitation from {site_name}.]]></string>
+	<string name="_bx_invites_et_invite_by_request_message_body"><![CDATA[<bx_include_auto:_email_header.html />
+<p><b>Dear Friend</b>,</p>
+<p>You are welcome to join <a href="{site_url}">{site_name}</a> community site.</p>
+<p>Click the following link to join: <a href="{join_url}">{join_url}</a></p>
 <bx_include_auto:_email_footer.html />]]></string>
 
 	<string name="_bx_invites_et_request_form_message"><![CDATA[Request Invitation form message.]]></string>

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

@@ -97,6 +97,7 @@ INSERT INTO `sys_acl_matrix` (`IDLevel`, `IDAction`) VALUES
 -- EMAIL TEMPLATES
 INSERT INTO `sys_email_templates` (`Module`, `NameSystem`, `Name`, `Subject`, `Body`) VALUES 
 (@sName, '_bx_invites_et_invite_form_message', 'bx_invites_invite_form_message', '_bx_invites_et_invite_form_message_subject', '_bx_invites_et_invite_form_message_body'),
+(@sName, '_bx_invites_et_invite_by_request_message', 'bx_invites_invite_by_request_message', '_bx_invites_et_invite_by_request_message_subject', '_bx_invites_et_invite_by_request_message_body'),
 (@sName, '_bx_invites_et_request_form_message', 'bx_invites_request_form_message', '_bx_invites_et_request_form_message_subject', '_bx_invites_et_request_form_message_body');