Hallo,

Om in een CMS afbeeldingen weer te kunnen geven moet ik in mijn template plaatsen

[code}
<?php print_r(eg_return_gallery()); // Return associative array ?>
[/code]
Dit levert iets op als:
Array ( [naam] => Array ( [name] => naam [title] => gallery1 [items] => Array ( [0] => Array ( [filename] => uploads/afb.jpg [width] => 400 [height] => 225 [thumb-0] => Array ( [filename] => test/thumbs/foto1.jpg [width] => 187 [height] => 132 ) [thumb-1] => Array ( [filename] => [width] => [height] => ) [field-0] => ) [1] => Array ( [filename] => uploads/foto2.jpg [width] => 221 [height] => 228 [thumb-0] => Array ( [filename] = .....

Nou moet ik iets van een loop gebruiken om HTML terug te krijgen , maar dat lukt niet.

Pierre Web op 08/10/2015 14:30:20

Nou moet ik iets van een loop gebruiken om HTML terug te krijgen , maar dat lukt niet.


En wat heb je al (geprobeerd)?

[size=xsmall]Toevoeging op 08/10/2015 14:39:47:[/size]

Als je dit doet krijg je een duidelijker overzicht:

<?php
echo '<pre>'.print_r(eg_return_gallery(), true).'</pre>';
?>
In het subarray "naam" bevindt zich een subarray met (nogmaals) het element "name" met waarde "naam", het element "title" en het element "items", die de afbeeldingen bevat. Dit geheel is dus een associatief array met gallerijen-op-naam.

Mogelijk accepteert eg_return_gallery() ook een parameter met de gallerij-naam om informatie van een specifieke gallerij op te halen (in plaats van alle gallerijen)?

Je zou de afbeeldingen op gallerijnaam (bijvoorbeeld de gallerij met waarde "naam") als volgt kunnen doorlopen (en mogelijk is dit dus nog te vereeenvoudigen):
<?php
$galleries = eg_return_gallery(); // alle gallerijen?
// aanname: gallerij met name "naam" bestaat
foreach ($galleries['naam']['items'] as $image) {
    // doe iets met $image
    // ...
}
?>
2e aangegeven mogelijkheid
  <?php eg_return_gallery($name = 'naam', $language = 'en', $instanceNum = 0)?>

echo $name[0];



Hoe haal ik de Var hieruit

Dit voorbeeld is me duidelijk
 $arr=array('vingers'=>'hand','tenen'=>'voet');

echo $arr['vingers'];


edit
had jullie post nog niet helemaal gelezen


[size=xsmall]Toevoeging op 08/10/2015 15:00:43:[/size]

Dit levert niets op

<?php
$galleries = eg_return_gallery(); // alle gallerijen?
// aanname: gallerij met name "naam" bestaat
foreach ($galleries['gallery1'] as $image) {
    // doe iets met $image
    // ...
	echo $image;
}
?>

gallery1 is de naam van foto gallery


[size=xsmall]Toevoeging op 08/10/2015 15:25:24:[/size]

- SanThe - op 08/10/2015 14:35:56

[quote="Pierre Web op 08/10/2015 14:30:20"]
Nou moet ik iets van een loop gebruiken om HTML terug te krijgen , maar dat lukt niet.


En wat heb je al (geprobeerd)?

[size=xsmall]Toevoeging op 08/10/2015 14:39:47:[/size]

Als je dit doet krijg je een duidelijker overzicht:

<?php
echo '<pre>'.print_r(eg_return_gallery(), true).'</pre>';
?>
[/quote]
Array
(
[naam] => Array
(
[name] => naam
[title] => gallery1
[items] => Array
(
[0] => Array
(
[filename] => uploads/foto.jpg
[width] => 400
[height] => 225
[thumb-0] => Array
(
[filename] =>Gallery/foto1.jpg
[width] => 187
[height] => 132
)

[thumb-1] => Array
(
[filename] =>
[width] =>
[height] =>
)

[field-0] =>
)

[1] => Array
(
[filename] => uploads/foto3.jpg
[width] => 221
[height] => 228
[thumb-0] => Array
(
[filename] => Gallery/thumbs/foto4.jpg
[width] => 153
[height] => 164
)
Goed kijken, ik zeg niet:

foreach ($galleries['gallery1'] as $image) {

maar

foreach ($galleries['gallery1'][color=#ff0000]['items'][/color] as $image) {

EDIT: items dus :s
Bedankt,

Krijg maar niks terug,,kan natuurlijk nog ergens anders zitten..

Dit vond ik nog levert wel wat op (nog bekijken)


// component {% gallery %}
$galleryItems = eg_return_gallery('Test');
debugLog($galleryItems);

echo "<h2>Gallery ".$galleryItems['title']."</h2>";
echo "<ul>";
array_walk($galleryItems['items'],'output');
echo "</ul>";

function output($item,$key){
    GLOBAL $SITEURL;
    echo "<div>";
    echo '<a href="'.$SITEURL.'/data/'.$item['filename'].'" rel="lightbox">';
    echo '<img src="'.$SITEURL.'/data/'.$item['thumb-0']['filename'].'">';
    echo "</a>"; 
    echo "</div>";
} 


Via de gegeven code van San The is te zien dat er waarschijnlijk mogelijk is om alle galerijen te laten zien

dat lukt nog niet
 $galleryItems = eg_return_gallery('Test');
Waarom een variable in hoofdletters?
Maak er gewoon een constant van, dan hoef je global ook niet te gebruiken.
Zucht, $image is ook weer een array he, hierin zitten in ieder geval de velden filename, width en height en blijkbaar ook af en toe weer subarrays met thumbnails.

Al het voorgaande gecombineerd:
<?php
$galleries = eg_return_gallery();
foreach ($galleries['gallery1']['items'] as $image) {
    ?><img src="<?php echo $image['filename'] ?>" height="<?php echo $image['height'] ?>" width="<?php echo $image['width'] ?>" alt="" /><?php
}
?>

(output escaping daar gelaten)

Misschien loont het de moeite je wat meer te verdiepen in (de werking van) arrays.
Bedankt,

Dat levert in elk geval wat op.

Is het mogelijk om alle galerijen te laten zien? uitgaande van de array hierboven

en deze (testnaampje) zal iets van een titel tag kunnen worden als voorbeeld.
[field-0] => eenveld222

Reageren