Concrete5.7 - Hämta bild url i en page_list template från block

Om du i Concrete5.7 behöver hämta url från en bild i ett block när du gör ett template för en page_list block så har du här hur du gör.

Först och främst behöver du skapa template filen, detta gör du genom att genom att skapa en fil som heter view.php i /application/blocks/page_list/templates/[template_name] där du byter ut [template_name] mot önskat namn på din page_list template.

Därefter klistrar du in i din view.php fil innehållet från filen /concrete/blocks/page_list/view.php.

Efter <?php foreach ($pages as $page): lägger du till följande kod:

$imageBlocks = $page->getBlocks("Area name");

Där du byter ut "Area name" till namnet på det area där bild-blocket ligger.

Därefter innanför foreach-loopen så behöver du hämta ut image blocket och det gör du enligt följande:

<?php if (count($imageBlocks) <= 0): // Inga blocket i area ?>
 <a href="<?php echo $url ?>" target="<?php echo $target ?>"
style="width: 100px; height: 100px; background-color: #ccc;">&nbsp;</a>
<?php endif; ?>
<?php foreach($imageBlocks as $imageBlock): // Hämtar alla block från area
 if ($imageBlock->getBlockTypeHandle() === 'image'): // Om blocket är av typen "image"
   $imgHelper = Loader::helper('image');
   $imgRelPath = File::getRelativePathFromID($imageBlock->getInstance()->getFileID());
?>
   <a href="<?php echo $url ?>" target="<?php echo $target ?>"
style="width: 100px; height: 100px; background-image: url('<?php echo $imgRelPath?>');">&nbsp;</a>
 <?php else: // Inga block av typen "image" hittades ?>
   <a href="<?php echo $url ?>" target="<?php echo $target ?>"
style="width: 100px; height: 100px; background-color: #ccc;">&nbsp;</a>
<?php break; /* Tar bort "break;" om du vill ha flera image block */ endif; endforeach; ?>

Om du nu väljer templaten på ett page_list block som du lagt ut på en sida så skall den om ett image block hittas i areat på sidtypen du filtrerar på skriva ut en länk med bilden satt som bakgrund. Hittar den ingen bild så skriver du ut en länk med grå  bakgrund istället.

Har du några frågor är det bara att skriva i kommentarsfältet nedan.

Andra artiklar

Nedan finner du ett urval av ett noga slumpartade artiklar som skall få dig att vilja läsa mer. 


Kommentarer