| | |
| | | <?php |
| | | namespace JVBase\forms; |
| | | |
| | | use JVBase\managers\CacheManager; |
| | | use JVBase\managers\Cache; |
| | | use JVBase\managers\Roles; |
| | | use WP_REST_Request; |
| | | use WP_REST_Response; |
| | | use WP_Query; |
| | |
| | | { |
| | | protected string $post_type; |
| | | protected array $config; |
| | | protected CacheManager $cache; |
| | | protected Cache $cache; |
| | | |
| | | public function __construct(string $post_type, array $config = []) |
| | | { |
| | | $this->post_type = $post_type; |
| | | $this->cache = CacheManager::for(jvbNoBase($post_type), WEEK_IN_SECONDS); |
| | | $this->cache = Cache::for(jvbNoBase($post_type), 'post',WEEK_IN_SECONDS); |
| | | |
| | | $this->config = wp_parse_args($config, [ |
| | | 'multiple' => true, |
| | |
| | | */ |
| | | public function render(array $selected = [], string $containerId = ''): string |
| | | { |
| | | // Mark that selectors are present for footer output |
| | | TaxonomySelector::markSelectorsPresent(); |
| | | |
| | | // Process selected posts |
| | | $processedSelected = $this->processSelectedPosts($selected); |
| | | |
| | |
| | | 'methods' => 'GET', |
| | | 'callback' => [new self('post'), 'searchPosts'], |
| | | 'permission_callback' => function($request) { |
| | | return JVB()->roles()->checkRole(get_current_user(), $request->get_param('post_type')); |
| | | return Roles::getInstance()()->checkRole(get_current_user(), $request->get_param('post_type')); |
| | | }, |
| | | 'args' => [ |
| | | 'post_type' => [ |
| | |
| | | } |
| | | |
| | | /** |
| | | * Render post selector field for MetaForm integration |
| | | * Render post selector field for Meta's Form integration |
| | | * |
| | | * @param string $name Field name |
| | | * @param mixed $value Current value |