/**
 *  Rafraichit le cache des droits.
 *  @author vincent1870
 *  @return void
 */
function refresh_cache_droits($id_grp = null)
{
    inc_lib('admin/new_grp_auth_cache');
    if (!is_null($id_grp)) {
        $list_grp = array('g_id' => $id_grp);
    } else {
        inc_lib('admin/get_list_grp');
        $list_grp = get_list_grp();
    }
    foreach ($list_grp as $grp) {
        //Suppression du vieux cache s'il existe.
        if (is_file(PATH_ROOT . Nw::$assets['dir_cache'] . Nw::$site_lang . '._groupauth_' . $grp['g_id'] . '.php')) {
            @unlink(PATH_ROOT . Nw::$assets['dir_cache'] . Nw::$site_lang . '._groupauth_' . $grp['g_id'] . '.php');
        }
        $start_cache_file = '<?php' . "\r" . ' $group_auth[\'g' . $grp['g_id'] . '\'] = array( ' . "\r";
        //Récupération des droits de la bdd
        $dn = array();
        $query = Nw::$DB->query('SELECT droit_valeur, droit_nom
        FROM ' . Nw::$prefix_table . 'droits
        WHERE droit_groupe = ' . intval($grp['g_id'])) or Nw::$DB->trigger(__LINE__, __FILE__);
        while ($dn = $query->fetch_assoc()) {
            $droits[] = $dn;
        }
        foreach ($droits as $droit) {
            if (in_array($droit['droit_valeur'], array(1, 0))) {
                $value_droit = $droit['droit_valeur'];
            } else {
                $value_droit = '\'' . intval($droit['droit_valeur']) . '\'';
            }
            $start_cache_file .= "\t" . '\'' . $droit['droit_nom'] . '\' => ' . $value_droit . ', ' . "\r";
        }
        $start_cache_file .= "\r" . ');' . "\r" . '?>';
        new_grp_auth_cache($grp['g_id'], $start_cache_file);
    }
}
Пример #2
0
 protected function main()
 {
     if (is_logged_in() && check_auth('manage_groups')) {
         $this->set_title(Nw::$lang['admin']['titre_grp']);
         $this->set_tpl('admin/gestion_grp.html');
         $this->set_filAriane(array(Nw::$lang['admin']['fa_admin'] => array('admin.html'), Nw::$lang['admin']['fa_grp'] => array('')));
         inc_lib('admin/get_list_grp');
         $list_grp = get_list_grp();
         foreach ($list_grp as $grp) {
             Nw::$tpl->setBlock('grp', array('ID' => $grp['g_id'], 'NOM' => $grp['g_nom'], 'TITRE' => $grp['g_titre'], 'ICONE' => $grp['g_icone'], 'COULEUR' => $grp['g_couleur']));
         }
     } else {
         redir(Nw::$lang['admin']['error_cant_see_admin'], false, './');
     }
 }
Пример #3
0
 protected function main()
 {
     $this->set_title(Nw::$lang['users']['list_members']);
     $this->set_tpl('membres/list_membres.html');
     // Fil ariane
     $this->set_filAriane(array(Nw::$lang['users']['members_section'] => array('users.html'), Nw::$lang['users']['list_members'] => array('')));
     $order_by = 'u_pseudo';
     $asc_desc = 'ASC';
     $list_criteres = array();
     $corres_id_champs = array(0 => 'u_date_register', 1 => 'u_last_visit', 2 => 'u_pseudo', 3 => 's_nb_news');
     // Recherche dans les membres
     if (isset($_POST['searchm'])) {
         header('Location: users.html?pseudo=' . htmlspecialchars($_POST['pseudo']) . '&group=' . intval($_POST['groupe']) . '&local=' . htmlspecialchars($_POST['local']) . '&order=' . intval($_POST['order']) . '&ad=' . htmlspecialchars($_POST['asc_desc']));
     }
     if (!empty($_GET['pseudo'])) {
         $list_criteres[] = 'u_pseudo LIKE "%' . insertBD(trim($_GET['pseudo'])) . '%"';
     }
     if (!empty($_GET['group'])) {
         $list_criteres[] = 'u_group = ' . intval($_GET['group']);
     }
     if (!empty($_GET['local'])) {
         $list_criteres[] = 'u_localisation LIKE "%' . insertBD(trim($_GET['local'])) . '%"';
     }
     if (isset($_GET['order']) && isset($corres_id_champs[$_GET['order']])) {
         $order_by = $corres_id_champs[$_GET['order']];
     }
     if (isset($_GET['ad']) && ($_GET['ad'] == 'asc' || $_GET['ad'] == 'desc')) {
         $asc_desc = strtoupper($_GET['ad']);
     }
     $sql_implode_arg = count($list_criteres) > 0 ? ' AND ' . implode(' AND ', $list_criteres) : '';
     inc_lib('bbcode/clearer');
     // On compte le nbr total de membres
     inc_lib('users/count_all_mbr');
     $nombre_membres = count_all_mbr('u_active = 1' . $sql_implode_arg);
     // Pagination
     $page = isset($_GET['page']) ? intval($_GET['page']) : 1;
     $nombreDePages = ceil($nombre_membres / Nw::$pref['nb_news_homepage']);
     // On vérifie bien que la page existe
     if ($nombreDePages > 0 && $page > $nombreDePages) {
         redir(Nw::$lang['common']['pg_not_exist'], false, 'users.html');
     }
     // On recherche toutes les news en rédaction
     inc_lib('users/get_list_mbr');
     $list_membres = get_list_mbr('u_active = 1' . $sql_implode_arg, $order_by . ' ' . $asc_desc, $page, Nw::$pref['nb_news_homepage']);
     foreach ($list_membres as $donnees) {
         Nw::$tpl->setBlock('users', array('ID' => $donnees['u_id'], 'PSEUDO' => $donnees['u_pseudo'], 'ALIAS' => $donnees['u_alias'], 'AVATAR' => $donnees['u_avatar'], 'DATE_REGISTER' => date_sql($donnees['date_register'], $donnees['heures_date_register'], $donnees['jours_date_register']), 'DATE_LVISIT' => date_sql($donnees['last_visit'], $donnees['heures_last_visit'], $donnees['jours_last_visit']), 'BIO' => !empty($donnees['u_bio']) ? CoupeChar(clearer($donnees['u_bio']), '...', 200) : '', 'LOCAL' => $donnees['u_localisation'], 'GROUPE_TITRE' => $donnees['g_titre'], 'GROUPE_ICONE' => $donnees['g_icone'], 'TXT_NEWS' => sprintf(Nw::$lang['users']['nombre_actu'] . ($donnees['s_nb_news'] > 1 ? 's' : ''), $donnees['s_nb_news']), 'TXT_CONTRIB' => sprintf(Nw::$lang['users']['nombre_contrib'] . ($donnees['s_nb_contrib'] > 1 ? 's' : ''), $donnees['s_nb_contrib']), 'TXT_COMS' => sprintf(Nw::$lang['users']['nombre_com'] . ($donnees['s_nb_coms'] > 1 ? 's' : ''), $donnees['s_nb_coms']), 'NBR_NEWS' => $donnees['s_nb_news'], 'NBR_CONTRIB' => $donnees['s_nb_contrib'], 'NBR_COMS' => $donnees['s_nb_coms']));
     }
     /**
      *   Liste des groupes
      **/
     inc_lib('admin/get_list_grp');
     $groupes = get_list_grp();
     foreach ($groupes as $donnees) {
         Nw::$tpl->setBlock('groups', array('ID' => $donnees['g_id'], 'NOM' => $donnees['g_nom']));
     }
     /**
      *   Derniers inscrits
      **/
     inc_lib('users/get_last_registered');
     $last_register = get_last_registered(5);
     foreach ($last_register as $donnees) {
         Nw::$tpl->setBlock('lr', array('ID' => $donnees['u_id'], 'PSEUDO' => $donnees['u_pseudo'], 'AVATAR' => $donnees['u_avatar'], 'ALIAS' => $donnees['u_alias'], 'DATE_REGISTER' => date_sql($donnees['date_register'], $donnees['heures_date_register'], $donnees['jours_date_register'])));
     }
     $par_pseudo = isset($_GET['pseudo']) ? htmlspecialchars($_GET['pseudo']) : '';
     $par_group = isset($_GET['group']) ? intval($_GET['group']) : '';
     $par_local = isset($_GET['local']) ? htmlspecialchars($_GET['local']) : '';
     $par_order = isset($_GET['order']) ? intval($_GET['order']) : '';
     $par_asc = isset($_GET['ad']) ? htmlspecialchars($_GET['ad']) : '';
     Nw::$tpl->set(array('LIST_PG' => list_pg($nombreDePages, $page, 'users%s.html?pseudo=' . $par_pseudo . '&group=' . $par_group . '&local=' . $par_local . '&order=' . $par_order . '&ad=' . $par_asc), 'PSEUDO' => $par_pseudo, 'GROUP' => $par_group, 'LOCAL' => $par_local, 'ORDER' => $par_order, 'ASC' => $par_asc));
 }