Functie slechts één keer verklaren
Code (php)
1
2
3
2
3
<?php IF ( $query_string === 'opening_dates' || $query_string === 'collage' || $query_string === 'call_to_action' ): ?>
// Toon content of niet
<?php endif; ?>
// Toon content of niet
<?php endif; ?>
Hetgeen het een en ander er niet overzichtelijker op maakt. Het zou dus handig zijn wanneer ik een dergelijk soort functie maar een keer hoef te declareren en vervolgens elders in de pagina iets zou kuunen gebruiken als:
Alvast bedankt voor eventuele reacties
Maar voordat deze hele discussie te abstract wordt is het misschien handig om met concrete voorbeelden te werken.
Omdat je het in een ander draadje al hebt over een database veronderstel ik dat voor het bovenstaande ook een database ingezet kan worden.
Misschien is het gewoon een kwestie van even een knop omgooien, ik weet namelijk nog steeds niet goed wat ik mij bij het bovenstaande moet voorstellen. Zijn dit een soort van artikelen? Dan ligt het voor de hand om een tabel genaamd "artikelen" te maken en hier titel + text + wat je nog meer wilt bijhouden in op te slaan. En zelfs al betreft het geen artikelen maar is het soortgelijke content kan het vervolg van dit verhaal, die uitgaat van een soort van lopende tekst, illustratief zijn voor een mogelijke aanpak.
Vervolgens heb je een PHP-script nodig om deze artikelen uit te lezen, bijvoorbeeld artikel.php. En dan moet je nog op een of andere manier communiceren welk artikel dit precies moet zijn. Dit zou je als parameter mee kunnen geven in het script: artikel.php?id=12. Hiermee instrueer je het script dat je in artikel 12 geïnteresseerd bent. Code in dit script zorgt voor het ophalen + weergeven van de bijbehorende data (die dus identificeerbaar moet zijn met een uniek volgnummer).
Dan wil je dit misschien nog een zoekmachine vriendelijke URL geven zodat een externe aanroep van /nieuws/12/dit-is-een-artikel intern wordt vertaald naar een aanroep van /artikel.php?id=12.
Dit zijn echter allerlei zaken die in afzondering behandeld kunnen worden. Het lijkt allemaal nogal overweldigend als je in één ruk naar een eindresultaat wilt, maar als je dit in stappen opdeelt (volgens een soort van plan :)) valt het meestal wel mee.
Het script "artikel.php" blijft dus inhoudelijk altijd hetzelfde, maar kan dus door de variabele "id" in de URL, die met verschillende waarden aangeroepen kan worden, hergebruikt worden om verschillende artikelen te tonen. De opbouw van de pagina is verder precies hetzelfde - het enige wat verschilt is de (altijd wisselende) content (uit de database).
Misschien kun je dus iets soortgelijks toepassen op jouw probleem waarbij je dus een soort van indeling maakt in de content en je een script hebt die deze verschillende stukken content op eenzelfde manier kan serveren. Al dat soort if-statements kunnen dan dus verwijderd worden omdat je een
Gewijzigd op 06/05/2018 13:27:47 door Thomas van den Heuvel
Code (php)
1
2
3
4
5
2
3
4
5
<?php IF ( $query_string == 'opening_dates' || $query_string == 'collage' || $query_string == 'call_to_action' ): ?>
/<div class="col-md-3">
<img src="/../images/widget_photos/thumbnails/<?= $details['photo']; ?>" class="img-responsive">
</div>
<?php endif; ?>
/<div class="col-md-3">
<img src="/../images/widget_photos/thumbnails/<?= $details['photo']; ?>" class="img-responsive">
</div>
<?php endif; ?>
Op dat moment krijg je namelijk ook zoiets als:
Code (php)
1
<div class="<?= ( $query_string == 'opening_dates' || $query_string == 'collage' || $query_string == 'call_to_action' ) ? 'col-md-6' : 'col-md-9'?>">Title/Content</div>
Dus niet alleen voor wat er getoond wordt maar ook voor hoe het wordt vertoond gebruik ik dus die IF statements. Dus de vraag blijft, bestaat de mogelijkheid ome een variabele te declareren op basis van een IF statement
Gewijzigd op 06/05/2018 16:52:51 door Donald Boers
Dit is volgens mij het tweede topic wat over hetzelfde gaat.
Er zijn meerdere aanpakken mogelijk: of je maakt de hele boel generiek waarbij je vertelt uit wat voor collectie elementen een widget bestaat, of je spant een soort van ruimte op die voor alle situaties past (dus als je in 1 widget 2 tekstvelden gebruikt en in een andere widget 2 foto's dan maak je gewoon een formulier waarin 2 tekstvelden en twee uploadvelden zitten ofzo zodat al deze info in theorie in de configuratie van één widget opgeslagen kan worden) en zet dan per widget apart dingen aan of uit met vinkjes ofzo, meerdere oplossingen mogelijk.
De vraag is echter of dat echt de moeite is omdat het maar om 16 records gaat?
Gewijzigd op 06/05/2018 17:33:10 door Thomas van den Heuvel