control_groups['sliders_list'] = [ 'title' => esc_html__( 'Sliders List', 'depicter' ), 'tab' => 'content', ]; } // Set builder controls public function set_controls() { $this->controls['slider_id'] = [ 'tab' => 'content', 'group' => 'sliders_list', 'label' => esc_html__( 'Select Slider', 'depicter' ), 'type' => 'select', 'options' => $this->getSlidersList(), 'inline' => true, 'clearable' => false, 'pasteStyles' => false, 'default' => '0', 'rerender' => true, ]; } // Enqueue element styles and scripts public function enqueue_scripts() { $styles = \Depicter::front()->assets()->enqueueStyles(); foreach ( $styles as $key => $style ) { wp_enqueue_style( $key ); } if ( ( defined('REST_REQUEST') && REST_REQUEST ) || ( isset( $_GET['bricks'] ) && $_GET['bricks'] == 'run' ) ) { $scripts = \Depicter::front()->assets()->enqueueScripts(['player', 'iframe-resizer']); } else { $scripts = \Depicter::front()->assets()->enqueueScripts(); } foreach ( $scripts as $key => $script ) { wp_enqueue_script( $key ); } } public function getSlidersList() { $list = [ '0' => __( 'Select Slider', 'depicter' ) ]; $documents = \Depicter::documentRepository()->select( ['id', 'name'] )->orderBy('modified_at', 'DESC')->findAll()->get(); $documents = $documents ? $documents->toArray() : []; foreach( $documents as $document ) { $list[ "#" . $document['id'] ] = "[#{$document['id']}]: " . $document['name']; } return $list; } // Render element HTML public function render() { if ( $this->settings['slider_id'] ) { $sliderID = ltrim( $this->settings['slider_id'], '#' ); if ( ( defined('REST_REQUEST') && REST_REQUEST ) || ( isset( $_GET['bricks'] ) && $_GET['bricks'] == 'run' ) ) { $iframeID = "sliderIframe-" . $sliderID; $iframeURL = admin_url('admin-ajax.php') . '?action=depicter-document-preview&depicter-csrf=' . \Depicter::csrf()->getToken( \Depicter\Security\CSRF::EDITOR_ACTION ) . '&ID=' . $sliderID . '&status=draft|publish&gutenberg=true'; echo ''; echo ""; } else { echo \Depicter::front()->render()->document( $sliderID ); } } else { echo esc_html__('Please select a Depicter slider','depicter' ); } } }