Exemplo n.º 1
0
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;
}
Exemplo n.º 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;
}