浏览代码

#108 - Registration by invitation only.

AntonLV 12 年之前
父节点
当前提交
9b878fdff7

+ 27 - 0
modules/boonex/invites/classes/BxInvFormCheckerHelper.php

@@ -0,0 +1,27 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    Invites Invites
+ * @ingroup     DolphinModules
+ *
+ * @{
+ */
+
+bx_import('BxDolForm');
+
+class BxInvFormCheckerHelper extends BxDolFormCheckerHelper
+{
+	static public function checkEmails($s)
+    {
+    	$aEmails = preg_split("/[\s\n,;]+/", $s);
+    	foreach($aEmails as $sEmail)
+    		if(!self::checkEmail($sEmail))
+    			return false;
+
+        return true;
+    }
+}
+
+/** @} */

+ 3 - 3
modules/boonex/invites/classes/BxInvModule.php

@@ -63,6 +63,7 @@ class BxInvModule extends BxDolModule
 			);
 
         bx_import('BxDolForm');
+        bx_import('FormCheckerHelper', $this->_aModule);
         $oForm = BxDolForm::getObjectInstance($this->_oConfig->getObject('form_invite'), $this->_oConfig->getObject('form_display_invite_send'));
         $oForm->aInputs['text']['value'] = _t('_bx_invites_msg_invitation');
 
@@ -178,17 +179,16 @@ class BxInvModule extends BxDolModule
 
 		$iSent = 0;
 		$iDate = time();
-		$aEmails = explode(';', $sEmails);
+		$aEmails = preg_split("/[\s\n,;]+/", $sEmails);
 		if(is_array($aEmails) && !empty($aEmails))
 			foreach($aEmails as $sEmail) {
 				if($iLimit !== false && (int)$iLimit <= 0)
 					break;
 
 				$sKey = $oKeys->getNewKey(false, $iKeyLifetime);
-				$sJoinUrl .= '&' . $sKeyCode . '=' . $sKey;
 
 				$sEmail = trim($sEmail);
-				if(sendMail($sEmail, $aMessage['Subject'], $aMessage['Body'], 0, array('join_url' => $sJoinUrl), BX_EMAIL_SYSTEM)) {
+				if(sendMail($sEmail, $aMessage['Subject'], $aMessage['Body'], 0, array('join_url' => bx_append_url_params($sJoinUrl, array($sKeyCode => $sKey))), BX_EMAIL_SYSTEM)) {
 					$oForm->insert(array(
 						'account_id' => $iAccountId,
 						'profile_id' => $iProfileId,

+ 1 - 1
modules/boonex/invites/install/langs/en.xml

@@ -9,7 +9,7 @@
 	<string name="_bx_invites_form_invite_input_sys_emails"><![CDATA[Emails]]></string>
 	<string name="_bx_invites_form_invite_input_emails"><![CDATA[Emails]]></string>
 	<string name="_bx_invites_form_invite_input_emails_inf"><![CDATA[Use semicolon to separate emails.]]></string>
-	<string name="_bx_invites_form_invite_input_emails_err"><![CDATA[You need to type at least one email.]]></string>
+	<string name="_bx_invites_form_invite_input_emails_err"><![CDATA[You need to use correct emails and enter at least one email.]]></string>
 	<string name="_bx_invites_form_invite_input_sys_text"><![CDATA[Text]]></string>
 	<string name="_bx_invites_form_invite_input_text"><![CDATA[Text]]></string>
 	<string name="_bx_invites_form_invite_input_text_err"><![CDATA[You need to type the text which will be added to invitation email.]]></string>

+ 2 - 2
modules/boonex/invites/install/sql/install.sql

@@ -23,13 +23,13 @@ CREATE TABLE IF NOT EXISTS `bx_inv_requests` (
 
 -- FORMS
 INSERT INTO `sys_objects_form` (`object`, `module`, `title`, `action`, `form_attrs`, `submit_name`, `table`, `key`, `uri`, `uri_title`, `params`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES
-('bx_invites_invite', @sName, '_bx_invites_form_invite', '', '', 'do_submit', 'bx_inv_invites', 'id', '', '', '', 0, 1, '', '');
+('bx_invites_invite', @sName, '_bx_invites_form_invite', '', '', 'do_submit', 'bx_inv_invites', 'id', '', '', 'a:1:{s:14:"checker_helper";s:22:"BxInvFormCheckerHelper";}', 0, 1, '', '');
 
 INSERT INTO `sys_form_displays` (`display_name`, `module`, `object`, `title`, `view_mode`) VALUES
 ('bx_invites_invite_send', @sName, 'bx_invites_invite', '_bx_invites_form_invite_display_send', 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_invites_invite', @sName, 'emails', '', '', 0, 'textarea', '_bx_invites_form_invite_input_sys_emails', '_bx_invites_form_invite_input_emails', '_bx_invites_form_invite_input_emails_inf', 1, 0, 0, '', '', '', 'Avail', '', '_bx_invites_form_invite_input_emails_err', '', '', 0, 0),
+('bx_invites_invite', @sName, 'emails', '', '', 0, 'textarea', '_bx_invites_form_invite_input_sys_emails', '_bx_invites_form_invite_input_emails', '_bx_invites_form_invite_input_emails_inf', 1, 0, 0, '', '', '', 'Emails', '', '_bx_invites_form_invite_input_emails_err', '', '', 0, 0),
 ('bx_invites_invite', @sName, 'text', '', '', 0, 'textarea', '_bx_invites_form_invite_input_sys_text', '_bx_invites_form_invite_input_text', '', 1, 0, 0, '', '', '', 'Length', 'a:2:{s:3:"min";i:10;s:3:"max";i:5000;}', '_bx_invites_form_invite_input_text_err', '', '', 0, 0),
 ('bx_invites_invite', @sName, 'do_submit', '_bx_invites_form_invite_input_do_submit', '', 0, 'submit', '_bx_invites_form_invite_input_sys_do_submit', '', '', 0, 0, 0, '', '', '', '', '', '', '', '', 0, 0);