Back to top

Autore Topic: Nuovo router J3.8.1 custom error page getModule  (Letto 1370 volte)

Offline danielecr

  • Abituale
  • ****
  • Post: 1357
    • Mostra profilo
Nuovo router J3.8.1 custom error page getModule
« il: 19 Ott 2017, 17:17:33 »
Ciao a tutti,
impostando il nuovo router in joomla 3.8.1 non riesco a caricare alcuni moduli nella pagina di errore (error.php) del template beez3, che ho modificato.

Questo menu viene caricato:
Codice: [Seleziona]
<?php $module JModuleHelper::getModule('menu'); ?>
<?php echo JModuleHelper::renderModule($module); ?> 

Anche questo menu viene caricato:
Codice: [Seleziona]
<?php
$lang 
JFactory::getLanguage();
$result $lang->getTag();
if (
$result=="it-IT") { 
$module JModuleHelper::getModule('menu''Menu');
echo 
JModuleHelper::renderModule($module);

else { 
$module JModuleHelper::getModule('menu''Menu laterale eng');
echo 
JModuleHelper::renderModule($module);
}
?>


Lo slideshow invece non viene caricato:
Codice: [Seleziona]
<?php
$lang 
JFactory::getLanguage();
$result $lang->getTag();
if (
$result=="it-IT") {
$module JModuleHelper::getModule('slideshowck''Slideshow CK it');
echo 
JModuleHelper::renderModule($module);

else {
$module JModuleHelper::getModule('slideshowck''Slideshow CK');
echo 
JModuleHelper::renderModule($module);
}
?>


E nemmeno questo modulo nel footer viene caricato:
Codice: [Seleziona]
<?php
$lang 
JFactory::getLanguage();
$result $lang->getTag();
if (
$result=="it-IT") { 
$module JModuleHelper::getModule('custom''Footer_pers_ridotto');
echo 
JModuleHelper::renderModule($module);

else { 
$module JModuleHelper::getModule('custom''Footer_pers - eng - ridotto');
echo 
JModuleHelper::renderModule($module);
}
?>


Con il router tradizionale invece si visualizzano tutti..qualcuno ha idea del perchè non vengano visualizzati con il nuovo router?

Offline danielecr

  • Abituale
  • ****
  • Post: 1357
    • Mostra profilo
Re:Nuovo router J3.8.1 custom error page getModule
« Risposta #1 il: 20 Ott 2017, 11:58:57 »
Bho..non ne vengo a capo, per ora ho aperto un issue su github, vediamo se è un problema solo mio almeno.
Tutti i menu vengono processati correttamente, non funzionano tutti gli altri moduli solo con il nuovo router.

Offline danielecr

  • Abituale
  • ****
  • Post: 1357
    • Mostra profilo
Re:Nuovo router J3.8.1 custom error page getModule
« Risposta #2 il: 21 Ott 2017, 10:59:06 »
Pare che sia un bug.
Qui il link alla discussione github:
https://github.com/joomla/joomla-cms/issues/18369

Il problema si presenta solo con il nuovo router e solo se il modulo è assegnato a specifici menu.
Un workaround per ora è quello di creare il modulo non assegnando la posizione e assegnarlo a tutte le pagine, per poi richiamarlo con getModule() e visualizzarlo con renderModule().

Offline Alex21

  • Appassionato
  • ***
  • Post: 645
    • Mostra profilo
Re:Nuovo router J3.8.1 custom error page getModule
« Risposta #3 il: 21 Ott 2017, 11:22:47 »
Pare che sia un bug.
Qui il link alla discussione github:
https://github.com/joomla/joomla-cms/issues/18369
L'ho  letto.  Però non capisco se è un problema che riguarda solo beez  e protostar.
Ciao.

Offline danielecr

  • Abituale
  • ****
  • Post: 1357
    • Mostra profilo
Re:Nuovo router J3.8.1 custom error page getModule
« Risposta #4 il: 21 Ott 2017, 11:51:05 »
Secondo me no, è un problema più generale, e probabilmente riguarda più il getModule che il renderModule. A parte il richiamarlo dall'error.php potrebbe essere un problema se viene usato in estensioni.

Offline Ahmed Salvini

  • Appassionato
  • ***
  • Post: 337
    • Mostra profilo
Re:Nuovo router J3.8.1 custom error page getModule
« Risposta #5 il: 21 Ott 2017, 17:44:12 »
ma usando un ide di sviluppo tipo netbeans e andando su getModule da dei suggerimenti?

Offline danielecr

  • Abituale
  • ****
  • Post: 1357
    • Mostra profilo
Re:Nuovo router J3.8.1 custom error page getModule
« Risposta #6 il: 21 Ott 2017, 17:57:38 »
Non ho provato, ma l'ultima risposta su github di csthomas sembra chiarire abbastanza bene la causa di ciò che accade:

Citazione
Experimental routing does not set any Itemid on page /whatever and return 404 URL invalid but stable routing set Itemid to home page and return 404 Article not found.
As we know Joomla loads (for not yet patched error.php in beez3) modules based on menu item.
If menu item is null or 0 then Joomla will loads only modules with assignment to all pages or to IIRC except selected.
If there is no search module enabled for supplied Itemid then the module will not be displayed. And the issue is about this (when experimental routing does not set Itemid to home page).
The other way is: If you try to load module by name with prefix 'mod_' as in #18375 then Joomla creates dummy object of module and executes module with empty/default settings.
For mod_custom this may do not work because if Joomla does not find any module (using Itemid) then creates dummy object with empty text and empty parameters.
Module custom with empty text is useless. Some other modules also could have a problem to display content without parameters from db.

Offline Alex21

  • Appassionato
  • ***
  • Post: 645
    • Mostra profilo
Re:Nuovo router J3.8.1 custom error page getModule
« Risposta #7 il: 21 Ott 2017, 19:36:54 »
Secondo me no, è un problema più generale, e probabilmente riguarda più il getModule che il renderModule. A parte il richiamarlo dall'error.php potrebbe essere un problema se viene usato in estensioni.
beh, rifaranno il router ...
Non tutti i template hanno quel pezzo di codice in error.php 
[<?php $module = JModuleHelper::getModule('menu'); ?>
<?php echo JModuleHelper::renderModule($module); ?>]. 
Favourite per esempio non ce l'ha.
Sei un eroe ad esaminare joomla senza un ide  :)
Ciao!


 



Web Design Bolzano Kreatif