Créer des microdata imbriquées (hiérarchie d'éléments) avec des FieldGroup de plus de deux niveaux

More
8 years 11 months ago #66179 by 012abc
Bonjour, je travaille à essayer de créér des données structurées avec Flexicontent. Mais je ne réussi pas à créér des microdatas structurées de façon hiérarchiques.

J'essaie de structurer les données du type "Boutique" (des items des produits en vente) ainsi : Product < Offer.

1. Sur le type "Boutique" dans SEO, j'ai mis "Microdata type" à la valeur "Product", mais Google tools ne valide pas, car les itemprop="dateCreated" et itemprop="dateModified" de l'item ne font pas partie du "Microdata type".
En revanche, le Microdata type "Offer" créé avec un FieldGroup est bien validé.

2. Du coup, j'ai laissé tomber l'idée du "Microdata type" du type d'item pour essayer de créer les microdata structurées dans l'item sous les champs "core system" "dateCreated", "dateModified". Je peux bien typer un FieldGroup "Product" et un autre "Offer", mais je ne peux pas les imbriquer pour faire une hiérarchie.

Du coup, je ne vois plus comment faire.

Mon objectif est de structurer les données comme sur cette page d'exemple (onglet Microdata) : schema.org/price . Mais je ne sais pas si cela est possible.

Merci pour votre aide.

MAJ :
J'ai résolu le problème en revenant à 1. et en enlevant "dateCreated" et "dateModified" du template. Cela fonctionne bien pour deux niveaux. :)
Si quelqu'un à une autre solution, je suis preneur. Cela d'autant plus qu'au-delà de deux niveaux, cette astuce ne fonctionnera plus. (A savoir aussi si c'est utile au-delà de deux niveaux.)

Please Log in or Create an account to join the conversation.

More
8 years 11 months ago #66187 by micker
j'avoue avoir du mal a te suivre mais je pense que ton apporche est bonne donc continu lol

FLEXIcontent is Free but involves a very big effort on our part.
Like the our support? (for a bug-free FC, despite being huge extension) Like the features? Like the ongoing development and future commitment to FLEXIcontent?
-- Add your voice to the FLEXIcontent JED listing reviews. Thanks![/size]

Please Log in or Create an account to join the conversation.

More
8 years 11 months ago - 8 years 11 months ago #66194 by 012abc
Pour faire simple, j'ai l'impression que l'on peut créer le code ci-dessous que pour les deux premiers niveaux, mais pas le troisième.

- Product créé au niveau du type, mais en supprimant les champs creaDate et modifDate du template, car en l'état dans Flexicontent ils ne font pas partie du type Product spécifié par Schema.org
- AggregateOffer créé au niveau d'un champs FieldGroup
- Offer, 3e niveau d'imbrication, ne semble pas pouvoir être créé.

On peut créer :
Product < AggregateOffer
Mais pas :
Product < AggregateOffer < Offer

A mon avis, en l'état Flexicontent ne permet pas d'intégrer toutes les microdatas.
- Certains champs sont typés par défaut, comme creaDate et modifDate, et deviennent inutilisables dans les templates car incompatibles si on veut intégrer certains types comme Product.
- On ne peut pas créer plus de deux niveaux d'imbrication dans le code HTML.
Ou alors quelque chose m'échappe. :)

<div itemscope itemtype=" schema.org/Product ">
<img itemprop="image" src="dell-30in-lcd.jpg" alt="A Dell UltraSharp monitor"/>
<span itemprop="name">Dell UltraSharp 30" LCD Monitor</span>
<div itemprop="offers" itemscope itemtype=" schema.org/AggregateOffer ">
<span itemprop="lowPrice">$1250</span>
to <span itemprop="highPrice">$1495</span>
from <span itemprop="offerCount">8</span> sellers
Sellers:
<div itemprop="offers" itemscope itemtype=" schema.org/Offer ">
<a itemprop="url" href="save-a-lot-monitors.com/dell-30.html">
Save A Lot Monitors - $1250</a>
</div>
<div itemprop="offers" itemscope itemtype=" schema.org/Offer ">
<a itemprop="url" href="jondoe-gadgets.com/dell-30.html">
Jon Doe's Gadgets - $1350</a>
</div>
</div>
...
</div>
Last edit: 8 years 11 months ago by 012abc.

Please Log in or Create an account to join the conversation.

More
8 years 11 months ago #66197 by micker
apres le template a c'est limite a mon avis tu devrais codé le tiens

FLEXIcontent is Free but involves a very big effort on our part.
Like the our support? (for a bug-free FC, despite being huge extension) Like the features? Like the ongoing development and future commitment to FLEXIcontent?
-- Add your voice to the FLEXIcontent JED listing reviews. Thanks![/size]

Please Log in or Create an account to join the conversation.

More
8 years 11 months ago #66209 by 012abc

Please Log in or Create an account to join the conversation.

More
8 years 11 months ago #66213 by micker
les templates de bases ne sont que des bases et ils peuvent avoir des limitations ....
regarde dans la gestion des template le code est pas tres complexe

FLEXIcontent is Free but involves a very big effort on our part.
Like the our support? (for a bug-free FC, despite being huge extension) Like the features? Like the ongoing development and future commitment to FLEXIcontent?
-- Add your voice to the FLEXIcontent JED listing reviews. Thanks![/size]

