[aide] plugin de redirection dynamique

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] [aide] plugin de redirection dynamique

    hello a tous j'ai un truc tout con a faire (je le pense ..) et je voudrais en profiter pour dev un petit plugin
    l'objectif : un plugin qui redirige un utilisateur vers un article dont il est l'auteur apres connexion
    vous auriez des pistes ?
    Société : http://www.com3elles.com
    Bénévole : http://www.flexicontent.org

  • #2
    Salut Yannick,

    Quel article ? Le dernier qu'il a écrit ?

    Sinon pour avoir la liste de ses articles, tu rediriges après connexion sur une page ou tu as fait un loadposition d'un module mod_articles_category. Je ne suis pas sûr qu'il prenne l'user connecté, mais c'est une petite modif sur un fork

    Je (tu) peux aussi adapter cette action de UP https://up.lomart.fr/demo/action-article-category
    C'est une bonne idée d'avoir la possibilité d'une liste des articles de la personne connectée, de l'auteur de l'article en cours, ...
    UP, le plugin universel à découvrir sur https//up.lomart.fr
    bgMax
    , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

    Commentaire


    • #3
      C'est tellement une bonne idée que je viens de l'ajouter pour ma prochaine version. Si tu as besoin ...
      PieceOfCake et cavo789 aiment ceci.
      UP, le plugin universel à découvrir sur https//up.lomart.fr
      bgMax
      , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

      Commentaire


      • #4
        En fait il n'y aura qu'un article par utilisateur
        pour la liste j'ai déjà
        Société : http://www.com3elles.com
        Bénévole : http://www.flexicontent.org

        Commentaire


        • #5
          Code:
          <?php
          /**
           * @package     Joomla.Plugin
           * @subpackage  System.logout
           *
           * [USER="64686"]Copyright[/USER]   Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
           * @license     GNU General Public License version 2 or later; see LICENSE.txt
           */
          
          defined('_JEXEC') or die;
          
          /**
           * Plugin class for logout redirect handling.
           *
           * [USER="57695"]since[/USER]  1.6
           */
          class PlgSystemRedirectprofil extends JPlugin
          {
              /**
               * Application object.
               *
               * @var    JApplicationCms
               * [USER="57695"]since[/USER]  3.7.3
               */
              protected $app;
          
              /**
               * Load the language file on instantiation.
               *
               * @var    boolean
               * [USER="57695"]since[/USER]  3.1
               */
              protected $autoloadLanguage = true;
          
              /**
               * Constructor.
               *
               * @param   object  &$subject  The object to observe -- event dispatcher.
               * @param   object  $config    An optional associative array of configuration settings.
               *
               * [USER="57695"]since[/USER]   1.6
               */
              public function __construct(&$subject, $config)
              {
                  parent::__construct($subject, $config);
          
                  // If we are on admin don't process.
                  if (!$this->app->isClient('site'))
                  {
                      return;
                  }
              }
          
              /**
               *
               *
               * @param   array  $user     Holds the user data.
               * @param   array  $options  Array holding options (client, ...).
               *
               * @return  boolean  Always returns true.
               *
               * [USER="57695"]since[/USER]   1.6
               */
              public function onUserAfterLogin($user)
              {
                  if ($this->app->isClient('site'))
                  {
                      $user =& JFactory::getUser(); // get user
                      $user_id = $user->get('username');
                      $urlredirect ="SQL pour trouver l'article voulu lié à l'utilisateur";
                  }
          
                  return $app->redirect(JRoute::_($urlredirec, false));
              }
          }
          Vous en pensez quoi ? avant que j'aille plus loin
          Société : http://www.com3elles.com
          Bénévole : http://www.flexicontent.org

          Commentaire


          • #6

            onUserAfterLogin ne s'éxécutera que après le login de l'utilisateur, donc ça ne redirige pas systématiquement "$user =& JFactory::getUser();" >> "$user = JFactory::getUser();" "$user_id = $user->get('username');" >> "$user_id = $user->get('id');" ensuite créer une requete SQL vers la table article en cherchant par $user_id une fois l'article et catégorie trouvé, tu fais un JRoute avec le slug et un redirect
            Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
            http://www.template-creator.com Outil de création de templates
            Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

            Commentaire


            • #7
              hello,

              Yannick, je ne comprends pas l'utilité de ce plugin ? Les auteurs ont généralement plusieurs articles alors pourquoi leur attribuer un article en particulier et quel article ?

              1. Dans ce principe similaire, certains ont ajouté un champ url caché dans le profil et effectuer une redirection vers cet url unique pour chaque membre sans avoir de plugin spécifique.
              C'est selon moi bien suffisant pour répondre à ton besoin. (au pire dans la JED tu peux trouver un plugin de redirection par article avec l'id user)

              2. Pour ma part, j'utilise la technique indiqué par lomart, c'est à dire un dashboard reprenant toutes les indications membre.
              Exemple sur un site privé (intranet entreprise ou association)....
              - ged : liste des documents accessibles (selon le groupe) avec espace privé de telechargement pdf (lecture possible mais telechargement uniquement avec souscription)
              - suivi de dossier : liste des formulaires envoyés et indication du dossier en cours... (un workflow qui sera remplacé je l'espère, par celui de J4 si l'intégration se fait)
              - offres d'emplois : si la personne est inscrite, elle peut suivre les nouvelles offres dans son activité...
              - actus liée à sa profession (dernière publications filtrées) + accès aux favoris
              - alerte personnalisée + notification push

              Pour réaliser le dashboard, je n'utilise aucun module joomla car cela me ferai trop d'assignation inutile mais je développe des addons dans un page builder
              ou je réalise un composant développé spécifiquement afin de gagner en performance. La plupart des éléments sont en ajax et comme c'est dans des tables perso,
              cela devient plus facile de créer l'API Rest et l'application smartphone. Bref, une présentation top pour un site collant parfaitement au besoin et évolutif.

              Si le développement ou la css n'est pas votre fort, créer une page dashboard avec un page builder me semble la solution accessible à tous.
              Mes clients sont généralement ravis car ils peuvent maitriser l'affichage et la disposition en glisser/deposer (drag & drop )
              donc la redirection vers cette page me semble indiqué dans la plupart des cas... et on oublie cet histoire de plugin

              En terme de fréquentation, j'ai plusieurs sites réalisés sous joomla 3 depuis plusieurs années (site associatif, club, intranet d'entreprise) de 900 à 6000 membres, entre 30 et 150 auteurs...









              Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

              Commentaire


              • #8
                Envoyé par daneel Voir le message
                hello,

                ...

                Pour réaliser le dashboard, je n'utilise aucun module joomla car cela me ferai trop d'assignation inutile mais je développe des addons dans un page builder
                ou je réalise un composant développé spécifiquement afin de gagner en performance. La plupart des éléments sont en ajax et comme c'est dans des tables perso,
                cela devient plus facile de créer l'API Rest et l'application smartphone. Bref, une présentation top pour un site collant parfaitement au besoin et évolutif.

                ....
                Salut daneel.

                Tu évoques plein de trucs intéressants dans ta réponse, et qui vont bien au-delà de la demande initiale de ce fil, mais sans trop approfondir toutefois.
                Ce n'est pas ton habitude pourtant.

                Par exemple, tu évoques une API Rest, moi qui "REST" sur ma faim concernant cette fameuse API qui devrait être intégrée dans le framework de Joomla, annoncée depuis longtemps déjà et toujours retardée à la prochaine version...

                Il y a quelques années, certains de nos développeurs préférés (Hikashop je crois) nous avaient présentés aux JDays une API perso, mais sans suite non plus (il me semble).

                Qu'utilises-tu donc, une API Rest totalement externe à Joomla ?

                (Oups, je sais on déborde du sujet initial...)
                Dernière édition par roland_d_alsace à 13/07/2018, 19h07
                A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                Rejoignez le Joomla Users Groupe Alsace...
                roland_d_alsace va-t-il devenir roland_du_grand_est ?

                Commentaire


                • #9
                  oui en fait la demande initiale de Yannick n'est pas vraiment utile car dans la majorité, on réalise une administration coté front.
                  C'était plus pour souligner cela que je n'ai pas été plus loin. De plus, son idée a été apparemment résolue sur facebook.

                  je te réponds donc vite fait concernant l'API, c'est un plugin que j'ai développé pour des requêtes multiples que ce soit pour des articles (liste et publication) mais aussi d'autres contenu et gérer l'authentification sécurisée. Si cela t’intéresse, en mp
                  Dernière édition par daneel à 13/07/2018, 19h24
                  Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

                  Commentaire


                  • #10
                    hello en fait j'ai deja le dasboard et tout et tout .... n'oublié pas que j'utilise souvent FLEXIcontent et que tout est dedans (le dashboard par user ...5m)...
                    là c'est plus sixous l'idée que que le profil utilisateur est trop limité pour ce que je veus faire je suis donc passé par un article
                    le profil de mon utilisateur est un article, permettant de gérer plus finement mes informations et la relation admin/utilisateur
                    l'idée pour rendre les choses c'est d'attribué 1 article / utilisateur où il aura son profil + plein d'autre chose
                    donc je sais qu'il n'y aura qu'un article par utilisateur d'où mon besoin de faire une redirection vers le dit article
                    donc en soit il me fauddrait :
                    - checker si une url est appelé
                    - si oui on attaque le traitement
                    - on regarde le nom de l'utilisateur
                    - on créer une requette pour trouver l'article
                    - on construit l'url en sef
                    - on redirige

                    faut que je regarde le fait de checker l'url .. si vous avez des idées ?
                    Société : http://www.com3elles.com
                    Bénévole : http://www.flexicontent.org

                    Commentaire


                    • #11
                      Petite mise jour de mon code ....
                      Code:
                      <?php
                      /**
                       * @package     Joomla.Plugin
                       * @subpackage  System.logout
                       *
                       * Copyright   Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
                       * @license     GNU General Public License version 2 or later; see LICENSE.txt
                       */
                      
                      defined('_JEXEC') or die;
                      jimport('joomla.plugin.plugin');
                      require_once JPATH_SITE . '/components/com_content/helpers/route.php';
                      
                      class PlgSystemRedirectprofil extends JPlugin
                      {
                          public function __construct(&$subject, $config)
                          {
                              parent::__construct($subject, $config);
                          }
                      
                          public function onAfterDispatch()
                          {
                            $app = JFactory::getApplication();
                            $document  = JFactory::getDocument();
                            // get the params from the plugin options
                            $plugin = JPluginHelper::getPlugin('system', 'redirectprofil');
                            $pluginParams = new JRegistry($plugin->params);
                            $urlRecordParams = $pluginParams->get('urlrecord');
                            $urlRecord = JURI::root().$urlRecordParams ;
                            dump($urlRecord, 'url a écouter');
                            $urlCurrent= JURI::getInstance()->toString();
                            dump($urlCurrent, 'url courante');
                            $user = JFactory::getUser(); // get user
                            $user_id = $user->get('id');
                            dump($user_id, 'requette');
                            $catid=22;
                            $db = JFactory::getDbo();
                            $queryUserprofil = "SELECT id FROM #__content WHERE created_by=$user_id AND catid=$catid";
                            dump($queryUserprofil, 'requette');
                            $db->setQuery($queryUserprofil);
                            $itemUserprofil = $db->loadRow();
                            //print_r($itemUserprofil);
                            //$urlredirect = JRoute::_(ContentHelperRoute::getArticleRoute($itemUserprofil[0], $catid));
                            $urlredirect = "index.php?option=com_content&view=article&id=$itemUserprofil[0]&itemid=46";
                            dump($urlredirect, 'url de redirection');
                              if ($urlCurrent === $urlRecord)
                              {
                              $app->redirect($urlredirect);
                              }
                          }
                      }
                      j'utilise jdump ...
                      je capte pas pourquoi la redirection me repond catégorie introuveable .... si je met l'url dans le navigateur ca marche pourtant
                      Société : http://www.com3elles.com
                      Bénévole : http://www.flexicontent.org

                      Commentaire


                      • #12
                        Pourquoi tu fais ta query en fonction de la catégorie ?
                        je te mets un plugin fais à l'arrache mais qui fonctionne (à vérifier sous quelles conditions)

                        Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
                        http://www.template-creator.com Outil de création de templates
                        Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

                        Commentaire


                        • #13
                          ok je vais tester ca ! en fait je fait ma query en fonction de la cat pour eviter un effet de bord ...
                          comme ca je stock mes profils dans un cat specifique
                          Mille merci encore
                          Société : http://www.com3elles.com
                          Bénévole : http://www.flexicontent.org

                          Commentaire


                          • #14
                            bon en soit c'était tout con .... onafterinitialise .... par rapport au dispatch
                            ... mille merci
                            Société : http://www.com3elles.com
                            Bénévole : http://www.flexicontent.org

                            Commentaire


                            • #15
                              Qqun voudrais le code je le met sur gitub ?
                              Société : http://www.com3elles.com
                              Bénévole : http://www.flexicontent.org

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X