<?php /** * Pageimage for Contao * * Copyright (c) 2015 Benjamin Roth * * @license LGPL-3.0+ */ namespace eSM_pageimage; class HookPageimage extends Pageimage { public function piReplaceInsertTags($strTag, $blnCache, $arrCache, $flags) { $elements = explode('::', $strTag); $images = static::getImages(); if (!count($images) || !in_array($elements[0],array('sb_images','sb_image','sb_image_url','sb_image_css'))) { return false; } if (!isset($elements[1]) || !$elements[1]) { $elements[1] = 0; } else if (count($images)-1 < --$elements[1]) { $elements[1] = count($images)-1; } if ($elements[0] == 'sb_image_url' || $elements[0] == 'sb_image_css') { if (count($images)) { $image = $images[$elements[1]]; $width = null; $height = null; $mode = null; if (is_array($image['size'] = deserialize($image['size']))) { $width = intval($image['size'][0]) > 0 ? $image['size'][0] : null; $height = intval($image['size'][1]) > 0 ? $image['size'][1] : null; $mode = strlen($image['size'][2]) ? $image['size'][2] : null; } $strBuffer = \Image::get($image['singleSRC'], $width, $height, $mode); if ($elements[0] == 'sb_image_css') { return 'background-image: url(\'' . $this->Environment->path . '/' . $strBuffer . '\');'; } return $strBuffer; } } if ($elements[0] == 'sb_images' && count($images) > 0) { $arrImageTplObjects = array(); $strBuffer = ''; foreach($images as $image) { $objImage = new \stdClass(); $this->addImageToTemplate($objImage, $image); $arrImageTplObjects[] = $objImage; } if (in_array('single',$flags)) { foreach ($arrImageTplObjects as $objImage) { $objTemplate = new \FrontendTemplate('eSM_pageimage_container'); $objTemplate->pictures = array($objImage); $strBuffer .= $objTemplate->parse(); } } else { $objTemplate = new \FrontendTemplate('eSM_pageimage_container'); $objTemplate->pictures = $arrImageTplObjects; $strBuffer .= $objTemplate->parse(); } return $strBuffer; } else if ($elements[0] == 'sb_image') { $arrImageTplObjects = array(); $objImage = new \stdClass(); $this->addImageToTemplate($objImage, $images[$elements[1]]); $arrImageTplObjects[] = $objImage; $objTemplate = new \FrontendTemplate('eSM_pageimage_container'); $objTemplate->pictures = $arrImageTplObjects; return $objTemplate->parse(); } return false; } }