Vous n'êtes pas identifié.
Annonce
Annonce 1 : Le Codex en français a besoin de vous pour avancer !
Annonce 2 : Avant de poster, n'oubliez pas de faire une petite Recherche et de lire les règles de ce forum.
Pages: 1
- Index
- » [Depôts] Extensions, Trucs, Astuces
- » restreindre l'acces d'une categorie aux membres connectes
#1 03-02-2007 14:34:11
restreindre l'acces d'une categorie aux membres connectes
Ma configuration WP actuelle
- Version de WordPress : 2.0.7
- Thème utilisé : perso adaptation de aquafluid
- Plugins en place : lightbox
- Nom de l'hebergeur : free
Bonjour,
comme j'ai déjà vu des posts sur le sujet je vous livre ma méthode pour restreindre l'accès d'une catégorie aux seuls membres connectés.
problématique : je veux une catégorie pour laquelle on puisse voir uniquement la liste des articles qu'elle contient et un résumé (ou rien) du contenu. la lecture du post ne doit être possible que si on est connecté et qu'on possède le niveau requis (auteur Ok, contributeur NOK par exemple)
la modification porte sur 3 classes de votre thème :
date.php /* pour les archives */ et single.php /* pour les articles */
/* la modif est identique pour ces 2 fichiers */
category-X.php (ou X est le numéro de la catégorie à filtrer)
le principe :
créer une catégorie dédiée et noter son ID (par ex :12)
créer un fichier category-12.php et copier dedans le contenu de category.php
modifier le code pour n'afficher que le titre et le résumé (excerpt) si le user n'est pas autorisé
comment faire :
après la ligne foreach ajouter :
<?php if ( current_user_can('publish_posts', $post->ID) ) {?>
cette ligne autorise l'affichage pour les users connectés ayant la capacite publish_posts
pour + d'infos sur les capacités voir ici
au milieu le code ne change pas : affichage normal
avant la ligne endforeach ajouter le code qui sera exécuté si le user n'est pas autorisé
<?php } else { ?>
le code pour afficher ce que vous voulez (voir ci dessous)
<?php } ?>
la modification est quasi identique pour les 2 autres fichiers seul le test change : on teste en + la catégorie
<?php if ( !in_category(12) || current_user_can('publish_posts', $post->ID)) { ?>
Attention !!! sauvegardez vos fichiers avant toute modification : il est facile de se planter de ligne...
vous pouvez voir le resultat sur mon site categorie Espace Membres article : test espace membres
en espérant que ce code soit utile aux membres de ce forum, n'hésitez pas a me faire part de vos impressions, critiques, améliorations etc..
voici le code de date.php et single.php :
Code:
- <?php if ($posts) : foreach ($posts as $post) : start_wp(); ?>
- <?php if ( !in_category(12) || current_user_can('publish_posts', $post->ID)) { ?>
- <div class="post">
- <h2 class="post-title"> <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title(); ?>"><?php the_title(); ?></a> </h2>
- <div class="post-content"><?php the_content('Lire la suite »'); ?> </div>
- <p class="post-info">
- <em><?php the_time('l d M Y'); ?></em> | <em class="user"><?php the_author_posts_link() ?></em> | <em class="cat"><?php the_category(', ') ?></em> <?php edit_post_link(); ?></p>
- </div>
- <?php } else { ?>
- <div class="post">
- <h2 class="post-title"> <?php the_title(); ?> </h2>
- <div class="post-content"><?php the_excerpt(); ?></div>
- <p class="post-info"> <em><?php the_time('l d M Y'); ?></em> | <em class="user"><?php the_author_posts_link() ?></em> | <em class="cat"><?php the_category(', ') ?></em> <?php edit_post_link('modifier'); ?></p>
- <h3 align="center">Pour lire cet article vous devez vous connecter au préalable.</h3>
- </div>
- <?php } ?>
- <?php endforeach; else: ?>
et celui de category-12.php :
Code:
- <?php if ($posts) : foreach ($posts as $post) : start_wp(); ?>
- <?php if ( current_user_can('publish_posts', $post->ID) ) {?>
- <div class="post">
- <h2 class="post-title">
- <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title(); ?>"><?php the_title(); ?></a>
- </h2>
- <div class="post-content"> <?php the_content('Lire la suite »'); ?> </div>
- <p class="post-info">
- <em><?php the_time('l d M Y'); ?></em> | <em class="user"><?php the_author_posts_link() ?></em> | <em class="cat"><?php the_category(', ') ?></em>
- <?php edit_post_link(); ?></p>
- </div>
- <?php } else { ?>
- <div class="post">
- <h2 class="post-title"> <?php the_title(); ?> </h2>
- <div class="post-content"><?php the_excerpt(); ?></div>
- <p class="post-info"> <em><?php the_time('l d M Y'); ?></em> | <em class="user"><?php the_author_posts_link() ?></em> | <em class="cat"><?php the_category(', ') ?></em> <?php edit_post_link('modifier'); ?></p>
- <h3 align="center">Pour lire cet article vous devez vous connecter au préalable.</h3>
- </div>
- <?php } ?>
- <?php endforeach; else: ?>
webmaster du site http://veloclub.canejan.free.fr
Hors ligne
#2 03-02-2007 21:40:19
Re: restreindre l'acces d'une categorie aux membres connectes
Sympa mais c'est pas le plus simple.
Je déplace dans truc et astuces 
Mais vous savez, je crois pas qu'il y ait de bon ou mauvais blog... Enfin si je devais résumer ma vie aujourd'hui avec vous, je dirais que c'est d'abord des rencontres, des blogs qui m'ont tendu la main peut être à un moment où je ne pouvais pas, où j'étais seul chez moi.

WP-Box: Travailler avec un spécialiste des technologies WordPress !
Hors ligne
#3 04-02-2007 11:28:08
Re: restreindre l'acces d'une categorie aux membres connectes
AmO a écrit:
Sympa mais c'est pas le plus simple.
salut Amo,
effectivement ca va mieux dans trucs et astuces..
j'ai écrit ce code (que je ne trouve pas trop compliqué meme si j'ai mis beaucoup de bla bla dans mon post pour expliquer) parcque justement je ne trouvais pas de solution à mon problème, peux tu me donner ta solution pour ma culture perso stp ? 
merci..
webmaster du site http://veloclub.canejan.free.fr
Hors ligne
#4 04-02-2007 14:37:00
Re: restreindre l'acces d'une categorie aux membres connectes
Pour la catégorie 12, et les utilisateurs de niveau 5
Code: php
- <?php if ( is_category('12') ); ?>
- <?php if ( $user_level > 5 ) : ?>
- Blabla
- <?php else : ?>
- Pas le droit
- <?php endif; ?>
- <?php else : ?>
- Autre catégorie
- <?php endif; ?>
Mais vous savez, je crois pas qu'il y ait de bon ou mauvais blog... Enfin si je devais résumer ma vie aujourd'hui avec vous, je dirais que c'est d'abord des rencontres, des blogs qui m'ont tendu la main peut être à un moment où je ne pouvais pas, où j'étais seul chez moi.

