web-dev-qa-db-fra.com

Charger le module dans l'article en vedette

Ce que j'utilise:
- Version 2.5
- cadre de portique

Avoir besoin:
Je dois placer dans ma page d'accueil un module de diaporama à l'intérieur ducorps principalcomme unarticle vedette.

Ce que j'ai fait:
Installé un module de diaporama et placé temporairement dans la position de maintien du portique pour voir si cela fonctionnait (cela fonctionnait), puis déplacé dans une position de "diaporama" qui n’existait pas auparavant.

Créé un nouvel article, avec le contenu suivant: {loadposition slideshow} Et définissez-le sur l'état en vedette.

Résultat:
L'article a été publié correctement, mais la limite de caractères introtext a ajusté le code du module réel à 100 caractères, ce qui l'a rendu inutile.

Ce que j'ai déjà essayé de résoudre le problème:

  • Modification de l'article de diaporama de la base de données en ajoutant le code loadmodule dans le champ de texte intégral (qui était à l'origine vide),
    a ensuite modifié components/com_content/view/featured/tmpl/default_item.php en remplaçant echo $this->item->introtext; par un if pour identifier mon identifiant d'article de diaporama, puis interroger la base de données pour rechercher le champ de texte intégral et l'exécuter en écho. ce truc fonctionne mais la fonction loadmodule ne fonctionne pas, il est donc affiché sous forme de HTML simple. J'en déduis que l'introtexte est traité différemment du fulltext puisque ce qu'il y a entre crochets est interprété comme un code uniquement lorsqu'il est répercuté comme un introtext et cette couche me manque.

  • Modifié modules/mod_articles_category/helper.php Pour rompre l'introtext_limit 100, trouvant malheureusement que cela n'est pas appelé pour mes articles en vedette (ajouté dump($item, 'some name')) qui ne renvoie que les articles qui se trouvent dans la barre latérale d'actualités, même si tous mes articles en vedette, y compris les diaporamas sont classés)

  • essayé un million de combinaisons différentes de ce qui précède (à savoir :{loadmodule slideshow}
    {module [myslideshow_article_id]} <- un plugin de chargeur de module que j'ai essayé, ...) qui sont trop longs à mettre ici.

  • A recherché dans tout le dossier du projet les fichiers contenant 'introtext' dans leur code, cherchant beaucoup, mais rien qui ne le règle réellement (sauf helper.php of course)

  • A recherché l'API Joomla

  • Googlé pour tout ce qui m'est venu à l'esprit ne trouvant aucune solution de travail.

  • Viens ici :)

Merci

1
Stefano Minin

Votre besoin n'est pas clair. Si vous souhaitez ajouter un diaporama dans un module d'un article sélectionné, consultez Modules Anywhere par le boursier de NoNumber. Dans ce cas, vous devez inclure votre module dans un article sélectionné pour afficher les diapositives.

2
Sheldon Seale

Votre article principal peut contenir une balise readmore avant le code loadposition que vous ajoutez. Vérifiez le code source de votre article (appuyez sur la touche < > si vous utilisez TinyMCE) et recherchez le code suivant dans votre article:

<hr id="system-readmore" />

C’est là que Joomla devrait terminer le texte d’introduction. Assurez-vous que le {loadposition slideshow} code est trouvé avant la balise readmore. Essayez de le placer avant n'importe quel texte de votre article, pour voir s'il apparaît.

D'où vient la limite de 100 caractères d'introduction en texte? Utilisez-vous K2 ou un autre CCK, ou est-ce Joomla? Joomla lui-même ne doit pas rogner votre texte d'introduction, ni par caractère ni par compte Word, à moins que votre modèle ne dispose d'une sorte de substitution pour cela.

Mise à jour: Je ne vois aucune raison pour laquelle ce que vous essayez de faire ne fonctionnerait pas, Joomla n'a pas de limite de caractères pour le texte d'introduction par défaut, il peut être aussi long que vous le souhaitez.

Sauf s'il doit s'agir d'un article sélectionné et que vous affichez d'autres articles sur la même page, essayez d'afficher l'article en utilisant un élément de menu "Un seul article", ou peut-être un "Blog de catégorie".

Vous dites que le module fonctionne correctement lorsqu'il est publié à une position de module normale. Je suppose donc que le module lui-même fonctionne. Avez-vous vérifié si votre article en contenait Avez-vous vérifié si votre article contient des balises HTML ouvertes? (par exemple un <div> sans fermeture </div>)?

Un autre test consiste à créer un nouvel article, ajoutez {loadposition slideshow} (et rien d’autre) dans le texte et définissez-le comme décrit.

0
johanpw