Classe XMF Metagen
La classe Metagen nel Framework XMF fornisce un toolkit completo per la generazione e la gestione di tag HTML meta, tag Open Graph e altri metadati legati all’SEO.
Panoramica della Classe
Sezione intitolata “Panoramica della Classe”La classe Metagen gestisce:
- Tag HTML meta standard (descrizione, parole chiave, ecc.)
- Tag meta Open Graph per la condivisione sociale
- Tag Twitter Card
- Dati strutturati e JSON-LD
- URL canonici
- Specifiche di lingua e locale
Struttura di Base della Classe
Sezione intitolata “Struttura di Base della Classe”namespace Xmf;
class Metagen{ protected $meta = []; protected $ogTags = []; protected $twitterTags = []; protected $jsonLd = []; protected $canonicalUrl; protected $language;
public function __construct() {}
public function setDescription(string $description): self {}
public function setKeywords(string $keywords): self {}
public function renderAll(): string {}}Utilizzo di Base
Sezione intitolata “Utilizzo di Base”Tag Meta Semplici
Sezione intitolata “Tag Meta Semplici”use Xmf\Metagen;
$metagen = new Metagen();
// Imposta i tag meta di base$metagen->setDescription('This is my awesome website');$metagen->setKeywords('php, xoops, web development');
// Renderizza in HTMLecho $metagen->renderAll();
// Output:// <meta name="description" content="This is my awesome website" />// <meta name="keywords" content="php, xoops, web development" />Tag Meta Open Graph
Sezione intitolata “Tag Meta Open Graph”I tag Open Graph aiutano a controllare come il contenuto appare quando condiviso sui social media.
Configurazione Open Graph di Base
Sezione intitolata “Configurazione Open Graph di Base”$metagen = new Metagen();
$metagen->setOpenGraphProperty('og:title', 'My Awesome Article');$metagen->setOpenGraphProperty('og:description', 'Learn how to use Metagen for SEO');$metagen->setOpenGraphProperty('og:image', 'https://example.com/image.jpg');$metagen->setOpenGraphProperty('og:url', 'https://example.com/article');$metagen->setOpenGraphProperty('og:type', 'article');
echo $metagen->renderAll();Dati Strutturati e JSON-LD
Sezione intitolata “Dati Strutturati e JSON-LD”JSON-LD fornisce dati strutturati che i motori di ricerca possono comprendere meglio.
Dati Strutturati Articolo
Sezione intitolata “Dati Strutturati Articolo”$metagen = new Metagen();
$articleData = [ '@context' => 'https://schema.org', '@type' => 'Article', 'headline' => 'Understanding XOOPS 4.0', 'description' => 'A comprehensive guide to XOOPS modernization', 'image' => 'https://example.com/article.jpg', 'datePublished' => '2026-01-31T10:00:00Z', 'dateModified' => '2026-01-31T15:00:00Z', 'author' => [ '@type' => 'Person', 'name' => 'John Developer', 'url' => 'https://example.com/author' ]];
$metagen->setJsonLd($articleData);
echo $metagen->renderAll();Esempi di Integrazione del Modulo
Sezione intitolata “Esempi di Integrazione del Modulo”Modulo Blog/Articolo
Sezione intitolata “Modulo Blog/Articolo”namespace MyModule\Controller;
use Xmf\Metagen;use MyModule\Repository\ArticleRepository;
class ArticleController{ public function viewAction($id) { $repository = new ArticleRepository(); $article = $repository->getById($id);
if (!$article) { return $this->notFound(); }
// Inizializza Metagen $metagen = new Metagen();
// Imposta i metadati dell'articolo $metagen->setTitle($article->getTitle()); $metagen->setDescription( substr($article->getBody(), 0, 160) ); $metagen->setKeywords( implode(', ', $article->getTags()) ); $metagen->setAuthor($article->getAuthorName());
// Open Graph $metagen->setOpenGraphProperty('og:type', 'article'); $metagen->setOpenGraphProperty('og:title', $article->getTitle()); $metagen->setOpenGraphProperty('og:description', $article->getExcerpt()); $metagen->setOpenGraphProperty('og:image', $article->getFeaturedImage()); $metagen->setOpenGraphProperty('og:url', $article->getUrl());
// URL Canonico $metagen->setCanonicalUrl($article->getUrl());
// Memorizza nel template $this->template['metagen'] = $metagen;
return $this->render('article/view.php'); }}Integrazione del Template
Sezione intitolata “Integrazione del Template”Implementazione del Template
Sezione intitolata “Implementazione del Template”<!-- Nel header del tuo template --><?php if (isset($metagen)): ?> <?php echo $metagen->renderAll(); ?><?php endif; ?>
<!-- Struttura HTML standard --><!DOCTYPE html><html><head> <meta charset="utf-8"> <?php echo $metagen->renderAll(); ?> <title><?php echo $metagen->getTitle(); ?></title></head><body> <!-- Contenuto --></body></html>Migliori Pratiche
Sezione intitolata “Migliori Pratiche”Ottimizzazione SEO
Sezione intitolata “Ottimizzazione SEO”- Descrizioni uniche per ogni pagina (150-160 caratteri)
- Parole chiave rilevanti (5-10 parole chiave primarie per pagina)
- URL canonici per prevenire il contenuto duplicato
- Tag Open Graph per l’ottimizzazione dei social media
- Dati strutturati per i risultati di ricerca migliorati
- Meta tag viewport mobile per il design reattivo
Implementazione SEO Completa
Sezione intitolata “Implementazione SEO Completa”$metagen = new Metagen();
// Tag meta di base$metagen->setTitle('My Website - Web Development Services');$metagen->setDescription('Professional web development services');$metagen->setKeywords('web development, php, xoops');$metagen->setAuthor('John Developer');$metagen->setLanguage('en');
// URL Canonico$metagen->setCanonicalUrl('https://example.com/services/web-development');
// Open Graph per la condivisione sui social$metagen->setOpenGraphProperty('og:title', 'Web Development Services');$metagen->setOpenGraphProperty('og:description', 'Professional services');$metagen->setOpenGraphProperty('og:image', 'https://example.com/og-image.jpg');$metagen->setOpenGraphProperty('og:url', 'https://example.com/services/web-development');$metagen->setOpenGraphProperty('og:type', 'website');
// Twitter Card$metagen->setTwitterCard('summary_large_image');$metagen->setTwitterProperty('twitter:site', '@mycompany');$metagen->setTwitterProperty('twitter:title', 'Web Development Services');$metagen->setTwitterProperty('twitter:image', 'https://example.com/twitter-image.jpg');
echo $metagen->renderAll();Riferimento API
Sezione intitolata “Riferimento API”Metodi Core
Sezione intitolata “Metodi Core”| Metodo | Parametri | Ritorna | Descrizione |
|---|---|---|---|
setTitle() | string | self | Imposta il titolo della pagina |
setDescription() | string | self | Imposta la meta descrizione |
setKeywords() | string | self | Imposta le meta parole chiave |
setAuthor() | string | self | Imposta il nome dell’autore |
setCanonicalUrl() | string | self | Imposta l’URL canonico |
setLanguage() | string | self | Imposta la lingua della pagina |
setViewport() | string | self | Imposta le impostazioni del viewport |
setOpenGraphProperty() | string, string | self | Aggiungi tag OG |
setTwitterCard() | string | self | Imposta il tipo di Twitter card |
setJsonLd() | array | self | Imposta i dati strutturati |
renderAll() | - | string | Renderizza tutti i tag meta |
Documentazione Correlata
Sezione intitolata “Documentazione Correlata”- Database - Riferimento database XMF
- JWT - Autenticazione JWT in XMF
- ../../03-Module-Development/Best-Practices/Frontend-Integration - Migliori pratiche di integrazione frontend
Risorse
Sezione intitolata “Risorse”Informazioni sulla Versione
Sezione intitolata “Informazioni sulla Versione”- Introdotto: XOOPS 2.5.8
- Ultimo Aggiornamento: XOOPS 4.0
- Compatibilità: PHP 7.4+