)?\]
/* Spisak jednostavnih oznaka, ostale su složene, tj. potrebna je
posebna funkcija za njihovu obradu
*/
$sve_oznake = array (
"b" => array('',''),
"i" => array('',''),
"crveno" => array('',''),
"naslov" => array('
','
'),
"podnaslov" => array('','
'),
"podpodnaslov" => array('','
'),
"linija" => "
",
"lista" => array(""),
"stavka" => array("",""),
"email" => array("",""),
/*"link" => array("",""),*/
);
/*
Obrađuje pojedinačnu oznaku, tj. sve što se nalazi između "[" i "]".
Znak na $txt[$poz-1] treba da bude '[', a vraća se pozicija ']'.
*/
function obradi_oznaku(&$txt,$poz=0) {
$oznaka='';
$origstr='';
while (dozvoljeno_u_oznaci($txt[$poz])) {
$origstr .= $txt[$poz];
$oznaka .= $txt[$poz++];
}
$atributi=array();
while ($poz $vrednost) {
if ($atr != 'orig_str') $txt = str_replace("[$atr]",$vrednost,$txt);
}
return $txt;
} elseif (is_string($sve_oznake[$oznaka])) {
return $sve_oznake[$oznaka].$sadrzaj;
} else {
// ovde ne bi trebalo nikad da stigne, ali za svaki slučaj
return "[$oznaka]$sadrzaj"."[/$oznaka]";
}
}
/*
Jedna oznaka u nizu $stanje je zapravo par koji sadrži ime oznake i
njene osobine (atribute). Osobine su jedan rečnik u kom su ključevi
imena osobina, a vrednosti njihove vrednosti. Naročita osobina sa
imenom "orig_str" sadrži pun tekst same oznake (sve između "[","]").
*/
function obradi_tekst($txt,$stanje=array(),$poz=0,$adresa='',$jezik='en') {
global $sve_oznake;
$sadrzaj='';
while ($poz";
$poz++;
} else {
$sadrzaj.=htmlspecialchars($txt[$poz]);
}
}
$poz++;
}
return $sadrzaj;
}
function pozovi_oznaku($txt,$poz,$stanje,$imeoznake,$argumenti) {
global $putanja_oznaka;
$prom="ucitao_oznaku_za_$imeoznake";
global $$prom;
$trazifajl="$putanja_oznaka/$imeoznake.php";
if (! file_exists($trazifajl)) {
return FALSE;
} else {
if ($$prom != 1) {
include ($trazifajl);
}
$fja="obradi_oznaku_$imeoznake";
$txt=$fja(&$txt,&$poz,&$stanje,$argumenti);
return $txt;
}
}
?>