web-dev-qa-db-fra.com

Comment étendre la catégorie de contenu

Je peux créer des remplacements ou des mises en page alternatives dans template/html/composant/mais comment puis-je étendre la requête en fonction des paramètres de ma nouvelle mise en page? Comment puis-je étendre le modèle sans casser le noyau?

1
poproar

Nous allons être un peu plus approfondis pour que les gens puissent lire ceci et comprendre ce que vous voulez dire par "contournement" s'ils ont un problème similaire.

Dans votre modèle, vous devriez avoir un dossier HTML

Pour créer une nouvelle vue pour un composant (c'est le même principe pour les modules, j'utiliserai COM_CONTENT dans cet exemple)

  • Créez un dossier appelé com_content
  • Créez un dossier pour la vue que vous souhaitez modifier. Vous pouvez voir la liste des vues en allant dans (root)/components/com_content/views

Dans ce cas, disons que nous voulons créer un remplacement pour un article, une archive et une catégorie - Copiez le contenu (fichiers de vue php) de (root)/components/com_content/views/(view)/tmpl dans le (modèle)/html/com_content/(views) - Vous n'avez PAS besoin du dossier tmpl - Les fichiers php sont la seule chose que vous devez copier pour écraser une vue.

Donc, notre structure de dossier du modèle sera

enter image description here

Je suis sûr que vous savez mais ceci, mais juste pour clarifier

default.php serait le fichier de modèle principal

default_items.php serait un bloc du modèle default.php, probablement une vue distincte telle qu'une grille

Bien joué! Vous avez maintenant un remplacement que vous pouvez modifier sans vous soucier de la rupture d’une mise à jour et vous ajoutez le nouveau code que vous voulez. Cependant, vous devrez peut-être encore apporter quelques modifications mineures à view.html.php, qui génère généralement les variables.

C’est toutefois la solution la plus simple mais la plus simple. Cependant, pour modifier le modèle ou le contrôleur, vous avez besoin de l’aide d’un plug-in tiers.

Plutôt que de copier/coller mot pour mot, je vais simplement vous renvoyer au court article qui devrait vous faire avancer.

http://docs.joomla.org/How_to_override_the_component_mvc_from_the_Joomla!_core

2
MOLEDesign