<?php
/*
  Fichier : TEMPLATEPATH. '/inc/modules/mod-gestiongroupes.inc.php'
  Objet : Création d'une sous-page d'administration des groupes d'utilisateurs (dans le menu 'utilisateurs')
  Nom : MOD Extranet V2
  Description : Déploiement de l'extranet. Nécessite le TCP Documents
 */

// Ajouter le rôle user (à commenter après exécution)
function create_utilisateur_extranet() {
    $contributor = get_role('contributor');
    $admin = get_role('administrator');
    if (get_role('utilisateur-extranet-agent') == null) {
        add_role('utilisateur-extranet-agent', 'Utilisateur', $contributor->capabilities);
    }
    if (get_role('utilisateur-extranet-chef') == null) {
        add_role('utilisateur-extranet-chef', 'Admin groupe', $admin->capabilities);
    }else{
        $userChef = get_role('utilisateur-extranet-chef');
        if(!$userChef->has_cap('manage_options')){
            remove_role('utilisateur-extranet-chef');
            add_role('utilisateur-extranet-chef', 'Admin groupe', $admin->capabilities);
        }
    }
    if(get_role('administrateur-atelier111') != null) {
        remove_role('administrateur-atelier111');
//        add_role('administrateur-atelier111', 'Administrateur Atelier-111', $admin->capabilities);
    }
}

add_action('admin_init', 'create_utilisateur_extranet');

add_action('admin_init', 'viti_remove_administrator',90);
function viti_remove_administrator() {
    global $wp_roles;
    foreach ($wp_roles->roles as $idx => $role) {
        if ($idx != 'administrator' && $idx != 'utilisateur-extranet-agent' && $idx != 'utilisateur-extranet-chef' && $idx != 'administrateur-atelier111') {
            remove_role($idx);
        }
    }
}


function loadFontAwesome($hook) {
    if ('users_page_gestiongroupes' != $hook) {
        return;
    }
    wp_enqueue_script('my_custom_script', 'https://use.fontawesome.com/85c8752c1c.js');
}

add_action('admin_enqueue_scripts', 'loadFontAwesome');

//<script src="https://use.fontawesome.com/85c8752c1c.js"></script>
// supprime toute la section options personnelles
function hide_personal_options() {
    echo "\n" . '<script type="text/javascript">jQuery(document).ready(function($) { $(\'form#your-profile > h3:first\').hide(); $(\'form#your-profile > table:first\').hide(); $(\'form#your-profile\').show(); });</script>' . "\n";
}

add_action('admin_head', 'hide_personal_options');

function register_at111_submenu_gestiongroupes() {
    add_submenu_page('users.php', 'Gestion des groupes d\'utilisateurs', 'Groupes d\'utilisateurs', 'remove_users', 'gestiongroupes', 'At111_submenu_gestiongroupes_callback');
}

add_action('admin_menu', 'register_at111_submenu_gestiongroupes');

