Aperçu des articles réservés aux membres enregistrés

Réduire
Ce sujet est fermé.
X
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Aperçu des articles réservés aux membres enregistrés

    Bonjour à tous,

    De mémoire, dans les versions antérieures de Joomla, un utilisateur non enregistré pouvait voir l'introduction d'un article réservé aux membres inscrits, jusqu'à la balise readmore.

    Je ne parviens pas à arriver à ce résultat avec J 3, il n'y a que la page de login qui apparaît, sans aperçu.

    J'ai farfouillé dans les options de menu et d'affichage de catégorie (en liste), sans rien trouver...

    Je précise que si on arrive sur l'article par le biais d'un moteur de recherche ou par un lien situé sur le module mod_articles_latest, l'aperçu est visible. Seul le lien situé dans une catégorie en mode liste avec affichage des liens non autorisés actif renvoie uniquement sur la page de login, sans aperçu de l'article.

    Auriez-vous une bonne idée ?

    Merci à tous
    Dernière édition par scubaland à 08/11/2014, 06h52

  • #2
    Re : Aperçu des articles réservés aux membres enregistrés

    Bonsoir,
    Personne ?

    Commentaire


    • #3
      Re : Aperçu des articles réservés aux membres enregistrés

      Bonjour scubaland,

      Pour un affichage de type "blog des articles d'une catégorie" ou "blog des articles en vedette", il faut mettre dans le lien de menu le paramètre "Liens non autorisés" à "Oui".

      Si l'article est de niveau Enregistré et que l'utilisateur n'est pas connecté, il verra dans le blog pour cet article, le titre non cliquable, l'introduction de l'article, et le lien "Veuillez vous identifier ou vous inscrire pour lire la suite..." (à la place de "Lire la suite...").

      Amicalement,
      Rajoz

      Commentaire


      • #4
        Re : Aperçu des articles réservés aux membres enregistrés

        Envoyé par Rajoz Voir le message
        Bonjour scubaland,

        Pour un affichage de type "blog des articles d'une catégorie" ou "blog des articles en vedette", il faut mettre dans le lien de menu le paramètre "Liens non autorisés" à "Oui".

        Si l'article est de niveau Enregistré et que l'utilisateur n'est pas connecté, il verra dans le blog pour cet article, le titre non cliquable, l'introduction de l'article, et le lien "Veuillez vous identifier ou vous inscrire pour lire la suite..." (à la place de "Lire la suite...").

        Amicalement,
        Rajoz
        Bonjour,

        Je te remercie pour ta réponse.
        Mais mes articles ne sont pas affichés en mode blog. Cela signifie qu'il est impossible d'avoir cette présentation ?

        Amicalement,

        Commentaire


        • #5
          Re : Aperçu des articles réservés aux membres enregistrés

          Bonjour scubaland,

          mes articles ne sont pas affichés en mode blog
          Je n'ai pas réussi à comprendre dans tes posts le type d'affichage que tu souhaites (des fois je comprends vite mais il faut m'expliquer longtemps ).

          Bon, puisque que ce n'est pas blog, je vais faire deux autres essais avec affichage d'un article et affichage en liste des articles d'une catégorie.

          Avec la méthode que je t'ai indiquée pour les liens de menu de type blog, à savoir mettre dans le lien de menu le paramètre "Liens non autorisés" à "Oui" :
          • pour un lien d'affichage d'un article : seule la partie introduction de l'article s'affiche suivie d'un lien "Veuillez vous identifier ou vous inscrire pour lire la suite..."
          • pour un lien d'affichage d'une liste d'articles d'une catégorie : dans la liste, à côté du titre de l'article s'affiche le lien "Veuillez vous identifier ou vous inscrire pour lire la suite..." (le titre de l'article n'est pas cliquable).

          Dans la liste d'articles d'une catégorie, seuls les titres sont affichés donc quand l'utilisateur clique sur "
          Veuillez vous identifier ou vous inscrire pour lire la suite..." qui va directement à la connexion, il ne peut pas voir l'introduction de l'article avant la connexion. Cela serait possible, avec une petite surcharge de com_content/views/category/tmpl/default_articles.php, de faire que le titre soit cliquable et donc que l'article s'affiche avec l'introduction et le lien vers la connexion au lieu d'aller directement à la connexion.

          Remarque importante : si cette méthode
          "Liens non autorisés" est utilisée il faut être attentif pendant la création/modification de l'article car s'il l'on oublie le lien "Lire la suite..." dans l'article c'est la totalité de l'article qui est vue, même le niveau d'accès ne correspond pas, puisque l'on a autorisé à voir ce qu'il y a avant le lien c'est-à-dire tout.

          Amicalement,
          Rajoz

          Commentaire


          • #6
            Re : Aperçu des articles réservés aux membres enregistrés

            Envoyé par Rajoz Voir le message
            Bonjour scubaland,


            Je n'ai pas réussi à comprendre dans tes posts le type d'affichage que tu souhaites (des fois je comprends vite mais il faut m'expliquer longtemps ).

            Bon, puisque que ce n'est pas blog, je vais faire deux autres essais avec affichage d'un article et affichage en liste des articles d'une catégorie.

            Avec la méthode que je t'ai indiquée pour les liens de menu de type blog, à savoir mettre dans le lien de menu le paramètre "Liens non autorisés" à "Oui" :
            • pour un lien d'affichage d'un article : seule la partie introduction de l'article s'affiche suivie d'un lien "Veuillez vous identifier ou vous inscrire pour lire la suite..."
            • pour un lien d'affichage d'une liste d'articles d'une catégorie : dans la liste, à côté du titre de l'article s'affiche le lien "Veuillez vous identifier ou vous inscrire pour lire la suite..." (le titre de l'article n'est pas cliquable).

            Dans la liste d'articles d'une catégorie, seuls les titres sont affichés donc quand l'utilisateur clique sur "
            Veuillez vous identifier ou vous inscrire pour lire la suite..." qui va directement à la connexion, il ne peut pas voir l'introduction de l'article avant la connexion. Cela serait possible, avec une petite surcharge de com_content/views/category/tmpl/default_articles.php, de faire que le titre soit cliquable et donc que l'article s'affiche avec l'introduction et le lien vers la connexion au lieu d'aller directement à la connexion.

            Remarque importante : si cette méthode
            "Liens non autorisés" est utilisée il faut être attentif pendant la création/modification de l'article car s'il l'on oublie le lien "Lire la suite..." dans l'article c'est la totalité de l'article qui est vue, même le niveau d'accès ne correspond pas, puisque l'on a autorisé à voir ce qu'il y a avant le lien c'est-à-dire tout.

            Amicalement,
            Rajoz
            Tu vois, même si mon exposé n'était pas clair tu as tout compris, il s'agit bien d'une liste d'article d'une catégorie

            J'avais effectivement pensé à la surcharge, mais je ne sais pas du tout comment l'écrire... Sais-tu comment le faire ou as-tu un lien qui pourrait me l'expliquer ?

            Pour ce qui est de la balise readmore, pas de soucis, elle est bien présente dans chaque article concerné.

            Merci en tous cas, c'est déjà beaucoup !

            Commentaire


            • #7
              Re : Aperçu des articles réservés aux membres enregistrés

              Bonjour scubaland,

              Si ton template n'a pas déjà une surcharge de cette vue liste des articles d'une catégorie, c'est assez facile à faire. Sinon la modification ne sera pas à faire sur le fichier standard de Joomla mais sur celui de ton template et là il faudra bien sûr d'abord regarder ton template.

              1) Sauvegarder
              Comme toujours avant de faire une modification sur le site faire une sauvegarde

              2) Aller dans le template utilisé
              Aller dans Extensions > Gestion des templates et cliquer sur le nom du template dans la colonne Template à droite

              3) Vérifier qu'il n'y a pas déjà une surcharge
              La colonne de gauche est l'arbre des fichiers du template. Ouvrir le dossier html en cliquant dessus.
              S'il n'y a pas de sous-dossier com_content c'est tout bon, tu peux continuer.

              4) Créer la surcharge (substitution) de la vue category
              Cliquer sur l'onglet "Créer des substitutions"
              Dans la colonne "Composants" cliquer sur "com_content" puis sur "category"
              Le message "Substitution créée avec succès" indique que ça baigne.

              5) Ouvrir le fichier de la vue
              Cliquer sur l'onglet "Editeur"
              Cliquer sur html
              Cliquer sur com_content (il y est maintenant parce qu'on vient de le créer)
              Cliquer sur category
              Cliquer sur default_articles.php (c'est le fichier à modifier)

              6) Modifier le fichier de la vue
              Le code à modifier est entre les lignes 117 et 131
              Je mets ici en rouge le code qu'il faut ajouter :
              Code:
              <?php else: ?>
                  [COLOR=#ff0000]<!--[/COLOR]
                  <?php
                  echo $this->escape($article->title).' : ';
                  $menu        = JFactory::getApplication()->getMenu();
                  $active        = $menu->getActive();
                  $itemId        = $active->id;
                  $link = JRoute::_('index.php?option=com_users&view=login&Itemid='.$itemId);
                  $returnURL = JRoute::_(ContentHelperRoute::getArticleRoute($article->slug));
                  $fullURL = new JUri($link);
                  $fullURL->setVar('return', base64_encode($returnURL));
                  ?>
                  <a href="<?php echo $fullURL; ?>" class="register">
                      <?php echo JText::_('COM_CONTENT_REGISTER_TO_READ_MORE'); ?>
                  </a>
                  [COLOR=#ff0000]-->
                  <a href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($article->slug, $article->catid)); ?>">
                      <?php echo $this->escape($article->title); ?>&nbsp;(*)
                  </a>[/COLOR]
              <?php endif; ?>
              Notes
              • Je préfère mettre des commentaires <!-- et --> mais on aurait pu supprimer le code entre ces deux balises.
              • J'ai ajouté (*) après l'affichage du titre de l'article dans la liste pour montrer qu'il est différent. Si cela ne te plais pas tu peux le supprimer ou le modifier, le code c'est &nbsp;(*) avec &nbsp; qui représente un espace.

              7) Sortir
              Cliquer sur Enregistrer et Fermer dans la barre d'outils
              Cliquer sur Fermer

              8) Essayer une liste d'articles d'une catégorie
              Pour un utilisateur non connecté, les titres des articles de niveau Enregistré devraient être cliquables et suivis d'un (*).
              En cliquant sur le titre, l'introduction de l'article s'affiche suivie du lien "Veuillez vous identifier ou vous inscrire pour lire la suite..."

              Amicalement,
              Rajoz
              Mister Paul aime ceci.

              Commentaire


              • #8
                Re : Aperçu des articles réservés aux membres enregistrés


                Belle démo !
                Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

                Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

                Commentaire


                • #9
                  Re : Aperçu des articles réservés aux membres enregistrés

                  Merci infiniment pour la super précision de ta réponse !!!

                  J'ai bien suivi les consignes, et le titre apparaît bien, cliquable, et j'ai bien l'aperçu jusqu'à la balise readmore : mission remplie !

                  Par contre, dans l'affichage en mode liste, le titre figure une seconde fois. Il est affiché :

                  Titre : (Veuillez vous identifier ou vous inscrire pour lire la suite...") Titre cliquable (*)

                  NON NON NON, c'est moi qui avait oublié une balise de commentaire

                  Ce n'est pas compliqué, ta solution EST PARFAITE !

                  Merci 1000 fois !
                  Dernière édition par scubaland à 12/11/2014, 20h25

                  Commentaire


                  • #10
                    Re : Aperçu des articles réservés aux membres enregistrés

                    Bonjour,

                    Je reviens pour une petite question suite à la manip' brillante qui m'avais été donnée :

                    - elle fonctionne parfaitement si un article est réservé aux "registred" : le public voit l'introduction, jusqu'à la balise readmore
                    - par contre, si un article est réservé aux "abonnés" (qui est chez moi, un niveau supérieur aux "registred"), le public continue à voir l'introduction, mais pas les membres du groupe "registred)

                    Est-il possible d'adapter le code pour que l'introduction soit vivible à tous ceux qui n'ont pas accès à l'article ?

                    Merci encore
                    Dernière édition par scubaland à 27/11/2014, 17h24 Raison: fote d'ortografe :)

                    Commentaire


                    • #11
                      Re : Aperçu des articles réservés aux membres enregistrés

                      Bonjour scubaland,

                      Effectivement la fonction "Veuillez vous identifier ou vous inscrire pour lire la suite..." est réservée aux les utilisateurs non connectés. Comme elle est mise en œuvre dans la vue des articles on peut la modifier.

                      Je propose que non seulement on mette cette fonction accessible pour les autres niveaux d'utilisateurs mais qu'en plus on ait un message spécifique pour ceux qui sont déjà connectés : on ne va quand même pas leur demander de s'identifier ou de s'inscrire puisque c'est déjà fait !
                      De plus ce sera plus "fun" puisqu'il faudra ajouter la surcharge des langues (pour le message) à la surcharge de la vue (pour le code).

                      Comme tu as déjà fait une surcharge de vue on va aller un peu plus vite.

                      1) Sauvegarder
                      Comme toujours avant de faire une modification sur le site faire une sauvegarde.
                      En fait c'est ça le plus important de la manip

                      2) Aller dans le template utilisé

                      3) Vérifier qu'il n'y a pas déjà une surcharge dans html/com_content/article (c'est la vue que l'on veut surcharger)

                      4) Créer la surcharge (substitution) de la vue com_content/article

                      5) Ouvrir le fichier de la vue html/com_content/article/default.php

                      6) Modifier le fichier de la vue
                      Le code à modifier est à la fin du fichier à partir de la ligne 278. Je mets ici la fin complète du fichier (c'est pas pour battre le record du post le plus long, c'est pour que ça soit plus lisible). Les ajouts sont en rouge (il n'y a que des ajouts). Attention, ligne 279 j'ai mis des // pour mettre la ligne en commentaire. J'ai aussi revu les indentations pour qu'elles correspondent au code ajouté.
                      Code:
                          <?php // Optional teaser intro text for guests ?>
                          <?php [COLOR=#ff0000]//[/COLOR] elseif ($params->get('show_noauth') == true && $user->get('guest')) : ?>
                          [COLOR=#ff0000]<?php elseif ($params->get('show_noauth') == true) : ?>[/COLOR]
                              <?php echo $this->item->introtext; ?>
                              [COLOR=#ff0000]<?php if ($user->get('guest')) : ?>
                      [/COLOR]            <?php //Optional link to let them register to see the whole article. ?>
                                  <?php if ($params->get('show_readmore') && $this->item->fulltext != null) :
                                      $link1 = JRoute::_('index.php?option=com_users&view=login');
                                      $link = new JUri($link1);?>
                                      <p class="readmore">
                                          <a href="<?php echo $link; ?>">
                                              <?php $attribs = json_decode($this->item->attribs); ?>
                                              <?php
                                              if ($attribs->alternative_readmore == null) :
                                                  echo JText::_('COM_CONTENT_REGISTER_TO_READ_MORE');
                                              elseif ($readmore = $this->item->alternative_readmore) :
                                                  echo $readmore;
                                                  if ($params->get('show_readmore_title', 0) != 0) :
                                                      echo JHtml::_('string.truncate', ($this->item->title), $params->get('readmore_limit'));
                                                  endif;
                                              elseif ($params->get('show_readmore_title', 0) == 0) :
                                                  echo JText::sprintf('COM_CONTENT_READ_MORE_TITLE');
                                              else :
                                                  echo JText::_('COM_CONTENT_READ_MORE');
                                                  echo JHtml::_('string.truncate', ($this->item->title), $params->get('readmore_limit'));
                                              endif; ?>
                                          </a>
                                      </p>
                                  <?php endif; ?>
                      [COLOR=#ff0000]        <?php else : ?>
                                  <?php // Message : access level is not enough to see the whole article ?>
                                  <div class="alert alert-block">
                                      <?php echo JText::_('COM_CONTENT_INSUFFICIENT_ACCESS_LEVEL'); ?>
                                  </div>
                              <?php endif; ?>[/COLOR]   
                          <?php endif; ?>
                          <?php
                          if (!empty($this->item->pagination) && $this->item->pagination && $this->item->paginationposition && $this->item->paginationrelative) :
                              echo $this->item->pagination;
                              ?>
                          <?php endif; ?>
                          <?php echo $this->item->event->afterDisplayContent; ?>
                      </div>
                      7) C'est quoi ce COM_CONTENT_INSUFFICIENT_ACCESS_LEVEL ?
                      C'est la clé de langue correspondant au message que l'on veut afficher. Elle va être traduite par Joomla dans la langue en cours. Comme il ne vaut mieux pas modifier les fichiers natifs de langue de Joomla, on va faire une surcharge. On va créer les traductions en anglais et en français puisque la config de Joomla!Fr est dans les deux langues. La méthode serait la même pour une autre langue.

                      a. Aller aux surcharges de langue
                      Extensions > Gestion des langues > Substitutions

                      b. Créer le message en anglais
                      • filtrer sur "English (United Kingdom) - Site" (pour n'avoir que l'anglais pour le frontend)
                      • cliquer sur Nouveau dans la barre d'outils
                      • dans "Chaîne de traduction" mettre : COM_CONTENT_INSUFFICIENT_ACCESS_LEVEL
                      • dans "Texte" mettre : <h4>Insufficient access level</h4>Your user access level is insufficient to see the whole article.
                      • vérifier que dans Langue il y a "English (United Kingdom) [en-GB)
                      • vérifier que dans Emplacement il y a "Site"
                      • cliquer sur "Enregistrer & Fermer"
                      • la chaîne de traduction s'est ajoutée à la liste

                      b. Créer le message en français
                      • filtrer sur "French (fr-FR) - Site" (pour n'avoir que le français pour le frontend)
                      • cliquer sur Nouveau dans la barre d'outils
                      • dans "Chaîne de traduction" mettre : COM_CONTENT_INSUFFICIENT_ACCESS_LEVEL
                      • dans "Texte" mettre : <h4>Niveau d'accès insuffisant</h4>Votre niveau d'accès utilisateur n'est pas suffisant pour voir la suite de cet article.
                      • vérifier que dans Langue il y a "French (FR) [fr-FR)
                      • vérifier que dans Emplacement il y a "Site"
                      • cliquer sur "Enregistrer & Fermer"
                      • la chaîne de traduction s'est ajoutée à la liste

                      Pour les curieux, les fichiers de surcharge de langue sont dans :
                      • language/overrides/en-GB.override.ini
                      • language/overrides/fr-FR.override.ini

                      Maintenant on a trois possibilités selon les niveaux des utilisateurs :
                      • non connectés : Veuillez vous identifier ou vous inscrire pour lire la suite...
                      • connectés mais n'ayant pas le niveau : Niveau d'accès insuffisant...
                      • connectés et ayant le niveau suffisant : article complet

                      Amicalement,
                      Rajoz

                      Commentaire


                      • #12
                        Re : Aperçu des articles réservés aux membres enregistrés

                        Hé bien ça fonctionne parfaitement....
                        Tes réponses sont aussi pédagogues qu'efficaces, et je te remercie infiniment

                        Amicalement,

                        Commentaire

                        Annonce

                        Réduire
                        Aucune annonce pour le moment.

                        Partenaire de l'association

                        Réduire

                        Hébergeur Web PlanetHoster
                        Travaille ...
                        X