login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Block-vraag TemplatePower

Offline Rens - 01/10/2007 16:04
Avatar van RensGouden medaille

Crew algemeen
Hoi,

Ik maak gebruik van TemplatePower voor een systeempje wat ik aan het maken ben.
Nu valt de iets op.
Ik heb enkele blocks gemaakt, ziet er uit als volgt:
  1. <!-- START BLOCK : MONTEURS_ZOEK_POST -->
  2. <!-- START BLOCK : MONTEURS_ZOEK_POST_ROW -->
  3. <!-- END BLOCK : MONTEURS_ZOEK_POST_ROW -->
  4. <!-- END BLOCK : MONTEURS_ZOEK_POST -->
  5.  
  6. <!-- START BLOCK : MONTEURS_ACTIE_FORM -->
  7. <!-- START BLOCK : MONTEURS_ACTIE_INPUT_ROW -->
  8. <!-- END BLOCK : MONTEURS_ACTIE_INPUT_ROW -->
  9. <!-- START BLOCK : MONTEURS_ACTIE_SELECT_ROW -->
  10. <!-- START BLOCK : MONTEURS_ACTIE_SELECT_ROW_OPTION -->
  11. <!-- END BLOCK : MONTEURS_ACTIE_SELECT_ROW_OPTION -->
  12. <!-- END BLOCK : MONTEURS_ACTIE_SELECT_ROW -->
  13. <!-- END BLOCK : MONTEURS_ACTIE_FORM -->
  14.  
  15. <!-- START BLOCK : MONTERS_ZOEK_FORM -->
  16. <!-- END BLOCK : MONTERS_ZOEK_FORM -->
  17.  
  18. <!-- START BLOCK : MONTEURS_NIEUW_FORM -->
  19. <!-- START BLOCK : MONTEURS_FORM_VESTIGING -->
  20. <!-- END BLOCK : MONTEURS_FORM_VESTIGING -->
  21. <!-- END BLOCK : MONTEURS_NIEUW_FORM -->

Wat er in staat, maakt verder niet uit.
Maar het is dus zo:
Mijn blocks worden niet allemaal in de juiste volgorde weergeven.
Ik heb er even een screenshot bij gedaan voor de duidelijkheid:
http://img107.i...outab2.png
Zoals je ziet is de volgorde van rijen verschillend.
De bovenste (waar het rode lijntje omheen staat) is verkeerd.
Het zou eigenlijk moeten staan zoals de onderste (met het groene lijntje er om).

En in die volgorde (de onderste) staat het ook in mijn PHP code.
Maar hij houd dus niet die volgorde aan, maar de volgorde van de template.
Dus als ik deze blocks heb:
  1. <!-- START BLOCK : MONTEURS_ACTIE_INPUT_ROW -->
  2. <!-- END BLOCK : MONTEURS_ACTIE_INPUT_ROW -->
  3. <!-- START BLOCK : MONTEURS_ACTIE_SELECT_ROW -->
  4. <!-- START BLOCK : MONTEURS_ACTIE_SELECT_ROW_OPTION -->
  5. <!-- END BLOCK : MONTEURS_ACTIE_SELECT_ROW_OPTION -->
  6. <!-- END BLOCK : MONTEURS_ACTIE_SELECT_ROW -->

Pakt hij eerst alle "MONTEURS_ACTIE_INPUT_ROW", en daarna pas de "MONTEURS_ACTIE_SELECT_ROW" blocks.
Ook als het anders opgegeven is in de code.
Kan iemand mij vertellen waarom het zo is?

Alvast bedankt,
Rens

13 antwoorden

Gesponsorde links
Offline ikkedikke - 01/10/2007 16:13 (laatste wijziging 01/10/2007 16:17)
Avatar van ikkedikke PHP expert je roept de blocks wel altijd op dezelfde manier aan?
het kan iets te maken hebben met resultatensets bijvoorbeeld.
Offline Rens - 01/10/2007 16:16 (laatste wijziging 01/10/2007 16:16)
Avatar van Rens Gouden medaille

Crew algemeen
Ja.
Als ik bijv. zo doe:
  1. $oTpl->newBlock("MONTEURS_ACTIE_INPUT_ROW");
  2. $oTpl->newBlock("MONTEURS_ACTIE_SELECT_ROW");
  3. $oTpl->newBlock("MONTEURS_ACTIE_INPUT_ROW");

Word het als volgt aangeroepen:
Citaat:
MONTEURS_ACTIE_INPUT_ROW
MONTEURS_ACTIE_INPUT_ROW
MONTEURS_ACTIE_SELECT_ROW
Offline ikkedikke - 01/10/2007 16:33
Avatar van ikkedikke PHP expert Helpt het misschien om gotoBlock toe te voegen?
Die blocks van TP werken niet helemaal goed.. Ik heb ooit geprobeerd om dat te fixen, kijk daarvoor even bij de scripts!
Offline Rens - 01/10/2007 17:06
Avatar van Rens Gouden medaille