function At111_submenu_gestiongroupes_callback() {
    ?>
    <div class="wrap">
        <h2>Gestion des groupes d'utilisateurs</h2>


        <?php
        // Vérification del'envoi du formulaire de création
        //$reponseCreer = $_POST['gestiongroupes-creer-envoi'];
        $creerNomOk = '';
        $creerDossierOk = '';
        $creationGroupe = '';
        if ((isset($_POST['creerGroupe'])) && ($_POST['creerGroupe'] == 'true')) {
            if (isset($_POST['creerGroupeNom']) && !empty($_POST['creerGroupeNom'])) {
                $slugGroupe = strtolower(nettoyageString(remove_accents($_POST['creerGroupeNom'])));
                // Vérifaction si le groupe (l'option) n'existe pas déjà
                if (get_option($slugGroupe) == false) {
                    $creerUsers = $_POST['creerGroupeSelectuser'];
                    $arrayUsers = '';
                    for ($nbUsers = 0; $nbUsers < sizeof($creerUsers); $nbUsers++) {
                        if (isset($creerUsers[$nbUsers])) {
                            if ($nbUsers > 0) {
                                $arrayUsers .= ',';
                            }
                            $arrayUsers .= $creerUsers[$nbUsers];
                        }
                    }
                    $creerDossiers = $_POST['creerGroupeSelectFolder'];
                    $arrayDossiers = '';
                    for ($nbDossiers = 0; $nbDossiers < sizeof($creerDossiers); $nbDossiers++) {
                        if (isset($creerDossiers[$nbDossiers])) {
                            if ($nbDossiers > 0) {
                                $arrayDossiers .= ',';
                            }
                            $arrayDossiers .= $creerDossiers[$nbDossiers];
                        }
                    }
                    // Création de l'option slug_groupe => Nom du groupe
                    update_option($slugGroupe, sanitize_text_field($_POST['creerGroupeNom']));

                    // Création de l'option slug_groupe => Description du groupe
                    if (isset($_POST['creerGroupeDescription']) && !empty($_POST['creerGroupeDescription'])) {
                        update_option($slugGroupe. '_description', sanitize_text_field($_POST['creerGroupeDescription']));
                    }
                    // Création de l'option slug_groupe_users => array ID users
                    update_option($slugGroupe . '_users', $arrayUsers);
                    // Création de l'option slug_groupe_doffiers => array ID Taxo Documents Extranet
                    update_option($slugGroupe . '_dossiers', $arrayDossiers);
                    $listeGroupe = get_option('liste_groupe');
                    if (is_array($listeGroupe)) {
                        $listeGroupe[] = $slugGroupe;
                    } else {
                        $listeGroupe = array($slugGroupe);
                    }
                    update_option('liste_groupe', $listeGroupe);
                } else {
                    // Groupe déjà existant
                    die('Groupe déjà existant');
                }
            } else {
                // Nom du groupe vide
                die('Groupe vide');
            }
        }
        ?>
        <form method="POST" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
            <input type="hidden" name="creerGroupe" value="true" />
            <h3>Créer un nouveau groupe d'utilisateurs &nbsp;
                <a href="#" class="btn-levier button-secondary" style="font-weight: normal;">voir / masquer</a>
            </h3>
            <table class="form-table">
                <tr valign="top">
                    <th scope="row">Saisir un nom de groupe d'utilisateurs</th>
                    <td>
                        <input type="text" name="creerGroupeNom" placeholder="Nom du groupe" size="64" />
                        <?php
                        if (($creerNomOk == 'ok') && ($creationGroupe == 'ok')) {

                        } elseif ($creationGroupe == 'ko') {
                            echo ' <span style="color: #aa0000;">Champ obligatoire</span>';
                        }
                        ?>
                    </td>
                </tr>
                <tr valign="top">
                    <th scope="row">Description du groupe utilisateurs</th>
                    <td>
                        <textarea name="creerGroupeDescription" placeholder="Description du groupe" rows="8" cols="61"></textarea>
                    </td>
                </tr>
                <tr valign="top">
                    <th scope="row">Sélectionner les dossiers pour ce groupe<br /><small style="font-weight: normal;">Note : pour être listé ici, le dossier doit exister au préalable.</em></small>
                    </th>
                    <td style="vertical-align: top;">
                        <table class="widefat" >
                            <thead>

                            <tr>
                                <th>Dossier(s) existant(s)</th>
                                <th class="headPicto"></th>
                                <th>Dossier(s) pour le groupe</th>
                            </tr>
                            </thead>
                            <tbody>
                            <tr>
                                <td>
                                    <select multiple="multiple" class="selectFolderAdd" size="15">
                                        <?php
                                        $listCats = get_categories('hide_empty=0&title_li=&show_option_none=&taxonomy=dossiers-documents-extranet&echo=0');
                                        foreach ($listCats as $infoCat) {
                                            echo '<option value="' . $infoCat->term_id . '">' . $infoCat->name . '</option>';
                                        }
                                        ?>
                                    </select>
                                </td>
                                <td class="picto">
                                    <i class="fa fa-exchange" aria-hidden="true"></i>
                                </td>
                                <td>
                                    <select multiple="multiple" class="selectFolderRemove" name="creerGroupeSelectFolder[]" size="15">

                                    </select>
                                </td>
                            </tr>
                            </tbody>
                        </table>
                    </td>
                </tr>
                <tr valign="top">
                    <th scope="row">Sélectionner les utilisateurs de ce groupe<br /><small style="font-weight: normal;">Note : pour être listé ici, l'utilisateur doit exister au préalable.</em></small>
                    </th>
                    <td style="vertical-align: top;">
                        <table class="widefat" >
                            <thead>

                            <tr>
                                <th>Utilisateurs de l'extranet</th>
                                <th class="headPicto"></th>
                                <th>Utilisateurs dans le groupe</th>
                            </tr>
                            </thead>
                            <tbody>
                            <tr>
                                <td colspan="3"><input type="text" size="32" class="searchUserAdd" placeholder="Rechercher un utilisateur" onkeyup="searchSel('UserAdd')" /></td>
                            </tr>
                            <tr>
                                <td>
                                    <select multiple="multiple" class="selectUserAdd" size="15">
                                        <?php
                                        $actionnaires = get_users();
                                        foreach ($actionnaires as $actionnaire) {
                                            echo '<option value="' . $actionnaire->ID . '">' . $actionnaire->display_name . '</option>';
                                        }
                                        ?>
                                    </select>
                                </td>
                                <td class="picto">
                                    <i class="fa fa-exchange" aria-hidden="true"></i>
                                </td>
                                <td>
                                    <select multiple="multiple" id="selectUserRemove" class="selectUserRemove" name="creerGroupeSelectuser[]" size="15">

                                    </select>
                                </td>
                            </tr>
                            </tbody>
                        </table>
                    </td>
                </tr>
                <tr valign="top">
                    <td>
                        <!--<input class="button-main" type="submit" name="gestiongroupes-creer-btn" id="gestiongroupes-creer-btn" value="Créer le groupe" />-->
                        <button class="button-main submitCreate" name="gestiongroupes-crer-btn" id="gestiongroupes-creer-btn">Créer le groupe</button>
                        <?php
                        if ($creationGroupe == 'ok') {
                            echo '<span style="color: #00aa00;">Le groupe a bien été créé</span>';
                        } elseif ($creationGroupe == 'ko') {
                            echo '<span style="color: #aa0000;">Le groupe n\'a pas pu être créé. Veuillez vérifier vos champs.</span>';
                        }
                        ?>
                    </td>
                </tr>
            </table>
        </form>

        <hr />

        <?php
        if ((isset($_POST['selectModifGroupeSubmit']) && !empty($_POST['selectModifGroupeSubmit'])) ||
            (isset($_POST['modifGroupeSubmit']) && !empty($_POST['modifGroupeSubmit']))) {
            if (isset($_POST['selectModifGroupeSubmitHidden']) && !empty($_POST['selectModifGroupeSubmitHidden'])) {
                $slugGroupe = $_POST['selectModifGroupe'];
                $nomGroupe = get_option($slugGroupe);
            }
            if (isset($_POST['modifGroupeSubmit']) && !empty($_POST['modifGroupeSubmit'])) {
                $slugGroupe = $_POST['modifGroupeSubmitHidden'];
                $nomGroupe = get_option($slugGroupe);
                if (isset($_POST['modifierGroupeSelectuser'])) {
                    $creerUsers = $_POST['modifierGroupeSelectuser'];
                    $arrayUsers = '';
                    for ($nbUsers = 0; $nbUsers < sizeof($creerUsers); $nbUsers++) {
                        if (isset($creerUsers[$nbUsers])) {
                            if ($nbUsers > 0) {
                                $arrayUsers .= ',';
                            }
                            $arrayUsers .= $creerUsers[$nbUsers];
                        }
                    }
                    // Mise à jour de l'option slug_groupe_users => array ID users
                    update_option($slugGroupe . '_users', $arrayUsers);
                } else {
                    delete_option($slugGroupe . '_users');
                }
                if (isset($_POST['modifierGroupeSelectFolder'])) {
                    $creerDossiers = $_POST['modifierGroupeSelectFolder'];
                    $arrayDossiers = '';
                    for ($nbDossiers = 0; $nbDossiers < sizeof($creerDossiers); $nbDossiers++) {
                        if (isset($creerDossiers[$nbDossiers])) {
                            if ($nbDossiers > 0) {
                                $arrayDossiers .= ',';
                            }
                            $arrayDossiers .= $creerDossiers[$nbDossiers];
                        }
                    }
                    // Mise à jour de l'option slug_groupe_doffiers => array ID Taxo Documents Extranet
                    update_option($slugGroupe . '_dossiers', $arrayDossiers);
                } else {
                    delete_option($slugGroupe . '_dossiers');
                }
            }
            if ($slugGroupe != '') {
                // Le champs de sélection du dossier a été rempli, on le réaffiche en disabled
                ?>
                <form method="POST" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
                    <input type="hidden" name="modifGroupeSubmitHidden" value="<?php echo $slugGroupe ?>" />
                    <h3>Modification d'un groupe d'utilisateurs</h3>
                    <table class="form-table">
                        <tr valign="top">
                            <th scope="row">Groupe sélectionné</th>
                            <td><?php echo $nomGroupe; ?></td>
                        </tr>
                        <tr valign="top">
                            <th scope="row">Sélectionner les dossiers pour ce groupe<br /><small style="font-weight: normal;">Note : pour être listé ici, le dossier doit exister au préalable.</em></small>
                            </th>
                            <td style="vertical-align: top;">
                                <table class="widefat" >
                                    <thead>

                                    <tr>
                                        <th>Dossier(s) existant(s)</th>
                                        <th class="headPicto"></th>
                                        <th>Dossier(s) pour le groupe</th>
                                    </tr>
                                    </thead>
                                    <tbody>
                                    <tr>
                                        <td>
                                            <select multiple="multiple" class="selectModifyFolderAdd" size="15">
                                                <?php
                                                $listCats = get_categories('hide_empty=0&title_li=&show_option_none=&taxonomy=dossiers-documents-extranet&echo=0');
                                                $listeDossiers = get_option($slugGroupe . '_dossiers');
                                                $arrayDossiers = explode(',', $listeDossiers);
                                                foreach ($listCats as $infoCat) {
                                                    if (!in_array($infoCat->term_id, $arrayDossiers)) {
                                                        echo '<option value="' . $infoCat->term_id . '">' . $infoCat->name . '</option>';
                                                    }
                                                }
                                                ?>
                                            </select>
                                        </td>
                                        <td class="picto">
                                            <i class="fa fa-exchange" aria-hidden="true"></i>
                                        </td>
                                        <td>
                                            <select multiple="multiple" class="selectModifyFolderRemove" name="modifierGroupeSelectFolder[]" size="15">
                                                <?php
                                                $listeDossiers = get_option($slugGroupe . '_dossiers');
                                                if ($listeDossiers != false) {
                                                    $arrayDossiers = explode(',', $listeDossiers);
                                                    foreach ($arrayDossiers as $termId) {
                                                        $term = get_term($termId);
                                                        echo '<option value="' . $termId . '">' . $term->name . '</option>';
                                                    }
                                                }
                                                ?>
                                            </select>
                                        </td>
                                    </tr>
                                    </tbody>
                                </table>
                            </td>
                        </tr>
                        <tr valign="top">
                            <th scope="row">Sélectionner les utilisateurs de ce groupe<br /><small style="font-weight: normal;">Note : pour être listé ici, l'utilisateur doit exister au préalable.</em></small>
                            </th>
                            <td style="vertical-align: top;">
                                <table class="widefat" >
                                    <thead>

                                    <tr>
                                        <th>Utilisateurs de l'extranet</th>
                                        <th class="headPicto"></th>
                                        <th>Utilisateurs dans le groupe</th>
                                    </tr>
                                    </thead>
                                    <tbody>
                                    <tr>
                                        <td colspan="3"><input type="text" size="32" class="searchUserAdd" placeholder="Rechercher un utilisateur" onkeyup="searchSel('UserAdd')" /></td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <select multiple="multiple" class="selectModifyUserAdd" size="15">
                                                <?php
                                                $actionnaires = get_users();
                                                $listeUsers = get_option($slugGroupe . '_users');
                                                $arrayUsers = explode(',', $listeUsers);
                                                foreach ($actionnaires as $actionnaire) {
                                                    if (!in_array($actionnaire->data->ID, $arrayUsers)) {
                                                        echo '<option value="' . $actionnaire->ID . '">' . $actionnaire->display_name . '</option>';
                                                    }
                                                }
                                                ?>
                                            </select>
                                        </td>
                                        <td class="picto">
                                            <i class="fa fa-exchange" aria-hidden="true"></i>
                                        </td>
                                        <td>
                                            <select multiple="multiple" id="selectUserRemove" class="selectModifyUserRemove" name="modifierGroupeSelectuser[]" size="15">
                                                <?php
                                                if ($listeUsers != false) {
                                                    $arrayUsers = explode(',', $listeUsers);
                                                    foreach ($arrayUsers as $idUser) {
                                                        $user = get_user_by('ID', $idUser);
                                                        var_dump($user);
                                                        echo '<option value="' . $idUser . '">' . $user->data->display_name . '</option>';
                                                    }
                                                }
                                                ?>
                                            </select>
                                        </td>
                                    </tr>
                                    </tbody>
                                </table>
                            </td>
                        </tr>
                        <tr valign="top">
                            <td colspan="3">
                                <input class="button-main submitModify" type="submit" name="modifGroupeSubmit" value="Enregistrer les modifications" /><br />
                                <?php
                                if ($creationGroupe == 'ok') {
                                    echo '<span style="color: #00aa00;">Le groupe a bien été créé</span>';
                                } elseif ($creationGroupe == 'ko') {
                                    echo '<span style="color: #aa0000;">Le groupe n\'a pas pu être créé. Veuillez vérifier vos champs.</span>';
                                }
                                ?>
                            </td>
                        </tr>
                    </table>
                </form>
                <?php
            }
        } else {
            /*// Sinon, on affiche le champ de sélection du dossier
            ?>
            <form method="POST" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
                <input type="hidden" name="selectModifGroupeSubmitHidden" value="true" />
                <h3>Modifier un groupe d'utilisateurs existant &nbsp;
                    <a href="#" class="btn-levier button-secondary" style="font-weight: normal;">voir / masquer</a>
                </h3>
                <table class="form-table">
                    <tr valign="top">
                        <th scope="row">Sélectionner un groupe</th>
                        <td>
                            <select name="selectModifGroupe">
                                <?php
                                $listeGroupe = get_option('liste_groupe');
                                if ($listeGroupe != false) {
                                    foreach ($listeGroupe as $slugGroupe) {
                                        $nomGroupe = get_option($slugGroupe);
                                        echo '<option value="' . $slugGroupe . '">' . $nomGroupe . '</option>';
                                    }
                                }
                                ?>
                            </select>
                            <input class="button-main" type="submit" name="selectModifGroupeSubmit" value="Sélectionner ce groupe" />
                        </td>
                    </tr>
                </table>
            </form>
            <?php*/
        }
        ?>
        </form>

        <hr />

        <h3>Liste des dossiers et des groupes d'utilisateurs actuels</h3>
        <style type="text/css">
            .widefat form{
                float:left;
            }
            .form-table th {
                width: 150px;
            }
            .form-table th.headPicto {
                width: 40px;
            }
            .form-table td.picto {
                font-size: 40px;
                text-align: center;
            }
            .selectFolderAdd, .selectFolderRemove, .selectUserAdd, .selectUserRemove, .selectModifyFolderRemove, .selectModifyFolderAdd, .selectModifyUserRemove, .selectModifyUserAdd {
                width: 100%;
            }
            .button-danger{
                background-color: #d9534f;
                border-color: #d43f3a;
                display: inline-block;
                padding: 6px 12px;
                margin-bottom: 0;
                font-size: 14px;
                border: 1px solid transparent;
                border-radius: 4px;
                color:#fff;
                cursor:pointer;
            }
            .button-main{
                background-color: #0085ba;
                border-color: #0085ba;
                display: inline-block;
                padding: 6px 12px;
                margin-bottom: 0;
                font-size: 14px;
                border: 1px solid transparent;
                border-radius: 4px;
                color:#fff;
                cursor:pointer;
            }
        </style>
        <table class="widefat">
            <thead>
            <tr>
                <th>Nom du groupe</th>
                <th>Dossiers attachés</th>
                <!--<th>Nb docs</th>-->
                <th>Nb utilisateurs</th>
                <th>Actions</th>
            </tr>
            </thead>
            <tbody>
            <?php
            $listeGroupe = get_option('liste_groupe');
            if ($listeGroupe != false) {
                foreach ($listeGroupe as $slugGroupe) {
                    $nomGroupe = get_option($slugGroupe);
                    $strDossiers = get_option($slugGroupe . '_dossiers');
                    // $listDossiers = get_categories('hide_empty=0&title_li=&show_option_none=&taxonomy=dossiers-documents-extranet&echo=0&');
                    if ($strDossiers == false) {
                        $listeDossiers = 'Aucun dossier.';
                    } else {
                        $arrayDossiers = explode(',', $strDossiers);
                        $listeDossiers = '';
                        foreach ($arrayDossiers as $idDossier) {
                            $dossier = get_term($idDossier, 'dossiers-documents-extranet');
                            if ($dossier != null) {
                                $listeDossiers .= $dossier->name . ', ';
                            }
                        }
                        $listeDossiers = substr($listeDossiers, 0, -2);
                    }
                    $listeUsers = get_option($slugGroupe . '_users');
                    if ($listeUsers == false) {
                        $count = 0;
                    } else {
                        $count = count(explode(',', $listeUsers));
                    }
                    echo '<tr>';
                    echo '<td>' . $nomGroupe . '</td>';
                    echo '<td>' . $listeDossiers . '</td>';
                    echo '<td>' . $count . '</td>';
                    echo '<td>
						<form method="POST" action="' . $_SERVER['REQUEST_URI'] . '">
						    <input type="hidden" name="selectModifGroupeSubmitHidden" value="true" />
							<input type="hidden" name="selectModifGroupe" value="' . $slugGroupe . '" />
							<input type="submit" class="button-main" name="selectModifGroupeSubmit" value="Modifier le groupe" />
						</form>
						<form onsubmit="return confirm(\'Êtes-vous sûr?\');" method="POST" action="' . $_SERVER['REQUEST_URI'] . '">
							<input type="hidden" name="groupeSupprimerSlug" value="' . $slugGroupe . '" />
							<input type="submit" class="button-danger supprimer-groupe" name="groupeSupprimer" value="Supprimer le groupe" />
						</form>
					</td>';
                    echo '</tr>';
                }
            } else {
                echo '<tr>';
                echo '<td colspan="4">Il n\'y a aucun groupe pour l\'instant</td>';
                echo '</tr>';
            }
            ?>
            </tbody>
        </table>



    </div>

    <script type="text/javascript">
        jQuery.noConflict();
        jQuery(document).ready(function () {
            jQuery('.btn-levier').parent().next().hide();
            jQuery('.btn-levier').click(function () {
                jQuery(this).parent().next().slideToggle('slow');
                return false;
            });
            jQuery('.selectUserAdd').click(function () {
                elem = jQuery(".selectUserAdd option:selected");
                jQuery(".selectUserAdd option:selected").remove();
                jQuery(".selectUserRemove").append(new Option(elem.html(), elem.val(), false, false));
            });
            jQuery('.selectUserRemove').click(function () {
                elem = jQuery(".selectUserRemove option:selected");
                if (elem.val() != undefined) {
                    jQuery(".selectUserRemove option:selected").remove();
                    jQuery(".selectUserAdd").append(new Option(elem.html(), elem.val(), false, false));
                }
            });
            jQuery('.selectFolderAdd').click(function () {
                elem = jQuery(".selectFolderAdd option:selected");
                jQuery(".selectFolderAdd option:selected").remove();
                jQuery(".selectFolderRemove").append(new Option(elem.html(), elem.val(), false, false));
            });
            jQuery('.selectFolderRemove').click(function () {
                elem = jQuery(".selectFolderRemove option:selected");
                if (elem.val() != undefined) {
                    jQuery(".selectFolderRemove option:selected").remove();
                    jQuery(".selectFolderAdd").append(new Option(elem.html(), elem.val(), false, false));
                }
            });
            jQuery('.selectModifyUserAdd').click(function () {
                elem = jQuery(".selectModifyUserAdd option:selected");
                jQuery(".selectModifyUserAdd option:selected").remove();
                jQuery(".selectModifyUserRemove").append(new Option(elem.html(), elem.val(), false, false));
            });
            jQuery('.selectModifyUserRemove').click(function () {
                elem = jQuery(".selectModifyUserRemove option:selected");
                if (elem.val() != undefined) {
                    jQuery(".selectModifyUserRemove option:selected").remove();
                    jQuery(".selectModifyUserAdd").append(new Option(elem.html(), elem.val(), false, false));
                }
            });
            jQuery('.selectModifyFolderAdd').click(function () {
                elem = jQuery(".selectModifyFolderAdd option:selected");
                jQuery(".selectModifyFolderAdd option:selected").remove();
                jQuery(".selectModifyFolderRemove").append(new Option(elem.html(), elem.val(), false, false));
            });
            jQuery('.selectModifyFolderRemove').click(function () {
                elem = jQuery(".selectModifyFolderRemove option:selected");
                if (elem.val() != undefined) {
                    jQuery(".selectModifyFolderRemove option:selected").remove();
                    jQuery(".selectModifyFolderAdd").append(new Option(elem.html(), elem.val(), false, false));
                }
            });
        });
        // Filtrage des options d'un champs select
        function searchSel(valInput) {
            var input = jQuery('.search' + valInput).val();
            console.log(input);
            var output = jQuery('.select' + valInput + ' option');
            console.log(output.length);
            for (var i = 0; i < output.length; i++) {
                var pattern = new RegExp(input);
                var html = jQuery(output[i]).html().toLowerCase();
                if (pattern.exec(html)) {
                    if (!jQuery(output[i]).is(':visible')) {
                        jQuery(output[i]).show();
                    }
                    console.log(true);
                } else {
                    jQuery(output[i]).hide();
                }
            }
        }
        jQuery('.submitCreate').click(function () {
            jQuery(".selectUserRemove option").attr("selected", "selected");
        });
        jQuery('.submitCreate').click(function () {
            jQuery(".selectFolderRemove option").attr("selected", "selected");
        });
        jQuery('.submitModify').click(function () {
            jQuery(".selectModifyUserRemove option").attr("selected", "selected");
            jQuery(".selectModifyFolderRemove option").attr("selected", "selected");
        });
    </script>
    <?php
}

