Přihlásit se

Joomla 5.2.2 Security & Bugfix Release

Joomla 5.2.2 je nyní k dispozici. Jedná se o bezpečnostní vydání pro Joomla 5.x.

Jak na strukturovaná data

15. lis 2018 10:40 #137706
Odpověď od Ernst
Joomla Expert
Tak jsem nějak dal dohromady microdata pro položku K2.
kód je:
Code:
<article itemscope itemtype="https://schema.org/Article"> <meta itemprop="headline" content="<?php echo $this->item->title; ?>"/> <meta itemprop="name" content="<?php echo $this->item->title; ?>"/> <meta itemprop="mainEntityOfPage" content="<?php echo $this->item->absoluteURL; ?>"/> <meta itemprop="url" content="<?php echo $this->item->absoluteURL; ?>"/> <meta itemprop="inLanguage" content="<?php echo ($this->item->language === '*') ? JFactory::getConfig()->get('language') : $this->item->language; ?>" /> <meta itemprop="image" content="<?php echo JURI::base().$this->item->image; ?>"/> <span meta itemscope itemtype="https://schema.org/Person" itemprop="author" content="<?php echo $this->item->author->name; ?>"/><meta itemprop="name" content="<?php echo $this->item->author->name; ?>"/></span> <meta itemprop="datePublished" content="<?php echo $this->item->created; ?>"/> <meta itemprop="dateModified" content="<?php echo $this->item->modified; ?>"/> <span meta itemscope itemtype="https://schema.org/Organization" itemprop="publisher" content="Diochi"/> <meta itemprop="name" content="Diochi s.r.o."/> <meta itemprop="address" content="Průmyslová 1306/7, 102 00 Praha 10, Česká republika"/> <meta itemprop="email" content="info@diochi.cz"/> <meta itemprop="telephone" content="+420 222 764 004"/> <meta itemprop="url" content="<?php echo JURI::base(); ?>"/> <span meta itemscope itemtype="https://schema.org/ImageObject" itemprop="logo" content="logo"/> <meta itemprop="url" content="<?php echo JURI::base().'images/ui/logo.png'; ?>"/> </span> </span> <meta itemprop="description" content="<?php echo strip_tags($this->item->introtext); ?>"/> <meta itemprop="articleBody" content="<?php echo strip_tags($this->item->fulltext); ?>"/> </article>
a výsledek je vidět zde (je to směrováno jen na testovací web).

Uvítám každé nápad na vylepšení. Inspiroval jsem se, mimo jiné, strukturou microdat na velkých a zvláště zpravodajských webech.

Pokud někdo ví, tak se zeptám:
Setkal jsem se s názorem, že by se neměly nadužívat <meta> značky. Proč? Dával jsem úmyslně vše do meta značek, protože dávat označení microdat přímo do vypisovaného HTML (příklad zde ) se mi zdá nepřehledné a hlavně, pokud v zobrazení vypnu třeba datum vytvoření nebo autora, tak se mi nedostane ani do microdat a to už je problém.

15. lis 2018 11:09 - 15. lis 2018 11:16 #137707
Odpověď od Rudolf
Joomla Expert

Tady si myslím že má autor chybu.
Protože v elementu Article na Schema @id není


Tohle patřilo na výpis testu pro Article z Joomlaportalu.

I zde je metaznačka vložena do divu, který obsahu id nebo itemid a tím pádem dojde k znehodnocení metaznačky při testu.
Osobně bych tedy použil nový div bez id, jinak to Google zase doplní automaticky špatně.

<meta itemprop="description" content="<?php echo strip_tags($this->item->introtext); ?>"/>
<meta itemprop="articleBody" content="<?php echo strip_tags($this->item->fulltext); ?>"/>


Toto jsem já ponechal jako součást kódu a označil tak divy, kterých se to týká (dtto www.idnes.cz )
Nechci řešit případné SEO a duplicitní obsah na stejné stránce :D

Donedávna mi vše takto fungovalo a nemusel jsem metaznačky vůbec dávat samostatně, byly jako součást divů na tom místě kde mi vypadla informace (například datum publikování).

Minulý týden mi to ale nefungovalo u images, headline, takže jsem je musel přesunout do hlavičky do metaznaček.

Setkal jsem se s názorem, že by se neměly nadužívat <meta> značky. Proč? Dával jsem úmyslně vše do meta značek, protože dávat označení microdat přímo do vypisovaného HTML (příklad zde ) se mi zdá nepřehledné a hlavně, pokud v zobrazení vypnu třeba datum vytvoření nebo autora, tak se mi nedostane ani do microdat a to už je problém.


Pokud to vypnete, tak máte v php podmínku, viz šablony od Joomlart, které ji mají.
Code:
<?php if ($params->get('show_title')) : ?> <?php echo JLayoutHelper::render('joomla.content.item_title', array('item' => $this->item, 'params' => $params, 'title-tag'=>'h1')); ?> <?php else: ?> <meta content="<?php echo $this->item->title ?>" itemprop="headline"> <?php endif; ?>


Podmínku v šabloně jsem Vám posílal, je použitá například pro language.

mainEntityOfPage je součástí i schema.org/Article


Ano, tady mám chybu já :D

MiniJoomla! - www.minijoomla.org - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
Poděkovali: Ernst

15. lis 2018 11:33 - 15. lis 2018 11:37 #137708
Odpověď od Ernst
Joomla Expert

I zde je metaznačka vložena do divu, který obsahu id nebo itemid a tím pádem dojde k znehodnocení metaznačky při testu.
Osobně bych tedy použil nový div bez id, jinak to Google zase doplní automaticky špatně.

Zde nerozumím.


Toto jsem já ponechal jako součást kódu a označil tak divy, kterých se to týká (dtto www.idnes.cz )
Nechci řešit případné SEO a duplicitní obsah na stejné stránce :D

To máte pravdu, asi to tak udělám. Já mám problém, že item.php používám v cca deseti variantách (mám cca 10 šablon K2 pro jednotlivé kategorie a zobrazení). proto toho chci mít většinu v bloku a ten nakopírovat, než 10 upravovat item.php.


Pokud to vypnete, tak máte v php podmínku, viz šablony od Joomlart, které ji mají.

to je jasný, normálně bych to tak taky tak udělal, pokud by se jednalo o standardní přepis v šablone. Ale v mém případě 10xK2 šablona se mi do toho nechce.
Až budu tak řešit icagendu nebo easydiscuss, tak to tak udělám, je to nejčistší řešení.


Podmínku v šabloně jsem Vám posílal, je použitá například pro language.

Ano, vždyď jsem ji tam od vás použil (jen drobně upravil)


Ano, tady mám chybu já :D

a ještě tam máte, že autor je věc :D

Powered by Fórum