[plugin] VIP_ZONE . Options de privatisation de votre PluXml

avril 2023 modifié dans Plugins

Suite et inspiration de https://forum.pluxml.org/discussion/7048/securite-limiter-lacces-au-blog ou j'avais proposer un squelette de plugin.

Voici ce squelette étoffé, plus facile d'utilisation et renommer dans l'admin en 'Espace Privé'. (De PluXml 5.8.4 à 5.8.7)

Sera t-il compatible avec un PluXml > 5.8.7 ?, je ne sais pas .(il sera tester à la sortie des prochaines versions, pour l'instant un test de MAJ pour pluxml 6.0 fonctionne, ... temporairement en attendant la version stable officiel )

MAJ le 21/04/23 : Compatible v5.8.9, urlrewriting et php 8.2.5

  1. https://github.com/gcyrillus/PLX_VIP_ZONE/
  2. https://github.com/gcyrillus/PLX_VIP_ZONE/archive/refs/heads/main.zip

Des tests Utilisateurs sont encore les bienvenus pour soulever des bugs, des incohérences, des fonctions inutiles ou manquantes, ...

Sa description (v2.0)


PLX_VIP_ZONE intitulé Espace Privé

Plugin pour PluXml , ajoute la gestion d'espace privé ,blog,catégories et articles ou pages statiques aux choix, inspiré du précédent squelette: https://github.com/gcyrillus/plx-log-visitor

Le plugin "Espace Privée" permet de rendre tout ou partie de votre site accessible uniquement à des utilisateurs bénéficiant d'un accès V.I.P..

A l'activation, un nouveau profil apparait pour vos utilisateurs. Vous pouvez ajouter un utilisateur qui aura accès aux zones privatisés sans avoir de droits pour accéder à la partie administration de votre site.

La seule page de l'administration qui lui sera accessible sera la page authentification.

Comme tout les plugins, dés l'activation il vous faut configurer votre plugin de façon à ce qu'il fonctionne entièrement.

Le plugin à la première configuration va faire un backup de votre fichier utilisateurs (user.xml => user.xml.back) et créer un fichier CSV (username.csv dans le dossier du plugin) avec ses entêtes, celui-ci vous permettra d'ajouter par lot des utilisateur VIP. Voir plus bas pour le détail

Configuration

Le plugin vous permet de choisir entre plusieurs configuration d'espaces V.I.P., Vous pouvez opter pour rendre privé:

  • l'espace Blog, si votre page d’accueil est une page statique sinon c'est votre page d’accueil ! ;) ,
  • les pages Catégories et Articles ,
  • les pages Statiques
  • ou désactiver tout les espaces privée en sélectionnant Aucune (valeur par défaut à l'activation du plugin)
  • Il y a aussi la possibilité de créer uniquement des pages statiques privée dans un groupe dédié.
Traitement par lot de nouveaux utilisateurs V.I.P.

Le traitement par lot s'effectue sur la structure d'un fichier au format CSV, ce type de fichier peut-être ouvert et éditer avec de nombreux éditeurs de texte ou de feuille de calcul. Les 2 programmes plus connus du grand publics sont Excel(MS) et OpenOffice calc. Le caractères de séparation des champs utilisé est le point virgule ;.

Vous pouvez:
1. Télécharger le fichier username.csv et l’éditer dans votre programme favori en ajoutant vos utilisateurs ligne par ligne et en respectant les colonnes et son format (caractère de champ ;), puis en le renvoyant sur le serveur. Un lien de téléchargement est affiché dans la page de configuration.
2. Renvoyer sur le serveur le fichier modifié , il sera traité automatiquement puis vidé.
3. Directement dans la page configuration du plugin dans l’éditeur affiché en respectant la syntaxe des entêtes en première ligne , ligne par ligne en séparant chaque champs (au nombre de quatre) d'une double virgule ; en faisant la saisie au clavier. (l’éditeur embarque https://github.com/codemirror pour rendre l'édition en ligne plus confortable)

Note . En cas de doublon, un message s'affiche indiquant le champ et la ligne à corrigé.

