Archivio mensile:Settembre 2013

MediaWiki, bloccare accesso alle Special Pages (Pagine speciali)

Schermata 2013-09-20 alle 12.17.42

Se utilizzate il wiki in ambiente privato (quindi con accesso consentito solo agli utenti registrati) avrete notato che le Pagine Speciali sono accessibili da chiunque, anche agli utenti non registrati. Queste pagine contengono una serie di informazioni (tra cui elenco utenti, categorie, ecc.) molto importanti e sensibili che è bene proteggere!

Per fare questo basta aggiungere questo piccolo code snippet di MarkAHershberger nel vostro file di configurazione LocalSettings.php. Se come me utilizzate il wiki in ambiente privato però sarà necessario comunque abilitare agli utenti l’accesso alla Login Page, fondamentale direi. A questo punto resta da aggiungere una sola riga al suddetto codice.

Ecco il codice completo da utilizzare:

function disableAllSpecialPages(&$list) {
global $wgUser;
if(!$wgUser-> isLoggedIn()) {
$list = array();
// Enable Login page
$list['Userlogin'] = "LoginForm";
}
return true;
}
$wgHooks['SpecialPage_initList'][]='disableAllSpecialPages';

Testato e verificato sulla versione 1.21.2.

Conversione codifica di un file (da UTF-8/UTF-16 a cinese GB18030)

200px-Unicode_logo.svg

Mi è arrivato un file direttamente dalla Cina per la traduzione di un sito web. Lì tutto gira in UTF-8 quindi anche il file in questione (caricato dinamicamente via php) deve essere in UTF-8. Come fare?

Per prima cosa bisogna capire con precisione che tipo di encoding ha il file in questione. Mi sono documentato un po’ e per OSX molti dicono che il comando “file -I” non funziona, o meglio non bene. E’ vero: nel mio caso il file cinese aveva codifica GB18030 (Chinese) e il comando “file -I” mi ha restituito erroneamente iso-8859-1:

# file -I lang-cn.php_cn
lang-cn.php_cn: text/x-php; charset=iso-8859-1

Ho cercato sull’App Store e ho trovato l’app ezText la quale mi ha restituito la codifica corretta: GB18030 (Chinese).
A questo punto la stessa App vi permette di effettuare la conversione su una diversa codifica ma anche qui non mi ha convinto fino in fondo. Il passaggio da GB18030 a UTF-8 mi modificava anche i caratteri normali (non solo gli ideogrammi cinesi).
Per questo scopo ho trovato perfetto il comando “iconv” da Terminale, mi è bastato inviare il comando:

iconv -f GB18030 -t UTF-8 nome-file_GB18030 > nome-file_UTF8

Conversione perfetta!