I plug-in di Joomla! possono essere utilizzati per automatizzare operazioni sui contenuti (ad esempio per aggiungere il sistema di voto agli articoli…altro non è che l’aggiunta di codice html a quello dell’articolo).

Spesso si rivelano estremamente utili per effettuare azioni correttive sull’intero contenuto (compreso l’header della pagina); motivo per cui, sfruttando i metodi di JFactory, possiamo creare un plugin che all’evento di preparazione del contenuto, effettui dei controlli su title e description ed eviti valori di default (che non piacciono tanto agli spider dei motori di ricerca).
Per leggere le informazioni meta ho utilizzato un metodo alternativo a quello della pillola per evitare title e description duplicati, un metodo più generale e attuabile quando non si ha un riferimento al contenuto mediante $this (cosa possibile, invece, all’interno di un file di template)

In una prossima pillola vedremo nel dettaglio le tipologie di plug-in e gli eventi cui associarne l’esecuzione, per ora ci basti aver presente che il plug-in che andiamo a realizzare:

  • agisce sul content
  • viene invocato all’evento onPrepareContent

Come realizziamo il plug-in:

Creiamo  innanzitutto un file xml che descriva il plug-in: automatismo.xml

<?xml version="1.0" encoding="utf-8"?>
<install version="1.5" type="plugin" group="content">
<name>AUTOMATISMO</name>
<author>Antonio Picone</author>
<creationDate>May 2009</creationDate>
<copyright>Copyright (C) 2008 - 2009 Open Source Matters. All rights reserved.</copyright>
<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
<authorEmail>info@antoniopicone.it</authorEmail>
<authorUrl>www.joomla.org</authorUrl>
<version>1.5</version>
<description>Add the auto-populated header for SEO</description>
<files>
<filename plugin="automatismo">automatismo.php</filename>
</files>
<params/>
</install>

Successivamente, il file del plug-in (commentato riga per riga): automatismo.php

<?php

// evitiamo l'accesso direto a questo file
defined( '_JEXEC' ) or die( 'Restricted access' );

// registriamo l'esecuzione della funzione all'evento onPreapareContent
$mainframe->registerEvent( 'onPrepareContent', 'plgContentAutomatismo' );

function plgContentAutomatismo( &$row, &$params, $page=0 )

{

// Creo un nuovo riferimento all'oggetto JConfig per prelevare i parametri di configurazione

$CONFIG =& new JConfig();

// Creo un rif all'oggetto che descrive il documento

$document = &JFactory::getDocument();

// JFactory fornisce metodi get per preleavare Title e Description, usiamoli ;)

$title = $document->getTitle();

$description = $document->getDescription();

// Se il title di questa pagina è quello di default, lo riscrivo nella forma: sezione > categoria > titolo

if ($CONFIG->sitename == $title) $title = $row->section . ' > ' . $row->category . ' > ' . $row->title;

// Se la description è quella di default, la sosticuisco con i primi 140 caratteri del contenuto dell'articolo

if ($CONFIG->MetaDesc == $description) $description = substr($row->text, 0 ,140);

// Sfrutto i metodi set di JFactory per riscrivere Title e Description

$document->setDescription($description);

$document->setTitle($title);

}

Per installare il plug-in, basterà copiare i due files nella directory /plugins/content/ e attivarlo dal back-end.

That’s all folks :)


2 commentidomande ? commenti ? dì la tua

  • Bigham il 18 giu 2009 21:07, scrive:

    Ciao
    Nella sua semplicità è… geniale!! :D

  • daniele il 05 nov 2009 13:55, scrive:

    mi piacerebbe essere a questo livello
    io uso il seo 404 e il brutto è che ogni volta devo andare li per settare i meta title….eccc

    mi piacerebbe farlo nella stessa pagina

lascia un commento

bentornato  (cambia)




invio commento...