WP-Box: Travailler avec un spécialiste des technologies WordPress !
Hors ligne
#5 04-02-2007 19:22:19
Re: restreindre l'acces d'une categorie aux membres connectes
effectivement, ca evite de créer une category specifique et je reconnais que l'usage de $user_level pour tester est plus propre... je debute sous wp, j'ai encore bcp a apprendre
merci de ta réponse en tous cas 
webmaster du site http://veloclub.canejan.free.fr
Hors ligne
#6 04-02-2007 20:40:45
Re: restreindre l'acces d'une categorie aux membres connectes
On peut aussi faire la même chose avec $user_ID pour ne definir que les utilisateurs enregistrés.
"Mais vous savez, je crois pas qu'il y ai de bon ou mauvais bloggeur... Enfin si je devais résumer, je dirais que c'est d'abord des blogs, des bugs et beaucoup de superflux pour un module qui offre déjà à l'origine, suffisament de possibilités."
Hors ligne
#7 04-02-2007 22:33:12
Re: restreindre l'acces d'une categorie aux membres connectes
bway > Il existe pleins d'autre possibilités 
jpicot > Tout le monde est la pour apprendre, ca tombe bien.
Mais vous savez, je crois pas qu'il y ait de bon ou mauvais blog... Enfin si je devais résumer ma vie aujourd'hui avec vous, je dirais que c'est d'abord des rencontres, des blogs qui m'ont tendu la main peut être à un moment où je ne pouvais pas, où j'étais seul chez moi.