// Suppression des groupes d'users si demandé à l'aide du bouton idoine
if (isset($_POST['groupeSupprimer']) && isset($_POST['groupeSupprimer'])) {
    $groupeAsupprimer = $_POST['groupeSupprimerSlug'];
    delete_option($groupeAsupprimer);
    delete_option($groupeAsupprimer . '_users');
    delete_option($groupeAsupprimer . '_dossiers');
    $listGroupe = get_option('liste_groupe');
    if (count($listGroupe) == 1) {
        var_dump('suppresion liste groupe');
        delete_option('liste_groupe');
    } else {
        if (($key = array_search($groupeAsupprimer, $listGroupe)) !== false) {
            unset($listGroupe[$key]);
        }
        update_option('liste_groupe', $listGroupe);
    }
}
/* * ****************
  A DECOMMENTER SI ON NE PEUT CHOISIR QU'UN SEUL DOSSIER PAR DOCUMENT
 *
 *
  function at111_init_extranetdossier() {
  remove_meta_box('dossiers-documents-extranetdiv', 'documents-extranet', 'side');
  add_meta_box('at111_extranetdossier', 'Dossier concerné', 'at111_create_extranetdossier', 'documents-extranet', 'side', 'low');
  }
  function at111_create_extranetdossier($post) {
  ?>
  <?php
  $currentCats = get_the_terms($post->ID, 'dossiers-documents-extranet');
  if($currentCats) {
  foreach($currentCats as $currentCat) {
  $ArrayCurrentCats[] = $currentCat->name;
  }
  } else {
  $ArrayCurrentCats[] = 'none';
  }
  $current_user = wp_get_current_user();
  $isUserAnAdmin = false;
  // On attrappe les dosisers liés
  $args =
  array(
  'hide_empty' => 0,
  'taxonomy' => 'dossiers-documents-extranet'
  );
  $categories = get_categories( $args );
  foreach ($categories as $categorie) {
  $nomGroupe = get_option($categorie->slug);
  $listeUsersWithCommas = get_option($nomGroupe);
  $arrayUsers = explode(',', $listeUsersWithCommas);
  if (in_array($current_user->ID, $arrayUsers)) {
  // stockage de la catégorie trouvée
  $arrayCatsAutorisees[] = $categorie->term_id;
  } else {
  $arrayCatsAutoriseesADMIN[] = $categorie->term_id;
  $isUserAnAdmin = true;
  }
  }
  $iCat = 1;
  if (($isUserAnAdmin)) {
  // l'user est un admin on affichetoute les categories
  foreach($arrayCatsAutoriseesADMIN as $catAutorisee) {
  $termLabels = get_term($catAutorisee, 'dossiers-documents-extranet');
  if (in_array($termLabels->name, $ArrayCurrentCats)) {
  echo '<p><label for="cat-document-'.$iCat.'"><input type="radio" name="cat-document" id="cat-document-'.$iCat.'" value="'.$catAutorisee.'" checked="checked" />'.$termLabels->name.'</label></p>';
  } else {
  echo '<p><label for="cat-document-'.$iCat.'"><input type="radio" name="cat-document" id="cat-document-'.$iCat.'" value="'.$catAutorisee.'" />'.$termLabels->name.'</label></p>';
  }
  $iCat++;
  }
  } else {
  // l'user n'est pas un admin on n'affiche que ses categories
  foreach($arrayCatsAutorisees as $catAutorisee) {
  $termLabels = get_term($catAutorisee, 'dossiers-documents-extranet');
  if (in_array($termLabels->name, $ArrayCurrentCats)) {
  echo '<p><label for="cat-document-'.$iCat.'"><input type="radio" name="cat-document" id="cat-document-'.$iCat.'" value="'.$catAutorisee.'" checked="checked" />'.$termLabels->name.'</label></p>';
  } else {
  echo '<p><label for="cat-document-'.$iCat.'"><input type="radio" name="cat-document" id="cat-document-'.$iCat.'" value="'.$catAutorisee.'" />'.$termLabels->name.'</label></p>';
  }
  $iCat++;
  }
  }
  }
  add_action( 'add_meta_boxes', 'at111_init_extranetdossier' );
 */

// Enregistrer les valeurs saisies.
function at111_save_extranetdossier($post_id) {
    // Lors de la mise à jour, on enregistre la catégorie
    if (isset($_POST['cat-document'])) {
        wp_set_object_terms($post_id, intval($_POST['cat-document']), 'dossiers-documents-extranet', false);
    }
}

add_action('save_post', 'at111_save_extranetdossier');

// Nettoyage de la chaine de caractère
function nettoyageString($string = '') {
    if (is_string($string)) {
        /* $string = strtr(
          $string,
          '@ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
          'aAAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'
          );
          $string = strtr($string, 'ÁÀÂÄÃÅÇÉÈÊËÍÏÎÌÑÓÒÔÖÕÚÙÛÜÝ', 'AAAAAACEEEEEIIIINOOOOOUUUUY');
          $string = strtr($string, 'áàâäãåçéèêëíìîïñóòôöõúùûüýÿ', 'aaaaaaceeeeiiiinooooouuuuyy'); */
        $needle = array(' ', '-');
        $string = str_replace($needle, '_', $string);
        $string = preg_replace('/[^A-Za-z0-9\-]/', '', $string);
        return $string;
    } else {
        return '';
    }
}
