Scrivete il vostro plugin

Thank you for your contribution: 

PlugUn plugin è una sorta di estensione di Joomla!.

Il plugin si attiva quando si verifica un evento predefinito. Un evento potrebbe verificarsi ad esempio quando l'evento onContentPrepare si verifica. Questo significa che mentre Joomla! prepara il contenuto da visualizzare, il nostro plugin aggiunge qualcosa ai preparativi. Si pensi al plugin pagebreak (interruzione pagina). Se l'evento si verifica, il plugin si attiva. Se trova lo schema <hr class="system-pagebreak" /> nel testo, eseguirà l'interruzione pagina (pagebreak).

Joomla! ha otto tipi di plugin: authentication, content, editors-xtd, editors, extension, search, system e user. Questi sono anche i nomi delle sotto directory dove si trovano i plugin. Per esempio, i plugin con un tipo di authentication sono collocati nella directory plugins/authentication. Un plugin deve essere installato tramite la gestione estensione.

Joomla fornisce per ogni tipo di plugin, eventi predefiniti, per esempio gli eventi contenuto:

  • onAfterDisplay
  • onAfterContentSave
  • onAfterDisplayTitle
  • onAfterDisplayContent
  • onPrepareContent
  • onBeforeDisplay
  • onBeforeContentSave
  • onBeforeDisplayContent
  • onContentPrepareForm
  • onContentPrepareData

Potete trovare tutti gli eventi esistenti nella Joomla! plug-in documentation.

Ogni estensione può definire i propri eventi e questo permette alle altre estensioni di rispondere a questi eventi e rendere estendibili le estensioni (Figura 1).

cocoate.com/node/9575

Figura 2: Plug-In, Component

Esempio

Per mostrare un esempio molto semplice, vogliamo visualizzare una stringa di testo sopra il testo dell'articolo (Figura 2). 

cocoate.com/node/9575

Figura 2: Esempio Plugin

Per attuare la nostra richiesta dobbiamo scrivere un plugin contenuto che ho chiamato cocoateaddtext. Abbiamo solo bisogno di due file, il file .xml con i metadata (Lista 1) ed un file php per il nostro codice (Lista 2).

<?php
defined('_JEXEC') or die;
jimport('joomla.plugin.plugin');

class plgContentCocoateAddText extends JPlugin
{
  public function onContentPrepare( $context, &$article, &$params, $limitstart=0 )
  {
    $article->text = "<strong>My special text</strong>".$article->text ;
      return true;
  }
}

Lista 1: /plugins/content/cocoateaddtext/cocoateaddtext.php

<?xml version="1.0" encoding="utf-8"?>
<extension version="1.7" type="plugin" group="content">
    <name>PLG_CONTENT_COCOATEADDTEXT</name>
    <author>Hagen Graf</author>
    <creationDate>Dec 2011</creationDate>
    <copyright> :) </copyright>
    <license>GNU General Public License version 2 or later; see LICENSE.txt</license>
    <authorEmail>info@cocoate.com</authorEmail>
    <authorUrl>www.cocoate.com</authorUrl>
    <version>1.0</version>
    <description>PLG_CONTENT_COCOATEADDTEXT_XML_DESCRIPTION</description>
    <files>
        <filename plugin="cocoateaddtext">cocoateaddtext.php</filename>
        <filename>index.html</filename>
    </files>
</extension

Lista 2: /plugins/content/cocoateaddtext/cocoateaddtext.xml

Dopo la creazione di questi file dovete "scoprire" ed installare il plugin - Extensions -> Extension-Manager -> Discover (Figura 3)

cocoate.com/node/9575

Figura 3: Scoprire e installare il plugin

Dopo l'attivazione nella gestione plugin gli articoli della vostra prima pagina appariranno come quello nell'immagine in Figura 2.

 

 

Commenti

Ciao

svolgendo alla lettera le tue istruzioni, su Joomla 2.5, la stringa viene aggiunta anche in un modulo di tipo mod_custom e il plugin viene attivato anche lato Admin (ne ho la certezza perché a causa di un notice-php vedevo l'avviso anche nel pannello amministrativo).

Come posso rimediare?

Grazie in anticipo e complimenti per l'articolo
Salvatore