| | |
| | | $this->imgData = Cache::for('imageData')->connect('post'); |
| | | if (JVB_TESTING) { |
| | | $this->cache->flush(); |
| | | $this->imgData->flush(); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | if ($addLink) { |
| | | if (!$postSlug) { |
| | | global $post; |
| | | $postSlug = $post->post_name; |
| | | if (is_singular()) { |
| | | global $post; |
| | | $postSlug = $post->post_name; |
| | | }else if (is_tax()) { |
| | | $tax = get_queried_object(); |
| | | $postSlug = jvbNoBase($tax->taxonomy); |
| | | }elseif (is_post_type_archive()) { |
| | | $obj = get_queried_object(); |
| | | $postSlug = jvbNoBase($obj->name); |
| | | } |
| | | |
| | | } |
| | | $full = wp_get_attachment_image_src($ID, 'full'); |
| | | |
| | |
| | | $postSlug, |
| | | $postSlug, |
| | | $imgSlug, |
| | | $full[0] |
| | | $full[0]??'' |
| | | ); |
| | | |
| | | // Add gallery attributes to img tag |
| | |
| | | } |
| | | ); |
| | | } |
| | | |
| | | public static function getData(int $imgID):array |
| | | { |
| | | return (new Image)->getImageData($imgID); |
| | | } |
| | | |
| | | public static function gallery(string $ids, ?string $type = null):string |
| | | { |
| | | $ids = explode(',', $ids); |
| | | $inner = implode('', array_map(function ($ID) { |
| | | $caption = wp_get_attachment_caption($ID); |
| | | if (!empty($caption)) { |
| | | $caption = sprintf('<figcaption>%s</figcaption', $caption); |
| | | } |
| | | return sprintf( |
| | | '<li><figure>%s%s</figure></li>', |
| | | self::image($ID), |
| | | $caption |
| | | ); |
| | | }, $ids)); |
| | | return sprintf( |
| | | '<ul class="gallery%s">%s</ul>', |
| | | $type? ' '.$type : '', |
| | | $inner |
| | | ); |
| | | } |
| | | |
| | | public static function image(int $id, string $start = 'tiny', string $replace = 'large', bool $addLink = true, ?string $postSlug = null):string |
| | | { |
| | | return (new Image)->formatImage($id, $start, $replace, $addLink, $postSlug); |
| | | } |
| | | public static function SVG(string $slug):string |
| | | { |
| | | $cache = Cache::for('svgs'); |
| | | if (JVB_TESTING) { |
| | | $cache->flush(); |
| | | } |
| | | return $cache->remember( |
| | | $slug, |
| | | function() use ($slug) { |
| | | $filename = JVB_CHILD_DIR.'/assets/icons/'.$slug.'.svg'; |
| | | return file_exists($filename) ? file_get_contents($filename) : ''; |
| | | } |
| | | ); |
| | | } |
| | | } |