Jump to content
  • 0

Foto's naast elkaar publiceren met CDML


Leo

Question

Posted

Beste goeroes aller landen,

 

Ik zou graag foto's publiceren op het web waarbij de verwijzingen (de url) in de db zitten (en dus niet de foto's zelf). Tot nu toe natuurlijk niet moeilijk.

Maar ...

Het aantal foto's is ongespecifieerd +

Ik wil de foto's gepresenteerd zien van links naar rechts !!in rijtjes van 5.

 

Als ik er dan bijvoorbeeld 27 heb:

4 rijen van 5 en dan nog een laatste rij van 2. Voor de drie laatste van deze rij mogen geen missing links of zo verschijnen. Het moet dus wel netjes zijn

 

Dat lijkt me erg moeilijk met alleen maar CDML

 

Ik heb 2 mogelijkheden om dit via FM programmatie in orde te brengen maar dat veronderstelt toch flink wat zinloos? werk als er een alternatief zou zijn:

 

1. de links van het gewenste aantal records naar globals doorschuiven en dan ook weer een CDMl-layout maken en met FMp-if werken +

Voor elke foto de rec-id meegeven om later meer informatie op te vragen en naar een detail over te schakelen

 

Het opvullen van de globals dient dan te gebeuren met een script en elke keer als de db geupdate wordt of als er een zoekopdracht gegeven wordt voor een andere categorie foto's>> maar iedereen raadt af om scripts te gebruiken in een online databank.

2. nog omslachtiger en ga ik dan ook niet verder op in (voor elke foto alle tags apart in cdml steken en dan werken met inline en if's, ... en de pagina dynamisch opbouwen).

 

Iemand een suggestie (buiten gebruik Lasso waar dit wel makkelijker is)

 

Leo

9 answers to this question

Recommended Posts

  • 0
Posted

Wat je zou kunnen doen is de gegevens vanuit je database, de url's van de bestanden dus, in een javascript array zetten. Je kunt dan heel eenvoudig de juiste aantallen weergeven:

bestandsnamen=new Array();
[FMP-record]
bestandsnamen[]='[FMP-field:hetveld]';
[/FMP-record]

Dan doorloop je de array met een for lusje en houdt je een teller i bij. In die for lus zet je bijvoorbeeld:

if(i==5){
document.write('
');
}
document.write('')
i++;

  • 0
Posted
Iemand een suggestie (buiten gebruik Lasso waar dit wel makkelijker is)

 

Leo,

 

Over die lasso opmerking kan ik je volledig gelijk geven :)

Hoewel ik de oplossing hierboven ook zeer creatief vind.

 

Groetjes

Bram

  • 0
Posted

Beste DJ LukV,

 

Bedankt voor je antwoord: het is er een waar ik toch zeker een tijdje over zal moeten nadenken... Ik zie het nog niet goed voor me.

Hoe wordt de array opgevuld met een normale zoekopdrazcht zoals je ze normaal in CDMl-maakt?

 

Ben ooit eens met goede moed met Javascript aan de slag gegaan maar dat ligt al weer lang langs me ...

Die array, kan je daar nog iets meer over zeggen?

 

Mvg,

Leo

  • 0
Posted

Wat ik in mijn eerste code-fragmentje geschreven heb is het volgende:

1.eerst maak je een nieuwe array(waardelijst in javascript) aan

2.voor iedere [FMP-RECORD]:

3.wordt er een nieuw item in de array gemaakt, die [] zorgt er voor dat de nummering van de elemntjes in de array vanzelf gaan

tussen ' ' staat de waarde van het veld

4.einde fmp-record

 

Dan ga je met een FOR-lus in javascript de array doorlopen, de code weet ik niet meer precies maar het was iets als:

p=1;
for($i=1;$i<=array_count(bestandsnamen);$i++){
  if(p==5){ 
     document.write('
'); 
  } 
  document.write('')
}

  • 0
Posted

Om het werkende te krijgen zoals wilt zal de code moeten zijn:

p=1; 
for($i=1;$i<=array_count(bestandsnamen);$i++){ 
   if(p==5){ 
      document.write('
'); 
    p = 1;
   } 
 p=p+1;
   document.write('') ;
} 

 

Het is ook beter dat je voor ieder beeld een cel van een tabel gebruikt. Om problemen met colspans te vermijden gebruik je voor elke rij een tabel. Ik heb die dingen gebasseerd op je code in een functie gegooid:

 

>
function buildImages(bestandsnamen, maxbeeldenperrij, kolombreedte)
{

document.writeln('');
      document.writeln('</pre>
<table cellspacing="0" cellpadding="5" border="0"></table>');<br>

 

 

Groeten,

 

Koen

NB: Leo, hoe is het er voor de rest nog mee[/code]

  • 0
Posted

De oplossing van Murtje is inderdaad compleet en werkend.

Moest die variable p trouwens starten met een 0?

Javascript is duidelijk weer lang geleden :oops:

 

p=p+1; 

p++; is gewoon hetzelfde toch?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...