webleads-tracker

Accès restreint VS rubriques

Vincent
Bonjour,

pour une même rubrique donnée, nous voudrions que l'article X s'affiche si non loggué, et que l'article Y s'affiche si loggué.

J'ai vu qu'on pouvait gérer les accès par rubrique mais cela ne fait pas exactement ce que l'on souhaite.

y a t-il une astuce ?

Benoit Denis
Avatar
A mon avis en dev spec via un widget qui test si l'utilisateur est loggué ou non et renvoi vers tel ou tel article !
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai...<br />www.tethis-interactive.com

Manuel [Medialibs]
Avatar
En effet la piste apportée par Benoit peut être une solution. Après dans le natif on pourrait peut-être le gérer en js, mais à tester si cela convient...

D'emblée je pensais à l'utilisation de la balise mx specifique
<mx:user content="group" />
qui permet de détecter l'appartenance à tel ou tel groupe. Voir ce post : http://communaute.medialibs.com/forum/topic-1798.html

Une fois le groupe ressorti en tant que class, il est facile d'effectuer une redirection js vers tel ou tel rubrique qui publie donc tel ou tel article.

N'hésitez pas à dire si cela convient ;)
Formateur web [Medialibs]

Vincent
Merci de vos réponses, en fait vos solutions ne conviennent pas totalement car on doit rester dans la même rubrique (même lien etc etc).

Mais la solution de Benoit via widget peut être intéressante à exploiter.

Etant donné que le widget remplace le contenu de la page, je vais créer des rubriques masquées, avec l'article "privé". Si l'internaute est logué, on va récupérer l'article "privé".

Reste à voir la relation entre les deux rubriques :

une solution possible est de récréer la même arbo avec un parent racine différent, en front de récupérer l'URL, rechercher/remplacer le dossier racine par celui masqué, récupérer l'ID catég puis l'ID article (impose d'avoir la meme nomenclature)

une autre solution serait de mettre l'ID de l'article "privé" dans un champ non utilisé (titre, motclés) de la rubrique. (impose de connaitre l'ID de l'article "privé", enlever les tags dans le modele..)


Bon sinon je verrai bien un 4ème choix dans la gestion d'accès aux rubriques : uniquement non loggué. => on pourrait dupliquer la rubrique en changeant les droits (une privée et une non privé/4eme possibilité) et en associant a chacune d'elle l'article voulue.

j'ai essayé cette solution mais comme il n'y a pas de choix "uniquement non loggué", on a le doublon une fois loggué.

A voir pour suggérer ça en évolution, ça ne doit pas demander trop de temps à faire ??!!

Vincent StartUp
Avatar
Salut Vincent,

Une autre solution que tu pourrais tester :
rubriqueA (ne publie rien)
-sous rubriquesA1 (avec droit)
-sous rubriquesA2 (sans droit)

Si on se connecte à rubriqueA, comme elle ne fait rien, on est redirigé vers la 1ere sous-rubrique, si la 1ere sous-rubrique a des droits et qu'on n'est pas connecté, on est redirigé vers la 2eme rubrique.

Par contre quand tu fais les tests faut bien penser à vider le cache à chaque fois car les navigateurs conservent les redirections.

A voir si ca peut s'adapater à ton cas
Vincent - StartUp Communication

Vincent
Salut Vincent,

j'ai déjà essayé cette solution la mais le problème est comme je le dis au dessus, c'est qu'une fois connecté, on a accès aux deux sous rubriques.

Bon sinon je verrai bien un 4ème choix dans la gestion d'accès aux rubriques : uniquement non loggué. => on pourrait dupliquer la rubrique en changeant les droits (une privée et une non privé/4eme possibilité) et en associant a chacune d'elle l'article voulue.

j'ai essayé cette solution mais comme il n'y a pas de choix "uniquement non loggué", on a le doublon une fois loggué.


Merci

Vincent StartUp
Avatar
Une solution en spécifique : Tu pourrais via du spécifique, créer un nouveau type de page. Dans se nouveau type de page tu donnes la possibilité de sélectionner 2 articles, un loggué, un non-loggué. Ensuite coté public dans le php de ton nouveau type de page, tu affiches l'un ou l'autre en fonction de si la personne est connecté ou non. Problème, je n'ai jamais essayé d'afficher un article dans une page en spécifique. Si on ne peut pas l'afficher directement, tu pourrais passer avec la fonction php file_get_contents qui va chercher le contenu d'une page. Tu pourrais ainsi aller chercher le contenu de ta page /lapage/getpagecontent?articlePreview=xxx
xxx correspond à l'id de l'article voulu.

Une 2eme solution bricole en standard en reprenant la solution de Manuel :
Tu crées un nouvel article preformaté avec à l'intérieur 2 articles. via des css tu caches l'un ou l'autre. Pour remonter une css logué ou non, suffit de mettre dans ton préformaté class="<mx:user content="group"/>". Si par exemple le client fait parti du groupe client, ca fera class="client". Cette solution masque seulement en css, en combinaison avec du php, tu pourrais peut-être mettre l'article non désiré en commentaire, ce qui éviterait de remonter double contenu, et en plus google ne verrait que l'article non-loggué.

Je pense qu'il y a d'autre solution, faut juste trouver la bonne :)
Vincent - StartUp Communication

Vincent
Bonjour Vincent,

je pense que ta première solution conviendrait.
Pas de souci pour récupérer l'article et l'afficher directement, mais ta solution avec getpagecontent?articlePreview=xxx est encore mieux, le traitement étant deja fait.

Ce devrait etre la bonne solution.

Merci encore de l'idée

Vincent

Vincent StartUp
Avatar
Salut Vincent, content que la solution te va.

Tu as l'air de savoir comment faire pour afficher l'article directement sans passer par getpagecontent?articlePreview=xxx. Tu peux m'expliquer comment, j'en aurais peut-être besoin pour un projet.

Vincent - StartUp Communication

Vincent
Vincent,

désolé pour le retard je n'avais pas vu ta question :

tu trouveras ton article dans la table "ressource_article_structure"

L'id de la rubrique se trouve en session, il faut faire une jointure sur cet ID et l'article associé à la rubrique, et un autre avec la table ci-dessus.

Pour du spécifique comme widget ou type de page par exemple.

A+

Vincent StartUp
Avatar
Merci Vincent, mais je voulais plus savoir comment tu faisais pour afficher l'article avec la même apparence que quand on publie l'article dans la page. Ca me parait compliquer de recréer un article à partir de la base de données. Si un jour j'ai besoin, je reprendrais la solution du getpagecontent?articlePreview.

A+
Vincent - StartUp Communication

Vincent
Dans le module "type de page" de la première solution ?