SCRIVERE PLUGIN PER IL FRAMEWORK DI IGSUITE (DOCUMENTO SCADUTO) ------------------------------------------------------------------------------ 1. Scrivere Plugin per il Framework di IGSuite A partire dalla release 3.2.4 di IGSuite è possibile realizzare ed integrare nella suite dei "plugin" per modificare o espandere le funzionalità del framework di IGSuite. Il sistema dei plugin è molto flessibile e si basa sulla possibilità di "intercettare" l'output di alcune funzioni del framework prima che questo venga passato all'applicazione che ne fa richiesta. Il plugin può essere scritto da zero oppure realizzato modificando un modello di default presente all'interno del pacchetto che spiega passo passo quale il suo contenuto. Fondamentalmente occorrerà scrivere degli "Hook" delle funzioni che agganciano rispettivamente le funzioni "core" del framework. Per esempio una delle funzioni disponibili ad essere agganciate è FormHead() che si occupa di aprire un form html di dati. In genere una chiamata a FormHead è scritta in questo modo: my $html = FormHead( name => 'myform', method => 'POST', cgiaction => 'mycgiscript' ); Mettiamo il caso volessimo scrivere un plugin che (solo per esempio) modifichi tutti i form dello script "letters" cambiando il metodo di da 'GET' a 'POST' il contenuto minimo del nostro plugin (solo a titolo d'esempio) sarebbe questo: my $PluginDescription = 'Piccolo esempio'; my $NeedIgSuiteVersion = '3.2.4', my %HooksFunctions = ( FormHead => 'fake_form_head' ); ## Necessario alla registrazione del plugin sub init { my $PluginName = shift; return IG::PluginRegister( version => $NeedIgSuiteVersion, name => $PluginName, description => $PluginDescription, functions => \%HooksFunctions ); } ## Ecco la nostra procedura sub fake_form_head { my ($text, $arguments_ref) = @_; return $text if $IG::cgi_name ne 'letters'; return $text if $$arguments_ref{method} eq 'POST'; $text =~ s/(