Joomla.it Forum

Joomla! 3 => Joomla! 3 => : danielecr 19 Oct 2017, 17:17:33

: Nuovo router J3.8.1 custom error page getModule
: danielecr 19 Oct 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:
:
<?php $module JModuleHelper::getModule('menu'); ?>
<?php echo JModuleHelper::renderModule($module); ?> 

Anche questo menu viene caricato:
:
<?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:
:
<?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:
:
<?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?
: Re:Nuovo router J3.8.1 custom error page getModule
: danielecr 20 Oct 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.
: Re:Nuovo router J3.8.1 custom error page getModule
: danielecr 21 Oct 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().
: Re:Nuovo router J3.8.1 custom error page getModule
: Alex21 21 Oct 2017, 11:22:47
Pare che sia un bug.
Qui il link alla discussione github:
https://github.com/joomla/joomla-cms/issues/18369 (https://github.com/joomla/joomla-cms/issues/18369)
L'ho  letto.  Però non capisco se è un problema che riguarda solo beez  e protostar.
Ciao.
: Re:Nuovo router J3.8.1 custom error page getModule
: danielecr 21 Oct 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.
: Re:Nuovo router J3.8.1 custom error page getModule
: Ahmed Salvini 21 Oct 2017, 17:44:12
ma usando un ide di sviluppo tipo netbeans e andando su getModule da dei suggerimenti?
: Re:Nuovo router J3.8.1 custom error page getModule
: danielecr 21 Oct 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:

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.
: Re:Nuovo router J3.8.1 custom error page getModule
: Alex21 21 Oct 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!