Example #1
0
function exportMembers($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);
    }
    $listName = $emailList['listname'];
    $text = "";
    if (!is_null($listName)) {
        $totalMembers = $pEmailList->getTotalMembers($id_list);
        $members = $pEmailList->getMembers($totalMembers, 0, $id_list, null, "");
        foreach ($members as $key => $value) {
            if ($text != "") {
                $text .= "\n";
            }
            if (isset($value["namemember"]) && $value["namemember"] != "") {
                $text .= $value["namemember"] . " <{$value['mailmember']}>";
            } else {
                $text .= $value["mailmember"];
            }
        }
    } else {
        $listName = "";
    }
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: public");
    header("Content-Description: txt file");
    header("Content-Type: application/download");
    header("Content-Disposition: attachment; filename={$listName}" . "_members.txt");
    header("Content-Transfer-Encoding: binary");
    header("Content-length: " . strlen($text));
    echo $text;
}
Example #2
0
function reportEmailList($smarty, $module_name, $local_templates_dir, &$pDB, $arrConf)
{
    $pEmailList = new paloSantoEmailList($pDB);
    $pEmail = new paloEmail($pDB);
    $arrDomains = $pEmail->getDomains();
    if (count($arrDomains) == 0) {
        $smarty->assign("mb_message", _tr("There is no domain created. To use this module you need at least one domain. You can create a domain in the module Email->Domains"));
    } else {
        $smarty->assign("VirtualDomains", 1);
    }
    $arrDominios = array("all" => _tr("All"));
    foreach ($arrDomains as $domain) {
        $arrDominios[$domain[0]] = $domain[1];
    }
    $arrFormFilterEmailList = createFieldFilter($arrDominios);
    $oFilterForm = new paloForm($smarty, $arrFormFilterEmailList);
    //Verifico si en el archivo /etc/postfix/main.cf las variables alias_map y virtual_alias_map están apuntando a los archivos correctos, de no ser así se lo corrige
    $checkPostfixFile = $pEmailList->checkPostfixFile();
    //begin grid parameters
    $oGrid = new paloSantoGrid($smarty);
    if (getParameter("domain")) {
        $id_domain = getParameter("domain");
    } else {
        $id_domain = "all";
    }
    $_POST["domain"] = $id_domain;
    $total = $pEmailList->getNumEmailList($id_domain);
    $limit = 20;
    $oGrid->setLimit($limit);
    $oGrid->setTotal($total);
    $oGrid->setTitle(_tr("Email List"));
    $oGrid->setIcon("/modules/{$module_name}/images/email.png");
    $oGrid->pagingShow(true);
    // show paging section.
    $offset = $oGrid->calculateOffset();
    $url = array('menu' => $module_name, 'domain' => $id_domain);
    $oGrid->setURL($url);
    $button_eliminar = "";
    $arrResult = $pEmailList->getEmailList($id_domain, $limit, $offset);
    $arrColumns = array($button_eliminar, _tr("List name"), _tr("Membership"), _tr("Action"));
    $oGrid->setColumns($arrColumns);
    $arrData = null;
    if (is_array($arrResult) && $total > 0) {
        foreach ($arrResult as $key => $value) {
            $arrTmp[0] = "<input type='checkbox' name='" . $value['id'] . "' id='" . $value['id'] . "'>";
            $domainName = $pEmailList->getDomainName($value['id_domain']);
            $arrTmp[1] = "<a href='?menu={$module_name}&action=view_memberlist&id=" . $value['id'] . "'>{$value['listname']}@{$domainName}</a>";
            $arrTmp[2] = $pEmailList->getTotalMembers($value['id']);
            $arrTmp[3] = "<a href='?menu={$module_name}&action=new_memberlist&id=" . $value['id'] . "'>[ " . _tr("Add Members") . " ]</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href='?menu={$module_name}&action=remove_memberlist&id=" . $value['id'] . "'>[ " . _tr("Remove members") . " ]</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href='?menu={$module_name}&action=view_memberlist&id=" . $value['id'] . "'>[ " . _tr("View members") . " ]</a>";
            $arrData[] = $arrTmp;
        }
    }
    $oGrid->setData($arrData);
    //begin section filter
    //ya no se usa esa variable smarty
    //$smarty->assign("NEW_EMAILLIST", _tr("New Email list"));
    $oGrid->addFilterControl(_tr("Filter applied ") . _tr("Domain") . " = " . $arrDominios[$id_domain], $_POST, array("domain" => "all"), true);
    $htmlFilter = $oFilterForm->fetchForm("{$local_templates_dir}/filter.tpl", "", $_POST);
    //end section filter
    $oGrid->addNew("new_emaillist", _tr("New Email list"));
    $oGrid->deleteList(_tr("Are you sure you wish to delete the Email List(s)."), "delete", _tr("Delete"));
    $oGrid->showFilter(trim($htmlFilter));
    $content = $oGrid->fetchGrid();
    if (strpos($content, '<form') === FALSE) {
        $content = "<form  method='POST' style='margin-bottom:0;' action=" . construirURL($url) . ">{$content}</form>";
    }
    //end grid parameters
    return $content;
}