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; }
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> <a href='?menu={$module_name}&action=remove_memberlist&id=" . $value['id'] . "'>[ " . _tr("Remove members") . " ]</a> <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; }