Návrh databáze je při vývojí nové aplikaci velice důležitá věc. Na dobrém rozvržení záleží především rychlost výsledné aplikace. Pokud databázi „bastlíme“ společně s aplikací většinou z toho nevyjde nic dobrého a při upravování a ladění s tím budou jen problémy a starosti.
O ajax slyšela snad většina webových programátoru. Né všichni ale umí tuto technologii použít. V dnešním článku bych chtěl shrnout základy AJAXU a nakonec Vám vše ukázat v celku na kompletním příkladu. Nejprve bychom si měli pro jisto tu položit základní otázlu.
Ajax neboli Asynchronous JavaScript and XML je technologie postavená na javascriptu, která umožňuje zasílat HTTP požadavky bez nutnosti načíst stránku. Ke komunikaci kupřikladu s PHP scriptem může být využito jazyka XML.
Jako každá technologie má i ajax své výhody a nevýhody. Mezi hlavní nevýhody patří nepoužitelnost tlačítka Zpět, nebo záložek. Ale i to se už dá vyřešit. Ale o tom zase někdy jindy. Pokud se chcete o výhodách, a nevýhodach dočíst více doporučuji článek AJAX – kde jsou hranice?.
Ale nechtel bych se pouštět do většího polemizování o použití či nepoužití této technologie, přece jen by to měl být technicky zaměřený článek.
Včera jsem k předchozímu textu dopsal dodatek, že zarytí RSaci se mají na co těšit. Ja myslim že to stojí za to. Přináším Vám ImageManager do RS2. Jelikož jsem neměl čas psát vše od základu, postavil jsem jej na vyhovůjícím scriptu od Wei Zhua (uvedl bych link, ale jeho stránky jsou pryč, a editor už bohužel nebyl 2 roky aktualizován).
Manager Vám umožňuje uploadovat obrázky, vytvářet složky, mazat, apod. V editoru pak můžete otáčet, ořezávat, zmenšovat obrázky. Manager bych chtěl dále rozšiřovat, přidat nové funkce, upravit ty staré. Více bude v TO DO. Pokud Vás napadá nějaká funkce která není implementováná, a mohla by se hodit, napište ji do komentářů.
Dnes bych chtěl navázat na svůj předchozí text Výběr redakčního systému – Obecně. V dnešním článku bych se chtěl zaměřit na GUI. Nejdříve si položíme základní otázku.
Odpověď je jednoduchá, GUI neboli „grafické uživatelské rozhraní“, anglicky těž „graphic user interface“ je prostředí, ve kterém ovládáme redakční systém. Laicky řečeno Administrace. Při výběru CMS bychom měli klást velký důraz na GUI, záleží na něm přece celá správa vaší internetové prezentace. Takže si v příštích několika bodech shrneme na co se dívat a jak si správně vybrat.
Při programování (zvyšování efektivity) Keywords Generátoru mě napadla delikátní věc
, zařadit k němu i vyhladávání synonym a implementovat ohýbání slov. Jenže jak to udělat, žádný česlý free slovník podobného rázu podle pana Gůgla neexistuje a vyrabět vlastní by bylo nad mé češtinářské síly
. Ale když už jsem si to umanul, tak jsem to prostě musel mít. Nakonec mě trklo jak na to a musim říct nepotřeboval jsem k tomu žádne složité konstrukce. Stačilo trocha regulárních vyrázů, práce s polem, vyhledávač www.jyxo.cz a jsou z toho dvě celkem šikovné funkce
.
Funkce už zase funguji chyba by měla být vyřešena. Jen chci upozornit na to, že synonyma a ohýbání slov by bylo dobré cachovat, jelikož při větším počtu slov je neunosne pokaždé ziskávat fraze.
Nejprvé kód, vysvětlím zaokamžik.
function vratSynonyma($slovo, $cp)
{
$slovo = trim($slovo);
$cont = file_get_contents('http://jyxo.cz/s?q=' . urlencode(iconv($cp, 'UTF-8', $slovo)) . '&d=cz');
$cont = iconv('UTF-8', $cp, $cont);
$cont = strip_tags($cont, '<br>');
$reg = 'Synonyma'.$slovo.': (.+)(, \(vše\))?<br><br>';
preg_match_all("!$reg!", $cont, $arrSyn);
$arrSynonyma = explode(',', $arrSyn[1][0]);
$arrSynonyma = array_map('trim', $arrSynonyma);
if($arrSynonyma[count($arrSynonyma)-1]=="(vše)"){
unset($arrSynonyma[count($arrSynonyma)-1]);
}
return $arrSynonyma;
}
Tato funkce pracuje na principu toho, že z www.jyxo.cz stáhné stránku s vyhledávaným slovem (když si v jyxu necháte cokoliv vyhledat, v pravém sloupci máte vyčet synonym a ohýbání slova). Jako vstupní hodnota je slovo, ke kterému hledáme synonyma a jako druhá hodnota je kodování vašeho scriptu. Vrací pole hodnot. Pomoci regulárního výrazu vyjmu jen potřebnou část, kterou pak rozdělím podle čárek. Za zmínku stojí funkce array_map, tato funkce aplikuje na všechny prvky pole uvedené v 2 parametru funkci uvedenou v parametru 1.
Pozn.: Zakomentovaný řadek odkomentujte v případě toho, že máte stránku v jiném kódování než UTF-8 a na místo požadovaného CP napište vaše kódování.
function ohybejSlovo($slovo, $cp)
{
$slovo = trim($slovo);
$cont = file_get_contents('http://jyxo.cz/s?q=' . urlencode(iconv($cp, 'UTF-8', $slovo)) . '&d=cz');
$cont = iconv('UTF-8', $cp, $cont);
$cont = strip_tags($cont);
$reg = 'Ohýbání(.+): (.+)\. ';
preg_match_all("!$reg!", $cont, $arrSyn);
$arrSynonyma = explode(',', $arrSyn[2][0]);
$arrSynonyma = array_map('trim', $arrSynonyma);
return $arrSynonyma;
}
Pro tuto funkci platí úplně to samé, co pro funkci první s tím rozdílem, že je jiný regulární výraz.
Funkce můžete vyzkoušet na adrese
http://scripty.jur4.net/synonyma-ohybani/.
Pokud chcete zadat vlastni slovo použijte adresu
http://scripty.jur4.net/synonyma-ohybani/?slovo=vaseslovo,
defaultně je nastaveno slovo lampa
P.S. Funkce nebudou fungovat bez přistupu k netu. Pak by pravděpodobně funkce file_get_contents vratila chybu.