WP-Box: Travailler avec un spécialiste des technologies WordPress !
Hors ligne
#8 09-02-2007 17:06:35
- jolinary
- Connaisseur WP
- Date d'inscription: 15-01-2007
- Messages: 32
Re: restreindre l'acces d'une categorie aux membres connectes
Je vais tester cela
par contre je voulais savoir est il possible de faire cela pour certains membres ? autre que par cathegorie ou niveau de level en faite ?
merci
Hors ligne
#9 18-02-2007 14:43:35
- dedhale
- Membre WP
- Date d'inscription: 16-02-2007
- Messages: 5
Re: restreindre l'acces d'une categorie aux membres connectes
Bonjour, je me permets de rebondir sur ce post pour poser ma petite question. En fait c'est à peu près la même chose, mais n'y connaissant rien au php (je sais bidouiller, pas créer, et c'est pas mon métier lol, je suis graphiste), je préfère poser la question.
En fait j'aimerai qu'un utilisateur ne puisse voir que les billets que d'UNE seule catégorie! Est-ce possible?
Merci beaucoup
Hors ligne
#10 18-02-2007 22:25:42
Re: restreindre l'acces d'une categorie aux membres connectes
voici une solution en testant le nom du user avec la variable $user_login, a combiner selon les besoins 
Code:
- Code: php
- <?php if ( $user_login == 'toto' ) ?>
- afficher la page
- <?php else : ?>
- ne pas afficher
- <?php endif; ?>
pour que le user toto ne voit que les billets de la categorie 12
les visiteurs non connectes ne voient rien, toto voit la categorie 12 uniquement, les autres voient toutes les catégories
Code:
- Code: php
- <?php if ( $user_login != "" && ($user_login != 'toto' || in_category(12))) { ?>
en esperant que cet exemple reponde a vos questions 
Dernière modification par jpicot (18-02-2007 22:26:50)
webmaster du site http://veloclub.canejan.free.fr
Hors ligne
#11 19-02-2007 03:07:24
- dedhale
- Membre WP
- Date d'inscription: 16-02-2007
- Messages: 5
Re: restreindre l'acces d'une categorie aux membres connectes
pour que le user toto ne voit que les billets de la categorie 12
les visiteurs non connectes ne voient rien, toto voit la categorie 12 uniquement, les autres voient toutes les catégoriesCode:
Code: php <?php if ( $user_login != "" && ($user_login != 'toto' || in_category(12))) { ?>en esperant que cet exemple reponde a vos questions
Pour les visiteurs, ce n'est pas trop grave, le blog est totalement fermé. J'ai un peu détourné le rôle premier de wordpress pour créer un petit espace de travail virtuel pour notre collectif. Pour pouvoir débattre sur les projets en cours et garder une trace. (en changeant tout le design etc...)
Et c'est dans l'optique d'amener des clients à venir poster un commentaire sur leurs projets, et de voir l'avancée des travaux, de leur fournir les fichiers pour l'impression, etc..., que j'aimerai les empêcher d'avoir accès à tout le blog. Ils ne pourront voir que la catégorie qui porte leur nom. Point 
Malheureusement le code fait planter tout le bazar... :s
Ou dois-je incorporer le code? Dans plusieurs pages? index? single?
J'ai un peu tout essayer pour être franc et chaque fois j'ai une erreur à la dernière ligne de la page...
Une idée?
Hors ligne
#12 19-02-2007 09:07:11
Re: restreindre l'acces d'une categorie aux membres connectes
tu ne dois pas le mettre au bon endroit, essaie d'inserer le code dans single.php de ton theme après cette ligne :
Code:
- <?php if ($posts) : foreach ($posts as $post) : start_wp(); ?>
- <?php if ( $user_login != "" && ($user_login != 'toto' || in_category(12))) { ?>
- le code pour afficher le post
- <?php } else { ?>
- le code si on n'affiche pas le post
- <?php } ?>
- <?php endforeach; else: ?>
attention a bien positionner les balises fermantes <?php } ?> ca peut aussi etre ca qui te fait planter
au début php + wordpress nécessitent une période d'adaptation pendant laquelle on ne comprend pas grand chose, puis ca s'eclaire en lisant la doc et en parcourant le forum donc tu vas y arriver 
webmaster du site http://veloclub.canejan.free.fr
Hors ligne
#13 19-02-2007 13:17:24
- dedhale
- Membre WP
- Date d'inscription: 16-02-2007
- Messages: 5
Re: restreindre l'acces d'une categorie aux membres connectes
J'ai toujours un message d'erreur 
Hors ligne
#14 19-02-2007 16:44:53
Re: restreindre l'acces d'une categorie aux membres connectes
Puisque j'ai été renvoyée ici... 
En fait j'avais lu ce post mais je pensais qu'il ne répondait pas tout à fait à mes besoins et comme je n'ai pas la possibilité d'essayer avant quelques jours...
Je voulais que les utilisateurs n'aient pas du tout accès à l'admin et je ne sais pas si c'est possible.
Exemple concret:
Mr Machin arrive sur le blog et veut accéder à la catégories "Adresses" qui est une catégorie privée.
- Soit il clique sur la catégorie dans la sidebar et une pop-up s'affiche demandant login/password.
- Soit il entre login + password sur la sidebar puis connexion
dans les 2 cas il est redirigé automatiquement sur la page sur laquelle il s'est identifié mais version "connecté".
Poussib' ? Pô poussib' ?
Merci.
Hors ligne
#15 19-02-2007 23:29:17
Re: restreindre l'acces d'une categorie aux membres connectes
désolé, je n'avais pas bien compris ta demande
je ne connais pas de solution directe, mais les experts de ce forum ont peut être une idée ?
je pense qu'il faudrait intégrer le contrôle de l'utilisateur dans la page à afficher et ne pas passer par le module d'identification :
si l'utilisateur n'est pas connecté, afficher la demande d'identification dans la page et réafficher celle-ci apres controle.
webmaster du site http://veloclub.canejan.free.fr
Hors ligne
#16 21-02-2007 07:22:35
Re: restreindre l'acces d'une categorie aux membres connectes
C'est plus ou moins exactement tout à fait ça.
Mais il se trouve que, autant ajouter une ligne de code dans une sidebar ne me pose pas de problème a priori, autant faire un truc pareil, c'est tout à fait au-delà des mes capacités.
A vot' bon coeur... 
Hors ligne
#17 24-08-2007 10:43:41
- nx2006
- Membre WP
- Date d'inscription: 24-08-2007
- Messages: 2
Re: restreindre l'acces d'une categorie aux membres connectes
Bonjour
je cherchais un moyen de personnaliser le contenu en fonction des droits des utilisateurs.
si le user n'est pas enregistré (user_level=0) : afficher : bonjour vous devez vous enregistrer
si le user est enregistré mais que je n'ai pas validé son inscription (user_level=1) : bonjour, votre inscription est en cours de validation
si j'ai validé l'inscription (user_level=2) : afficher tout le contenu
avec le code ci-dessous, ça marche tres bien dans la page index.php
Code:
- Code: php
- <?php if ( $user_level > 1 ) : ?>
- Blabla
- <?php else : ?>
- Pas le droit
- <?php endif; ?>
mais quand j'essaie de personnaliser le header.php ou le sidebar.php, ça ne marche pas.
question 1 : Avez vous une explications, C'est comme si la fonction user_level n'était pas reconnu dans ces modules.
?
question 2 : existe-t-il un plugin qui envoie un mail d'avertissement au webmester à chaque nouvel inscription d'un utilisateur?
Merci à tous
xavier
version utilisée wp2.2
Hors ligne
#18 24-08-2007 12:19:54
- dlo
- Blogodépendant

- Date d'inscription: 10-04-2007
- Messages: 1329
Re: restreindre l'acces d'une categorie aux membres connectes
Bonjour,
Question 1: Il faut déclarer la variable $user_level comme global avant de l'utiliser.
Question 2: C'est le fonctionnement par défaut de WordPress, pas besoin de plugin.
Cordialement
Non, je ne suis pas blogodépendant... C'est juste que je n'ai toujours pas trouvé la sortie de ce forum !
Hors ligne
#19 25-08-2007 22:58:23
- nx2006
- Membre WP
- Date d'inscription: 24-08-2007
- Messages: 2
Re: restreindre l'acces d'une categorie aux membres connectes
merci dlo
ça marche tres bien.
question 1 : effectivement, en déclarant la variable, ça marche, meme si je ne comprends pas pourquoi ça passait sur index.php mais pas sur header.php
question 2 : en fait j'avais un problème de messagerie
Hors ligne
#20 25-08-2007 23:32:50
Re: restreindre l'acces d'une categorie aux membres connectes
Bonsoir
pour revenir au sujet de ce message, je vais passer pour un noob
mais ...
ils se trouvent ou le fichiers date.php single.php et category.php ?
edit : bon j'ai trouvé category (dans wp-includes c'est ca ?) j'ai trouvé aussi single mais il n'y en a pa dans mon theme (Vistered) je suppose que je dois le créer. et date il faut aussi le créer mais ou ?
Merki
Dernière modification par Mistic100 (25-08-2007 23:38:19)
Hors ligne
Pages: 1
- Index
- » [Depôts] Extensions, Trucs, Astuces
- » restreindre l'acces d'une categorie aux membres connectes







