[ 'title' => esc_html__( 'Single', 'elementor' ), 'active' => false, ], ] ); } /** * @since 2.0.0 * @access public */ public function get_css_wrapper_selector() { return 'body.elementor-page-' . $this->get_main_id(); } /** * @since 3.1.0 * @access protected */ protected function register_controls() { parent::register_controls(); self::register_hide_title_control( $this ); self::register_post_fields_control( $this ); self::register_style_controls( $this ); } /** * @since 2.0.0 * @access public * @static * @param Document $document */ public static function register_hide_title_control( $document ) { $document->start_injection( [ 'of' => 'post_status', 'fallback' => [ 'of' => 'post_title', ], ] ); $document->add_control( 'hide_title', [ 'label' => esc_html__( 'Hide Title', 'elementor' ), 'type' => Controls_Manager::SWITCHER, 'description' => esc_html__( 'Not working? You can set a different selector for the title in Site Settings > Layout', 'elementor' ), 'selectors' => [ ':root' => '--page-title-display: none', ], ] ); $document->end_injection(); } /** * @since 2.0.0 * @access public * @static * @param Document $document */ public static function register_style_controls( $document ) { $document->start_controls_section( 'section_page_style', [ 'label' => esc_html__( 'Body Style', 'elementor' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $document->add_responsive_control( 'margin', [ 'label' => esc_html__( 'Margin', 'elementor' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%', 'rem' ], 'selectors' => [ '{{WRAPPER}}' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}', ], ] ); $document->add_responsive_control( 'padding', [ 'label' => esc_html__( 'Padding', 'elementor' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%', 'rem' ], 'selectors' => [ '{{WRAPPER}}' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}', ], ] ); $document->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'background', 'separator' => 'before', 'fields_options' => [ 'image' => [ // Currently isn't supported. 'dynamic' => [ 'active' => false, ], ], ], ] ); $document->end_controls_section(); Plugin::$instance->controls_manager->add_custom_css_controls( $document ); } /** * @since 2.0.0 * @access public * @static * @param Document $document */ public static function register_post_fields_control( $document ) { $document->start_injection( [ 'of' => 'post_status', 'fallback' => [ 'of' => 'post_title', ], ] ); if ( post_type_supports( $document->post->post_type, 'excerpt' ) ) { $document->add_control( 'post_excerpt', [ 'label' => esc_html__( 'Excerpt', 'elementor' ), 'type' => Controls_Manager::TEXTAREA, 'default' => $document->post->post_excerpt, ] ); } if ( current_theme_supports( 'post-thumbnails' ) && post_type_supports( $document->post->post_type, 'thumbnail' ) ) { $document->add_control( 'post_featured_image', [ 'label' => esc_html__( 'Featured Image', 'elementor' ), 'type' => Controls_Manager::MEDIA, 'default' => [ 'id' => get_post_thumbnail_id(), 'url' => (string) get_the_post_thumbnail_url( $document->post->ID ), ], ] ); } $document->end_injection(); } /** * @since 2.0.0 * @access public * * @param array $data * * @throws \Exception */ public function __construct( array $data = [] ) { if ( $data ) { $template = get_post_meta( $data['post_id'], '_wp_page_template', true ); if ( empty( $template ) ) { $template = 'default'; } $data['settings']['template'] = $template; } parent::__construct( $data ); } protected function get_remote_library_config() { $config = parent::get_remote_library_config(); $config['category'] = ''; $config['type'] = 'page'; $config['default_route'] = 'templates/pages'; return $config; } }