コード例 #1
0
function viewFormMemberList($smarty, $module_name, $local_templates_dir, &$pDB, $arrConf, $credentials)
{
    $pEmailList = new paloSantoEmailList($pDB);
    $id_emailList = getParameter("id");
    if ($credentials['userlevel'] == 'superadmin') {
        $emailList = $pEmailList->getEmailList($id_emailList);
    } else {
        $emailList = $pEmailList->getEmailList($id_emailList, $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);
    }
    $title = _tr("New List Member");
    $smarty->assign("MEMBER", "save_newMember");
    $info = _tr("You must enter each email line by line, like the following") . ":<br /><br /><b>" . _tr("*****@*****.**") . "<br />" . _tr("*****@*****.**") . "<br />" . _tr("*****@*****.**") . "</b><br /><br />" . _tr("You can also enter a name for each email, like the following") . ":<br /><br /><b>" . _tr("Name1 Lastname1 <*****@*****.**>") . "<br />" . _tr("Name2 Lastname2 <*****@*****.**>") . "<br />" . _tr("Name3 Lastname3 <*****@*****.**>") . "</b>";
    $smarty->assign("SAVE", _tr("Add"));
    $smarty->assign("IDEMAILLIST", $id_emailList);
    $smarty->assign("ACTION", 'view_memberlist');
    $arrFormMemberlist = createFieldFormMember();
    $oForm = new paloForm($smarty, $arrFormMemberlist);
    $smarty->assign("REQUIRED_FIELD", _tr("Required field"));
    $smarty->assign("CANCEL", _tr("Cancel"));
    $smarty->assign("INFO", $info);
    $smarty->assign("icon", "web/apps/{$module_name}/images/email.png");
    $htmlForm = $oForm->fetchForm("{$local_templates_dir}/form_member.tpl", $title, $_POST);
    $content = "<form  method='POST' style='margin-bottom:0;' action='?menu={$module_name}'>" . $htmlForm . "</form>";
    return $content;
}
コード例 #2
0
ファイル: index.php プロジェクト: hardikk/HNH
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);
}