it-swarm-eu.dev

JLayout: sovrascrive il layout joomla.edit.params solo per com_content

Sto cercando un modo per sovrascrivere il layout joomla.edit.params solo per il com_content, che è reso con: JLayoutHelper::render('joomla.edit.params', $this)
sul:
administrator/components/com_content/view/article/tmpl/edit.php, a circa la linea 135.

Come posso utilizzare un layout diverso solo per il componente com_content?

2
FFrewin

È possibile creare una sostituzione per il layout di modifica dei parametri solo per il componente com_content.

In generale, il sistema JLayout cercherà le sostituzioni nelle seguenti cartelle, con l'ordine di priorità come mostrato:

1. templates/mytemplate/html/layouts/com_mycomponent
2. components/com_mycomponent/layouts
3. templates/mytemplate/html/layouts
4. layouts

Esiste una presentazione approfondita del nuovo JLayout qui .

Di seguito descriverò come ho fatto questo override, poiché avevo anche bisogno di sovrascrivere il template edit.php per com_content.

Per prima cosa dovrai creare una nuova cartella per le sostituzioni del layout personalizzato. Vorrei scegliere di creare una cartella denominata "sostituzioni" e inserirla:

administrator/templates/isis/html/layouts/overrides

Il metodo JLayoutHelper:render Cercherà prima all'interno di questa cartella quando si cerca il layout joomla.edit.params. Per caricarlo, dovrai mantenere la stessa struttura all'interno della cartella delle sostituzioni. Quindi il file params.php dovrebbe essere posizionato come: /overrides/joomla/edit/params.php

Quindi, dovrai creare una sostituzione per il file modello edit.php della vista articolo, da cui chiamerai il layout personalizzato.

All'interno della cartella html di isis temlpate, creare una cartella per le sostituzioni di com_content, denominarla "com_content", quindi una cartella per i file modello della vista articoli, denominata "articolo". Copia il file edit.php dal componente e rilascialo nella cartella degli articoli.

Ora, all'interno di edit.php, puoi regolare il metodo JLayoutHelper :: render e passargli un nuovo percorso di base per cercare il layout alternativo come di seguito:

<?php echo JLayoutHelper::render('joomla.edit.params', $this, $basePath = JPATH_ADMINISTRATOR .'/templates/isis/html/layouts/overrides'); ?>

Questo cercherà un layout params.php, all'interno della cartella: administrator/templates/isis/html/layouts/overrides/joomla/edit.

Puoi semplificare le cose semplicemente inserendo params.php nella cartella delle sostituzioni e chiamandolo come:

<?php echo JLayoutHelper::render('params', $this, $basePath = JPATH_ADMINISTRATOR .'/templates/isis/html/layouts/overrides'); ?>

Infine, ricorda di aggiungere anche i file index.html all'interno di qualsiasi cartella appena creata.

JLayout Link utili:

  1. Presentazione JLayout alla rivista Joomla
  2. Condivisione di layout tra viste o estensioni - Tutorial
  3. Joomla: API layout
3
FFrewin