| | |
| | | |
| | | use DateTime; |
| | | use DOMDocument; |
| | | use JVBase\managers\CacheManager; |
| | | use JVBase\managers\Cache; |
| | | use WP_Block; |
| | | use WP_Query; |
| | | |
| | |
| | | |
| | | class CustomBlocks |
| | | { |
| | | protected CacheManager $cache; |
| | | protected Cache $cache; |
| | | public function __construct() |
| | | { |
| | | $this->cache = CacheManager::for('blocks', WEEK_IN_SECONDS); |
| | | $this->cache = Cache::for('blocks', WEEK_IN_SECONDS); |
| | | $this->cache->connect('post')->connect('taxonomy'); |
| | | add_filter('render_block', [$this, 'render'], 999, 3); |
| | | |
| | | add_action('init', [$this, 'registerBlockStyles']); |
| | |
| | | if (function_exists($function)) { |
| | | return $function($block, $content); |
| | | // return $this->cache->remember( |
| | | // $block, |
| | | // get_the_ID(), |
| | | // function () use ($function, $block, $content) { |
| | | // return $function($block, $content); |
| | | // } |
| | | // ); |
| | | } else if (method_exists($this, $method)) { |
| | | return $this->$method($block, $content); |
| | | |
| | | // |
| | | // return $this->cache->remember( |
| | | // $block, |
| | | // get_the_ID(), |
| | | // function () use ($method, $block, $content) { |
| | | // return $this->$method($block, $content); |
| | | // } |
| | |
| | | if ($cite !== '') { |
| | | $content = $this->stripTagContents('cite', $content); |
| | | } |
| | | $content = apply_filters('the_content', $content); |
| | | $content = jvb_filter_content( $content); |
| | | |
| | | return '<blockquote'.$this->getClassesAndStyles($block['attrs'], ['pull']).'>'. |
| | | $content. |
| | |
| | | $out .= '<li>'.$block['attrs']['prefix'].'</li>'; |
| | | } |
| | | foreach($terms as $term) { |
| | | $out .= '<li><a href="'.get_term_link($term).'" rel="tag">'.$term->name.'</a></li>'; |
| | | $out .= '<li><a href="'.get_term_link($term).'" rel="tag">'.html_entity_decode($term->name).'</a></li>'; |
| | | } |
| | | if (array_key_exists('suffix', $block['attrs'])) { |
| | | $out .= '<li>'.$block['attrs']['suffix'].'</li>'; |
| | |
| | | $classes[] = $class; |
| | | } |
| | | } |
| | | $classes = array_filter($classes, function ($class) { |
| | | return $class!=='' && !str_starts_with($class, 'wp'); |
| | | }); |
| | | |
| | | return $classes; |
| | | return array_filter($classes, function ($class) { |
| | | return $class!=='' && !str_starts_with($class, 'wp'); |
| | | }); |
| | | } |
| | | protected function getClass(string $key, string|bool|array|int $value, array $attrs):string|array |
| | | { |