Bloxxy je jednoduchý publikační systém vytvořený v PHP pro tvorbu, správu a generování blogů. Jednotlivé příspěvky se řadí do skupin, z nichž jsou poté podle předloh generovány statické dokumenty (HTML, XHTML, XML, TXT - podle typu předlohy). Publikační možnosti Bloxxy zhruba odpovídají Bloggeru (není ale nutný FTP přístup).
Bloxxy používá automatické formátování podobné (ale ne stejné) systému vikki. Příspěvky lze tedy psát zcela bez použití HTML značek (ty jsou ale podporovány a ponechány v textu beze změny).
0.1 beta (4. 2. 2003) - první verze, ještě teplá.
PHP na straně serveru, FTP přístup s možností nastavení přístupových práv v adresáři Bloxxy. Na straně klienta libovolný prohlížeč s podporou cookies (kvůli autentifikaci). Na serveru se předpokládá nastavený korektní čas a datum, je na ně vázána správa vkládání příspěvků.
Upravte nastavení aplikace v souboru index.php (viz dále) a umístěte adresář Bloxxy na WWW server. Pokud chcete použít soubor index k jinému účelu (třeba homepage blogu právě v tomto adresáři), index.php klidně můžete přejmenovat (např. editor.php). Ostatním souborům ale jména neměňte. Víc dělat není potřeba.
Bloxxy používá jednoduchou autentifikaci uživatelů, přihlášení probíhá pouze při prvním spuštění editoru (pro práci s editorem musíte mít v prohlížeči povoleny cookies). Seznam uživatelů (autorů) je uložen přímo v souboru index.php. Změňte v úvodní sekci (pole $authors
) své identifikační údaje - přihlašovací jméno, heslo, zobrazované jméno a e-mail. Přihlašovací jméno slouží jako index pole, budete-li se např. přihlašovat jako 'beda' s heslem '12345' (určitě si ale vymyslíte lepší heslo), vaše příspěvky mají být podepsány Béďa Novák s e-mailem beda@novak.cz, bude pole vypadat takto:
$authors['beda']['passwd'] = '12345' $authors['beda']['name'] = 'Béďa Novák' $authors['beda']['e-mail'] = 'beda@novak.cz'
POZOR: Obsahuje-li položka (především jméno) znaky s diakritikou, musíte počítat s tím, že všechna data se zpracovávají podle nastaveného kódování (viz níže). Máte-li proto nastaveno např. kódování ISO Latin2, musíte sem údaje zapsat v tomto kódování, jinak se budou zobrazovat chybně.
Můžete přidat více uživatelů (s jiným přihlašovacím jménem), jejich příspěvky pak budou evidovány podle přihlášení.
Bloxxy je připraveno pro mutaci do jiných jazyků. Po instalaci obsahuje rozhraní v angličtině a češtině v kódováních iso-8859-2
(ISOlatin2) a windows-1250
(CP1250). Protože obsah příspěvků i rozhraní se zobrazují na stejných stránkách, musí být jazyk a kódování editoru i výsledných stránek stejné (Bloxxy neobsahuje překódovávání a nemyslím, že někdy bude).
Použitý jazyk a kódování se nastavuje v proměnné $use_language
. Možné hodnoty jsou "en" (anglické rozhraní, kódování iso-8859-1), "cs-iso" (čeština, iso-8859-2) a "cs-win" (čeština, windows-1250). Nastavení předpokládá, že v konfiguračním adresáři existuje soubor "bloxxy-strings-KOD", kde KOD je nastavená hodnota jazyka. Chcete-li vytvořit další alternativy, zkopírujte některý z existujících souborů "bloxxy-strings-KOD", přejmenujte KOD na (dosud nepoužitou) zkratku a upravte soubor podle nového nastavení. Např. budete-li chtít stránky ve slovenštině s kódováním UTF-8, postup je tento:
bloxxy-strings-sk-utf
$BLXS['Charset'] = 'utf-8';
a $BLXS['Lang'] = 'sk';
;$use_language = 'sk-utf';
setlocale(LC_ALL,"Slovak");
$use_autoformat
- hodnoty "HTML", "XHTML", nebo "" (či false). Povoluje/zakazuje použití automatického formátování příspěvků s použitím syntaxe BXTags (viz dále). S hodnotou HTML/XHTML jsou příspěvky formátovány v jazyce HTML, resp. XHTML. Použijte false, pokud chcete psát příspěvky pouze v HTML a autoformátování nehodláte nikdy používat. $items_perpage
- hodnotou je číslo větší než 1. Určuje počet příspěvků na stránce v seznamu příspěvků v editoru (netýká se výsledných stránek). $textarea_columns
, resp. $textarea_rows
- hodnotou je číslo, které určuje rozměry vstupního pole pro psaní příspěvku (počet sloupců, resp. řádek). $week_starts_moday
- true/false. Použijte true, pokud má týden začínat pondělkem; s hodnotou false se bude počítat od neděle (používá se pro dělení archivů po týdnech).
Bloxxy pracuje se třemi typy údajů: příspěvky, skupinami a publikacemi. Příspěvky jsou jednotlivé zprávy/články, tvořící obsah stránek. Ty jsou uspořádány do skupin (každá zpráva je právě v jedné skupině). Publikace definují výsledné stránky, do kterých se následně generují příspěvky z přiřazené skupiny.
Každý příspěvek je zařazen do nějaké skupiny. Výchozí (ne-tak-úplně) skupinou, která vždy existuje, je "nezařazen". Příspěvky v této skupině nejsou zařazeny do řádné "skutečné" skupiny a nejsou také publikovány na stránkách.
Tlačítkem "Zobrazit" zobrazíte příspěvky ve zvolené skupině, tlačítkem "Zobrazit všechny" pak všechny existující příspěvky. Tlačítkem "Nová skupina" vytvoříte novou skupinu libovolného jména (jméno skupiny se nikde na stránkách nezobrazuje). Mazání a ani editaci skupin Bloxxy (ještě) nepodporuje, změny lze ale (s nejvyšší opatrností) provést ručně - informace o skupinách jsou v souboru groups.conf v konfiguračním adresáři.
Tlačítkem "Nový příspěvek" otevřete editor příspěvku. Zde vyplníte jeho text, kterým je prostý text se syntaxí automatického formátování BXTags (není-li vypnuto), nebo HTML/XHTML/XML kód. Zvolíte skupinu, do níž se má příspěvek umístit, a uložíte jej. Pokud je zvolená skupina součástí nějaké publikace, je příspěvek ihned publikován na stránky. Pokud jej označíte jako "nezařazen", na stránkách se neobjeví.
V zobrazeném seznamu příspěvků jsou u každého z nich k dispozici tři akce. "Upravit" otevře editor příspěvku. Uložené změny se ihned promítnou na stránkách - pokud byl příspěvek na nějaké stránce a přesunete jej do skupiny "nezařazen" (nebo jej smažete), ze stránek bude odstraněn, pokud jej přesunete do nějaké publikované skupiny, bude zařazen do příslušných stránek. "Náhled" zobrazí text příspěvku tak, jak bude formátován na stránce. "Publikovat" přegeneruje všechny stránky, na které je tento příspěvek umístěn.
Publikace jsou mezičlánek mezi skupinami příspěvků a výslednými stránkami. Při vytvoření nové publikace určujete skupinu(y), z níž se mají publikovat příspěvky a parametry výsledných stránek. Publikací může být libovolné množství, stejný příspěvek tedy můžete zobrazit na více stránkách s různým formátováním. Lze tak snadno vytvořit jak několik tématicky oddělených blogů, tak i meta-blog obsahující všechny příspěvků, stránku se stručným přehledem příspěvků (šablony obsahují klíčové slovo pro zkrácený náhled příspěvku), RSS soubory pro jeden nebo všechny blogy atd. Přidání/změna jednoho příspěvku se pak automaticky promítá do všech dotčených publikací.
YYYY_MM_DD_
- bude-li URL archivu např. ../mujblog/archiv.html
, budou jednotlivé archivované blogy uloženy na stránkách ../mujblog/2003_02_24_archiv.html
atd.Provedete-li jakoukoli změnu v nastavení publikace, musíte ji uložit, jinak se změny neprojeví. Tlačítkem "Přegenerovat" vygenerujete všechny stránky, které jsou s touto publikací svázány (hlavní stránka, všechny archivované stránky a obsah archivu). Při změně nastavení se nemažou žádné soubory - pokud např. změníte prefix či umístění archivu, dřívě vygenerované stránky zůstanou na původním místě. Informace o publikacích jsou v souboru publications.conf v konfiguračním adresáři (lze s nejvyšší opatrností upravovat).
Bloxxy používá pro snazší psaní příspěvků automatické formátování (BXTags). Jeho idea vychází z podobných existujících editorů, ale žádný nekopíruje - BXTags byly vytvořeny úplně od začátku, jen podle mých vlastních potřeb (ostatně stejně jako celé Bloxxy). Použití automatického formátování lze zcela vypnout v nastavení (v souboru index.php), stejnou proměnnou se nastavuje, zda se příspěvky formátují jako HTML, nebo jako XHTML (výchozí nastavení).
BXTags primárně pracuje s odstavci. Nový odstavec určuje odřádkování, vše mezi dvěma entery (resp. začátkem/koncem textu) je jeden odstavec. Pokud není určeno jinak, odstavec se formátuje jako <p>odstavec</p>. Pouze v prípadě, kdy nový odstavec začíná znakem +, spojí se s předchozím odstavcem a + je nahrazeno značkou <br>, resp. <br /> v případě XHTML. Vše je potom zpracováváno jako jeden odstavec.
BXTags rozpoznává tři druhy formátovacích značek: celořádkové (značka na samostatném řádku), prefixy a vnitřní formátování. Následuje popis jednotlivých formátovacích značek:
Obsahuje-li řádek (odstavec) pouze:
\
- zapíná/vypíná automatické formátování následujících odstavců. Vše za touto značkou (resp. do jejího dalšího výskytu) bude zobrazeno beze změny, tak jak je zapsáno.---
- tři a více pomlček se nahradí vodorovnou linkou (<hr>, resp. <hr />){--
- nahradí se značkou <pre>, všechny další odstavce budou zobrazeny jako předformátované (obvykle neproporciálním písmem)--}
- nahradí se značkou </pre>, ukončuje účinnost předchozí značkyZačíná-li řádek následujícím prefixem, následovaným alespoň jednou mezerou:
\
- vypíná automatické formátování odstavce, vše až do konce odstavce bude zobrazeno tak, jak je zapsáno||
- komentář; celý odstavec bude zapsán <!--v komentáři-->|||
- skrytý odstavec; vše do konce odstavce bude skryto, při publikování na stránky bude tento odstavec ignorován:
, ::
, :::
, ::::
- odstavec bude formátován jako nadpis H4-H1. Pozor, úroveň nadpisu odpovídá počtu dvojteček obráceně - čím více dvojteček, tím důležitější/výraznější nadpis (:=H4, ::=H3, :::=H2, ::::=H1)"
- blockquote. Celý odstavec se považuje za citaci.#
- číslovaný seznam. Všechny odstavce následující za sebou a začínající touto značkou, budou tvořit číslovaný seznam (OL). Jakýkoli jiný typ odstavce seznam přeruší.#
, *
, nebo .
- nečíslovaný seznam (UL), stejně jako předchozí. Jednotlivé značky se nerozlišují a mají tentýž význam, jako by byla použita jen jedna z nich.Vnořené seznamy nelze vytvořit (v případě takové potřeby musíte použít [X]HTML).
Následující značky se překládají uvnitř textu odstavce (za případným prefixem):
*text*
- zesílený text, <strong>text</strong>
~text~
- zvýrazněný text, <em>text</em>
{{"text}}
- citace, <q>text</q>
{{'text}}
- citace, <cite>text</cite>
{{text}}
- kód, <code>text</code>
[URL|text odkazu]
- odkaz, <a href="URL">text odkazu</a>
[URL]
- odkaz, <a href="URL">URL</a>
[?zkratka|popis zkratky]
- zkratka, <abbr title="popis zkratky">zkratka</abbr>
[?zkratka]
- zkratka, <abbr>zkratka</abbr>
Překládají se také speciální znaky a sekvence:
&
- pokud není součástí HTML entity, přeloží se jako &
(a to i v HTML kódu!)_
- přeloží se jako
(nedělitelná mezera). Pouze vně HTML kódu."
- přeloží se jako "
. Pouze vně HTML kódu.\
- ruší význam následujícího znaku - např. \*
(zobrazí se *
a nepovažuje se za začátek/konec zvýraznění), \{
(zobrazí se {
a nepovažuje se za BXTag), \&
(ponechá &
místo &
), \\
(zobrazí znak \
). Výjimku tvoří pouze následující dvě sekvence:\<
a \>
- zobrazí znaky <
a >
(<, >
). Bez znaku \
se považují za začátek/ukončení HTML značekPříspěvek zapsaný takto:
:::: Můj příspěvek ---- Je-li zapnuto *automatické formátování ~BXTags~ s jazykem [?HTML|Hypertext Markup Language]* nemusím vůbec používat značky. Například: - \~ (tilda) dělá ~zvýrazněný text~ - znak \* dělá *tučný* text # číslované seznamy # se dělají # takto {-- toto bude PRE text --} \ # tady jsem vypnul formátování --- a můžu dělat co chci, zobrazí se to přesně takhle \ A teď už je formátování zase zapnuto \ Tenhle odstavec se výjimečně *nebude* formátovat A tenhle ano +(tohle je pořád ten samý odstavec jen s odřádkováním) Tohle je {{kód}}, tohle taky {{kód\}}kód}} Tohle je {{"citace 1}} a {{'citace 2}} A hlavně odkazy: [http://www.pixy.cz] nebo [http://www.pixy.cz|moje homepage]. +A když chci hranaté závorky, zapíšu je takhle: \[ a \].se zformátuje (při zapnutém autoformátování, nastaveném na XHTML) takto:
<h1>Můj příspěvek</h1> <hr /> <p>Je-li zapnuto <strong>automatické formátování <em>BXTags</em> s jazykem <abbr title='Hypertext Markup Language'>HTML</abbr></strong> nemusím vůbec používat značky. Například:</p> <ul> <li>~ (tilda) dělá <em>zvýrazněný text</em></li> <li>znak * dělá <strong>tučný</strong> text</li> </ul> <ol> <li>číslované seznamy</li> <li>se dělají</li> <li>takto</li> </ol> <pre> toto bude PRE text </pre> # tady jsem vypnul formátování --- a můžu dělat co chci, zobrazí se to přesně takhle <p>A teď už je formátování zase zapnuto</p> <p>Tenhle odstavec se výjimečně *nebude* formátovat</p> <p>A tenhle ano<br /> (tohle je pořád ten samý odstavec jen s odřádkováním)</p> <p>Tohle je <code>kód</code>, tohle taky <code>kód}}kód</code></p> <p>Tohle je <q>citace 1</q> a <cite>citace 2</cite></p> <p>A hlavně odkazy: <a href='http://www.pixy.cz'>http://www.pixy.cz</a> nebo <a href='http://www.pixy.cz'>moje homepage</a>.<br /> A když chci hranaté závorky, zapíšu je takhle: [ a ].</p>tedy takto:
Je-li zapnuto automatické formátování BXTags s jazykem HTML nemusím vůbec používat značky. Například:
toto bude PRE text# tady jsem vypnul formátování --- a můžu dělat co chci, zobrazí se to přesně takhle
A teď už je formátování zase zapnuto
Tenhle odstavec se výjimečně *nebude* formátovat
A tenhle ano
(tohle je pořád ten samý odstavec jen s odřádkováním)
Tohle je kód
, tohle taky kód}}kód
Tohle je citace 1
a citace 2
A hlavně odkazy: http://www.pixy.cz
nebo moje homepage.
A když chci hranaté závorky, zapíšu je takhle: [ a ].
Předlohy stránek jsou dvou typů - předloha pro stránky a předloha pro archiv (seznam archivovaných stránek). Jejich syntaxe je obdobná, ale přece jen odlišná a předloha pro archiv podporuje podstatně méně příkazů. Předloha se vytvoří jako libovolný dokument, při generování jsou v něm pouze zaměněna klíčová slova za skutečný obsah. Předlohy tedy nemusí být nutně pouze HTML/XHTML, ale i XML, RSS, textové atd. Podobu výsledné stránky ovlivňujete sami vhodně připravenou předlohou. V adresáři Bloxxy najdete připravené jednoduché předlohy pro stránky i pro archiv, v nichž najdete příklad použití většiny klíčových slov.
Předlohy pro stránky mohou obsahovat následující klíčová slova. Jsou ohraničena znakem %. Neznámá nebo nevhodně umístěná klíčová slova se nepřekládají a zůstanou ve výsledné stránce.
%bx_title%
- Název stránky, nahrazuje se názvem publikace (viz nastavení publikace výše)%bx_description%
- Popis stránky, nahrazuje se stručným popisem publikace%bx_update DATE%
- Datum/čas polední aktualizace stránky (čas generování). Nastavení hodnoty DATE viz níže.%bx_day_archivelink%
- vloží relativní URL archivu (stránky s obsahem archivu).%bx_item%
, %bx_item_end%
- začátek/konec příspěvku. Tento blok se opakuje pro každý příspěvek na stránce a klíčová slova uvnitř se nahrazují údaji z konkrétního příspěvku.%bx_day%
, %bx_day_end%
- začátek/konec bloku DEN. Musí být vně bloku příspěvku. Seznam příspěvků na stránce je řazen od nejnovějších po nejstarší, pokud je v šabloně blok DEN uveden, příspěvky ze stejného dne se obalí kódem uvedeným v šabloně (kód mezi blokem DEN a blokem příspěvku).Následující klíčová slova lze použít pouze v bloku příspěvku, jinde nemají žádný význam:
%bx_date DATE%
- datum/čas vložení příspěvku. Nastavení hodnoty DATE viz níže.%bx_item_body%
- zformátovaný text příspěvku%bx_item_author%
- jméno autora, který příspěvek vložil%bx_item_mail%
- e-mailová adresa autora příspěvu%bx_item_authormail%
- jméno autora příspěvku s odkazem tvořeným e-mailovou adresou (<a href="mailto:e-mail">autor</a>
)%bx_item_permalink%
- trvalý odkaz na příspěvek (odkaz do archivu včetně #ID_příspěvku)%bx_item_id%
- unikátní ID příspěvku (součást trvalého odkazu); odpovídá času vložení příspěvku (unix timestamp). Pro korektní fungování archivu by šablona měla v bloku příspěvku obsahovat kód <a name="%bx_item_id%"></a>
- na tyto pojmenované odkazy jsou směřovány trvalé odkazy do archivu.%bx_item_autotitle DEFAULT%
- automatický nadpis příspěvku; nalezne nadpis nejvyšší úrovně (H1-H6) v textu příspěvku (je-li jich více, použije se první z nich); není-li řádný nalezen, použije se text DEFAULT. Příklad: %bx_item_autotitle Bez názvu%
, %bx_item_autotitle%
(nenajde-li se nadpis, položka bude prázdná).%bx_item_autopreview MAX%
- automatický náhled obsahu příspěvku, omezený na MAX znaků (není-li MAX uvedeno, nebo je-li menší než 1, bude zobrazen celý text). Obsah příspěvku je převeden do prostého textu (formátování a HTML značky jsou odstraněny) a případně zkráce na MAX znaků (za text jsou pak doplněny tři tečky). Automatický náhled příspěvků lze výhodně použít např. na generování přehledu blogů, RSS souborů atd. Příklad: %bx_item_autopreview 200%
.Následující klíčová slova lze použít pouze v bloku DEN:
%bx_date DATE%
- datum příspěvků v tomto bloku Nastavení hodnoty DATE viz níže.
Předlohy pro archiv mohou obsahovat pouze následující klíčová slova, jejich význam je obdobný jako v předlohách stránek.
%bx_title%
, %bx_description%
- shodně jako výše
%bx_archiveitem%
, %bx_archiveitem_end%
- opakovaný blok, obdobně jako blok příspěvku; tentokrát ale opakovaný pro každou stránku v archivu
%bx_archivelink%
- pouze uvnitř bloku, nahradí se URL archivované stránky
%bx_date DATE%
- pouze uvnitř bloku, nahradí se datem, jímž archivovaná stránka začíná
V klíčových slovech %bx_date% v šablonách se používá parametr DATE, který popisuje formát data/času. Níže uvedené znaky a sekvence se nahradí příslušným údajem, ostatní znaky jsou ponechány, např.: %bx_date YYYY-MM-DD,HH:MIN%
se zobrazí třeba jako 2003-02-27,14:06
(podle příslušného časového údaje).
Pozn.: Názvy měsíců a dní v týdnu jsou uloženy v souboru s jazykovou verzí. Potřebujete-li jejich jiný tvar, upravte příslušné řetězce v tomto souboru.
Pro datum 4. února 2003, čas 8:52:48
%bx_date d. m. yyyy%
... 4. 2. 2003%bx_date yyyy-mm-dd%
... 2003-02-04%bx_date Day, d. m. yyyy%
... Úterý, 4. 2. 2003%bx_date MON YYYY%
... ÚNOR 2003%bx_date YY - Mon DD [HH:MIN]
... 03 - Únor 04 [08:52]%bx_date day (hh.min.sec)%
... úterý (08.52.48)%bx_date hh:min (day/mon)%
... 08:52 (úterý/únor)To je asi vše.
Bloxxy je pouze betaverze, použití je na vaše vlastní nebezpečí. Oznámení závažných chyb a smysluplné připomínky vítám, reptání a stížnosti si nechte od cesty.