Autor | Zpráva | ||
---|---|---|---|
aladin Profil * |
#1 · Zasláno: 13. 11. 2012, 18:41:28
Zdravím,nedávno jsem tu psal ohledně template systemu,že jsem si dělal vlastní,a vy jste sem dali odkaz na jores template..
po shlédnutí jsem si řekl,že na to prdím,a budu to dělat přes něj.. ale potřeboval bych poradit.. ten základ jakoby mám,ale potřeboval bych udělat bloky,jelikož potřebuju udělat menu který budu brát z databáze,takže bude jen jeden div se sidebarem,a budu je vypisovat z db..(abych mohl popř přidat další menu/panel aniž bych zasahoval do php/html) z tý dokumentace na jeho webu jsem to trochu nepochopil... musí se tam registrovat ten blok,to vím..no dám se kod kterej mám v indexu,a napište mě jak by to mělo být správně.. (jako příklad jsem tam dal zatím while,jako cyklus aby ukázal čísla od 1 do 10. děkuji $sablona_adresar = "template/default"; $sablona = "index.tpl"; $sablony = new JoresTemplate($sablona_adresar); $sablony->register_tpl(array("stranka"=>$sablona)); $sablony->assign("sidebara", "ahoj"); $sablony->register_block("$sablona_galerie", "sidebar"); $a=1; while($a>11){ $aa = $a; $sablony->multi_assign(array("sidebar"=>$aa)); $sablony->parse_block (array("stranka", sidebar)); } echo($sablony->parse("stranka")); |
||
Joker Profil |
aladin:
Jé, no to už je dobrých 5 let, co jsem to dělal :-) Doufám, že si vzpomenu správně. Takže, v register_block by měl být zaregistrovaný název šablony a název bloku, čili pokud je zaregistrovaná jen šablona "sablona", volání by asi mělo vypadat: $sablony->register_block("sablona", "sidebar"); $sablony->assign("PROMENNA", "hodnota"); <!-- JTPL: START BLOCK: sidebar --> {PROMENNA} <!-- JTPL: END BLOCK: sidebar --> Metoda parse_block nemá jeden argument typu pole, ale dva argumenty, a to název šablony a název bloku (viz i dokumentace). A řetězec má být v uvozovkách. Čili by to mělo být: $sablony->parse_block("stranka", "sidebar"); Krom toho kdyby to bylo napsané správně, vznikl by tam nekonečný cyklus, protože v cyklu while se nemění hodnota $a. Nekonečný cyklus nevznikne jen proto, že podmínka cyklu je $a>11, což není splněno už na začátku a do cyklu se vůbec nevleze. A jinak je zbytečné si před přiřazením proměnnou kopírovat do jiné proměnné ($a do $aa). Oprava: V posledním kódu jsem omylem zkopíroval i slovo array, které tam nepatří. |
||
aladin Profil * |
#3 · Zasláno: 13. 11. 2012, 20:31:01
no,v tpl šabloně to mám takhle
<!-- JTPL: START BLOCK: sidebar --> <div class="sidebar"> <div class="name">{sidebar}</div> <div class="text"></div> </div> <!-- JTPL: END BLOCK: sidebar --> potřebuju aby to dělalo cykly jen pro ten blok... takže v php to bude takhle? $sablona_adresar = "template/default"; $sablona_galerie = "index.tpl"; $sablony = new JoresTemplate($sablona_adresar); $sablony->register_tpl(array("stranka"=>$sablona_galerie)); $sablony->assign("sidebars", "ahoj"); $sablony->register_block("sablona", "sidebar"); $a=1; while($a>11){ $as=$a++; } $sablony->assign("sidebar", $as); $sablony->parse_block("stranka", "sidebar"); echo($sablony->parse("stranka")); |
||
Joker Profil |
aladin:
„v tpl šabloně to mám takhle“ Tak pak asi jo. Sice bych asi neprosazoval stejné pojmenování bloků a proměnných, ale snad by to nemělo vadit. Ad PHP, assign a parse_block by měly být uvnitř cyklu. Úplně jednoduše: while($a>11){ $sablony->assign("sidebar", $a); $sablony->parse_block("stranka", "sidebar"); $a++; } Dodatek: Když jsem teda pominul fakt, že podmínka toho cyklu je pořád špatně. Mělo by tam být $a<11 |
||
aladin Profil * |
#5 · Zasláno: 14. 11. 2012, 13:46:52 · Upravil/a: aladin
nejde to,na stránce mě to ukazuje {sidebar}
jakoby to tu proměnnou neznal tak mě to už jde,ale vypíše to jenom poslení číslo,jenom prostě jedno číslo, a k tomu to poslední..což je 10 |
||
Joker Profil |
#6 · Zasláno: 14. 11. 2012, 15:19:03
aladin:
Jak vypadá aktuální kód toho cyklu? |
||
aladin Profil * |
#7 · Zasláno: 14. 11. 2012, 15:25:30
$sablony->register_block("sablona", "sidebar"); $a=1; while($a<10){ $sablony->assign("sidebar", $a); $sablony->parse_block("stranka", "sidebar"); $a++;} |
||
Joker Profil |
#8 · Zasláno: 14. 11. 2012, 15:31:02
aladin:
Tak jestli je tam 10, tak to způsobí přiřazení až někde později, protože tenhle cyklus může přiřadit maximálně 9. Jinak je ještě možné pro testování přidat $sablony->debug(); , aby to vypisovalo případné chybové hlášky.
|
||
aladin Profil * |
#9 · Zasláno: 14. 11. 2012, 15:40:08
jo,tady u toho to ukazuje 9,ale potřeboval bych aby to dělalo ten cyklus že to vypíše teda těch 123456789
a ne jenom to poslední číslo 9 ten cyklus mám správně,když to dám normálně přes echo tak to funguje v pořádku |
||
Joker Profil |
#10 · Zasláno: 14. 11. 2012, 15:54:00
aladin:
Tak ještě v register_block a v parse_block se používá různý název šablony. Jen jeden z nich bude správně. Což by právě měl odhalit i ten debug. |
||
aladin Profil * |
#11 · Zasláno: 14. 11. 2012, 16:00:10
debug nic neříká...teda pokud jsem to použil správně..celý kod vypadá takto:
$sablona_adresar = "template/default"; $sablona_galerie = "index.tpl"; $sablony = new JoresTemplate($sablona_adresar); $sablony->register_tpl(array("stranka"=>$sablona_galerie)); $sablony->assign("sidebars", "ahoj"); $sablony->register_block("sablona", "sidebar"); $a=1; while($a<10){ $sablony->assign("sidebar", $a); $sablony->parse_block("stranka", "sidebar"); $a++;} $sablony->debug(); echo($sablony->parse("stranka")); |
||
Joker Profil |
#12 · Zasláno: 14. 11. 2012, 16:04:24
aladin:
Ten debug má být hned na začátku za vytvořením objektu. Ale asi to nebude ani potřeba, na řádku 7 se používá šablona "sablona", která není zaregistrovaná. Asi tam má být "stranka". |
||
aladin Profil * |
#13 · Zasláno: 14. 11. 2012, 16:07:14
no joo...už to jde:D taková blbost..už to fakčí..díky moc :)
|
||
Časová prodleva: 11 let
|
0