Editor TinyMCE – implementace a základní nastavení

EditorChcete-li dát uživateli na webové stránce prostor k vyjádření obsáhlejší myšlenky, hodí se nabídnout alespoň základní editor, který podpoří tvůrčí činnost vhodným formátováním. Mezi oblíbenou volbu patří projekt TinyMCE, který využívá například i WordPress. Editor bez problémů funguje ve všech nejpoužívanějších prohlížečích a zvolená open-source licence (LGPL) přidává další pádný důvod, proč se rozhodnout pro zakomponování.

Hotovo je za několik minut

Na webové stránce tinymce.com/download/download.php si stáhněte balíček obsahující vše potřebné pro nasazení na webu. Lokalizační soubory poté naleznete zde. V obsáhlém seznamu se nachází i čeština. Po stažení jazyka překopírujte soubory na odpovídající umístění ve složce „tiny_mce“ v hlavním balíčku. Samotná implementace začíná v hlavičce ve formě JavaScriptu a pokračuje uvnitř samotné stránky vložením formulářového prvku textarea. Během inicializace editoru lze nastavit mnoho užitečných vlastností.

<html>
<head>
<script type="text/javascript" src="./inc/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
language : "cs",
entity_encoding : "raw",
mode : "textareas",
theme : "advanced",
plugins: "paste,wordcount",

theme_advanced_buttons1 :
"code,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2 :
"undo,redo,|,paste,pastetext,pasteword,|,bullist,numlist,|,link,unlink",
theme_advanced_resizing : true
});
</script>
</head>
<body>
<textarea name="clanek" rows="15" cols="80" style="width: 100%">
</textarea>
</body>
</html>

TinyMCE

TinyMCE dokáže změnit svůj vzhled. Protože si většinou lidé přejí upravit editor dle vlastních představ, používá se zpravidla volba theme : „advanced“. O použití staženého českého jazyka se poté postará language : „cs“. Diakritika se však může zobrazovat ve zdrojovém kódu s pomocí speciálních znaků (entit). Znak á proto bude například nahrazen za &aacute;. Toto chování zakáže ‚entity_encoding : „raw“.

Úprava menu

Přidání nebo naopak odebrání dostupných funkcí představuje častý požadavek. Jednoduše stačí dostupná tlačítka specifikovat v rámci konkrétního řádku, jež vždy začíná na theme_advanced_buttons a končí číslovkou. Optické oddělení příbuzných tlačítek zajistí znak | (svislá čára). Některé z funkcí vyžadují předchozí načtení pluginu. Této problematice se blíže věnuje tinymce.com/wiki.php/Plugins a podružné stránky v pravém menu.

Pouze pro čtení

Toužíte po pouhém zobrazení textu bez možnosti jeho editace? V tom případě stačí odstranit sekci věnující se pluginům i konkretizaci dotyčných tlačítek. Následně již jen povolte mód umožňující pouze čtení s pomocí readonly : true.

<html>
<head>
<script type="text/javascript" src="./inc/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
language : "cs",
entity_encoding : "raw",
mode : "textareas",
theme : "advanced",
readonly : true
});
</script>
</head>
<body>
<textarea name="clanek" rows="15" cols="80" style="width: 100%">
</textarea>
</body>
</html>

Hudební Humble Bundle přináší uživatelské účty

Humble Music BundlePopulární projekt sídlící na humblebundle.com několikrát v minulosti umožnil pořízení vybraných her za libovolnou cenu. Zákazníci si sami nejprve určili, kolik chtěli zaplatit a až poté došlo k úhradě. Každá z nabídek však platila jen po určitou dobu, proto s koupí obvykle nikdo neváhal. Několikrát se totiž lidé dočkali i dalšího bezplatného bonusu, který byl přidán všem majitelům daného balíčku aplikací. V minulosti si web vyzkoušel i experiment s hrami pro mobilní zařízení, nyní testuje poptávku po hudbě.

V rámci Humble Music Bundle lze momentálně získat následující alba (formát MP3 a FLAC):

  • Favoritism – MC Frontalot
  • Album Raises New and Troubling Questions – They Might Be Giants
  • Calling All Dawns – Christopher Tin
  • Best of the Valkyria Chronicles – Hitoshi Sakimoto
  • Jonathan Coulton’s Greatest Hit Plus13 Other Songs – Jonathan Coulton