Please Log in or Create an account to join the conversation.

More
8 years 11 months ago #66216 by 012abc
Ok, merci pour l'info. :)

J'ai d'autres priorités en fait.

J'ai lu aussi que Google recommondait JSON-LD pour le web sémantique (si je fais pas erreur).
"JSON-LD is the recommended format. Google is in the process of adding JSON-LD support for all markup-powered features. The table below lists the exceptions to this. We recommend using JSON-LD where possible."
developers.google.com/search/docs/guides...827812987&hl=fr&rd=1

Mais je ne vois pas comment implémenter JSON-LD avec Flexicontent. C'est peut-être un sujet pour rendre les contenus plus séduisants et améliorer l'expérience utilisateur avec les moteurs de recherche.

Please Log in or Create an account to join the conversation.

More
8 years 11 months ago #66325 by micker
en fait dans ton item.php tu peus charger les champs (regarde dans l'admin des template tu a des exeemple de code
<script type="application/ld+json">
{
"@context": " schema.org ",
"@type": "<?php echo lecodedetonchamptype ?>",
"url": "<?php echo lecodedetonchampurl ?>",
"contactPoint": [{
"@type": "ContactPoint",
"telephone": "+1-401-555-1212",
"contactType": "customer service"
}]
}
</script>

FLEXIcontent is Free but involves a very big effort on our part.
Like the our support? (for a bug-free FC, despite being huge extension) Like the features? Like the ongoing development and future commitment to FLEXIcontent?
-- Add your voice to the FLEXIcontent JED listing reviews. Thanks![/size]

Please Log in or Create an account to join the conversation.

More
8 years 11 months ago - 8 years 11 months ago #66336 by 012abc
Dans la page source, il y a un "//" dans le "src" de l'image :
<img src="/images/stories/flexicontent//m_annonce-07032015-12.jpg" alt="Carburateur F/012 AMAC-AMAL" class="fc_field_image" itemprop="image">

Merci pour ton aide. :)
Last edit: 8 years 11 months ago by 012abc.

Please Log in or Create an account to join the conversation.

More
8 years 11 months ago - 8 years 11 months ago #66341 by 012abc
Google Search valide les JSON-LD créés avec le template modifier (index.php). Il trouve bien un type Product et un sous-type Offer.
Product
- Offer

Le seul truc, c'est que le JS apparaît dans le <body> et non dans le <head> de la page.
"Markup is placed inside a script tag in the head of the HTML page."

Pour mes microdatas créés avec les champs (field), c'est plus ambiguë pour les raisons indiquées précédemment.
Google Search valide, mais identifie deux types distincts : Offer et Product (au lieu de Product < Offer) avec une microdata qui n'est ni une url, ni un identifiant : "ID: http www.arbracam.org/content/89-boutique-terrot/flexicontent ."
Offer
Product

Avec les microdatas, j'ai créé une page événement en HTML dans un textarea. Google Search valide conformément au HTML ( www.arbracam.org/item/12296-bourse-motos...-%C3%A0-longvic.html ):
Event
- Location
- Offers
Pour la mise en page en revanche, c'est galère. Le modèle impose une certaine hiérarchie aux éléments qui ne correspond pas forcément à la forme que l'on veut présenter en frontend.

JSON-LD apparait préférable aux autres formats : "JavaScript notation separate from the body of the HTML itself." Même s'il a aussi ses propres limites.

Ce serait parfait si on pouvait remonter le JSON-LD généré par Flexicontent dans le <head>.

Je colle le JS pour qui veut s'en inspirer :
<script type="application/ld+json">
{
<?php
$html_img = $item->fields->display;
preg_match( '@src="([^"]+)"@' , $html_img, $match );
$src_img = array_pop($match);
?>
"@context": " schema.org/ ",
"@type": "Product",
"name": "<?php echo str_replace('"','',strip_tags($item->fields->display)); ?>",
"image": " www.arbracam.org ",
"description": "<?php echo str_replace('"','',strip_tags($item->fields->display)); ?>",
"offers": {
"@type": "Offer",
"url": " www.arbracam.org "priceCurrency": "<?php echo strip_tags($item->fields->display); ?>",
"price": "<?php echo strip_tags($item->fields->display); ?>",
"availability": "<?php echo strip_tags($item->fields->display); ?>"
}
}
</script>

Collé dans le index.php du template après le code :
// SEO
$microdata_itemtype = $this->params->get( 'microdata_itemtype');
$microdata_itemtype_code = $microdata_itemtype ? 'itemscope itemtype=" schema.org/'.$microdata_itemtype .'"' : '';
?>
Last edit: 8 years 11 months ago by 012abc.

Please Log in or Create an account to join the conversation.

Moderators: vistamediajoomlacornerggppdk
Cookies user preferences
We use cookies to ensure you to get the best experience on our website. If you decline the use of cookies, this website may not function as expected.
Accept all
Decline all
Essential
These cookies are needed to make the website work correctly. You can not disable them.
Display
Accept
Analytics
Tools used to analyze the data to measure the effectiveness of a website and to understand how it works.
Google Analytics
Accept
Decline
Save