芝麻web文件管理V1.00
编辑当前文件:/home/disqkgca/aqanet.org/wp-content/plugins/carousel-slider/modules/HeroCarousel/Admin.php
Add Slide
ID, '_content_slider', true ); $content_sliders = is_array( $content_sliders ) ? array_values( $content_sliders ) : []; $content_settings = get_post_meta( $post->ID, '_content_slider_settings', true ); $content_settings = is_array( $content_settings ) ? $content_settings : []; if ( count( $content_sliders ) > 0 ) { $total_sliders = count( $content_sliders ); foreach ( $content_sliders as $slide_num => $content_slider ) { $item = new Item( $content_slider, $content_settings ); $item->set_setting( new Setting( $post->ID ) ); $item->set_prop( 'id', $slide_num + 1 ); $item->set_prop( 'total_items', $total_sliders ); self::item_meta_box( $item, $total_sliders ); } } ?>
ID ); ?> get_item_id() ); $action_html = self::get_actions_html( $item->get_slider_id(), $item->get_item_id() - 1, $total_items ); ?>
textarea( [ 'id' => 'slide_heading', 'name' => esc_html__( 'Slide Heading', 'carousel-slider' ), 'desc' => esc_html__( 'Enter the heading for your slide. This field can take HTML markup.', 'carousel-slider' ), 'rows' => 3, 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][slide_heading]', $item->get_item_id() ), 'value' => $item->get_prop( 'slide_heading' ), ], ] ); $form->textarea( [ 'id' => 'slide_description', 'name' => esc_html__( 'Slide Description', 'carousel-slider' ), 'desc' => esc_html__( 'Enter the description for your slide. This field can take HTML markup.', 'carousel-slider' ), 'rows' => 4, 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][slide_description]', $item->get_item_id() ), 'value' => $item->get_prop( 'slide_description' ), ], ] ); } /** * Get item tab link * * @param Item $item The Item object. */ public static function get_item_tab_link( Item $item ) { $form = new MetaBoxForm(); $link_type = $item->get_prop( 'link_type', 'full' ); $form->select( [ 'id' => 'link_type', 'class' => 'sp-input-text link_type', 'name' => esc_html__( 'Slide Link Type', 'carousel-slider' ), 'desc' => esc_html__( 'Select how the slide will link.', 'carousel-slider' ), 'options' => [ 'none' => esc_html__( 'No Link', 'carousel-slider' ), 'full' => esc_html__( 'Full Slide', 'carousel-slider' ), 'button' => esc_html__( 'Button', 'carousel-slider' ), ], 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][link_type]', $item->get_item_id() ), 'value' => $item->get_prop( 'link_type' ), ], ] ); echo '
'; $form->text( [ 'id' => 'slide_link', 'name' => esc_html__( 'Slide Link', 'carousel-slider' ), 'desc' => esc_html__( 'Please enter your URL that will be used to link the full slide.', 'carousel-slider' ), 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][slide_link]', $item->get_item_id() ), 'value' => $item->get_prop( 'slide_link' ), ], ] ); $form->select( [ 'id' => 'link_target', 'name' => esc_html__( 'Open Slide Link In New Window', 'carousel-slider' ), 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][link_target]', $item->get_item_id() ), 'value' => $item->get_prop( 'link_target' ), ], 'options' => [ '_blank' => esc_html__( 'Yes', 'carousel-slider' ), '_self' => esc_html__( 'No', 'carousel-slider' ), ], ] ); echo '
'; echo '
'; self::get_item_tab_link_button_one( $item ); self::get_item_tab_link_button_two( $item ); echo '
'; } /** * Get loop item button one link * * @param Item $item The Item object. */ public static function get_item_tab_link_button_one( Item $item ) { $form = new MetaBoxForm(); ?>
text( [ 'id' => 'button_one_text', 'name' => esc_html__( 'Button Text', 'carousel-slider' ), 'desc' => esc_html__( 'Add button text', 'carousel-slider' ), 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][button_one_text]', $item->get_item_id() ), 'value' => $item->get_prop( 'button_one_text' ), ], ] ); $form->text( [ 'id' => 'button_one_url', 'name' => esc_html__( 'Button URL', 'carousel-slider' ), 'desc' => esc_html__( 'Add the button url e.g. https://example.com', 'carousel-slider' ), 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][button_one_url]', $item->get_item_id() ), 'value' => $item->get_prop( 'button_one_url' ), ], ] ); $form->select( [ 'id' => 'button_one_target', 'name' => esc_html__( 'Open Button Link In', 'carousel-slider' ), 'desc' => esc_html__( 'Add the button url e.g. https://example.com', 'carousel-slider' ), 'options' => [ '_blank' => esc_html__( 'New Window', 'carousel-slider' ), '_self' => esc_html__( 'Same Window', 'carousel-slider' ), ], 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][button_one_target]', $item->get_item_id() ), 'value' => $item->get_prop( 'button_one_target', '_self' ), ], ] ); $form->select( [ 'id' => 'button_one_type', 'name' => esc_html__( 'Button Type', 'carousel-slider' ), 'options' => \CarouselSlider\Modules\HeroCarousel\Helper::button_type(), 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][button_one_type]', $item->get_item_id() ), 'value' => $item->get_prop( 'button_one_type' ), ], ] ); $form->select( [ 'id' => 'button_one_size', 'name' => esc_html__( 'Button Size', 'carousel-slider' ), 'options' => \CarouselSlider\Modules\HeroCarousel\Helper::button_size(), 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][button_one_size]', $item->get_item_id() ), 'value' => $item->get_prop( 'button_one_size' ), ], ] ); $form->text( [ 'id' => 'button_one_border_width', 'name' => esc_html__( 'Border Width', 'carousel-slider' ), 'desc' => esc_html__( 'Enter border width in pixel. e.g. 2px', 'carousel-slider' ), 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][button_one_border_width]', $item->get_item_id() ), 'value' => $item->get_prop( 'button_one_border_width' ), ], ] ); $form->text( [ 'id' => 'button_one_border_radius', 'name' => esc_html__( 'Border Radius', 'carousel-slider' ), 'desc' => esc_html__( 'Enter border radius in pixel. e.g. 2px', 'carousel-slider' ), 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][button_one_border_radius]', $item->get_item_id() ), 'value' => $item->get_prop( 'button_one_border_radius' ), ], ] ); $form->color( [ 'id' => 'button_one_bg_color', 'name' => esc_html__( 'Button Color', 'carousel-slider' ), 'std' => '#00d1b2', 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][button_one_bg_color]', $item->get_item_id() ), 'value' => $item->get_prop( 'button_one_bg_color', '#00d1b2' ), ], ] ); $form->color( [ 'id' => 'button_one_color', 'name' => esc_html__( 'Button Text Color', 'carousel-slider' ), 'std' => '#ffffff', 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][button_one_color]', $item->get_item_id() ), 'value' => $item->get_prop( 'button_one_color', '#ffffff' ), ], ] ); ?>
text( [ 'id' => 'button_two_text', 'name' => esc_html__( 'Button Text', 'carousel-slider' ), 'desc' => esc_html__( 'Add button text', 'carousel-slider' ), 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][button_two_text]', $item->get_item_id() ), 'value' => $item->get_prop( 'button_two_text' ), ], ] ); $form->text( [ 'id' => 'button_two_url', 'name' => esc_html__( 'Button URL', 'carousel-slider' ), 'desc' => esc_html__( 'Add the button url e.g. https://example.com', 'carousel-slider' ), 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][button_two_url]', $item->get_item_id() ), 'value' => $item->get_prop( 'button_two_url' ), ], ] ); $form->select( [ 'id' => 'button_two_target', 'name' => esc_html__( 'Open Button Link In', 'carousel-slider' ), 'desc' => esc_html__( 'Add the button url e.g. https://example.com', 'carousel-slider' ), 'options' => [ '_blank' => esc_html__( 'New Window', 'carousel-slider' ), '_self' => esc_html__( 'Same Window', 'carousel-slider' ), ], 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][button_two_target]', $item->get_item_id() ), 'value' => $item->get_prop( 'button_two_target' ), ], ] ); $form->select( [ 'id' => 'button_two_type', 'name' => esc_html__( 'Button Type', 'carousel-slider' ), 'options' => [ 'normal' => esc_html__( 'Normal', 'carousel-slider' ), 'stroke' => esc_html__( 'Stroke', 'carousel-slider' ), ], 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][button_two_type]', $item->get_item_id() ), 'value' => $item->get_prop( 'button_two_type', 'normal' ), ], ] ); $form->select( [ 'id' => 'button_two_size', 'name' => esc_html__( 'Button Size', 'carousel-slider' ), 'options' => [ 'large' => esc_html__( 'Large', 'carousel-slider' ), 'medium' => esc_html__( 'Medium', 'carousel-slider' ), 'small' => esc_html__( 'Small', 'carousel-slider' ), ], 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][button_two_size]', $item->get_item_id() ), 'value' => $item->get_prop( 'button_two_size' ), ], ] ); $form->text( [ 'id' => 'button_two_border_width', 'name' => esc_html__( 'Border Width', 'carousel-slider' ), 'desc' => esc_html__( 'Enter border width in pixel. e.g. 2px', 'carousel-slider' ), 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][button_two_border_width]', $item->get_item_id() ), 'value' => $item->get_prop( 'button_two_border_width' ), ], ] ); $form->text( [ 'id' => 'button_two_border_radius', 'name' => esc_html__( 'Border Radius', 'carousel-slider' ), 'desc' => esc_html__( 'Enter border radius in pixel. e.g. 2px', 'carousel-slider' ), 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][button_two_border_radius]', $item->get_item_id() ), 'value' => $item->get_prop( 'button_two_border_radius' ), ], ] ); $form->color( [ 'id' => 'button_two_bg_color', 'name' => esc_html__( 'Button Color', 'carousel-slider' ), 'std' => '#00d1b2', 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][button_two_bg_color]', $item->get_item_id() ), 'value' => $item->get_prop( 'button_two_bg_color' ), ], ] ); $form->color( [ 'id' => 'button_two_color', 'name' => esc_html__( 'Button Text Color', 'carousel-slider' ), 'std' => '#ffffff', 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][button_two_color]', $item->get_item_id() ), 'value' => $item->get_prop( 'button_two_color' ), ], ] ); ?>
get_prop( 'img_id' ), 'full' ); // Canvas style. $canvas_style = [ 'background-repeat' => 'no-repeat', 'background-position' => $item->get_prop( 'img_bg_position', 'center center' ), 'background-size' => $item->get_prop( 'img_bg_size', 'cover' ), 'background-color' => $item->get_prop( 'bg_color' ), ]; if ( is_array( $bg_image ) ) { $canvas_style['background-image'] = 'url(' . $bg_image[0] . ')'; } $canvas_style = Helper::array_to_style( $canvas_style ); ?>
×
upload_iframe( [ 'id' => 'img_id', 'class' => 'background_image_id', 'label' => esc_html__( 'Background Image', 'carousel-slider' ), 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][img_id]', $item->get_item_id() ), 'value' => $item->get_prop( 'img_id' ), ], ] ); $form->select( [ 'id' => 'img_bg_position', 'class' => 'sp-input-text background_image_position', 'name' => esc_html__( 'Background Position', 'carousel-slider' ), 'options' => HeroCarouselHelper::background_position(), 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][img_bg_position]', $item->get_item_id() ), 'value' => $item->get_prop( 'img_bg_position' ), ], ] ); $form->select( [ 'id' => 'img_bg_size', 'class' => 'sp-input-text background_image_size', 'name' => esc_html__( 'Background Size', 'carousel-slider' ), 'options' => HeroCarouselHelper::background_size(), 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][img_bg_size]', $item->get_item_id() ), 'value' => $item->get_prop( 'img_bg_size' ), ], ] ); $form->select( [ 'id' => 'ken_burns_effect', 'name' => esc_html__( 'Ken Burns Effect', 'carousel-slider' ), 'options' => HeroCarouselHelper::ken_burns_effects(), 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][ken_burns_effect]', $item->get_item_id() ), 'value' => $item->get_prop( 'ken_burns_effect' ), ], ] ); $form->color( [ 'id' => 'bg_color', 'name' => esc_html__( 'Background Color', 'carousel-slider' ), 'std' => 'rgba(255,255,255,0.5)', 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][bg_color]', $item->get_item_id() ), 'value' => $item->get_prop( 'bg_color' ), ], ] ); $form->color( [ 'id' => 'bg_overlay', 'name' => esc_html__( 'Background Overlay', 'carousel-slider' ), 'std' => 'rgba(0,0,0,0.5)', 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][bg_overlay]', $item->get_item_id() ), 'value' => $item->get_prop( 'bg_overlay' ), ], ] ); ?>
select( [ 'id' => 'content_alignment', 'name' => esc_html__( 'Content Alignment', 'carousel-slider' ), 'desc' => esc_html__( 'Select how the heading, description and buttons will be aligned', 'carousel-slider' ), 'std' => 'left', 'options' => HeroCarouselHelper::text_alignment(), 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][content_alignment]', $item->get_item_id() ), 'value' => $item->get_prop( 'content_alignment' ), ], ] ); $form->number( [ 'id' => 'heading_font_size', 'name' => esc_html__( 'Heading Font Size', 'carousel-slider' ), 'desc' => esc_html__( 'Enter heading font size without px unit. In pixels, ex: 50 instead of 50px. Default: 60', 'carousel-slider' ), 'std' => '60', 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][heading_font_size]', $item->get_item_id() ), 'value' => $item->get_prop( 'heading_font_size' ), ], ] ); $form->text( [ 'id' => 'heading_gutter', 'name' => esc_html__( 'Spacing/Gutter', 'carousel-slider' ), 'desc' => esc_html__( 'Enter gutter (space between description and heading) in px, em or rem, ex: 3rem', 'carousel-slider' ), 'std' => '30px', 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][heading_gutter]', $item->get_item_id() ), 'value' => $item->get_prop( 'heading_gutter' ), ], ] ); $form->color( [ 'id' => 'heading_color', 'name' => esc_html__( 'Heading Color', 'carousel-slider' ), 'desc' => esc_html__( 'Select a color for the heading font. Default: #fff', 'carousel-slider' ), 'std' => '#ffffff', 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][heading_color]', $item->get_item_id() ), 'value' => $item->get_prop( 'heading_color' ), ], ] ); $form->text( [ 'id' => 'description_font_size', 'name' => esc_html__( 'Description Font Size', 'carousel-slider' ), 'desc' => esc_html__( 'Enter description font size without px unit. In pixels, ex: 20 instead of 20px. Default: 24', 'carousel-slider' ), 'std' => '24', 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][description_font_size]', $item->get_item_id() ), 'value' => $item->get_prop( 'description_font_size' ), ], ] ); $form->text( [ 'id' => 'description_gutter', 'name' => esc_html__( 'Description Spacing/Gutter', 'carousel-slider' ), 'desc' => esc_html__( 'Enter gutter (space between description and buttons) in px, em or rem, ex: 3rem', 'carousel-slider' ), 'std' => '30px', 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][description_gutter]', $item->get_item_id() ), 'value' => $item->get_prop( 'description_gutter' ), ], ] ); $form->color( [ 'id' => 'description_color', 'name' => esc_html__( 'Description Color', 'carousel-slider' ), 'desc' => esc_html__( 'Select a color for the description font. Default: #fff', 'carousel-slider' ), 'std' => '#ffffff', 'input_attributes' => [ 'name' => sprintf( 'carousel_slider_content[%s][description_color]', $item->get_item_id() ), 'value' => $item->get_prop( 'description_color' ), ], ] ); } /** * Get action html * * @param int $slider_id The slider id. * @param int $item_index The slider item index number. * @param int $total_items Total slide in a slider. * * @return string */ public static function get_actions_html( int $slider_id, int $item_index, int $total_items ): string { $can_move_up = 0 !== $item_index; $can_move_down = ( $total_items - 1 ) !== $item_index; $buttons = [ [ 'action' => 'delete_slide', 'icon' => 'trash', 'title' => __( 'Delete current slide', 'carousel-slider' ), ], ]; if ( $can_move_up ) { $buttons[] = [ 'action' => 'move_top', 'icon' => 'arrow-up-alt', 'title' => __( 'Move Slide to Top', 'carousel-slider' ), ]; $buttons[] = [ 'action' => 'move_up', 'icon' => 'arrow-up-alt2', 'title' => __( 'Move Slide Up', 'carousel-slider' ), ]; } if ( $can_move_down ) { $buttons[] = [ 'action' => 'move_down', 'icon' => 'arrow-down-alt2', 'title' => __( 'Move Slide Down', 'carousel-slider' ), ]; $buttons[] = [ 'action' => 'move_bottom', 'icon' => 'arrow-down-alt', 'title' => __( 'Move Slide to Bottom', 'carousel-slider' ), ]; } $html = ''; foreach ( $buttons as $button ) { $html .= sprintf( '
', $button['action'], $slider_id, $item_index, $button['title'] ); $html .= sprintf( '
', $button['icon'] ); $html .= '
'; } return $html; } /** * Get content settings * * @param int $slider_id The slider id. */ public static function content_meta_box_settings( int $slider_id ) { $content_settings = get_post_meta( $slider_id, '_content_slider_settings', true ); $_slide_height = $content_settings['slide_height'] ?? '400px'; $_content_width = $content_settings['content_width'] ?? '850px'; $_content_animation = $content_settings['content_animation'] ?? ''; $form = new MetaBoxForm(); echo '
'; $form->text( [ 'group' => 'content_settings', 'id' => 'slide_height', 'name' => esc_html__( 'Slide Height', 'carousel-slider' ), 'desc' => esc_html__( 'Enter a px, em, rem or vh value for slide height. ex: 100vh', 'carousel-slider' ), 'std' => '400px', 'input_attributes' => [ 'name' => 'content_settings[slide_height]', 'value' => $_slide_height, ], ] ); $form->text( [ 'group' => 'content_settings', 'id' => 'content_width', 'name' => esc_html__( 'Slider Content Max Width', 'carousel-slider' ), 'desc' => esc_html__( 'Enter a px, em, rem or % value for slide height. ex: 960px', 'carousel-slider' ), 'std' => '850px', 'input_attributes' => [ 'name' => 'content_settings[content_width]', 'value' => $_content_width, ], ] ); $form->select( [ 'group' => 'content_settings', 'id' => 'content_animation', 'name' => esc_html__( 'Content Animation', 'carousel-slider' ), 'desc' => esc_html__( 'Select slide content animation.', 'carousel-slider' ), 'std' => 'fadeOut', 'options' => HeroCarouselHelper::animations(), 'input_attributes' => [ 'name' => 'content_settings[content_animation]', 'value' => $_content_animation, ], ] ); $form->spacing( [ 'meta_key' => '_content_slider_settings', 'group' => 'content_settings', 'id' => 'slide_padding', 'name' => esc_html__( 'Slider Padding', 'carousel-slider' ), 'desc' => esc_html__( 'Enter padding around slide in px, em or rem.', 'carousel-slider' ), 'default' => [ 'top' => '1rem', 'right' => '1rem', 'bottom' => '1rem', 'left' => '1rem', ], 'input_attributes' => [ 'value' => isset( $content_settings['slide_padding'] ) && is_array( $content_settings['slide_padding'] ) ? $content_settings['slide_padding'] : [], ], ] ); echo '
'; } }