User Tools

Site Tools


doc:appunti:linux:sa:mediawiki_1_30

MediaWiki 1.30 su Debian Stretch

MobileFrontend

La skin predefinita Vector non ha buone caratteristiche in ambiente mobile (smartphone). È possibile avere un Design responsivo installando un'estensione e una skin opportuna; la soluzione più comune prevede l'uso dell'estensione MobileFrontend e della skin MinervaNeue. Le impostazioni da mettere in LocalSettings.php sono:

wfLoadSkin('Vector');
wfLoadSkin('MinervaNeue');
$wgDefaultSkin = 'vector';
$wgMFDefaultSkinClass = 'SkinMinerva';
 
wfLoadExtension( 'MobileFrontend' );
$wgMFAutodetectMobileView = true;
// Hide switch-language button in Minerva skin
$wgMinervaAlwaysShowLanguageButton = false;

Altre possibili configurazioni dell'estensione ​MobileFrontend sono spiegate nel README.md. Pare che tutto funzioni regolarmente con il meccanismo di cache predefinito.

Per forzare la visualizzazione mobile su un desktop si può aggiungere'URL il parametro ?useformat=mobile. Altri parametri utili sono &mobileaction=toggle_view_desktop e &mobileaction=toggle_view_mobile.

Problema della pagina principale

C'è un problema nella versione mobile la Pagina principale viene visualizzata in modo speciale: si vedono i titoli delle sezioni, ma le sezioni sono collassate (nascoste), inoltre non compare la freccia sul titolo che consente l'espansione, come avviene per tutte le altre pagine.

La motivazione di questo problema può essere dedotta da questo articolo: Mobile Gateway/Mobile homepage formatting. Vi è una lunga discussione sulla necessità di tale comportamento (in breve: tutti i siti Wikimedia hanno la home page formattata in modo speciale), vedere il ticket T176414 datl titolo “<h2> expansion fails on Main Page, hence no sections displayed in mobile version”. È possibile fare una semplice modifica per eliminare la gestione speciale della prima pagina, vedere questa patch.

Nel file skins/MinervaNeue/resources/skins.minerva.toggling/init.js si rimuove la riga 40:

!mw.config.get( 'wgIsMainPage' ) &&

Dominio dedicato alla versione mobile

È pratica diffusa che un sito sia disponibile nelle due versioni desktop e mobile sotto due nomi di dominio diversi, ad esempio www.dominio.tld e www.m.dominio.tld. L'estensione ​MobileFrontend supporta questa opzione aggiungendo la configurazione:

$wgMobileUrlTemplate = '%h0.m.%h1.%h2';

Apache non ha bisogno di alcuna configurazione speciale: è il PHP di MediaWiki+​MobileFrontend che decide di servire il contenuto mobile quando c'è corrispondenza dell'URL richiesto con il valore di $wgMobileUrlTemplate. Tuttavia in ambiente desktop l'uso del dominio mobile non ha effetto, viene visualizzata sempre la versione desktop, mentre l'autodetect del mobile non funziona quando si richiede il dominio desktop.

Considerato che l'autodetect funziona bene e che è sempre possibile passare da una versione all'altra con il link opportuno mostrato in fundo alle pagine, l'utilizzo di $wgMobileUrlTemplate è inutile.

Un valido motivo per attivare il dominio mobile è avere un URL che funzioni da entry point per la navigazione mobile forzata, indipendente dal dispositivo usato. Per ottenere ciò è indispensabile la collaborazione del server web Apache, che deve aggiungere un apposito header quando viene richiesto il dominio mobile:

<VirtualHost *:443>
    SSLEngine on
    ServerName www.m.domain.tld
    ...
    RequestHeader set X-Subdomain "1"
</VirtualHost>

Il MobileFrontend va configurato con il solo $wgMFAutodetectMobileView e $wgMFMobileHeader, lasciando disattivo il $wgMobileUrlTemplate:

// Mobile device detection.
$wgMFAutodetectMobileView = true;
// MobileFrontend will ignore the requested domain name.
//$wgMobileUrlTemplate = '%h0.m.%h1.%h2';
// Requests with this header, will be forced as mobile.
$wgMFMobileHeader = 'X-Subdomain';

Cache

Sembra che con MediaWiki 1.30 il meccanismo di cache sia compatibile anche con l'estensione MobileFrontend, è sufficiente che esista la directory ./cache/ scrivibile al server web. Per forzare il refresh di una pagina è sufficiente aggiungere all'URL il parametro ?action=purge.

doc/appunti/linux/sa/mediawiki_1_30.txt · Last modified: 2018/02/09 12:48 by niccolo