public function image() { if ($this->image1x->value === 0 || ($data1x = wp_get_attachment_image_src($this->image1x->value, 'full')) === false) { return; } $img = HTML::img()->src($data1x[0])->width($data1x[1])->height($data1x[2]); if (isset($this->image2x) && $this->image2x->value !== 0 && ($data2x = wp_get_attachment_image_src($this->image2x->value, 'full')) !== false) { $img->data('image' . $data2x[1], $data2x[0]); } return $img; }
public function imageHTML($path, $ext = 'png', $prefix = '', $size = 'full') { if (!$this->value) { return; } $image = HTML::img(); if (is_numeric($this->value)) { if (($image_src = wp_get_attachment_image_src($this->value, $size)) === false) { return; } list($image->src, $image->width, $image->height) = $image_src; $image->alt = pathinfo($image_src[0], PATHINFO_FILENAME); } else { $path = "/{$path}/{$prefix}{$this->value}.{$ext}"; if (!file_exists(Theme::getInstance()->template_dir . $path)) { return; } if (($is = getimagesize(Theme::getInstance()->template_dir . $path)) !== false) { list($image->width, $image->height) = $is; } $image->src = Theme::getInstance()->template_uri . $path; $image->alt = $this->value; } return $image; }
protected function onShortcode($content, $code, \Drone\HTML &$html) { $everything = \Everything::getInstance(); // HTML $html = HTML::img()->class('icon')->alt(basename($this->so('name'))); // URI, width, height if (is_numeric($this->so('name'))) { if (($src = wp_get_attachment_image_src($this->so('name'), 'full')) === false) { return; } list($html->src, $html->width, $html->height) = $src; if (\Drone\Func::wpGetAttachmentID($src2x = preg_replace('/\\.(png|gif|jpe?g)$/i', '@2x.$1', $html->src)) !== false) { $html->data('image' . $html->width * 2, $src2x); } } else { if (!file_exists($everything->template_dir . '/data/img/icons/' . $this->so('name') . '.png')) { return; } if (($is = getimagesize($everything->template_dir . '/data/img/icons/' . $this->so('name') . '.png')) !== false) { list($html->width, $html->height) = $is; } else { $html->width = $html->height = 16; } $html->src = $everything->template_uri . '/data/img/icons/' . $this->so('name') . '.png'; if (file_exists($everything->template_dir . '/data/img/icons/' . $this->so('name') . '@2x.png')) { $html->data('image' . $html->width * 2, $everything->template_uri . '/data/img/icons/' . $this->so('name') . '@2x.png'); } } // Attributes if ($this->so('advanced/class')) { $html->addClass($this->so('advanced/class')); } if ($this->so('advanced/style')) { $html->style .= $this->so('advanced/style'); } }