web-dev-qa-db-fra.com

Show Login Popup on En savoir plus Restriction

Je veux limiter les utilisateurs invités à afficher l'article complet. Une fois l'utilisateur connecté, il sera le seul à pouvoir lire l'intégralité de l'article, sinon l'article d'introduction sera affiché. J'ai atteint cet objectif en consultant la documentation suivante:

https://docs.joomla.org/Restricting_access_to_%22read_more%22

Mais ici, lorsque l'utilisateur clique sur le bouton Lire plus, il est redirigé vers une page de connexion, mais je souhaite afficher le formulaire de connexion dans la fenêtre contextuelle de cette page elle-même. En outre, l'utilisateur doit être redirigé vers le même article dont il a cliqué plus de lecture. Y a-t-il un moyen par lequel cela peut être réalisé?

4
Liz.

Vous devez créer un remplacement de modèle pour la vue d'article - default.php fichier de modèle.

Vous pouvez donc créer un "modal button "pour le lien d’enregistrement, pour ouvrir la vue d’enregistrement dans une fenêtre modale.

Ce billet de blog explique comment créer des modaux dans Joomla . Il couvre la manière bootstrap) pour Joomla 3 avec de nombreux exemples, mais contient également une référence à un article plus ancien avec des exemples utilisant la méthode mootools - qui fonctionne toujours sur Joomla 3. au fait.

En ce qui concerne le chargement de l’écran d’enregistrement, je suggère d’ajouter le tmpl=component dans le lien, il ne chargera donc que la sortie du composant et non le modèle entier.

Donc, le lien vers la page d'inscription deviendra comme:

<?php $link = new JUri(JRoute::_('index.php?option=com_users&view=login&Itemid=' . $itemId .'&tmpl=component', false)); ?>

Vous voudrez peut-être aussi gérer la fermeture automatique de la fenêtre modale après une connexion réussie et l'actualisation de la fenêtre actuelle.

Cela pourrait être réalisé avec du JavaScript, mais je n’ai pas essayé avec la méthode bootstrap), de sorte que je n’ai pas la réponse à cette question prête et qu’il est tard ici pour aller la chercher. Mais si vous parvenez à atteindre ce point, les étapes restantes suivront également.

Une autre solution consiste à charger un module de connexion Ajax popup au lieu de se connecter à la page d’enregistrement.

Vérifiez ce module: Login SC.

Voir cette réponse ici qui décrit comment charger un module à partir d'un composant: Affichage de plus d'articles dans la vue des articles

  • Encore une fois, je n'ai pas essayé cette solution avec le module de connexion contextuel, mais il y a de grandes chances que cela fonctionne.
6
FFrewin