My You Tube channel

Ecco un altro modo per poter manipolare velocemente certe "rigidità" di Joomla. Facilmente le prossime versioni porteranno queste soluzioni all'inutilità, offrendo anche al semplice utente GUI la possibilità di intervenire in modo sempre più capillare sulle funzionalità del CMS.

Prima di decidere che è la soluzione a qualche vostro problema dovete capire se lo script che volete rimuovere occorre alle funzionalità del CMS, altrimenti correte il rischio di ritrovarvi un sito inusabile. Se questo dovesse accadere nessuna paura; basta disabilitare il plugin che avete creato: dall'interfaccia amministrativa se ne avete accesso, altrimenti direttamente dalle tabelle del database.

Per illustrare questa funzionalità abbozzo un plugin che potete tranquillamente usare come base per adattarlo alle vostre esigenze. Il trigger che sfrutto per questo plugin è onAfterRender();, come descrive la documentazione:

This event is triggered after the framework has rendered the application.
Rendering is the process of pushing the document buffers into the template placeholders, retrieving data from the document and pushing it into the into the JResponse buffer.
When this event is triggered the output of the application is available in the response buffer.

class plgSystemMioPlugin extends JPlugin{

function onAfterRender(){

// ... secondo le docs, nel buffer response trovo l'output dell'applicazione..
$html = JResponse::getBody();

// ora, con l'ausilio di regular expressions, riconosco i tag e li sostituisco con "niente"
//-> images
$html = preg_replace('|<img[^>]*?/?>|is','', $html);
//-> iframes
$html = preg_replace('|<iframe.*?</iframe>|is', '', $html);
$html = preg_replace('|<iframe.*?/?>|is', '', $html);
//-> object
$html = preg_replace('|<object.*?</object>|is', '', $html);
$html = preg_replace('|<object.*?/?>|is', '', $html);
//-> embeds
$html = preg_replace('|<embed.*?</embed>|is', '', $html);
$html = preg_replace('|<embed.*?/?>|is', '', $html);
//-> applets
$html = preg_replace('|<applet.*?</applet>|is', '', $html);
$html = preg_replace('|<applet.*?/?>|is', '', $html);
//-> scripts
$html = preg_replace('|<script.*?</script>|is', '', $html);
//-> stylesheets
$html = preg_replace('|<link rel="stylesheet".*?/?>|is', '', $html);
$html = preg_replace('|<link rel="stylesheet".*?</link>|is', '', $html);

// Quali tag eliminare può diventare oggetto di configurazione, quindi parametri nel manifest
// Soprattutto invece di "sostituire con nulla" il tag rimosso posso aggiungerne uno mio

// Ridò a Joomla il contenuto dopo la pulizia
JResponse::setBody($html);

// Chiudo
}

Non rimane che creare i nostri files per il plugin, posizionarli nella giusta cartella all'interno di /plugins (lato pubblico) del nostro CMS.
Usate la gestione estensioni-> esplora per individuare il vostro plugin da installare e fatelo fare a Joomla spuntando il checkbox e cliccando su installa.

Multirotori

Multicopters I miei droni multirotore. Una semplice curiosità diventata una passione e qualcosa di più.
Il punto di incontro tra programmazione, volo, arduino, tecnica e manualità ...stimolante!
Consigli ed esperienze realizzative di vari modelli dedicati sia al divertimento che all'uso professionale.

Joomla

Joomla! Un Framework promettente ed un collaudato CMS che, con l'adeguata conoscenza, può diventare un avanzato strumento di lavoro.
Come si può conoscere uno strumento se non usandolo, sperimentando sempre nuove soluzioni e seguendo le sue problematiche di sicurezza?

Lifehacking

Lifehacking Non c'è oggetto per casa che non ho aperto, è maniacale ma non riesco a rinunciare, come se quelle quattro viti, quella fessura a scatto mi impedisse di conoscere, scoprire, imparare qualcosa, sigillandolo come un segreto.
Tutto può funzionare meglio o diventare più utile e versatile ...è Life Hacking!

Parapendio

Parapendio Volare è un po' come avere la possibilità di osservare le cose da un'altra prospettiva, senza i vincoli di una forza che ti costringe a muoverti come un pedone degli scacchi per le strade di una città. Il mio sogno sta nell'armadio, pronto a farmi evadere quando ne sento il bisogno e l'aria lo permette.