Základní implementace
Před zahájením implementace nás prosím kontaktujte na e-mailovou adresu podpora.diskuze@firma.seznam.cz. Na základě další komunikace vám vyrobíme unikátní identifikátor service-name
, který následně použijete v rámci inicializace diskuzního embedu.
Do hlavičky HTML stránky mezi tagy <head></head>
vložte:
<script type="text/javascript" src="https://d21-a.sdn.cz/d_21/sl/3/loader.js"></script>
Do místa na stránce, kde chcete embed vykreslit vložte:
<div id="discussion"></div>
Pomocí kódu níže si načtěte skript diskuzního embedu:
window.SZN.DiscussionLoader.load(["embedded"]).then(() => {
const instance = SZN.Discussion.create(
"service-name", // Přidělený identifikátor vaší služby
"discussion", // HTML element, ID elementu nebo query selector elementu
{
// konfigurace
}
);
// instance.loadDiscussion(...)
});
Místo ID elementu discussion
můžete použít jiné libovolné ID elementu na stránce, ve kterém se embed vygeneruje, instanci HTMLElementu nebo query selector. Řetězec service-name
nahraďte za námi přidělený strojový název vaší služby.
Dostupné atributy konfigurace:
linksInNewTab: [false]
- Pokud bude true, odkazy se budou otevírat v novém okněallowScroll: [true]
- Pokud je povoleno, embed může scrollovat hostující stránkublockSizeReduction: [false]
- Pokud je povoleno, zabrání zmenšení velikosti embedu. Např. při stránkování, kdy se embed zmenšuje na velikost obsahu. Dole zbude bílý prostor.
Nakonec vyrobíme instanci diskuzního embedu pomocí:
instance.loadDiscussion(
"canonicalString",
{ // meta data
title: "discussion or page title",
url: "http://url-of-page-with-the-discussion"
}
);
canonicalString
- Identifikátor konkrétní diskuze. Jedinečný řetězec vygenerovaný službou. Doporučujeme tento atribut nastavit na stejnou hodnotu jako canonical url nebo permalink článku, kterého se diskuze týká.metaData.title
- Nepovinný nadpis Diskuze. Doporučujeme nastavit na stejný titulek jako titulek článku. Pomůže vám to diskuzi pak snadno najít v administraci.metaData.url
- URL na které se nachází diskuzní embed
Úklid
Po dokončení práce diskuzního embedu zavolejte metodu unload. Tímto se odstraní události a instance samotná.
instance.unload();
Propojení diskuzí s Homepage Seznamu
Aby byla implementace na vašich stránkách kompletní, je potřeba zajistit propojení mezi diskuzní stránkou a Homepage Seznamu. Toho docílíte dvěma jednoduchými kroky. Do článku je nutné přidat hlavičku s metatagem szn:permalink
:
<meta name="szn:permalink" content="canonicalString" />
Hodnotu canonicalString
je zde potřeba nahradit stejným identifiátorem diskuze jako ve volání instance.loadDiscussion
.
Do strukturovaných dat (https://json-ld.org) článku přidejte položku discussionUrl
:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "NewsArticle",
...
"discussionUrl": "https://mujweb.xyz/diskuze/123"
}
</script>
Správné chování si můžete otestovat pomocí nástroje https://search.google.com/structured-data/testing-tool
Uzavření diskuze
Pokud nechcete zobrazovat bublinku vedoucí na diskuzi ze Seznam Homepage, je možné u článku poslat HTML hlavičku:
<meta name="szn:discussionDisabled" content="true" />
Tuto hlavičku se hodí posílat například u diskuzí, které byly zavřeny z důvodu porušování pravidel nebo které nemají být u článku vůbec vytvořeny.
Mám hotovo
Pokud vám diskuzní embed běží správně na vašem vývojovém prostředí, dejte nám o tom opět vědět prostřednictvím e-mailové adresy podpora.diskuze@firma.seznam.cz. Z naší strany proběhne krátká kontrola, po které můžete embed nasadit do produkčního prostředí.