résumé et info à propos de l'édition 'Ajout utilisateurs'
  1. Conservez les entêtes de la première ligne du fichier CSV: Login; Name; Password; Email; Infos . Cette ligne n'est pas enregistrée comme Utilisateur mais vous rappelle la syntaxe à respecter.
  2. Il y a quatre champs séparés par un point virgule, ces champs vont créer les utilisateurs avec leur adresse mail et mot de passe respectif .
  3. Le mot de passe sera crypté à l'enregistrement, si il est perdu par l'utilisateur et selon la configuration native de votre PluXml, son adresse mail si valide pourra lui servir à en créer un nouveau.
  4. L'enregistrement ne gère pas les doublons, mais ne finalisera pas un traitement en lot si une ligne est incomplète ou comporte une erreur de syntaxe, le n° de lignes est alors indiqué .
  5. Lorsque vous désactiver le Plugin, tous vos utilisateurs V.I.P., n'ayant plus d’accès privé réservé, voient leur compte désactivé afin de ne plus apparaitre dans la partie 'Comptes Utilisateurs' de l'administration.
  6. Lorsque vous activer le Plugin, tous les comptes V.I.P. déjà enregistrés seront réactivés.
  7. Pour effacer ou modifier un Utilisateur, cela se passe par la page 'Comptes Utilisateurs' de l'administration.
  8. Un lien de déconnexion est ajouté au menu principal lorsque vous êtes authentifié, gestion des langues possibles: dispo: fr et en .
  9. Le titre du formulaire de connexion est personnalisé.
  10. Un VIP qui se déconnecte est renvoyé sur la page d'accueil
  11. Le plugin vérifie la compatibilité de la configuration de son mode privée avec la configuration de PluXml. (blog ou pas blog ? )
  12. Ajout d’icônes devant les contenus privatisés si non connecté. (fontawesome 5).
  13. Cache le contenu des articles et des commentaires si non connecté.
  14. Ajout de page statique privatisée dans un groupe (VIP).
    Pour utiliser ces pages , il faut les éditer dans la page d'administration "pages statiques" et les activer pour les finaliser et les afficher sur le site.
  15. A la désactivation du plugin , les pages statiques privées du groupe VIP sont aussi désactivées.
  16. A l'activation du plugin, si des pages statiques privatisées dans le groupe VIP existent, elles sont réactivées.
  17. Ajout du champs infos dans la gestion via le fichier CSV (ou édition nouvelle utilisateur dans la page configuration).
  18. Vérification des doublons sur les champs login, name et email.
  19. option de repositionnement du plugin en première position au chargements des plugins d'un simple clique.

Note à l'installation et sa position dans la page d'administration des plugins.

