tpl_file = $sablon_file; $this->tpl_tartalom = file_get_contents($this->tpl_file); } else { $this->tpl_hiba('nincs_tpl_file:'.$sablon_file); } } /* SABLON BETOLTESE * @param $melyik: [SABLON_START:melyik][SABLON_STOP:melyik] */ function tpl_sablon_betolt($melyik) { if ( !empty($this->tpl_tartalom) ) { $start_pos = strpos($this->tpl_tartalom, "[SABLON:$melyik]") + strlen("[SABLON:$melyik]"); // start tag hossza $stop_pos = strpos($this->tpl_tartalom, "[/SABLON:$melyik]"); $this->sablon = substr($this->tpl_tartalom, $start_pos, $stop_pos-$start_pos); } else { $this->tpl_hiba('ures_tpl_file'); } } /* METSZET KIVALASZTASA * metszet: a sablon egy onallo al-sablonja, pl. ismetlodo reszekhez * feltolti a $this->metszetek tombot * (array('metszet_neve' => 'metszet_tartalma'))*/ function tpl_metszet_betolt($melyik) { if ( !empty($this->sablon) ) { $start_pos = strpos($this->sablon, "[METSZET:$melyik]") + strlen("[METSZET:$melyik]"); // start tag hossza $stop_pos = strrpos($this->sablon, "[/METSZET:$melyik]"); $this->metszetek[$melyik] = substr($this->sablon, $start_pos, $stop_pos-$start_pos); } else { $this->tpl_hiba('nincs_sablon'); } } function tpl_csere_metszetben($tmb_adat, $melyik) { // metszetben felteteles reszek feldolgozasa minden meghivaskor $s_aktsbln = $this->tpl_feltetelkezelo($tmb_adat, $this->metszetek[$melyik]); // elemek csereje (nincs tartalom -> metszet sablonjat adjuk meg) if ( !isset($this->metszet_tartalmak[$melyik]) ) { $this->metszet_tartalmak[$melyik] = $s_aktsbln; $this->metszet_tartalmak[$melyik] = $this->tpl_elem_csere($tmb_adat, $s_aktsbln); } else { $this->metszet_tartalmak[$melyik] .= "\n".$this->tpl_elem_csere($tmb_adat, $s_aktsbln); } } function tpl_feltetelkezelo($tmb_adat, $str) { while ( preg_match('/^.*\[IF:(\w+)\](.*)\[\/IF:\1\].*$/smU', $str) ) { $feltetel = preg_replace('/^.*\[IF:(\w+)\](.*)\[\/IF:\1\].*$/sm', '$1', $str, 1); $str = preg_replace( "/\[IF:$feltetel\](.*)\[\/IF:$feltetel\]/smU", (array_key_exists($feltetel, $tmb_adat) ? '$1' : ''), $str, 1); // van ilyen adat -> vezerlo if-et kivesszuk, sablon marad // nincs ilyen adat -> kivesszuk az egesz felteteles reszt } return $str; } /* ADOTT ELEMEKET CSERELO FUGGVENY * @param $tmb_cserelni = array('mit' => 'mire') * csereli a sablonban/metszetben az elemeket */ function tpl_elem_csere($tmb_adat, $str) { foreach ($tmb_adat as $mezo => $ertek) { $str = str_replace('{'.$mezo.'}', $ertek, $str); } return $str; } /* SELECT ELEMEK * az urlapok gyorsabb feldolgozasaert */ function tpl_select($tmb_adat, $selected, $prefix = "\n\t\t") { $str = ''; foreach ($tmb_adat as $ertek => $cimke) { $str .= ($str=='' ? '' : $prefix) .""; } return $str; } /* A TEMPLATE RENDSZER HIBAKEZELOJE */ function tpl_hiba($kod) { die($kod); } /* ATALAKITOTT SABLON = KESZ KIMENET*/ function tpl_kimenet() { if ( !empty($this->metszetek) ) { foreach($this->metszetek as $m_nev => $m_tartalom) { $this->sablon = preg_replace( "/\[METSZET:$m_nev\].*\[\/METSZET:$m_nev\]/smU", (!empty($this->metszet_tartalmak[$m_nev]) ? $this->metszet_tartalmak[$m_nev] : ''), $this->sablon); } } return $this->sablon; } } ?>