deux modules en {loadposition xxx} dans un meme article

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

  • [RÉGLÉ] deux modules en {loadposition xxx} dans un meme article

    bonjour,

    je souhaite integrer deux modules dans un article, pour ce faire j'ai creer donc deux modules, je les ai assigné a cet article, un a la position "rouge" et l'autre "bleue".

    dans mon article je met :

    {loadposition rouge}

    puis un peu plus bas

    {loadposition bleue}

    et le probleme c'est que j'ai bien deux modules, mais je me retrouve avec deux fois le contenu du module rouge, le module dont la position est "bleue" présente le contenu du "rouge".

    si j'inverse et que je place d'abord le {loadposition bleue} je me retrouve alors avec deux module dont le contenu est celui du "bleue" .

    bref est il possible de charger dans un article deux modules différents avec la methode {loadposition xxx} ?

  • #2
    Re : deux modules en {loadposition xxx} dans un meme article

    salut crasse,

    Oui il est possible de charger 2 modules dans un article par le biais de {loadposition xxx}, Je l'ai fait avec un Joomla 1.5. Ton problème viens certainement d'un détail, si tu reprends depuis le début:

    - Tu utilises quelle version de Joomla ?
    - Le plugin "load module" est bien installé/activé ?
    - Tes 2 modules "Bleu" et "Rouge" on chacun leurs positions (bleu/rouge) ?
    - Lorsque tu sauvegarde ton article, l'éditeur ne te nettoie pas le code (show/hide editor) ?
    - Encapsule tes tags {} dans des div... si ça ne fonctionne toujours pas (je pense pas que cela fasse une grande différence)

    Commentaire


    • #3
      Re : deux modules en {loadposition xxx} dans un meme article

      re,

      merci pour votre aide !

      en fait j'avai tout testé et tout fait a peu pres correctement, par contre j'ai decouvert ailleurs que joomla 1.7 (sur lequel je bosse la) avait un probleme de prise en charge de modules loadposition multiple et qu'il fallait mettre a jour le fichier loadmodule php avec un nouveau !

      depuis tout marche nickel

      Commentaire


      • #4
        Re : deux modules en {loadposition xxx} dans un meme article

        j'ai le même problème, peux tu m'indiquer le chemin de la mise à jour du fichier loadmodule.php.

        Merci d'avance

        Commentaire


        • #5
          Re : deux modules en {loadposition xxx} dans un meme article

          salut, je n'ai pas retrouvé le site de la personne qui fournissait le loadmodule corrigé, mais je peux te filer le contenu du loadmodule qui fonctionne ici (il vient du mien), tu n'as qu'a remplacé le contenu entier de ton fichier loadmodule par celui-ci :


          <?php
          /**
          * @version $Id$
          * @package Joomla.Plugin
          * @subpackage Content.loadmodule
          * @copyright Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
          * @license GNU General Public License version 2 or later; see LICENSE.txt
          */

          // no direct access
          defined('_JEXEC') or die;

          jimport('joomla.plugin.plugin');

          class plgContentLoadmodule extends JPlugin
          {
          protected static $modules = array();
          protected static $mods = array();
          /**
          * Plugin that loads module positions within content
          *
          * @param string The context of the content being passed to the plugin.
          * @param object The article object. Note $article->text is also available
          * @param object The article params
          * @param int The 'page' number
          */
          public function onContentPrepare($context, &$article, &$params, $page = 0)
          {
          // simple performance check to determine whether bot should process further
          if (strpos($article->text, 'loadposition') === false && strpos($article->text, 'loadmodule') === false) {
          return true;
          }

          // expression to search for (positions)
          $regex = '/{loadposition\s+(.*?)}/i';
          $style = $this->params->def('style', 'none');
          // expression to search for(modules)
          $regexmod = '/{loadmodule\s+(.*?)}/i';
          $title = null;
          $stylemod = $this->params->def('style', 'none');

          // Find all instances of plugin and put in $matches for loadposition
          // $matches[0] is full pattern match, $matches[1] is the position
          preg_match_all($regex, $article->text, $matches, PREG_SET_ORDER);
          // No matches, skip this
          if ($matches) {
          foreach ($matches as $match) {

          $matcheslist = explode(',',$match[1]);

          if (!array_key_exists(1, $matcheslist)) {
          $matcheslist[1] = null;
          }
          if (!array_key_exists(2, $matcheslist)) {
          $matcheslist[2] = null;
          }

          $position = trim($matcheslist[0]);
          $style = trim($matcheslist[1]);

          $output = $this->_load($position,$style);
          // We should replace only first occurrence in order to allow positions with the same name to regenerate their content:
          $article->text = preg_replace("|$match[0]|", addcslashes($output, '\\'), $article->text, 1);
          }
          }
          // Find all instances of plugin and put in $matchesmod for loadmodule

          preg_match_all($regexmod, $article->text, $matchesmod, PREG_SET_ORDER);
          // If no matches, skip this
          if ($matchesmod){
          foreach ($matchesmod as $matchmod) {

          $matchesmodlist = explode(',',$matchmod[1]);
          //We may not have a specific module so set to null
          if (!array_key_exists(1, $matchesmodlist)) {
          $matchesmodlist[1] = null;
          }
          // We may not have a module style so set to null.
          if (!array_key_exists(2, $matchesmodlist)) {
          $matchesmodlist[2] = null;
          }

          $module = trim($matchesmodlist[0]);
          $name = trim($matchesmodlist[1]);
          $style = trim($matchesmodlist[2]);
          // $match[0] is full pattern match, $match[1] is the module,$match[2] is the title
          $output = $this->_loadmod($module, $name, $style);
          // We should replace only first occurrence in order to allow positions with the same name to regenerate their content:
          $article->text = preg_replace("|$matchmod[0]|", addcslashes($output, '\\'), $article->text, 1);
          }
          }
          }

          protected function _load($position, $style = 'none')
          {
          if (!isset(self::$modules[$position])) {
          self::$modules[$position] = '';
          $document = JFactory::getDocument();
          $renderer = $document->loadRenderer('module');
          $modules = JModuleHelper::getModules($position);
          $params = array('style' => $style);
          ob_start();

          foreach ($modules as $module) {
          echo $renderer->render($module, $params);
          }

          self::$modules[$position] = ob_get_clean();
          }
          return self::$modules[$position];
          }
          // This is always going to get the first instance of the module type unless
          // there is a title.
          protected function _loadmod($module, $title, $style = 'none')
          {
          if (!isset(self::$mods[$module])) {
          self::$mods[$module] = '';
          $document = JFactory::getDocument();
          $renderer = $document->loadRenderer('module');
          $mod = JModuleHelper::getModule($module, $title);
          // If the module without the mod_ isn't found, try it with mod_.
          // This allows people to enter it either way in the content
          if (!isset($mod)){
          $name = 'mod_'.$module;
          $mod = JModuleHelper::getModule($name, $title);
          }
          $params = array('style' => $style);
          ob_start();

          echo $renderer->render($mod, $params);

          self::$mods[$module] = ob_get_clean();
          }
          return self::$mods[$module];
          }
          }

          Commentaire


          • #6
            Re : deux modules en {loadposition xxx} dans un meme article

            Merci,

            je suis un adepte du loadmenu sous 1.5, je commence un site en 1.7 donc peut être très utile pour moi.

            Commentaire

            Annonce

            Réduire
            Aucune annonce pour le moment.

            Partenaire de l'association

            Réduire

            Hébergeur Web PlanetHoster
            Travaille ...
            X