Pakliže vámi zvolená cenovka přesáhne průměrnou výši platby (v době psaní toho textu šlo přibližně o 8 dolarů) budete odměněni přídavkem v podobě Twelve Remixes of Four Songs (OK GO). Přesně dle vašeho přání rovněž budou finanční prostředky rozděleny mezi umělce, charitu a samotný projekt Humble Bundle. S pomocí jednoduchých posuvníků můžete například věnovat celou sumu na dobročinné účely. Zapojeny jsou momentálně dvě organizace – Child’s Play Charity a Electronic Frontier Foundation.

Uživatelský účet: Konečně!

Osobně mě okamžitě zaujala možnost vytvořit si na stránce účet, který nabídne jednoduchou správu všech již zakoupených produktů. Jestliže během registrace použijete email, se kterým již byly provedeny nákupy jednotlivých balíčků, dojde k jejich automatickému přidání. V opačném případě následuje jiný postup. Musíte zpětně vyhledat odkazy s klíčem na stránku nabízející stažení her. V pravém horním rohu se poté nachází velmi užitečné tlačítko nesoucí nápis „Claim this page„. Díky němu se již pod položkou „My library“ přehledně zobrazí všechny hry i hudební soubory.

Zvýraznění aktuální položky v menu s pomocí PHP

Zvýraznění položky v menuPředstavme si klasický web. Zcela určitě na něm naleznete menu. K usnadnění orientace přitom může pomoci zvýraznění stránky, na které se uživatel momentálně nachází. Zdá se přitom, že jde o zanedbatelnou drobnost, schopnost pohybovat se na daném portálu s jistotou se však stává klíčovým požadavkem.

K odlišení zvolené položky často plně postačí změnit její pozadí. O samotnou obměnu barvy se přitom starají kaskádové styly. Pokud si dnes stáhnete libovolnou bezplatnou šablonu, bývá již obvykle dostatečně připravena. Zvýraznění provádí přiřazení patřičného id samotnému odkazu nebo tagu li.

<ul>
<li id="current"><a href="login.php" ><span>Přihlásit se</span></a></li>
<li><a href="register.php" ><span>Registrace</span></a></li>
<li><a href="faq.php" ><span>FAQ</span></a></li>
</ul>

Uvedený příklad může vypadat například takto:

Menu

Nyní si ve stručnosti představíme jednotlivé způsoby, které lze pro zvýraznění použít. U jednoduchého statického a opravdu nerozsáhlého webu lze přistoupit k manuálnímu připsání dotyčného id u každého souboru. V případě rozsáhlejšího projektu lze nastíněný problém řešit buď na straně serveru nebo použít JavaScript. Tento skriptovací jazyk se mi zde však nezdá jako příliš vhodný, protože jej daný návštěvník nemusí mít povolený. Zbývá tedy varianta odeslání do prohlížeče již vhodně upravené stránky, kde id bude patřit vybrané součásti z menu. Původně jsem myslel, že v PHP budu muset vytvořit velký počet podmínek, existuje však mnohem elegantnější zápis.

O vše se postará následující řádek:

if (strpos($_SERVER['PHP_SELF'], 'login.php')) echo ' id="current"';

Globální proměnná $_SERVER[‚PHP_SELF‘] obsahuje cestu k aktuálnímu souboru. Pokud v ní funkce strpos nalezne zadaný řetězec (v našem případě login.php) vrátí pozici, na které začíná. V případe žádného výskytu se dočkáme FALSE. Výpis id=“current“ se proto u nevyhovující podmínky neprovede.

Nyní již jen stačí zmíněný kousek kódu umístit na patřičné místo. Obvykle záleží na tom, zda chcete nastavit id tagu a nebo li. Náš příklad vyžaduje druhou možnost, a proto pro zajištění plné funkčnosti postupuji následovně:

  echo '<li';
  if (strpos($_SERVER['PHP_SELF'], 'login.php')) echo ' id="current"';
  echo '><a href="login.php" ><span>Přihlásit se</span></a></li>';
 
 echo '<li';
  if (strpos($_SERVER['PHP_SELF'], 'register.php')) echo ' id="current"';
  echo '><a href="register.php" ><span>Registrace</span></a></li>';

 echo '<li';
  if (strpos($_SERVER['PHP_SELF'], 'faq.php')) echo ' id="current"';
  echo '><a href="faq.php" ><span>FAQ</span></a></li>';