/** * render * * @since 2.2.0 * * @param mixed $src * @param array $options * * @return string */ public static function render($src = null, $options = array()) { $output = ''; /* device related images */ if (is_array($src)) { /* process source */ foreach ($src as $key => $value) { if (in_array($key, self::$_config['device']) && Registry::get('my' . ucfirst($key))) { $src = $value; } } } /* collect output */ if (file_exists($src)) { $imageElement = new Element('img', array('src' => self::$_config['placeholder'], 'class' => self::$_config['className']['image'] . ' ' . $options['className'], 'alt' => $options['alt'])); /* collect output */ $output = $imageElement->copy()->attr('data-src', $src); /* placeholder */ if (self::$_config['placeholder']) { /* calculate image ratio */ $imageDimensions = getimagesize($src); $imageRatio = $imageDimensions[1] / $imageDimensions[0] * 100; /* placeholder */ $placeholderElement = new Element('div', array('class' => self::$_config['className']['placeholder'], 'style' => 'padding-bottom:' . $imageRatio . '%')); /* collect output */ $output = $placeholderElement->html($output); } /* noscript fallback */ $output .= '<noscript>' . $imageElement . '</noscript>'; } return $output; }
/** * testCopy * * @since 2.2.0 */ public function testCopy() { /* setup */ $element = new Element('a'); $elementCopy = $element->copy()->attr('href', 'test'); /* expect and actual */ $expect = $element; $actual = $elementCopy; /* compare */ $this->assertNotEquals($expect, $actual); }