Current Path : /storage/v11800/lifespanstoresnew/public_html/wp-content/plugins/suxnix-core/include/elementor/ |
Linux v11800 5.3.0-1023-aws #25~18.04.1-Ubuntu SMP Fri Jun 5 15:19:18 UTC 2020 aarch64
|
Current File : /storage/v11800/lifespanstoresnew/public_html/wp-content/plugins/suxnix-core/include/elementor/faq.php |
<?php
namespace TPCore\Widgets;
use Elementor\Widget_Base;
use Elementor\Controls_Manager;
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
/**
* Suxnix Core
*
* Elementor widget for hello world.
*
* @since 1.0.0
*/
class TP_FAQ extends Widget_Base {
/**
* Retrieve the widget name.
*
* @since 1.0.0
*
* @access public
*
* @return string Widget name.
*/
public function get_name() {
return 'tp-faq';
}
/**
* Retrieve the widget title.
*
* @since 1.0.0
*
* @access public
*
* @return string Widget title.
*/
public function get_title() {
return __( 'FAQ', 'tpcore' );
}
/**
* Retrieve the widget icon.
*
* @since 1.0.0
*
* @access public
*
* @return string Widget icon.
*/
public function get_icon() {
return 'tp-icon';
}
/**
* Retrieve the list of categories the widget belongs to.
*
* Used to determine where to display the widget in the editor.
*
* Note that currently Elementor supports only one category.
* When multiple categories passed, Elementor uses the first one.
*
* @since 1.0.0
*
* @access public
*
* @return array Widget categories.
*/
public function get_categories() {
return [ 'tpcore' ];
}
/**
* Retrieve the list of scripts the widget depended on.
*
* Used to set scripts dependencies required to run the widget.
*
* @since 1.0.0
*
* @access public
*
* @return array Widget scripts dependencies.
*/
public function get_script_depends() {
return [ 'tpcore' ];
}
/**
* Register the widget controls.
*
* Adds different input fields to allow the user to change and customize the widget settings.
*
* @since 1.0.0
*
* @access protected
*/
protected function register_controls() {
// tp_section_title
$this->start_controls_section(
'tp_section_title',
[
'label' => esc_html__('Title & Content', 'tpcore'),
]
);
$this->add_control(
'tp_section_title_show',
[
'label' => esc_html__( 'Section Title & Content', 'tpcore' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => esc_html__( 'Show', 'tpcore' ),
'label_off' => esc_html__( 'Hide', 'tpcore' ),
'return_value' => 'yes',
'default' => 'yes',
]
);
$this->add_control(
'tg_title',
[
'label' => esc_html__('Title', 'tpcore'),
'description' => tp_get_allowed_html_desc( 'intermediate' ),
'type' => Controls_Manager::TEXTAREA,
'default' => esc_html__('Here Are the Most Common Questions From Clients', 'tpcore'),
'placeholder' => esc_html__('Type Heading Text', 'tpcore'),
'label_block' => true,
]
);
$this->add_control(
'tg_title_tag',
[
'label' => esc_html__('Title HTML Tag', 'tpcore'),
'type' => Controls_Manager::CHOOSE,
'options' => [
'h1' => [
'title' => esc_html__('H1', 'tpcore'),
'icon' => 'eicon-editor-h1'
],
'h2' => [
'title' => esc_html__('H2', 'tpcore'),
'icon' => 'eicon-editor-h2'
],
'h3' => [
'title' => esc_html__('H3', 'tpcore'),
'icon' => 'eicon-editor-h3'
],
'h4' => [
'title' => esc_html__('H4', 'tpcore'),
'icon' => 'eicon-editor-h4'
],
'h5' => [
'title' => esc_html__('H5', 'tpcore'),
'icon' => 'eicon-editor-h5'
],
'h6' => [
'title' => esc_html__('H6', 'tpcore'),
'icon' => 'eicon-editor-h6'
]
],
'default' => 'h2',
'toggle' => false,
]
);
$this->add_responsive_control(
'tp_align',
[
'label' => esc_html__('Alignment', 'tpcore'),
'type' => Controls_Manager::CHOOSE,
'options' => [
'text-left' => [
'title' => esc_html__('Left', 'tpcore'),
'icon' => 'eicon-text-align-left',
],
'text-center' => [
'title' => esc_html__('Center', 'tpcore'),
'icon' => 'eicon-text-align-center',
],
'text-right' => [
'title' => esc_html__('Right', 'tpcore'),
'icon' => 'eicon-text-align-right',
],
],
'default' => 'left',
'toggle' => false,
]
);
$this->end_controls_section();
// tg_btn_button_group
$this->start_controls_section(
'tg_btn_button_group',
[
'label' => esc_html__('Button', 'tpcore'),
]
);
$this->add_control(
'tg_btn_button_show',
[
'label' => esc_html__( 'Show Button', 'tpcore' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => esc_html__( 'Show', 'tpcore' ),
'label_off' => esc_html__( 'Hide', 'tpcore' ),
'return_value' => 'yes',
'default' => true,
]
);
$this->add_control(
'tg_btn_text',
[
'label' => esc_html__('Button Text', 'tpcore'),
'type' => Controls_Manager::TEXT,
'default' => esc_html__('Ask question', 'tpcore'),
'title' => esc_html__('Enter button text', 'tpcore'),
'label_block' => true,
'condition' => [
'tg_btn_button_show' => 'yes'
],
]
);
$this->add_control(
'tg_btn_link_type',
[
'label' => esc_html__('Button Link Type', 'tpcore'),
'type' => Controls_Manager::SELECT,
'options' => [
'1' => 'Custom Link',
'2' => 'Internal Page',
],
'default' => '1',
'label_block' => true,
'condition' => [
'tg_btn_button_show' => 'yes'
],
]
);
$this->add_control(
'tg_btn_link',
[
'label' => esc_html__('Button link', 'tpcore'),
'type' => Controls_Manager::URL,
'dynamic' => [
'active' => true,
],
'placeholder' => esc_html__('https://your-link.com', 'tpcore'),
'show_external' => false,
'default' => [
'url' => '#',
'is_external' => true,
'nofollow' => true,
'custom_attributes' => '',
],
'condition' => [
'tg_btn_link_type' => '1',
'tg_btn_button_show' => 'yes'
],
'label_block' => true,
]
);
$this->add_control(
'tg_btn_page_link',
[
'label' => esc_html__('Select Button Page', 'tpcore'),
'type' => Controls_Manager::SELECT2,
'label_block' => true,
'options' => tp_get_all_pages(),
'condition' => [
'tg_btn_link_type' => '2',
'tg_btn_button_show' => 'yes'
]
]
);
$this->end_controls_section();
$this->start_controls_section(
'_accordion',
[
'label' => esc_html__( 'Accordion', 'tpcore' ),
'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
]
);
$repeater = new \Elementor\Repeater();
$repeater->add_control(
'accordion_title', [
'label' => esc_html__( 'Accordion Item', 'tpcore' ),
'type' => \Elementor\Controls_Manager::TEXT,
'default' => esc_html__( 'This is accordion item title' , 'tpcore' ),
'label_block' => true,
]
);
$repeater->add_control(
'accordion_description',
[
'label' => esc_html__('Description', 'tpcore'),
'description' => tp_get_allowed_html_desc( 'intermediate' ),
'type' => \Elementor\Controls_Manager::TEXTAREA,
'default' => 'Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod facere maxime placeat possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet voluptates',
'label_block' => true,
]
);
$this->add_control(
'accordions',
[
'label' => esc_html__( 'Repeater Accordion', 'tpcore' ),
'type' => \Elementor\Controls_Manager::REPEATER,
'fields' => $repeater->get_controls(),
'default' => [
[
'accordion_title' => esc_html__( 'How Is Encryption Different From Hacking?', 'tpcore' ),
],
[
'accordion_title' => esc_html__( 'What Steps Will You Take to Secure Your Server?', 'tpcore' ),
],
[
'accordion_title' => esc_html__( 'What Is Firewall & Why It Is Used?', 'tpcore' ),
],
[
'accordion_title' => esc_html__( 'Do Mobile Devices Present Security Risk?', 'tpcore' ),
],
],
'title_field' => '{{{ accordion_title }}}',
]
);
$this->end_controls_section();
$this->start_controls_section(
'section_style',
[
'label' => __( 'Style', 'tpcore' ),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_control(
'text_transform',
[
'label' => __( 'Text Transform', 'tpcore' ),
'type' => Controls_Manager::SELECT,
'default' => '',
'options' => [
'' => __( 'None', 'tpcore' ),
'uppercase' => __( 'UPPERCASE', 'tpcore' ),
'lowercase' => __( 'lowercase', 'tpcore' ),
'capitalize' => __( 'Capitalize', 'tpcore' ),
],
'selectors' => [
'{{WRAPPER}} .title' => 'text-transform: {{VALUE}};',
],
]
);
$this->end_controls_section();
}
/**
* Render the widget output on the frontend.
*
* Written in PHP and used to generate the final HTML.
*
* @since 1.0.0
*
* @access protected
*/
protected function render() {
$settings = $this->get_settings_for_display();
// Link
if ('2' == $settings['tg_btn_link_type']) {
$this->add_render_attribute('tg-button-arg', 'href', get_permalink($settings['tg_btn_page_link']));
$this->add_render_attribute('tg-button-arg', 'target', '_self');
$this->add_render_attribute('tg-button-arg', 'rel', 'nofollow');
$this->add_render_attribute('tg-button-arg', 'class', 'btn');
} else {
if ( ! empty( $settings['tg_btn_link']['url'] ) ) {
$this->add_link_attributes( 'tg-button-arg', $settings['tg_btn_link'] );
$this->add_render_attribute('tg-button-arg', 'class', 'btn');
}
}
$this->add_render_attribute('title_args', 'class', 'title');
?>
<!-- faq-area -->
<section class="faq-area faq-padding">
<div class="container">
<?php $availability = $settings['tp_section_title_show'] ? 'justify-content-center justify-content-xl-between' : 'justify-content-center'; ?>
<div class="row <?php echo esc_attr($availability); ?>">
<?php if ( !empty($settings['tp_section_title_show']) ) : ?>
<div class="col-xl-4 col-lg-8">
<div class="section-title text-center text-xl-start mb-40">
<?php
if ( !empty($settings['tg_title' ]) ) :
printf( '<%1$s %2$s>%3$s</%1$s>',
tag_escape( $settings['tg_title_tag'] ),
$this->get_render_attribute_string( 'title_args' ),
tp_kses( $settings['tg_title' ] )
);
endif;
?>
</div>
<?php if (!empty($settings['tg_btn_text'])) : ?>
<div class="faq-btn text-center text-xl-start">
<a <?php echo $this->get_render_attribute_string( 'tg-button-arg' ); ?>>
<span class="text"><?php echo $settings['tg_btn_text']; ?></span>
<span class="shape"></span>
</a>
</div>
<?php endif; ?>
</div>
<?php endif; ?>
<?php $availability = $settings['tp_section_title_show'] ? 'col-xl-7 col-lg-10' : 'col-xxl-8 col-xl-9 col-lg-11'; ?>
<div class="<?php echo esc_attr($availability); ?>">
<div class="accordion" id="accordionExample">
<?php foreach ( $settings['accordions'] as $index => $item) :
$collapsed = ($index == '0' ) ? '' : 'collapsed';
$aria_expanded = ($index == '0' ) ? "true" : "false";
$show = ($index == '0' ) ? "show" : "";
?>
<div class="accordion-item">
<h2 class="accordion-header" id="headingOne-<?php echo esc_attr($index); ?>">
<button class="accordion-button <?php echo esc_attr($collapsed); ?>" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne-<?php echo esc_attr($index); ?>" aria-expanded="true" aria-controls="collapseOne-<?php echo esc_attr($index); ?>">
0<?php echo esc_html($index)+1; ?>. <?php echo esc_html($item['accordion_title']); ?>
<span class="line"></span>
</button>
</h2>
<div id="collapseOne-<?php echo esc_attr($index); ?>" class="accordion-collapse collapse <?php echo esc_attr($show); ?>" aria-labelledby="headingOne-<?php echo esc_attr($index); ?>" data-bs-parent="#accordionExample">
<div class="accordion-body">
<p><?php echo tp_kses($item['accordion_description']); ?></p>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
</div>
</div>
</section>
<!-- faq-area-end -->
<?php
}
}
$widgets_manager->register( new TP_FAQ() );