Hallo

Ik ben nieuw hier en ook nog niet erg bekend met php. Ik heb een probleem met het volgende, onderaan staat mijn vraag.

1) In de map
app/design/frontend/default/default/template/checkout/onepage/review staat een
bestand info.phtml met volgende code:

[color=red]code verwijderd[/color]

2) Ik wil dezelfde code kopiƫren naar een andere pagina van de site. Ik heb
daarvoor een nieuw bestand information.phtml gemaakt en alle code van
info.phtml naar information.phtml gekopieerd. Daarna heb ik het bestand
information.phtml in de map
app/design/frontend/default/default/template/callouts gezet.

3)na dit heb ik een wijziging aangebracht in de map
app/design/frontend/base/default/layout in bestand checkout.xml, mijn nieuwe
code staat in het vet:


<checkout_onepage_success translate="label"> 
<label>One Page Checkout Success</label> 
<reference name="root"> 
<action
method="setTemplate"><template>page/2columns-right.phtml</template></action> 
</reference> 
<reference name="content"> 
<block type="checkout/onepage_success" name="checkout.success"
template="checkout/success.phtml"/> 
</reference> 
[b]<reference name="content"> 
<!-- <block type="core/template" name="right.permanent.callout"
template="callouts/right_col.phtml"/> --> 
<block type="core/template" name="midden.links"
template="callouts/information.phtml"/> 
</reference>[/b]


4)na dit heb ik cache-geheugen vernieuwd, maar het werkt niet goed.

de code in information.phtml voor de titelbalk van de tabel werkt wel, maar de
items eronder, waar de resultaten moeten komen, staan er niet.

Ik denk dat het iets te maken heeft met:


<?php foreach($this->getItems() as $_item): ?> 
<?php echo $this->getItemHtml($_item)?> 
<?php endforeach ?>


Maar mijn kennis van php is niet goed genoeg om dit zelf te kunnen oplossen...
Kan iemand me uitleggen wat ik moet doen om de resultaten weer te geven?
Alvast bedankt voor de hulp.

Beste Ronnie,
Het is een beetje warm om je 1000 regels code te doorgronden. Het is ook niet helemaal helder. Je kopieert een document en dan werkt het menu niet meer?
Bij mijn poging om het document te begrijpen loop ik al vast op de eerste regel. Daar staat: "$this->getItems()". Maar "$this" is een gereserveerde variabele die binnen een object werkzaam is.
Daarom heb ik al meteen het gevoel dat ik van alles mis: een class definitie!
Voor de leesbaarheid van je code moet je die beginnen met code en eindigen met /code en dat tussen blokhaken ([]).
Het begin van de code is:

<?php
?>

en daarna volgen de regels die ik heb gezet bij stap 1.

De code in stap 1 is de oorspronkelijke code, hierin heb ik niets gewijzigd. Die stond zo in het cms. Deze code geeft op de site een review weer van de producten die een klant in een vorige stap heeft aangeduid.

Nu heb ik een nieuwe pagina gemaakt (naast de bestaande, dus ik heb niets overschreven), waarin ik zoiets zeg van: bedankt voor uw aankoop, hieronder vindt u nog eens de samenvatting van uw producten. Onder dat stuk tekst heb ik een blok gemaakt waarin dan die producten te zien moeten zien.

Ik dacht dat ik gewoon de code van de originele pagina zou kunnen kopiƫren en plakken. Voor een deel lijkt dat goed te gaan, want de code voor de eerste rij van de tabel (zie bovenaan in stap 1) wordt wel weergegeven, maar het tweede deel (het resultaat: de producten die de klant heeft gekozen) worden niet weergegeven.

Ik dacht ook al dat het te maken had met:

<?php echo $this->getChildHtml('items_before'); ?>

en verderop:

<?php foreach($this->getItems() as $_item): ?>
<?php echo $this->getItemHtml($_item)?>
<?php endforeach ?>

maar wat ik niet begrijp, deze code genereert in het originele bestand wel de volledige tabel, en bij mijn kopie enkel het titelblok van de tabel.

ik ben nog nieuw met php en weet niet goed waarom die verwijzing in het originele bestand dan nu niet wordt doorgevoerd in het nieuwe bestand, terwijl er niets veranderd is aan die code.

'$this->' toont dat het een object is. Aangezien het in de nu geposte code totaal onduidelijk is hoe dat object eruit ziet en, nog belangrijker, waar de data vandaan komt, is het onmogelijk voor iemand om hier verder een antwoord op te geven.

Ofwel geef meer relevante code (dus niet 1000 regels), of check zelf eens of er wel data in het object zit.
Ronnie, je hebt dus gewoon een bestand van de ene map naar de andere map gekopieerd, of in dezelfde map de code van eeen bestand gekopieerd naar een ander bestand.
Hoe dan ook, je haalt misschien data van een bron die daardoor niet meer bestaat, of nu een andere naam heeft.
Ik begrijp niet zo goed je probleem, maar als ik jou was zou ik alle namen en variabelen goed controleren.
Verder verbaast het me dat als je weinig kennis hebt van PHP dat je dan al meteen begint met objecten en classes etc.

Reageren