Dokumentaci k tomuto pluginu přeložil do češtiny Vladimír Ajgl (vlada [zavinac] ajgl [tecka] cz) dne 29.12.2009. Od té doby mohl být plugin pozměněn nebo mohly být rozšířené jeho funkce. Zkontrolujte pro jistotu i aktuální anglickou dokumentaci.
Zabralo pořádnou chvíli vymyslet, jak má plugin pracovat u již vydaných příspěvků. Nakonec pracuje takto:
Nešlo jednoduše přepsat existující příspěvek, protože by návštěvníci blogu viděli částečné změny ještě před dokončením příspěvku. Takže se používá "stínová kopie", jiný, dočasný příspěvek uložený jako koncept, jehož název začíná '[AUTOSAVED] '. Původní příspěvek je svázán se svou stínovou kopií pomocí jedné vlastnosti.
Pokud příspěvek ještě nebyl publikován, jednoduše upravte koncept, odstraňte z nadpisu text '[AUTOSAVED] ', dokončete text a uložte příspěvek:-)
Pokud už jste příspěvek publikovali, vraťte se k jeho editaci (nestarejte se o svázanou stínovou kopii). Měli byste mít k dispozici druhý odkaz. Poté, co na něj kliknete, bude natažena verze s automaticky uloženými daty. Dokončete příspěvek a uložte ho jako obvykle. Příspěvek bude uložen a stínová kopie bude smazána.
Poznámka: V současné době se mi nadaří obnovení staré verze "inline" (pomocí ajaxu), kvůli WYSIWYG editorům ;-(
Všechna ta kouzla jsou dělána pomocí AJAXového volání v javascriptu. K tomu je použita knihovna Rico. Když je stránka s editací příspěvku natažena, je inicializován ajaxový engine. Vážně nic ohromujícího. Je přiřazena každá koncová url adresa s logickým jménem pro zjednodušení pozdějších volání a také je registrován html element (span), který obdrží výsledky volání.
Jakmile uplyne nastavená doba (a nebo při explicitním ručním klinutí), je vytvořeno a odesláno ajaxové volání, které obsahuje text editovaného příspěvku, s výjimkou statustu publikace, který je automaticky nastaven na "koncept", aby se zabránilo zveřejnění nedopsaných příspěvků. Na straně serveru jsou data uložena pomocí stejného kódu, jako při standardním uložení příspěvku (např. include/admin/entries.php je "vložen" s adminAction nastavenou na 'save'). Pokud je potřeba (např. pro ještě neuložený příspěvek), nově vkládané skryté pole "entryid" je aktualizováno nově vygenerovaným ID číslem, takže po stisknutí tlačítka "Uložit" bude příspěvek uložen s dokončeným textem :-)
Neostýchejte se poslat mi jakékoliv komentáře, otázky, náměty, překlady (jay [tečka] bertrand [zavináč] free [tečka] fr).