[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, ...
    Un message d’erreur sur votre site Joomla, consultez la base de connaissance https://kb.joomla.fr
    ---
    UP, un plugin "couteau suisse" à 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 and cavo789 like this.
      Un message d’erreur sur votre site Joomla, consultez la base de connaissance https://kb.joomla.fr
      ---
      UP, un plugin "couteau suisse" à 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
           *
           * 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;
          
          /**
           * Plugin class for logout redirect handling.
           *
           * since  1.6
           */
          class PlgSystemRedirectprofil extends JPlugin
          {
              /**
               * Application object.
               *
               * @var    JApplicationCms
               * since  3.7.3
               */
              protected $app;
          
              /**
               * Load the language file on instantiation.
               *
               * @var    boolean
               * since  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.
               *
               * since   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.
               *
               * since   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)

                        https://www.dropbox.com/s/6vlbyzil2r...rofil.zip?dl=0
                        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

                            Annonce

                            Réduire
                            1 sur 2 < >

                            C'est [Réglé] et on n'en parle plus ?

                            A quoi ça sert ?
                            La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                            Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                            Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                            Comment ajouter la mention [Réglé] à votre discussion ?
                            1 - Aller sur votre discussion et éditer votre premier message :


                            2 - Cliquer sur la liste déroulante Préfixe.

                            3 - Choisir le préfixe [Réglé].


                            4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                            2 sur 2 < >

                            Assistance au forum - Outil de publication d'infos de votre site

                            Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                            Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                            Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                            UTILISER À VOS PROPRES RISQUES :
                            L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                            Problèmes connus :
                            FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                            Installation :

                            1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                            Archive zip : https://github.com/AFUJ/FPA/zipball/master

                            2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                            3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                            4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                            5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                            6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                            et remplacer www. votresite .com par votre nom de domaine


                            Exemples:
                            Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                            Télécharger le script fpa-fr.php dans: /public_html/
                            Pour executer le script: http://www..com/fpa-fr.php

                            Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                            Télécharger le script fpa-fr.php dans: /public_html/cms/
                            Pour executer le script: http://www..com/cms/fpa-fr.php

                            En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                            Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                            Voir plus
                            Voir moins
                            Travaille ...
                            X