/ cockpit

Rendere dinamico un vecchio sito statico con Cockpit

Mi capita ancora di aggiornare qualche vecchio sito scritto a badilate di HTML. Di quei siti che ci si aspetta di veder scomparire a breve giro e invece continuano per vari motivi a sopravvivere.

Poichè si tratta di una responsabilità che preferirei evitare, ho cercato un modo per rendere autonomi i reali proprietari del sito. Il tutto senza eccessivi oneri per entrambe le parti. Non avevo intenzione di investire troppo tempo nella conversione del sito ad un CMS (sviluppo, formazione, ...), nè volevo che queste persone fossero costrette a pagare più soldi per l'hosting.

La prima alternativa nel regno dei cms-open-source-senza-db-correntemente-aggiornati mi è sembrato fosse GetSimpleCMS. Dopo aver superato qualche problema nell'installazione mi sono accorto che si trattava di ben più di quanto avessi bisogno. L'idea di adeguare l'intero sito al suo sitema di templating non mi piaceva molto.

Alla fine, grazie a Nicolò, sono atterrato su Cockpit. Che fa esattamente quello che volevo: aggiunge porzioni di pagina editabili attraverso un'interfaccia amichevole, senza bisogno di un SQL server.

Requisiti

  • PHP >= 5.4
  • PDO + SQLite
  • impostare correttamente la $_SERVER['DOCUMENT_ROOT']

Se volete testare rapidamente se il vostro ambiente supporta Cockpit, create sul server questo file test.php

<?php

try {
    if((version_compare(PHP_VERSION, '5.4.0') >= 0) && extension_loaded('pdo')) {
        $test = new PDO('sqlite::memory:');
        echo "Congratulations! Your server pass the Cockpit requirements. ";
    } else {
        throw new Exception("PDO with SQLite support is missing");
    }
} catch(Exception $e) {
    echo "Sorry, your server doesn't pass the Cockpit requirements.";
}

NOTA: segnalo che in locale ho avuto dei problemi di gestione URL, per cui mi sono trovato a dover creare un VirtualHost apposito.

Installazione su Aruba

La cosa che mi ha piacevolmente colpito del servizio di hosting condiviso Linux su Aruba, è stata la possibilità di cambiare versione PHP e scegliere un diverso php.ini

Scleta della versione PHP
La versione PHP disponibile che ho scelto è stata la 5.4.23.

Modifica del php.ini
Ho dovuto cambiare il php.ini e scegliere l'opzione cgi.fix_pathinfo

Una volta impostati questi parametri ho caricato Cockpit sul server, ho rinominato la cartella in admin e reso scrivibile la cartella storage.

L'installer è raggiungibile all'indirizzo http://miosito/admin/install.

L'unica altra modifica che ho fatto è stata creare un .htaccess che rimuovesse l'estensione .php

#Opzione necessaria sul mio hosting
Options -MultiViews

#Attivo il mod_rewrite
RewriteEngine On 

#Escludo Cockpit dalla riscrittura
RewriteRule ^admin/ - [L,NC]

#Rimuovo .php dalle URL
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

Adattare il vostro sito

La documentazione è molto scarna, ma in effetti non c'è molto da sapere.

Una Regione è uno snippet che potete riutilizzare ovunque nel sito.
Una Collezione vi permette di gestire una lista di oggetti e iterare tra loro.

In entrambi i casi potete definire diverse tipologie di campi: testo, select, booleano, HTML, HTML(WYSIWYG), Codice (con syntax highlighting), Data, Orario, Media (apre un modale per il caricamento di un file).
Quindi potete anche decidere il template con cui renderizzare i campi del form.

Inserimento campi Regione

Per usare i dati della regione nello screenshot nella vostra pagine dovrete prima caricare Cockpit, aggiungendo in cima alla pagina

require_once("path/to/cockpit/bootstrap.php");

quindi piazzare dove preferite

<?php region('PaginaNews'); ?>

Altre funzionalità

La documentazione non rende giustizia al MediaManager.

MediaManager

Edit e syntax highlighter

Sì, l'editor dei file ha un bellissimo syntax highlighter.

È presente una semplicissima gestione utenti, ovvero chi ha accesso o meno alla dashboard (niente permessi particolari).

È possibile creare facilmente dei backup del sito.

Infine c'è un'area Add-ons attualmente vuota ma che promette di essere riempita presto.

In conclusione sono molto contento, si tratta di un bel software open source che vi permette di trasformare un vecchio sito statico in qualcosa di facilmente gestibile tramite una semplice interfaccia utente. Il tutto senza costringervi a rifarlo da capo o a cambiare piano di hosting.