Na této stránce uvádíme tipy pro konfiguraci Verzované dokumenace a její možný rozvoj pro plnění vašich potřeb.
Konfigurace
Název verzované dokumentace
V modelu verzované dokumentace je hlášení s kódem page_title. To představuje název dokumentace, který se zobrazuje v záhlaví stránky a titulku záložky prohlížeče.
Jazyky
Do verzované dokumentace je možné přidal libovolný jazyk. Pro nový jazyk přidejte nový záznam do třídy Jazyk.
Výchozí jazyk
Jeden jazyk je třeba nastavit jako výchozí. To je jazyk, který se bude zobrazovat, pokud článek nebude mít požadovanou lokalizaci. Všechny články by měly mít text v tomto výchozím jazyku.
Nastavení se provádí pomocí parametru Výchozí jazyk pro články. Jako hodnotu zadejte kód jazyka, např. cs-CZ, en-US, de-DE...atd.
Výchozí článek
Při zobrazení článku se článek vyhledá vyhledá v databázi podle URL nebo čísla článku. Pokud však daný článek není nenalezen, je zobrazen jeden univerzální článek. V něm je třeba napsat uživateli informaci o tom, že článek nebyl nalezen, z jakých možných důvodů a jak může dále pokračovat.
Tento výchozí článek je třeba vytvořit a v parametru Výchozí článek zadat jeho ID.
Vzhled verzované dokumentace
Vzhled dokumentace je nadefinován na stránce article. Pokud jej potřebujete změnit, pak upravte schéma stránky.
Zároveň si upravte odkazy na sociální sítě, včetně přidání dalších, které používáte.
Přístup k obrázkům
Anonymní uživatel, který bude s dokumentací pracovat, musí mít přístup k obrázkům použitým v dokumentaci. K obrázkům má standardně přístup pouze ověřený uživatel. Anynymní přístup zajistíme vložením souboru web.config s níže uvedeným obsahem do adresáře s obrázky.
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</configuration>
Vývoj
Celé zobrazení dokumentace je implementováno na jedné stránce Verzovaná dokumentace. Načítání článků, menu a vyhledávání provádí skripty stránky.Vlastní zobrazení vyhledaného článku provádí webpart skript.
Změna vzhledu a barev
Pokud potřebujete přizpůsobit vzhled firemním barvám nebo změnit rozložení, upravte schéma stránky Verzovaná dokumentace.
Změny ve stylech proveďte v souboru Modules/OG.VersionDoc/VersionDoc.css (je připojen ve webpartu skript s kódem common).
Vzhled zobrazeného článku změníte ve webpartu skript s kódem text. Snadno tak zobrazíte hodnotu nového sloupce, který k článku přidáte, nebo jen lehce změníte zobrazení.
Sociální sítě
Ve schématu stránky Verzovaná dokumentace jsou odkazy na sociální sítě. Aktualizujte si jejich url a případně přidejte další, které ve firmě používáte.
<a href="https://www.linkedin.com/company/objectgears" title="LinkedIn" target="_blank" class="nsp"><img src="modules/OG.VersionDoc/linkedin.png" /></a>
<a href="https://twitter.com/ObjectGears" title="Twitter" target="_blank" class="nsp"><img src="modules/OG.VersionDoc/twitter.png" /></a>
<a href="https://www.facebook.com/objectgears" title="Facebook" target="_blank" class="nsp"><img src="modules/OG.VersionDoc/facebook.png" /></a>
Redirect na VCD
Dokumentace je implementovaná jako stránka ObjectGears. Té odpovídá standardně url ve formátu WebContentPage.aspx?Id=80. To není pěkná adresa, ale ObjectGears vám nabízí pracovat s url dle vaší volby. Ve Verzované dokumentaci pomocí routujeme na adresy VCD/.... To se provádí se v aplikační události Po startu aplikace.
var m = OG.Model.GetByCode('vcd');
var cp = OG.ContentPage.GetAll().GetByCode(m.Id, 'article');
var r = OGRoute.Create('vcd_an_v', 'vcd/{lang}/an/{an}/v/{version}', '~/WebContentpage.aspx');
r.AddPar( 'id', cp.Id.ToString());
r.AddPar( 'version', '');
r.AddPar( 'lang', '');
r.Use();
...
Takto je nakonfigurováno několik adres, přes které lze do dokumentace přistupovat. Využijte to například při URL požadavcích z jiných systémů, které mají vrátit výsledky hledání. Níže je několik příkladů:
vcd
vcd/{lang}/an/{an}/v/{version}
vcd/{lang}/tag/{tag}
vcd/{lang}/search/{search}
Redirect z původní dokumentace
Na doméně doc.objectgears.cz existovala původní dokumentaci, která nebyla implementovaná na systému ObjectGears a do které se přistupovalo pomocí url Help.aspx?h=... Tato url však v systému ObjectGears neexistuje. Protože původní adresy může někdo používat, vytvořili jsme v aplikační události Po výskytu chyby přesměrování na správnou url.
if ( OGErrorInfo.IsInvalidPage && OGErrorInfo.Request.Url.AbsolutePath.ToLower().Contains('help.aspx'))
{
OGErrorInfo.RedirectPermanent = true;
OGErrorInfo.RedirectToUrl = './vcd/en-us/' + OGErrorInfo.Request.QueryString['h'] + '/v/1.7.1.0/';
}
Přesměrování z / na VCD
Pokud uživatel zadá v prohlížeči pouze doc.objectgears.cz, pak se mu standardně zobrazí Login.aspx stránka pro přihlášení. Běžní čtenáří článků nemají účet v ObjectGears, a tak aby nedošlo k zobrazení této přihlašovací stránky, přidali jsme přesměrování v aplikační události Na začátku web. požadavku na stránku VCD.
//presmerovani z default.aspx na VCD
var url = System.Web.HttpContext.Current.Request.Url.AbsolutePath.ToLower();
if ( !OG.Person.IsAnyLogin() && (url == '/' || url == '/default.aspx'))
{
System.Web.HttpContext.Current.Response.Redirect( OG.GetWebUrl() + 'vcd');
}
Priorita řazení článků při vyhledávání
Výsledky při hledání v dokumentaci se řadí podle relevance. Hledaný text se může nacházet v několika vlastnostech článku. Protože každý typ výskytu má jinou relevanci, má také přiřazený jiný počet bodů. Body sečteme pro každý nalezený článek (násobí se hodnocení za typ výskytu počtem daného výskytu) a v tomto pořadí jsou záznamy seřazeny a vypsány uživatelům.
Bodové ohodnocení se nastavuje ve skriptu na stránce Verzovaná dokumentace ve funkci FindByText. Pokud potřebujete hledat i v jiných sloupcích, pak rozšiřte příslušný SQL příkaz o další hledání a vhodně přidělte nové body.
Výchozí přidělení bodů:
Výskyt |
Body |
Číslo článku |
100 |
URL textu článku |
50 |
Tag přiřazený k článku |
25 |
Nadpis textu článku |
15 |
Meta Description textu článku |
3 |
V textu článku |
1 |
Logování chybných hledání
Pokud při hledání požadovaného článku žádný článek není nalezen, zobrazí se výchozí článek. Zároveň se do třídy wrong_search zapíše, co uživatel hledal. Takto odhalíte neexistující odkazy z jiných stránek či externích zdrojů.
Záznam provádí metoda LoadArticle ve skriptu na stránce Verzovaná dokumentace:
if ( firstArt == null)
{
//ulozit hledaný clanek, ktery nebyl nalezen
var clBad = OGModel.ClassDefs['wrong_search'];
var drBad = OG.DataRow.CreateNew(clBad.Id);
drBad['an'] = an;
drBad['url'] = url;
drBad['topic'] = topic;
drBad['loc'] = loc;
drBad['version'] = v;
OG.DataRow.SaveData(drBad);
//pokud uzivatel nema opravneni nebo clanek nebyl nalezen, je vracen vychozi clanek
firstArt = FindArticle(null, null, null, loc, null, OG.DataParameter.GetDataParameter( OGModel.Id, 'no_rights').ValueInteger, null, isEditor);
}