Skip to content

XMF Razred metagena

Razred Metagen v ogrodju XMF ponuja obsežen nabor orodij za generiranje in upravljanje metaoznak HTML, oznak Open Graph in drugih metapodatkov, povezanih z SEO.

Razred Metagen obravnava:

  • Standardne meta oznake HTML (opis, ključne besede itd.)
  • Meta oznake Open Graph za skupno rabo v družabnih omrežjih
  • Meta oznake Twitter kartice
  • Strukturirani podatki in JSON-LD
  • Kanonični URL-ji
  • Jezikovne in lokalne specifikacije
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 pomagajo nadzorovati, kako je vsebina prikazana, ko jo delite v družabnih medijih.

$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 zagotavlja strukturirane podatke, ki jih iskalniki bolje razumejo.

$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. Unikatni opisi za vsako stran (150-160 znakov)
  2. Ustrezne ključne besede (5–10 primarnih ključnih besed na stran)
  3. Kanonični URL-ji za preprečevanje podvojene vsebine
  4. Open Graph tags za optimizacijo družbenih medijev
  5. Strukturirani podatki za izboljšane rezultate iskanja
  6. Metaoznaka Mobile viewport za odzivno oblikovanje
$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();
MetodaParametriVračilaOpis
setTitle()nizsamNastavi naslov strani
setDescription()nizsamNastavi meta opis
setKeywords()nizsamNastavite meta ključne besede
setAuthor()nizsamNastavi ime avtorja
setCanonicalUrl()nizsamNastavi kanonično URL
setLanguage()nizsamNastavi jezik strani
setViewport()nizsamNastavi nastavitve vidnega polja
setOpenGraphProperty()niz, nizsamDodaj oznako OG
setTwitterCard()nizsamNastavite vrsto Twitter kartice
setJsonLd()nizsamNastavi strukturirane podatke
renderAll()-nizUpodobi vse meta oznake
  • Baza podatkov - XMF referenca baze podatkov
  • JWT - JWT avtentikacija v XMF
  • ../../03-Module-Development/Best-Practices/Frontend-Integration - Najboljše prakse integracije sprednjega dela