Selon l'ordre du plugin dans la page http://votrePluXml.com/core/admin/parametres_plugins.php si vous utilisez un autre plugin , comme MySearch: moteur de recherche, qui s'ajoute en lien dans le menu,ce type de plugin sera considéré comme une page statique et sera privatisé si l'option de configuration est calé sur Pages Statiques .
Pour garder les pages de ce type de plugin en accès libre, il faut que le plugin `vip_zone , intitulé 'Espace Privée' soit placé devant. A défaut, tous les plugins placés derrière et se greffant au menu seront considérés comme des pages statiques privatisables et accessibles seulement après connexion.

Pour replacer le plugin en amont de vos autre plugins, un glisser/déposer suffit ou bien indiquez le numéro de position -1 pour le remettre en tête de liste,. En fin, sauvegardez la modification de la liste des plugins. **Vous pouvez repassé le plugin en première position dans la page de configuration/administration du plugin.


Un fichier username.csv de 509 utilisateurs fictifs est inclus dans le dossier vip_zone/test-CSV_file du plugin pour vos tests. Ce dossier n'est pas requis au bon fonctionement du plugin.

Ce fichier comportent des erreurs qu'un message vous notifiera, il vous suffit de vous rendre au(x) numéro(s) de ligne(s) indiquée(s) et de faire la correction dans l'éditeur texte du plugin.

Aprés vos tests avec ce fichier fictif, vous pouvez effacer le fichier users.xml et renommer le fichier users.xml.back en users.xml pour retrouver votre liste d'utilisateurs d'origine.



Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml

Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

Mots clés:

Réponses

  • Bonjour à toutes et tous,

    Bravo gcyrillus-nomade pour ce greffon.
    J'ai chargé le greffon comme indiqué dans ma dernière intervention ( https://forum.pluxml.org/discussion/7048/securite-limiter-lacces-au-blog ) dans un PluXml 5.8.7, maquette construite avec des pages statiques et le blog (les pages article et catégories ainsi que le pied de page ont été modifiés comme indiqué dans tes instructions).

    Dans la configuration du greffon, le blog est sélectionné, validé. La sauvegarde des données users existe bien. Aucun problème.

    La liste username.csv conforme au format (intitulés et ordre des colonnes) apparaît bien mais la validation est impossible. Une page blanche affiche un lien pour revenir à la page des plugins et un message annonce: Erreur pendant l'enregistrement du fichier user.xml/username.csv
    J'ai fait un essai en enlevant tous les accents sur les noms ou les majuscules. Ça ne change rien.

    De retour dans la partie administration, un clic sur "Retour au site" ou "Blog" affiche une page totalement blanche et je dois retourner en arrière pour désactiver le greffon. L'affichage public redevient normal.

    Le problème viendrait-il de la traduction CSV vers XML ?

  • septembre 2021 modifié

    Bonjour,

    il y avait deux coquilles sur le chemin, l'une sur celui de sauvegarde du fichier username.csv et l'autre dans la class du plugin (reliquat du précédent plugin) . => corrigés.


    MAJ 28/09/-23h00
    1. download d'un fichier username.csv vide avec les entêtes seuls pour l'éditer en local avec votre programme favori (MS ou OpenOffice ou autre).
    2. upload de votre fichier username.csv pour faire l'ajout des utilisateurs en lot.
    3. Un bouton de déconnexion est inséré en fin du menu principal X
    MAJ 29/09/2021
    4. ajout d'un fichier test de 509 utilisateurs fictifs pour vos tests.


    Note

    Il n'est pas nécessaire de modifier le thème, le plugin se charge de faire la redirection vers la page authentification sur les zones configurées en privées.

    Cdt,
    GC


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • Bonjour à toutes et tous,

    Bonjour gcyrillus-nomade

    Je poursuis mes essais avec Firefox, Pale Moon et IE en local avec MAMP, la dernière version de PluXml et le thème standard non modifié comme indiqué.

    Mon retour d'expérience:

    Aucun problème pour charger et configurer le plugin.

    Ma liste d'utilisateurs fictifs au format CSV est téléchargée sans incident et la liste des utilisateurs dans l'administration affiche tous les nouveaux venus avec leur statut VIP.

    Cette liste disparaît comme prévu avec la désactivation et revient avec la réactivation du greffon mais le plugin crée un doublon sur le premier nom de la liste.
    La déconnexion de l'administrateur me ramène à la page d'identification habituelle.
    Le retour à la page d'accueil du site est normal.

    En revanche:
    Toutes les pages statiques du menu et le blog me renvoient une erreur 404.
    Si je reviens à la page d'identification et que je rentre les infos (Id et PSW) de l'un quelconque des VIP enregistrés, la page ne se charge pas et les navigateurs me retournent tous la même information: le serveur redirige la requête d'une manière incorrecte (mauvaise redirection).

    Cependant:
    Le lien de déconnexion des VIP (disque rouge avec le X) apparaît bien dans le menu juste avant le blog qui est la zone privée du site.
    J'accède au blog (toutes les catégories, tous les articles) mais, à ce stade, rien n'indique si je suis connecté en tant que VIP ou admin et toutes les pages statiques du menu s'affichent elles aussi correctement.

    La déconnexion (disque rouge avec le X) provoque de nouveau une erreur 404 avec ce texte: The requested URL /core/admin/auth.php was not found on this server.

    Voilà. J'ai essayé de ne rien oublier

  • octobre 2021 modifié

    Bonjour,

    Toutes les pages statiques du menu et le blog me renvoient une erreur 404.

    est ce en mode connecté ou non connecté? quel genre d'url as tu dans la barre d'adresse du navigateur ? (voir si point suivant une fois réglé corrige aussi ce problème).

    Si je reviens à la page d'identification et que je rentre les infos (Id et PSW) de l'un quelconque des VIP enregistrés, la page ne se charge pas et les navigateurs me retournent tous la même information: le serveur redirige la requête d'une manière incorrecte (mauvaise redirection).

    Si je comprend bien , tu te sert d'un serveur local , si tu as mis ton pluxml dans un sous-répertoire, alors c'est normal, je vais corrigé les liens et me servir de PLX_ROOT pour repartir de la racine de pluxml et pas de celle de ton serveur. (attend juste une mise à jour sur github , fichier concerné vip_zone.php )

    Le lien de déconnexion des VIP (disque rouge avec le X) apparaît bien dans le menu juste avant le blog qui est la zone privée du site.
    J'accède au blog (toutes les catégories, tous les articles) mais, à ce stade, rien n'indique si je suis connecté en tant que VIP ou admin et toutes les pages statiques du menu s'affichent elles aussi correctement.

    Non en effet, il n'y a que ce lien de déconnexion qui te fait savoir que tu est connecté sans indiqué les droits du visiteur. si tu le souhaites on peut faire en sorte de l'afficher que pour les VIP (nécessite juste un test sur le niveau du profil) . Cependant, il faudra être connecter pour accéder à ces pages. VIP ou Administrateur, c'est une section privatisée qui requiert une authentification . (pas de filtrage sur IP prévu pour passer outre)

    La déconnexion (disque rouge avec le X) provoque de nouveau une erreur 404 avec ce texte: The requested URL /core/admin/auth.php was not found on this server.

    Idem que précédemment.

    Cdt,
    GC


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • octobre 2021 modifié

    @Amadeus Sans retour de ta part (mais d'autres) , j'ai continué à étoffé ce plugin et modifié son code de base entre deux réflexions et retour de bugs.
    Je reste bien sur curieux de ton avis pour ton usage personnel.
    Cette dernière version se présente pompeusement comme la 1.07 a des années de son squelette , enfin presque ;) https://github.com/gcyrillus/PLX_VIP_ZONE/archive/refs/heads/main.zip .
    Cdt


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • Bonjour gcyrillus-nomade,

    Je viens de charger la nouvelle version du greffon sur un PluXml 587 tout neuf pour voir les différences.

    Mes observations:
    1 - Le greffon fonctionne parfaitement tel quel! Il est installé en premier.
    2 - La mise en page de l'administration du greffon (configuration) est très propre. C'est pro!
    3 - La création d'un groupe de pages statiques privées ne pose aucun problème. On peut choisir la mise en page (normale ou pleine largeur) exactement comme pour les autres.

    Question:
    La fiche utilisateur dispose d'un champ supplémentaire (informations) qui n'est pas utilisé par le greffon. Pourrait-on inclure ce champ afin de l'ajouter aux colonnes du fichier CSV?
    Pour ma part, tous les utilisateurs (VIP) auraient une donnée de référence dans le champ "informations" ce qui ne devrait pas poser de problème d'absence de données.
    En revanche, d'autres utilisateurs du greffon qui n'en auraient pas l'utilité, devraient pouvoir laisser ce champ vide sans être bloqués par le signalement d'une erreur si le champ "informations" du CSV n'était pas utilisé pour tout ou partie de la liste VIP.

    Merci d'avoir développé ce greffon qui correspond exactement à ce que je cherchais pour l'école, PluXml s'étant imposé pour ses qualités de rapidité et de légèreté.
    C'est un beau travail.
    Bravo!

  • Bonjour,
    merci de ton retour , très élogieux pour le codeur du dimanche que je suis.
    J'avais eu un projet similaire il y a une dizaine d'année avec un PluXml et une classe de formation pour adulte, j'avais quelques idées de départ.

    J'ai ajouté la gestion du champs infos via l'admin du plugin et fichier CSV. Il sera rempli si quelque chose est trouvé.

    je met la modif ici https://github.com/gcyrillus/PLX_VIP_ZONE/archive/refs/heads/1.08.zip en attendant ton retour avant de la remonter, des fois qu'un bug se soit glisser durant la manip.

    Cdt


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • Bonjour gcyrillus-nomade,
    La liste des utilisateurs est mise à jour sans aucune erreur dans tous les cas mais le champs "infos" n'est pas rempli.
    J'ai essayé avec les têtes de colonnes habituelles du fichier CSV auxquelles j'ai ajouté la colonne "infos" avec/sans point-virgule final.
    J'ai remarqué dans le code de la page config.php ligne 270 qu'il manquait peut-être une information.
    En effet, si je me réfère aux lignes 264 et 267, l'information $line[quelque chose] est absente dans $infos->addCData(''); mais je ne suis pas codeur du tout!
    A+

  • Est tu sur d'avoir pris la bonne version ? (1.08) ou bien d'avoir bien écrasé la version précédente, car c'est à la ligne 39, puis 66,67 et 68 que le champ Infos est pris en compte si présent .

    https://github.com/gcyrillus/PLX_VIP_ZONE/archive/refs/heads/1.08.zip


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • Mille excuses gcyrillus-nomade, je n'étais pas dans la bonne fenêtre!
    Il y a des jours comme ça...

    Le geffon fonctionne parfaitement avec les versions 5.8.7 et 5.8.4 de PluXml.
    Chaque information est bien là où elle doit être.
    Encore une fois, bravo pour tout ce travail!
    Bonne fin de journée.

  • Super !
    juste à te signaler une mise à jour faite a la ligne 181 de config.php pour le numéro dans le nom de fichier pour la page statique privée que je n'avais pas mis à jour.

    C'est pour le fun que je l'ai fait et je suis heureux que cela te soit utile. Ce n'est, ni, ne sera mon métier. Je découvre régulièrement l'ampleur de mon ignorance, il me faut un point de départ pour éveiller ma curiosité et creuser , je ne suis vraiment pas le gars que tu veut engagé pour un boulot de production .

    Bonne continuation ;)


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • Infos . Une mise à jour permet de vérifier la validité des emails ainsi que les doublons sur les champs login, name et email.


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • cpalocpalo Member
    23 nov. modifié

    Bonjour,
    Comment doit-on faire pour rendre tout le site privé?
    Pour le moment, j'ai des messages d'erreur qui empechent la validation des nouveaux membres.

    Pour arriver sur la page d'accueil du site directement sur le formulaire d'authentification, j'ai bien les deux plugins MO et logInMyPluxml.
    Mais MO, il faut modifier dans le core auth.php pour styliser.
    Cordialement

  • Bonjour,

    Si l'idée est privatisée toute la partie publique, VIP_ZONE n'est pas necéssaire, il n'y a pas besoin d'un plugin , cela peut se faire depuis le théme en ajoutant au template un fichier pour le formulaire qu'il suffit d'inclure à la fin de header.php.
    exemple :

    ex, ajouter en derniere ligne à header.php (thème par défaut)

    <?php   include __DIR__.'/is_private.php'; ?>
    

    et dans le fichier template `is_private.php

    <?php 
        include_once PLX_CORE.'lib/class.plx.token.php';
        include(PLX_CORE.'/lang/'.$plxShow->plxMotor->aConf['default_lang'].'/admin.php');
        # Control du token du formulaire
        plxToken::validateFormToken($_POST);
        # demande de connexion
        if (!empty($_POST['login']) and !empty($_POST['password'])) {
            $connected = false;
            foreach ($plxShow->plxMotor->aUsers as $userid => $user) {
                if ($_POST['login'] == $user['login'] and sha1($user['salt'] . md5($_POST['password'])) === $user['password'] and $user['active'] and !$user['delete']) {
                    $_SESSION['user'] = $userid;
                    $_SESSION['profil'] = $user['profil'];
                    $_SESSION['hash'] = plxUtils::charAleatoire(10);
                    $_SESSION['domain'] = $session_domain;
                    $_SESSION['admin_lang'] = $user['lang'];
                    $connected = true;
                    break;
                }
            }
            if ($connected) {
                header('Location: ' .$_SERVER['PHP_SELF']);
                exit;
                } else {
                $css = 'alert red';
                echo '<p class="'.$css.'>'.$LANG['L_ERR_WRONG_PASSWORD'].'</p>';
            }
        }
    
        # affichage formumaire si non connecter
        if (!isset($_SESSION['profil']) ) { 
    
    ?>
    
    <main class="main">
    
        <div class="container">
    
            <div class="grid">
    
                <div class="content col sml-12">
    
    
                    <article class="article" >
                        <header>
                            <h2>
                                <?php 
    
                                    echo $LANG['L_AUTH_PAGE_TITLE'];
                                ?>
                            </h2>
                        </header>
    
                        <form 
                        method="post" id="form_auth">
                            <fieldset>
                                <?php echo plxToken::getTokenPostMethod() ?>
                                <div class="grid">
                                    <div class="col sml-12">
                                    <label><?= $LANG['L_AUTH_LOGIN_FIELD'] ?></label>
                                <input id="id_login" name="login" type="text" autofocus class="full-width" placeholder="Login de connexion" size="10" maxlength="255"/>                                </div>
                                </div>
                                <div class="grid">
                                    <div class="col sml-12">
                                        <label><?= $LANG['L_AUTH_PASSWORD_FIELD'] ?></label>
                                    <input id="id_password" name="password" type="password" class="full-width" placeholder="Mot de passe" size="10" maxlength="255"/>                                </div>
                                </div>
                                <div class="grid">
                                    <div class="col sml-12">
                                        <small><a href="/core/admin/auth.php?action=lostpassword" target="_blank"><?= $LANG['L_LOST_PASSWORD'] ?></a></small>
                                    </div>
                                </div>
                                <div class="grid">
                                    <div class="col sml-12 text-center">
                                        <input class="blue" type="submit" value="Valider"/>
                                    </div>
                                </div>
                            </fieldset>
                        </form>';
                    </article>
                </div>
            </div>
        </div>
    </main>
    <?php 
        include __DIR__.'/footer.php'; 
        exit;
        }
    

    Cdt


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • cpalocpalo Member

    j'ai effectivement les deux cas de figure.
    Un sous-domaine complétement privé; et là, merci, ta solution me convient completement car elle me permet de personnaliser cette page d'accueil en travaillant sur le template, et non pas en modifiant le core ou le plugin.
    Mais j'ai également le cas de site ou j'ai seulement le blog en espace privé (dans le cas d'un page statique en accueil) et ou seulement des pages privées.
    Faut que je réinstalle ton plugin et voir si j'ai toujours les messages d'erreur.
    Est-ce qu'on peut rendre le blog privé en même temps que les pages?

  • Faut que je réinstalle ton plugin et voir si j'ai toujours les messages d'erreur.

    Si c'est le cas , copie colle les message d'erreur, la version php, de pluxml, etc ... que je puisse avoir les bonnes pistes .

    Tu peut te servir du formulaire https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions#iGotABug pour préparé ton post formaté en markdown. Il y a des textarea pour copier/coller les message d'erreur de la page (ceux de la page et pas seulement ceux affiché au dessus de la page ) et des cases à cochés pour tous les autre détails de config.

    cdt


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • cpalocpalo Member

    Bonjour,
    Lorsque j'utilise ton script dans l'en-tete, c'est ok pour tout un site privé.
    Mais dans le cas où j'ai une page statique en accueil, comment l'utiliser pour rendre seulement le blog privé?

  • tu peux te servir de VIP_ZONE pour ce cas de figure

    sinon, il faut tester en plus dans le script , si tu est sur une page statique accrochée à l’accueil.

    exemple pour is_homeStatic_public.php en alternative a is_private.php

    <?php 
        include_once PLX_CORE.'lib/class.plx.token.php';
        include(PLX_CORE.'/lang/'.$plxShow->plxMotor->aConf['default_lang'].'/admin.php');
        # Control du token du formulaire
        plxToken::validateFormToken($_POST);
        # demande de connexion
        if (!empty($_POST['login']) and !empty($_POST['password'])) {
            $connected = false;
            foreach ($plxShow->plxMotor->aUsers as $userid => $user) {
                if ($_POST['login'] == $user['login'] and sha1($user['salt'] . md5($_POST['password'])) === $user['password'] and $user['active'] and !$user['delete']) {
                    $_SESSION['user'] = $userid;
                    $_SESSION['profil'] = $user['profil'];
                    $_SESSION['hash'] = plxUtils::charAleatoire(10);
                    $_SESSION['domain'] = $session_domain;
                    $_SESSION['admin_lang'] = $user['lang'];
                    $connected = true;
                    break;
                }
            }
            if ($connected) {
                header('Location: ' .$_SERVER['PHP_SELF']);
                exit;
                } else {
                $css = 'alert red';
                echo '<p class="'.$css.'>'.$LANG['L_ERR_WRONG_PASSWORD'].'</p>';
            }
        }
        $go=false;
        if($plxShow->plxMotor->mode == 'static' && $plxShow->plxMotor->aStats[str_pad($plxShow->staticId(),3,'0',STR_PAD_LEFT)]['homeStatic'] ==1) $go = true;
    
        # affichage formumaire si non connecter accueil/blog
        if (!isset($_SESSION['profil']) && $go ==false ) { 
    
        ?>
    
        <main class="main">     
            <div class="container">         
                <div class="grid">              
                    <div class="content col sml-12">
                        <article class="article" >
                            <header>
                                <h2>
                                    <?php 
    
                                        echo $LANG['L_AUTH_PAGE_TITLE'];
                                    ?>
                                </h2>
                            </header>
    
                            <form 
                            method="post" id="form_auth">
                                <fieldset>
                                    <?php echo plxToken::getTokenPostMethod() ?>
                                    <div class="grid">
                                        <div class="col sml-12">
                                            <label><?= $LANG['L_AUTH_LOGIN_FIELD'] ?></label>
                                        <input id="id_login" name="login" type="text" autofocus class="full-width" placeholder="Login de connexion" size="10" maxlength="255"/>                                </div>
                                    </div>
                                    <div class="grid">
                                        <div class="col sml-12">
                                            <label><?= $LANG['L_AUTH_PASSWORD_FIELD'] ?></label>
                                        <input id="id_password" name="password" type="password" class="full-width" placeholder="Mot de passe" size="10" maxlength="255"/>                                </div>
                                    </div>
                                    <div class="grid">
                                        <div class="col sml-12">
                                            <small><a href="/core/admin/auth.php?action=lostpassword" target="_blank"><?= $LANG['L_LOST_PASSWORD'] ?></a></small>
                                        </div>
                                    </div>
                                    <div class="grid">
                                        <div class="col sml-12 text-center">
                                            <input class="blue" type="submit" value="Valider"/>
                                        </div>
                                    </div>
                                </fieldset>
                            </form>';
                        </article>
                    </div>
                </div>
            </div>
            </main>
            <?php 
        include __DIR__.'/footer.php'; 
        exit;
        }
    
    


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • cpalocpalo Member

    Petit message d'erreur à la ligne 31 du script:
    message : Undefined array key "homeStatic"

    if($plxShow->plxMotor->mode == 'static' && $plxShow->plxMotor->aStats[str_pad($plxShow->staticId(),3,'0',STR_PAD_LEFT)]['homeStatic'] ==1) $go = true;
    

    homeStatic c'est le nom de la page statique qui sert d'accueil? et ==1 pour indiquer qu'elle est en accueil?
    staticId(),3,'0 quel role pour ces deux chiffres.
    Merci
    Mais efffectivement ton plugin conviendrait pour rendre le blog privé
    Cordialement

  • 18:27 modifié

    Bonsoir,
    $plxShow->staticId() renvoi un numero de 1 à 999;
    Dans le tableau aStats, les numéros des pages statiques sont stockées de 000 a 999.
    La fonction str_pad($plxShow->staticId(),3,'0',STR_PAD_LEFT) ajoute les zéros manquant , pour retrouvé une page statique dans le tableau aStats.

    Si tu as un undefined array key, cela me surprend. Tu as forcément un $plxShow->staticId() en mode static, celui de la page que tu demande. En page d'acceuil, il ne peut y avoir qu'une seule page statique configurée en tant que telle.

    La condition teste si le mode est static et si la page statique est configurée en homeStatic , (c'est l'un des champs contenus dans le fichier de configuration statiques.xml.


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • cpalocpalo Member
    22:33 modifié

    Bonsoir,
    Je viens de repartir sur un autre pluxml, et j'ai toujours ce meme message d'erreur. Je testerai demain en ligne.
    En ligne même résultat.

    Pour le plugin VIP, il ne prend pas en compte l'ajout d'utilisateurs que ce soit directement dans l'admin ou via un fichier csv.
    Petit bug...le blog rendu privé est précédé d'une icone. Mais cette icone s'affiche devant tous les menus que ce soit les catégories dans la sidebar, ou le menu principal.
    Cordialement

Connectez-vous ou Inscrivez-vous pour répondre.