function saveNewMember($smarty, $module_name, $local_templates_dir, &$pDB, $arrConf, $credentials) { $pEmailList = new paloSantoEmaillist($pDB); $emailMembers = getParameter("emailmembers"); $id_list = getParameter("id_emaillist"); if ($credentials['userlevel'] == 'superadmin') { $emailList = $pEmailList->getEmailList($id_list); } else { $emailList = $pEmailList->getEmailList($id_list, $credentials['domain']); } if ($emailList == false) { $smarty->assign("mb_title", _tr("Error")); $error = $emailList === false ? _tr("Couldn't be retrieved Email List data") : _tr("Email List does not exist"); $smarty->assign("mb_message", $error); return reportEmailList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials); } $emailMembers = explode("\n", $emailMembers); $arrMembers = array(); $arrErrorMembers = array(); $i = 0; foreach ($emailMembers as $key => $value) { $member = trim($value); if (preg_match("/^[[:alnum:]]+([\\._\\-]?[[:alnum:]]+)*@[[:alnum:]]+([\\._\\-]?[[:alnum:]]+)*(\\.[[:alnum:]]{2,4})+\$/", $member)) { if (!$pEmailList->isAMemberOfList($member, $id_list)) { $arrMembers[$i]["member"] = $member; $arrMembers[$i]["email_member"] = $member; $i++; } else { $arrErrorMembers[] = _tr("Already a member") . ": " . htmlentities($member); } } elseif (preg_match("/^([[:alnum:]]+([[:space:]]*[[:alnum:]]+){0,3})[[:space:]]*\\<([[:alnum:]]+([\\._\\-]?[[:alnum:]]+)*@[[:alnum:]]+([\\._\\-]?[[:alnum:]]+)*(\\.[[:alnum:]]{2,4})+)\\>\$/", $member, $matches)) { if (!$pEmailList->isAMemberOfList($matches[3], $id_list)) { $arrMembers[$i]["member"] = preg_replace("/[[:space:]]+/", " ", $member); $arrMembers[$i]["namemember"] = $matches[1]; $arrMembers[$i]["email_member"] = $matches[3]; $i++; } else { $arrErrorMembers[] = _tr("Already a member") . ": " . htmlentities($member); } } elseif ($member != "") { $arrErrorMembers[] = _tr("Invalid member") . ": " . htmlentities($member); } } if (count($arrMembers) > 0) { $pDB->beginTransaction(); if ($pEmailList->saveMembersList($id_list, $arrMembers)) { $pDB->commit(); $message = "<b>" . _tr("The following members were added to the list") . ":</b><br />"; foreach ($arrMembers as $member) { $message .= htmlentities($member["member"]) . "<br />"; } if (count($arrErrorMembers) > 0) { $message .= "<b>" . _tr("The following members could not be added to the list") . ":</b><br />"; foreach ($arrErrorMembers as $noMember) { $message .= $noMember . "<br />"; } } $smarty->assign("mb_title", _tr("Message")); $smarty->assign("mb_message", $message); return reportMemberList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials); } else { $pDB->rollBack(); $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_message", _tr("Members could not be added to the list") . ". " . $pEmailList->getError()); if (count($arrErrorMembers) > 0) { $message = "<b>" . _tr("The following members contains errors") . ":</b><br />"; foreach ($arrErrorMembers as $noMember) { $message .= $noMember . "<br />"; } } return viewFormMemberList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials); } } else { if (count($arrErrorMembers) > 0) { $smarty->assign("mb_title", _tr("Error")); $message = _tr('Members could not be added to the list. The following members contains errors') . ":</b><br />"; foreach ($arrErrorMembers as $noMember) { $message .= $noMember . "<br />"; } $smarty->assign("mb_message", $message); return viewFormMemberList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials); } } return reportMemberList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials); }