function removeMemberList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials) { $pEmailList = new paloSantoEmaillist($pDB); $id_list = getParameter("id"); 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); } $tempMembers = getParameter("del_emailmembers"); if (!is_array($tempMembers)) { $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_message", _tr("You must select at least one member")); return reportMemberList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials); } $emailMembers = array_keys($tempMembers); if (count($emailMembers) == 0) { $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_message", _tr("You must select at least one member")); return reportMemberList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials); } $arrMembers = array(); $arrErrorMembers = array(); foreach ($emailMembers as $value) { $member = trim($value); if (preg_match("/^[[:alnum:]]+([\\._\\-]?[[:alnum:]]+)*@[[:alnum:]]+([\\._\\-]?[[:alnum:]]+)*(\\.[[:alnum:]]{2,4})+\$/", $member)) { if ($pEmailList->isAMemberOfList($member, $id_list)) { $arrMembers[]["member"] = $member; } else { $arrErrorMembers[] = _tr("It is not a member") . ": " . htmlentities($member); } } elseif ($member != "") { $arrErrorMembers[] = _tr("Invalid member") . ": " . htmlentities($member); } } if (count($arrMembers) > 0) { $pDB->beginTransaction(); if ($pEmailList->removeMembersList($id_list, $arrMembers)) { $pDB->commit(); $message = "<b>" . _tr("The following members were deleted of the list") . ":</b><br />"; foreach ($arrMembers as $member) { $message .= htmlentities($member["member"]) . "<br />"; } $smarty->assign("mb_title", _tr("Message")); $smarty->assign("mb_message", $message); } else { $pDB->rollBack(); $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_message", _tr("Members could not be deleted to the list") . ". " . $pEmailList->getError()); } } else { $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_title", _tr("Select at least one valid member")); } return reportMemberList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials); }
function saveNewMember($smarty, $module_name, $local_templates_dir, &$pDB, $arrConf) { $pEmaillist = new paloSantoEmaillist($pDB); $arrFormMemberlist = createFieldFormMember(); $oForm = new paloForm($smarty, $arrFormMemberlist); $emailMembers = getParameter("emailmembers"); $id_list = getParameter("id_emaillist"); if (!$oForm->validateForm($_POST)) { // Falla la validación básica del formulario $strErrorMsg = "<b>" . _tr('The following fields contain errors') . ":</b><br/>"; $arrErrores = $oForm->arrErroresValidacion; if (is_array($arrErrores) && count($arrErrores) > 0) { foreach ($arrErrores as $k => $v) { $strErrorMsg .= "{$k}: [{$v['mensaje']}] <br /> "; } } $smarty->assign("mb_title", _tr("Validation Error")); $smarty->assign("mb_message", $strErrorMsg); return viewFormMemberList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf); } elseif (!$pEmaillist->listExistsbyId($id_list)) { $smarty->assign("mb_title", _tr("Validation Error")); $smarty->assign("mb_message", _tr("The List entered does not exist")); return viewFormMemberList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf); } $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 (getParameter("save_newMember")) { if (!$pEmaillist->isAMemberOfList($member, $id_list)) { $arrMembers[$i]["member"] = $member; $arrMembers[$i]["email_member"] = $member; $i++; } else { $arrErrorMembers[] = _tr("Already a member") . ": " . htmlentities($member); } } else { if ($pEmaillist->isAMemberOfList($member, $id_list)) { $arrMembers[$i]["member"] = $member; $arrMembers[$i]["email_member"] = $member; $i++; } else { $arrErrorMembers[] = _tr("No such subscriber") . ": " . htmlentities($member); } } } elseif (preg_match("/^([[:alnum:]]+([[:space:]]*[[:alnum:]]+){0,3})[[:space:]]*\\<([[:alnum:]]+([\\._\\-]?[[:alnum:]]+)*@[[:alnum:]]+([\\._\\-]?[[:alnum:]]+)*(\\.[[:alnum:]]{2,4})+)\\>\$/", $member, $matches) && getParameter("save_newMember")) { 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[] = htmlentities($member); } } $pDB->beginTransaction(); if (count($arrMembers) > 0) { foreach ($arrMembers as $key => $value) { if (getParameter("save_newMember")) { if (isset($value["namemember"])) { $namemember = $value["namemember"]; } else { $namemember = ""; } if (!$pEmaillist->saveMember($value["email_member"], $id_list, $namemember)) { $pDB->rollBack(); $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_message", $pEmaillist->getError()); return reportEmailList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf); } } else { if (!$pEmaillist->removeMember($value["email_member"], $id_list)) { $pDB->rollBack(); $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_message", $pEmaillist->getError()); return reportEmailList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf); } } } if (getParameter("save_newMember")) { if (!$pEmaillist->mailmanAddMembers($arrMembers, $id_list)) { $pDB->rollBack(); $smarty->assign("mb_title", _tr("Validation Error")); $smarty->assign("mb_message", _tr("Mailman could not add the members")); return reportEmailList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf); } } else { if (!$pEmaillist->mailmanRemoveMembers($arrMembers, $id_list)) { $pDB->rollBack(); $smarty->assign("mb_title", _tr("Validation Error")); $smarty->assign("mb_message", _tr("Mailman could not remove the members")); return reportEmailList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf); } } } $pDB->commit(); $message = ""; if (count($arrMembers) > 0) { if (getParameter("save_newMember")) { $message .= "<b>" . _tr("The following members were added to the list") . ":</b><br />"; } else { $message .= "<b>" . _tr("The following members were removed from the list") . "</b>:<br />"; } foreach ($arrMembers as $member) { $message .= htmlentities($member["member"]) . "<br />"; } } if (count($arrErrorMembers) > 0) { if (getParameter("save_newMember")) { $message .= "<b>" . _tr("The following members could not be added to the list") . ":</b><br />"; } else { $message .= "<b>" . _tr("The following members could not be removed from the list") . "</b>:<br />"; } foreach ($arrErrorMembers as $noMember) { $message .= $noMember . "<br />"; } } if ($message != "") { $smarty->assign("mb_title", _tr("Message")); $smarty->assign("mb_message", $message); } return reportEmailList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf); }