Skip to content

XMF metagena klasa

Metagen class u okviru XMF pruža sveobuhvatan skup alata za generiranje i upravljanje meta oznakama HTML, oznakama Open Graph i drugim metapodacima koji se odnose na SEO.

Metagen class upravlja:

  • Standardne meta oznake HTML (opis, ključne riječi itd.)
  • Meta oznake Open Graph za dijeljenje na društvenim mrežama
  • Meta oznake Twitter kartice
  • Strukturirani podaci i JSON-LD
  • Kanonski URL-ovi
  • Specifikacije jezika i lokalizacije
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 {}
}
use Xmf\Metagen;
$metagen = new Metagen();
// Set basic meta tags
$metagen->setDescription('This is my awesome website');
$metagen->setKeywords('php, xoops, web development');
// Render to HTML
echo $metagen->renderAll();
// Output:
// <meta name="description" content="This is my awesome website" />
// <meta name="keywords" content="php, xoops, web development" />

Oznake Open Graph pomažu kontrolirati kako se sadržaj pojavljuje kada se dijeli na društvenim medijima.

$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();

JSON-LD pruža strukturirane podatke koje tražilice mogu bolje razumjeti.

$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();
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();
}
// Initialize Metagen
$metagen = new Metagen();
// Set article metadata
$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());
// Canonical URL
$metagen->setCanonicalUrl($article->getUrl());
// Store in template
$this->template['metagen'] = $metagen;
return $this->render('article/view.php');
}
}
<!-- In your template header -->
<?php if (isset($metagen)): ?>
<?php echo $metagen->renderAll(); ?>
<?php endif; ?>
<!-- Standard HTML structure -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<?php echo $metagen->renderAll(); ?>
<title><?php echo $metagen->getTitle(); ?></title>
</head>
<body>
<!-- Content -->
</body>
</html>
  1. Jedinstveni opisi za svaku stranicu (150-160 znakova)
  2. Relevantne ključne riječi (5-10 primarnih ključnih riječi po stranici)
  3. Kanonski URL-ovi za sprječavanje dupliciranog sadržaja
  4. Open Graph oznake za optimizaciju društvenih medija
  5. Strukturirani podaci za poboljšane rezultate pretraživanja
  6. Mobile viewport meta oznaka za responzivni dizajn
$metagen = new Metagen();
// Basic meta tags
$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');
// Canonical URL
$metagen->setCanonicalUrl('https://example.com/services/web-development');
// Open Graph for social sharing
$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();
MetodaParametriPovratakOpis
setTitle()nizsebePostavi naslov stranice
setDescription()nizsebePostavi meta opis
setKeywords()nizsebePostavite meta ključne riječi
setAuthor()nizsebePostavi ime autora
setCanonicalUrl()nizsebeSet kanonskih URL
setLanguage()nizsebePostavite stranicu language
setViewport()nizsebePostavite postavke okvira za prikaz
setOpenGraphProperty()niz, nizsebeDodaj OG oznaku
setTwitterCard()nizsebePostavite vrstu Twitter kartice
setJsonLd()nizsebePostavi strukturirane podatke
renderAll()-nizPrikaz svih meta oznaka
  • baza podataka - Referenca baze podataka XMF
  • JWT - JWT provjera autentičnosti u XMF
  • ../../03-Module-Development/Best-Practices/Frontend-Integration - Najbolje prakse integracije frontenda
  • Predstavljeno: XOOPS 2.5.8
  • Zadnje ažuriranje: XOOPS 4.0
  • Kompatibilnost: PHP 7.4+