PHP - XML menügenerálás, tartalomkezelés, satöbbi segítene valaki? Kód a leírásban.
Semmit sem értek az egészből, hiába tanuljuk órán és próbálja a tanár elmagyarázni, nem fogom fel, tudna valaki segíteni abban, hogy elmagyarázná részletesen és érthetően "magyar" nyelven, hogy hogy is van ez az egész?:) Amit bemásolok az az index.phpból lett kiszedve amiben van maga a programozó rész, menügenerálás, xml betöltés ezt tudom. Aztán van egy XML fájl amiben maga a tartalom van benne oké. És van egy html fájl amiben pedig az állandó dolgok vannak, pl lábléc,fejléc, kiegészítve a generált dolgokkal amikben a phpban pl: #TITLE#. A lényeg hogy a kód megértésében, a programozás részben segítene valaki megérteni ezt?
<?
// DOMDocument Objektum létrehozása
$doc = new DOMDocument();
// XML tartalmának betöltés az objektumba
$doc->load('sajat.xml');
// Oldalazonosító meghatározása
$pageID = 'fooldal';
$i = 0;
while ( (isset($_GET['o'.$i])) && ($pageID <> 'e404') ){
if ($doc->getElementById($_GET['o'.$i])) {
$pageID = $_GET['o'.$i];
}
else {
$pageID = 'e404';
}
$i++;
}
// Aktuális oldal objektumának létrehozása azonosító alapján
$page = $doc->getElementById($pageID);
// Sablon betöltése szöveges változóba
$template = file_get_contents('template.html');
// Főmenü dinamikus generálása (oldalazonosítók és címek HTML kódba helyezése)
$templatePieces = explode('#MENU#',$template);
$menuHTML = next($templatePieces);
$menu = str_replace(array('#HREF#','#TITLE#'),array('index.php','Főoldal'),$menuHTML);
foreach($doc->getElementsByTagName('o0') as $o){
$href = 'index.php?o0='.$o->getAttribute('xml:id');
$title = $o->getElementsByTagName('cim')->item(0)->nodeValue;
$menu .= str_replace(array('#HREF#','#TITLE#'),array($href,$title),$menuHTML);
}
// Sablon újraírása a főmenü változója miatt
$template = $templatePieces[0].'#MENU#'.$templatePieces[2];
// Csere változók paraméterezése az aktuális oldal alapján
$replace = array(
'#TITLE#' => $page->getElementsByTagName('cim')->item(0)->nodeValue,
'#DESCRIPTION#' => $page->getElementsByTagName('metaleiras')->item(0)->nodeValue,
'#KEYWORDS#' => $page->getElementsByTagName('metakulcsszavak')->item(0)->nodeValue,
'#MENU#' => $menu,
'#CONTENT#' => $page->getElementsByTagName('tartalom')->item(0)->nodeValue
);
// Változók cseréje a sablonban
foreach($replace as $key => $value){
$template = str_replace($key,$value,$template);
}
// Aktuális oldal megjelenítése
echo $template;
?>
Te lehetsz az első, aki segít a kérdezőnek!
További kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!