web-dev-qa-db-fra.com

En savoir plus sur la fonctionnalité (texte d'introduction, texte intégral) dans la page de catégorie dans Joomla 3.x

Comme nous le savons tous dans la page Article de Joomla, une fonctionnalité de lecture supplémentaire est toujours possible <hr id="system-readmore"> pour afficher l'article au format introtext/fulltext.

Mais dans la page de description de la catégorie, l'option de fonctionnalité plus lue n'est pas disponible. Donc, si je veux ajouter le même type de fonctionnalité Lire plus dans la section de page Catégorie, que dois-je faire? J'ai essayé mais je n'ai trouvé aucune solution pour cela.

Y at-il un plugin disponible pour cela? Ou puis-je faire cela d'une autre manière?

2
indy

Réponse technique: Non, ce n'est pas possible de manière simple. La raison pour laquelle les articles ont un readmore est que nous séparons le texte et le stockons dans différentes colonnes de la base de données lorsque nous le lions à l’objet table ( https://github.com/joomla/joomla-cms/blob/ 3.4.1/libraries/legacy/table/content.php # L123-L137 ). c'est-à-dire que rien de tout cela n'est fait dans un plugin. Le plug-in readmore (editors-xtd) est simplement un mécanisme vous permettant d’insérer facilement une telle étiquette HR dans le corps de l’article. Désactivez-le et cette division continuera à fonctionner.

Le meilleur moyen de coder cela de la manière que vous pouvez espérer est de créer votre propre plugin de contenu sur l'événement onContentPrepare et d'implémenter un code similaire à celui de la classe ContentTable que j'ai indiquée ci-dessus. Vous pouvez ensuite créer vos variables full_text et intro_text ici. Le plugin d'intégration entre com_content et com_contact est probablement utile comme base pour ce travail ( https://github.com/joomla/joomla-cms/blob/3.4.1/plugins/content/contact/contact/contact.php ) et ce que vous faites devrait être beaucoup plus simple que ce que fait ce plugin - vous pouvez simplement regarder les données existantes sans avoir besoin de requêtes de base de données personnalisées. Je pense que cela ne devrait nécessiter qu'une douzaine de lignes de code.

TL/DR non, pas très facile - bien que j’ai suggéré une solution (notez que je n’ai pas vérifié JED, il est donc toujours possible que quelqu'un l’ait déjà fait: P)

4
George Wilson

Ce que j’ai fait, c’est encapsuler ce que j’ai considéré comme le "texte intégral" de toutes les descriptions de mes catégories dans un div.fulltext. Ensuite, dans l'élément de menu de la page des catégories répertoriant toutes mes catégories, dans l'onglet Affichage de la page, j'ai défini un paramètre de classe de page de categorieslist.

Ensuite, j'ai défini un style CSS sur 'display: none' pour .categorieslist .fulltext. par exemple

.categorieslist .fulltext {display: none;}

Ce n'est pas beau, mais c'est beaucoup plus facile que d'essayer d'imiter la manière dont le composant contenu le fait pour les articles. Et avouons-le, à quelle fréquence mettez-vous à jour les descriptions de catégorie?

Bonne chance. :)

0
Adam Gatt