function reportEmailList($smarty, $module_name, $local_templates_dir, &$pDB, $arrConf, $credentials) { global $arrPermission; $pORGZ = new paloSantoOrganization($pDB); $pEmailList = new paloSantoEmailList($pDB); $org_domain = getParameter("domain"); $name_list = getParameter("name_list"); $total = 0; if ($credentials['userlevel'] == "superadmin") { if (!empty($org_domain)) { $total = $pEmailList->getNumEmailList($name_list, $org_domain); } else { $org_domain = 0; //opcion default se muestran todas las listas $total = $pEmailList->getNumEmailList($name_list); } } else { $org_domain = $credentials['domain']; $total = $pEmailList->getNumEmailList($name_list, $org_domain); } if ($total === false) { $total = 0; $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_message", _tr("Couldn't be retrieved Email List data")); } //url $url['menu'] = $module_name; $url['domain'] = $org_domain; $url['name_list'] = $name_list; $limit = 20; $oGrid = new paloSantoGrid($smarty); $oGrid->setLimit($limit); $oGrid->setTotal($total); $offset = $oGrid->calculateOffset(); $end = $offset + $limit <= $total ? $offset + $limit : $total; $oGrid->setStart($total == 0 ? 0 : $offset + 1); $oGrid->setEnd($end); $oGrid->setTitle(_tr("Email List")); $oGrid->setIcon("web/apps/{$module_name}/images/email.png"); $oGrid->setURL($url); $oGrid->setWidth("99%"); $del_permission = in_array('delete_list', $arrPermission); $edit_permission = in_array('edit_list', $arrPermission); $create_permission = in_array('create_list', $arrPermission); if ($del_permission) { $arrColumns[] = ""; } //checkbox to delete $arrColumns[] = _tr('List Name'); $arrColumns[] = _tr('Number of Members'); $arrColumns[] = _tr('Actions'); $oGrid->setColumns($arrColumns); $arrData = null; if ($total > 0) { $arrResult = $pEmailList->getEmailListPagging($name_list, $org_domain, $limit, $offset); if ($arrResult === false) { $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_message", _tr("Couldn't be retrieved Email List data")); } else { foreach ($arrResult as $list) { $arrTmp = array(); if ($del_permission) { $arrTmp[] = "<input type='checkbox' name='del_list' id='{$list['id']}'>"; } $arrTmp[] = "<a href='?menu={$module_name}&action=view_list&id={$list['id']}'>" . htmlentities($list['listname'], ENT_QUOTES, "UTF-8") . "@" . $list['organization_domain'] . "</a>"; $arrTmp[] = $pEmailList->getTotalMembers($list['id']); $arrTmp[] = "<a href='?menu={$module_name}&action=view_memberlist&id=" . $list['id'] . "'>" . _tr("View members") . "</a>"; $arrData[] = $arrTmp; } } } //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(); if (!$checkPostfixFile) { $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_message", _tr("An error has ocurred to try config postfix file")); } //begin section filter $smarty->assign("USERLEVEL", $credentials['userlevel']); $smarty->assign("SEARCH", "<input name='search_org' type='submit' class='button' value='" . _tr('Search') . "'>"); //se comprueba que el mailman haya sido configurado por primera vez $MailmanListCreated = $pEmailList->isMailmanListCreated(); if (is_null($MailmanListCreated)) { $smarty->assign("mb_title", _tr("ERROR")); $smarty->assign("mb_message", $pEmailList->getError()); } elseif (!$MailmanListCreated) { //sino ha sido configurado se muestra un mensaje if ($credentials['userlevel'] != 'superadmin') { //solo el superadmin puede hacer esta accion $smarty->assign("mb_title", _tr("ERROR")); $smarty->assign("mb_message", _tr("A new List can not be added because some configurations are missed. Please contact with Elastix Admisnistrator")); } else { $smarty->assign("mb_title", _tr("Message")); $smarty->assign("mb_message", _tr("In order to use this module configure the Mailman Admin Settings. Click here >> ") . "<a href='?menu={$module_name}&action=mailman_settings'>" . _tr('Mailman Settings') . "</a>"); } } else { if ($pORGZ->getNumOrganization(array()) > 0) { if ($create_permission) { $oGrid->addNew("new_emaillist", _tr("New Email list")); } /*if($del_permission) $oGrid->deleteList(_tr("Are you sure you wish to delete the Email List(s)."),"delete",_tr("Delete"));*/ $arrOrgz = array(0 => "all"); if ($credentials['userlevel'] == "superadmin") { foreach ($pORGZ->getOrganization(array()) as $value) { $arrOrgz[$value["domain"]] = $value["domain"]; } $_POST["domain"] = $org_domain; $oGrid->addFilterControl(_tr("Filter applied ") . _tr("Organization") . " = " . $arrOrgz[$org_domain], $_POST, array("domain" => 0), true); //organization } $oGrid->addFilterControl(_tr("Filter applied ") . _tr("Name List") . " = " . $name_list, $_POST, array("name_list" => "")); //name_list $arrFormElements = createFieldFilter($arrOrgz); $oFilterForm = new paloForm($smarty, $arrFormElements); $htmlFilter = $oFilterForm->fetchForm("{$local_templates_dir}/filter.tpl", "", $_POST); $oGrid->showFilter(trim($htmlFilter)); } else { $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_message", _tr("In order to use this module must exist at least 1 organization in the Elastix Server")); } } $content = $oGrid->fetchGrid(array(), $arrData); return $content; }
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; }