芝麻web文件管理V1.00
编辑当前文件:/home/seolotod/critterchoice.com/wp-content/themes/rehub-theme/rehub-elementor/wpsm-svgshape.php
start_controls_section( 'section_control_SvgShape', [ 'label' => esc_html__('Control', 'rehub-theme'), ] ); $this->add_control( 'shape', [ 'label' => esc_html__('Shape', 'rehub-theme'), 'type' => Controls_Manager::SELECT, 'default' => '1', 'options' => [ '1' => esc_html__('Circle', 'rehub-theme'), '2' => esc_html__('Rectangle', 'rehub-theme'), '3' => esc_html__('Triangle', 'rehub-theme'), '4' => esc_html__('Line', 'rehub-theme'), 'cali1' => esc_html__('Caligraphic divider 1', 'rehub-theme'), 'cali2' => esc_html__('Caligraphic divider 2', 'rehub-theme'), 'circledots' => esc_html__('Circle dots', 'rehub-theme'), 'blob1' => esc_html__('Blob 1', 'rehub-theme'), 'blob2' => esc_html__('Blob 2', 'rehub-theme'), 'blob3' => esc_html__('Blob 4', 'rehub-theme'), 'checkmark' => esc_html__('Check icon', 'rehub-theme'), 'calidoodle1' => esc_html__('Caligraphic doodle 1', 'rehub-theme'), 'calidoodle2' => esc_html__('Caligraphic doodle 2', 'rehub-theme'), 'calidoodle3' => esc_html__('Caligraphic doodle 3', 'rehub-theme'), ] ] ); $this->add_control( 'borderwidth', array( 'label' => esc_html__( 'Border width', 'rehub-theme' ), 'type' => Controls_Manager::NUMBER, 'separator' => 'before', 'min' => 0, 'max' => 100, 'step' => 1, ) ); $this->add_control( 'bordercolor', [ 'label' => esc_html__( 'Color', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::COLOR, ]); $this->add_control( 'borderdash', array( 'label' => esc_html__( 'Enable dashed border?', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'true', ) ); $this->add_control( 'dashone', array( 'label' => esc_html__( 'Dash line', 'rehub-theme' ), 'type' => Controls_Manager::NUMBER, 'min' => 1, 'max' => 1000, 'step' => 1, 'default' => 5, 'condition' => array( 'borderdash' => ['true'], ), ) ); $this->add_control( 'dashtwo', array( 'label' => esc_html__( 'Dash offset', 'rehub-theme' ), 'type' => Controls_Manager::NUMBER, 'min' => 1, 'max' => 1000, 'step' => 1, 'default' => 5, 'condition' => array( 'borderdash' => ['true'], ), ) ); $this->add_control( 'filltype', [ 'label' => esc_html__('Fill type', 'rehub-theme'), 'type' => Controls_Manager::SELECT, 'default' => '1', 'separator' => 'before', 'options' => [ '1' => esc_html__('Color', 'rehub-theme'), '2' => esc_html__('Gradient', 'rehub-theme'), '3' => esc_html__('No fill', 'rehub-theme'), ] ] ); $this->add_control( 'fill', [ 'label' => esc_html__( 'Color', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::COLOR, 'default' => '#cc0000', 'condition' => array( 'filltype' => ['1'], ), ]); $this->add_control( 'gradcolorone', [ 'label' => esc_html__( 'Color One', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::COLOR, 'condition' => array( 'filltype' => ['2'], ), ]); $this->add_control( 'offsetone', [ 'label' => __( 'Offset', 'rehub-theme' ), 'type' => Controls_Manager::SLIDER, 'default' => [ 'size' => 0, ], 'label_block' => true, 'range' => [ '%' => [ 'min' => 0, 'max' => 100, 'step' => 1, ], ], 'condition' => [ 'filltype' => '2', ], ] ); $this->add_control( 'gradcolortwo', [ 'label' => esc_html__( 'Color two', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::COLOR, 'condition' => array( 'filltype' => ['2'], ), ]); $this->add_control( 'offsettwo', [ 'label' => __( 'Offset 2', 'rehub-theme' ), 'type' => Controls_Manager::SLIDER, 'default' => [ 'size' => 100, ], 'label_block' => true, 'range' => [ '%' => [ 'min' => 0, 'max' => 100, 'step' => 1, ], ], 'condition' => [ 'filltype' => '2', ], ] ); $this->add_control( 'gradrotate', [ 'label' => __( 'Rotation for gradient', 'rehub-theme' ), 'type' => Controls_Manager::SLIDER, 'label_block' => true, 'separator' => 'before', 'default' => [ 'size' => 100, ], 'range' => [ '%' => [ 'min' => 0, 'max' => 360, 'step' => 1, ], ], 'condition' => [ 'filltype' => '2', ], ] ); $this->add_control( 'svgshadow', array( 'label' => esc_html__( 'Enable shadow?', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'true', 'separator' => 'before', ) ); $this->add_control( 'svgshadowcontrol', array( 'label' => esc_html__( 'Box shadow', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::BOX_SHADOW, 'condition' => [ 'svgshadow!' => '', ], 'selectors' => [ '{{WRAPPER}} svg' => 'filter: drop-shadow({{HORIZONTAL}}px {{VERTICAL}}px {{BLUR}}px {{COLOR}});', ], ) ); $this->add_control( 'svgwidth', [ 'label' => __('SVG width', 'rehub-theme'), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px'], 'separator' => 'before', 'default' => [ 'size' => 100, 'unit' => 'px', ], 'range' => [ 'px' => [ 'min' => 1, 'max' => 2500, ] ], 'condition' => [ 'shape' => ['1','2','3','4'], ], ] ); $this->add_control( 'svgheight', [ 'label' => __('SVG height', 'rehub-theme'), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px'], 'separator' => 'before', 'range' => [ 'px' => [ 'min' => 1, 'max' => 2500, ] ], 'default' => [ 'size' => 100, 'unit' => 'px', ], 'condition' => [ 'shape' => ['2','3'], ], ] ); $this->add_responsive_control( 'areawidth', [ 'label' => __('Area width', 'rehub-theme'), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px'], 'separator' => 'before', 'default' => [ 'size' => 100, 'unit' => 'px', ], 'range' => [ 'px' => [ 'min' => 1, 'max' => 2500, ] ], 'selectors' => [ '{{WRAPPER}} svg' => 'width: {{SIZE}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'areaheight', [ 'label' => __('Area height', 'rehub-theme'), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px'], 'separator' => 'before', 'range' => [ 'px' => [ 'min' => 1, 'max' => 2500, ] ], 'default' => [ 'size' => 100, 'unit' => 'px', ], 'selectors' => [ '{{WRAPPER}} svg' => 'height: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'svg_rotate', array( 'label' => esc_html__( 'Rotation (deg)', 'rehub-theme' ), 'type' => Controls_Manager::NUMBER, 'min' => 1, 'max' => 360, 'step' => 1, 'selectors' => [ '{{WRAPPER}} svg' => 'transform: rotate({{VALUE}}deg);', ], ) ); $this->end_controls_section(); } /* Widget output Rendering */ protected function render() { $settings = $this->get_settings_for_display(); $widgetId = $this->get_id(); if($settings['filltype'] == '1'){ $fill = $settings['fill']; } elseif($settings['filltype'] == '2'){ $fill = 'url(#grad'.$widgetId.')'; }else{ $fill = 'transparent'; } if ( ! empty( $settings['borderwidth'] )) { $this->add_render_attribute( 'svgdata', 'stroke-width', $settings['borderwidth'] ); $borderwidth = $settings['borderwidth']; }else{ $borderwidth = 0; } if ( ! empty( $settings['bordercolor'] )) { $this->add_render_attribute( 'svgdata', 'stroke', $settings['bordercolor'] ); } if($fill){ $this->add_render_attribute( 'svgdata', 'fill', $fill ); } if ( ! empty( $settings['borderdash'] )) { $this->add_render_attribute( 'svgdata', 'stroke-dasharray', $settings['dashone'].','.$settings['dashtwo'] ); } $width = (!empty($settings['svgwidth']['size'])) ? $settings['svgwidth']['size'] : ''; $height = (!empty($settings['svgheight']['size'])) ? $settings['svgheight']['size'] : ''; if($settings['shape'] == '1'){ $this->add_render_attribute( 'svgdatainner', 'cx', $width/2 ); $this->add_render_attribute( 'svgdatainner', 'cy', $width/2 ); $r = $width/2; if(!empty($settings['borderwidth'])){ $r = $r - intval($settings['borderwidth']); } $this->add_render_attribute( 'svgdatainner', 'r', $r ); } elseif($settings['shape'] == '2'){ $x = $y = $borderwidth; $this->add_render_attribute( 'svgdatainner', 'x', $x ); $this->add_render_attribute( 'svgdatainner', 'y', $y ); $this->add_render_attribute( 'svgdatainner', 'width', $width ); $this->add_render_attribute( 'svgdatainner', 'height', $height ); } elseif($settings['shape'] == '3'){ $w2 = $width/2 - $borderwidth/2; $w = $width - $borderwidth; $h = $height - $borderwidth; $zero = $borderwidth; $points = $zero.','.$zero.' '.$w.','.$zero.' '.$w2.','.$h; $this->add_render_attribute( 'svgdatainner', 'points', $points ); } elseif($settings['shape'] == '4'){ $this->add_render_attribute( 'svgdatainner', 'x2', $width ); } elseif($settings['shape'] == 'cali1'){ $this->add_render_attribute( 'svgdata', 'viewBox', '0 0 397.88 41.1' ); } elseif($settings['shape'] == 'checkmark'){ $this->add_render_attribute( 'svgdata', 'viewBox', '0 0 79 79' ); } elseif($settings['shape'] == 'cali2'){ $this->add_render_attribute( 'svgdata', 'viewBox', '0 0 105.52 27.74' ); } elseif($settings['shape'] == 'calidoodle1'){ $this->add_render_attribute( 'svgdata', 'viewBox', '0 0 212.42 298.08' ); } elseif($settings['shape'] == 'calidoodle2'){ $this->add_render_attribute( 'svgdata', 'viewBox', '0 0 331.64 190.04' ); } elseif($settings['shape'] == 'calidoodle3'){ $this->add_render_attribute( 'svgdata', 'viewBox', '0 0 99.67 73.98' ); } elseif($settings['shape'] == 'circledots'){ $this->add_render_attribute( 'svgdata', 'viewBox', '0 0 192.44 9.35' ); } elseif($settings['shape'] == 'blob1' || $settings['shape'] == 'blob2' || $settings['shape'] == 'blob3' || $settings['shape'] == 'blob4'){ $this->add_render_attribute( 'svgdata', 'viewBox', '0 0 600 600' ); } ?>
get_render_attribute_string( 'svgdata' );?>>
get_render_attribute_string( 'svgdatainner' );?> />
get_render_attribute_string( 'svgdatainner' );?> />
get_render_attribute_string( 'svgdatainner' );?> />
get_render_attribute_string( 'svgdatainner' );?> />
<# var widgetId = view.getIDInt().toString().substr( 0, 3 ); if(settings.filltype == '1'){ var fill = settings.fill; } else if(settings.filltype == '2'){ var fill = 'url(#grad' + widgetId + ')'; }else{ var fill = 'transparent'; } if(fill){ view.addRenderAttribute( 'svgdata', 'fill', fill ); } if ( settings.borderwidth ) { view.addRenderAttribute( 'svgdata', 'stroke-width', settings.borderwidth ); } if ( settings.bordercolor ) { view.addRenderAttribute( 'svgdata', 'stroke', settings.bordercolor ); } if ( settings.borderdash ) { view.addRenderAttribute( 'svgdata', 'stroke-dasharray', settings.dashone+','+settings.dashtwo ); } var width = settings.svgwidth.size; var height = settings.svgheight.size; var borderwidth = settings.borderwidth; if(borderwidth == ''){ var borderwidth = 0; } if(settings.shape == '1'){ view.addRenderAttribute( 'svgdatainner', 'cx', width/2 ); view.addRenderAttribute( 'svgdatainner', 'cy', width/2 ); var r = width/2; if(settings.borderwidth){ r = r - settings.borderwidth; } view.addRenderAttribute( 'svgdatainner', 'r', r ); } else if(settings.shape == '2'){ var x = borderwidth; var y = borderwidth; view.addRenderAttribute( 'svgdatainner', 'x', x ); view.addRenderAttribute( 'svgdatainner', 'y', y ); view.addRenderAttribute( 'svgdatainner', 'width', width ); view.addRenderAttribute( 'svgdatainner', 'height', height ); } else if(settings.shape == '3'){ var borderwidth = settings.borderwidth; if(borderwidth == ''){ var borderwidth = 0; } var w2 = width/2 - borderwidth/2; var w = width - borderwidth; var h = height - borderwidth; var zero = borderwidth; view.addRenderAttribute( 'svgdatainner', 'points', zero+','+zero+' '+w+','+zero+' '+w2+','+h ); } else if(settings.shape == '4'){ view.addRenderAttribute( 'svgdatainner', 'x2', width ); } else if(settings.shape == 'cali1'){ view.addRenderAttribute( 'svgdata', 'viewBox', '0 0 397.88 41.1' ); } else if(settings.shape == 'cali2'){ view.addRenderAttribute( 'svgdata', 'viewBox', '0 0 105.52 27.74' ); } else if(settings.shape == 'calidoodle1'){ view.addRenderAttribute( 'svgdata', 'viewBox', '0 0 212.42 298.08' ); } else if(settings.shape == 'calidoodle2'){ view.addRenderAttribute( 'svgdata', 'viewBox', '0 0 331.64 190.04' ); } else if(settings.shape == 'calidoodle3'){ view.addRenderAttribute( 'svgdata', 'viewBox', '0 0 99.67 73.98' ); } else if(settings.shape == 'circledots'){ view.addRenderAttribute( 'svgdata', 'viewBox', '0 0 192.44 9.35' ); } else if(settings.shape == 'checkmark'){ view.addRenderAttribute( 'svgdata', 'viewBox', '0 0 79 79' ); } else if(settings.shape == 'blob1' || settings.shape == 'blob2' || settings.shape == 'blob3' || settings.shape == 'blob4'){ view.addRenderAttribute( 'svgdata', 'viewBox', '0 0 600 600' ); } #>
<# if(settings.filltype == '2'){ #>
<# } #> <# if(settings.shape == '1'){ #>
<# } else if(settings.shape == '2'){ #>
<# } else if(settings.shape == 'checkmark'){ #>
<# } else if(settings.shape == '3'){ #>
<# } else if(settings.shape == '4'){ #>
<# } else if(settings.shape == 'cali1'){ #>
<# } else if(settings.shape == 'cali2'){ #>
<# } else if(settings.shape == 'calidoodle1'){ #>
<# } else if(settings.shape == 'calidoodle3'){ #>
<# } else if(settings.shape == 'calidoodle2'){ #>
<# } else if(settings.shape == 'circledots'){ #>
<# } else if(settings.shape == 'blob1'){ #>
<# } else if(settings.shape == 'blob2'){ #>
<# } else if(settings.shape == 'blob3'){ #>
<# } else if(settings.shape == 'blob4'){ #>
<# } #>
widgets_manager->register( new Widget_SvgShape );