Come creare una pagina solo con moduli e nessun componente?


10

In joomla, devo collegare ogni pagina a una vista componenti. Come posso creare una pagina senza output di componenti su di essa?

Esempio: sulla mia home page voglio solo un output del modulo. Per questo, posso collegare la home page a un "articolo vuoto", ma c'è un modo migliore per farlo senza usare un'estensione di terze parti?


2
Stai utilizzando un modello personalizzato o un modello commerciale? Chiedo perché molti di loro hanno un'opzione per chiudere completamente l'area del componente.
Brian Peat,

@BrianPeat Sto usando un modello personalizzato
web-tiki,

Ah ok. Bene, ci sono diverse buone risposte qui che dovrebbero funzionare allora :)
Brian Peat

Risposte:


15

Non c'è davvero un "modo migliore" di quello.

L'unica altra opzione è verificare se ti trovi sulla homepage nel tuo file modello. Per verificare se sei nella home page puoi utilizzare il metodo descritto nei documenti qui:

http://docs.joomla.org/How_to_determine_if_the_user_is_viewing_the_front_page

e fai qualcosa del tipo:

<?php
$menu = JFactory::getApplication()->getMenu();

if ($menu->getActive() != $menu->getDefault()) { ?>
        <jdoc:include type="component" />
<?php } ?>

E in questo modo non includi mai il tuo componente nella home page


1
A testa alta con questo metodo: se hai un link dalla homepage che non va in un'altra pagina, può apparire rotto se si carica sotto la voce di menu della homepage! Controlla eventuali collegamenti simili example.com/component/com_name/viewpoiché verrebbero caricati nella voce di menu predefinita e l'output del componente non verrà visualizzato.
David Fritsch,

Potresti voler aggiungere qualche altro controllo per assicurarti che il componente corrente e view ( JFactory::getApplication()->input->get('view')) non siano uguali a quelli della vista menu ( $menu->getActive()->view)
David Fritsch,

@DavidFritsch: penso che $ menu-> getActive () -> view, dovrebbe essere $ menu-> getActive () -> query ['view'];
FFrewin


4

Puoi avere più layout di modello nel tuo file indice.

<!--Layout 1-->
<?php if ($BConfig->html=='layoutA') : ?>

<jdoc:include type="component" />

<?php endif; ?>  <!--End Layout 1-->

<!--Dynamically Generated Layout 2-->
<?php if ($BConfig->html=='layoutB') : ?>

<jdoc:include type="modules" name="your-module"/>

<?php endif; ?> <!--End Layout 2-->

Quindi assicurati che il tuo file templateDetails includa l'opzione B. Quindi in Joomla! modelli, è possibile impostare un modello aggiuntivo utilizzando il layout b. Vai alla voce del menu Home, seleziona quel modello. Il componente non verrà caricato, ma il modulo lo farà.


2

Soluzione stupida, molto simile, ma abbastanza semplice:

  1. Crea una categoria di articoli
  2. Lasciare senza contenuto (articoli)
  3. Crea un link al menu
  4. Assegna i tuoi moduli a quel link di menu

Potrebbe essere necessario disattivare alcuni dettagli da nascondere per quella categoria nei parametri categoria e / o voce di menu.


1
Questo è fondamentalmente lo stesso di usare un articolo vuoto.
web-tiki,

1

È possibile creare un componente vuoto. Quindi nel componente com_menus puoi decidere con la pagina che non deve avere l'output semplicemente scegliendo quel componente vuoto. In quel componente, devi creare una vista e un modello default.php vuoto con il file default.xml, quindi vedrai questa opzione quando sceglierai il componente nel componente com_menus.


1

RocketThemes ha una pratica funzionalità per nascondere gli articoli in primo piano di com_content.

Uso una categoria vuota per ridurre al minimo l'output e nasconderlo con uno stile CSS.


1

Copia il modello, rimuovi il componente jdoc e assegna quello stile a qualsiasi voce di menu che non richiede il componente.


0

In Joomla! 3.x è possibile effettuare le seguenti operazioni:

  • Innanzitutto crea i tuoi moduli,
  • Crea una nuova categoria, all'interno di un nuovo articolo per il sito principale,
  • Verifica di aver abilitato il contenuto del plug-in - Carica moduli

Di default Joomla! include una libreria chiamata Bootstrap v2.3.2 , quindi è possibile utilizzare i CSS in questa libreria, ad esempio il sistema a griglia : http://getbootstrap.com/2.3.2/scaffolding.html#gridSystem

  • Da qui, nel tuo articolo puoi vedere un pulsante chiamato Modulo , basta creare una griglia semplice o molto complessa e assegnare i tuoi moduli a ciascun blocco.

Un vantaggio che puoi ottenere utilizzando questo modo è che puoi ottenere un modello più leggero con meno posizioni e meno codice php, js e css, quindi se non hai bisogno di molte funzionalità, puoi crearlo tu stesso.

Saluti.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.