====== MediaWiki 1.30 su Debian Stretch ====== ===== MobileFrontend ===== La skin predefinita **Vector** non ha buone caratteristiche in ambiente mobile (smartphone). È possibile avere un [[wpit>Design responsivo]] installando un'estensione e una skin opportuna; la soluzione più comune prevede l'uso dell'estensione **[[https://www.mediawiki.org/wiki/Extension:MobileFrontend|MobileFrontend]]** e della skin **[[https://www.mediawiki.org/wiki/Skin:Minerva_Neue|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 **[[https://phabricator.wikimedia.org/diffusion/EMFR/browse/master/README.md|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: **[[https://www.mediawiki.org/wiki/Mobile_Gateway/Mobile_homepage_formatting|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 **[[https://phabricator.wikimedia.org/T176414|T176414]]** datl titolo "**%%

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 **[[https://gerrit.wikimedia.org/r/#/c/408833/|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: SSLEngine on ServerName www.m.domain.tld ... RequestHeader set X-Subdomain "1" 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%%**.