Crew algemeen
Heb:
  1. $oTpl->gotoBlock("_ROOT");

toegevoegd na elke $oTpl->newBlock();, maar het helpt niet...
Offline Dark_Paul - 02/10/2007 19:10
Avatar van Dark_Paul PHP ver gevorderde Daar heb ik eerst ook HEEL veel mee zitten klooien.
Als je 2 blocks achter elkaar aanroept, zal het blok dat boven staat in je .tpl, ook boven komen te staan. Ook al roep je die later aan.
Ik heb het opgelost door er een apart block omheen te zetten en die steeds aan te roepen.
In jou geval kan je dus steeds 'MONTEURS_ACTIE_FORM' opnieuw aanroepen.
Offline Rens - 02/10/2007 19:12
Avatar van Rens Gouden medaille

Crew algemeen
Dat is geen optie.
Dan word ook telkens mijn formulier en alles opnieuw aangeroepen.
En ik ga daar niet nóg een block omheen zetten.
Het stikt al van de blocks in mijn .tpl bestand...
Offline Wim - 02/10/2007 21:17
Avatar van Wim Crew algemeen maak eventueel een nieuwe instantie van TemplatePower, en voeg die nadien toe aan je default template. Dit is uiteraard wel een noodoplossing.

Bovendien, zoals meer naar boven reeds genoemd gebruikt templatepower de blocks in volgorde dat ze in je .tpl file staan, niet zoals je ze aanroept.
Offline Stijn - 02/10/2007 21:28
Avatar van Stijn PHP expert Als je ze toch anders oproept in je php waarom zet je ze dan niet anders in je TPL bestand?
Offline Dark_Paul - 02/10/2007 22:29
Avatar van Dark_Paul PHP ver gevorderde Rens, het probleem van de hoeveelheid blocks ken ik (maar waarschijnlijk zijn het er bij jou nóg meer).
Ik heb zelf ook lang naar een oplossing gezocht, maar volgens mij is het extra block de gemakkelijkste oplossing. Ik heb er toendertijd ook een topic voor geopend en dat was de enige en tevens werkende oplossing die er voor het probleem werd aangedragen.
Offline Rens - 03/10/2007 08:02
Avatar van Rens Gouden medaille

Crew algemeen
@Stijn, omdat die volgorde telkens anders is.
De volgorde staat op de ene pagina misschien zo:
Citaat:
1
1
2
2
3

Terwijl het op een andere pagina:
Citaat:
2
1
3
2
3
1

zal zijn...
Offline Thomas - 03/10/2007 13:10
Avatar van Thomas Moderator Wat je moet doen, is er nog een block omheen zetten.

Wat je nu wss hebt is zoiets:

BLOCK 1
met hieronder BLOCK A
en BLOCK B

Nadat je BLOCK 1 hebt gemaakt, maak je meerdere BLOCKs van type A en B. Eerst zal ie dan alle BLOCKs van het type A afdrukken, en dan die van B wat logisch is.

Wat je moet doen is:
BLOCK 1
met hieronder BLOCK C
en hier weer onder BLOCK A en BLOCK B

Elke rij (C) moet je namelijk een keuze maken tussen A of B, ik denk dat daar het probleem zit. Voor elk formulier-veld maak je dus altijd een BLOCK van het type C aan, en daaronder een van A of B.
Offline Rens - 04/10/2007 10:45
Avatar van Rens Gouden medaille

Crew algemeen
Ik ga binnekort even kijken of het nuttig is om dat block er nog om te zetten.
Als het écht nodig is, doen we het op die manier.
Mocht het echter niet per sé nodig zijn, dan laat ik het zoals het is.
Offline Thomas - 04/10/2007 11:39
Avatar van Thomas Moderator Ik denk wel dat het nodig is.

Per formulier-regel moet je namelijk kiezen uit OF een textveld OF een selectbox etc..

Als je geen formulier-regel-block maakt, maar alleen een textveld-block en een selectbox-block, en je hebt in je formulier een aantal textvelden en een aantal selectboxes zitten, dan zal 'ie eerst alle textveld-blokken afdrukken (als je deze als eerste gedeclareerd hebt) en dan je selectveld-blokken.

Wanneer je eerst aangeeft dat je met een nieuwe formulier-regel begint, en daarna pas zegt wat voor formulier-element je wilt maken (keuze uit textveld, dropdown etc.) dan blijft de volgorde van de formulier-elementen gehandhaafd door die formulier-regel-blokken.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.196s