Advertisement
salmancreation

test

Apr 24th, 2019
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 11.64 KB | None | 0 0
  1. <?php
  2. namespace FilixCore\Widgets;
  3.  
  4. use Elementor\Widget_Base;
  5. use Elementor\Controls_Manager;
  6. use Elementor\Scheme_Color;
  7. use Elementor\Scheme_Typography;
  8. use Elementor\Group_Control_Typography;
  9.  
  10.  
  11.  
  12. // Exit if accessed directly
  13. if ( ! defined( 'ABSPATH' ) ) {
  14.     exit;
  15. }
  16.  
  17.  
  18. /**
  19.  * Text Typing Effect
  20.  *
  21.  * Elementor widget for text typing effect.
  22.  *
  23.  * @since 1.7.0
  24.  */
  25. class Filix_hero extends Widget_Base {
  26.  
  27.     public function get_name() {
  28.         return 'filix_hero_portfolio';
  29.     }
  30.  
  31.     public function get_title() {
  32.         return esc_html__( 'Hero', 'filix-core' );
  33.     }
  34.  
  35.     public function get_icon() {
  36.         return 'eicon-device-desktop';
  37.     }
  38.  
  39.     public function get_keywords() {
  40.         return [ 'headline', 'hero' ];
  41.     }
  42.  
  43.     public function get_categories() {
  44.         return [ 'filix-elements' ];
  45.     }
  46.  
  47.     public function get_style_depends() {
  48.         return ['animated-headline'];
  49.     }
  50.  
  51.     public function get_script_depends() {
  52.         return ['animated-headline'];
  53.     }
  54.  
  55.     protected function _register_controls() {
  56.  
  57.         // ----------------------------------------  Title Section  ------------------------------------//
  58.         $this->start_controls_section(
  59.             'title_sec',
  60.             [
  61.                 'label' => esc_html__( 'Title', 'filix-core' ),
  62.             ]
  63.         );
  64.  
  65.         $this->add_control(
  66.             'title_text',
  67.             [
  68.                 'label' => esc_html__( 'Title Text', 'filix-core' ),
  69.                 'type' => Controls_Manager::TEXT,
  70.                 'label_block' => true,
  71.                 'default' => 'Filix Studio',
  72.             ]
  73.         );
  74.  
  75.         $this->end_controls_section();
  76.  
  77.  
  78.         /// --------------------------------------- Words Section ----------------------------------///
  79.         $this->start_controls_section(
  80.             'content_list',
  81.             [
  82.                 'label' => esc_html__( 'Attribute Words', 'filix-core' ),
  83.             ]
  84.         );
  85.  
  86.         $repeater = new \Elementor\Repeater();
  87.         $repeater->add_control(
  88.             'title', [
  89.                 'label' => esc_html__( 'Title', 'filix-core' ),
  90.                 'type' => Controls_Manager::TEXT,
  91.                 'label_block' => true,
  92.                 'default'   => 'Website'
  93.             ]
  94.         );
  95.         // repeater field
  96.         $this->add_control(
  97.             'words', [
  98.                 'label' => esc_html__( 'Attributes', 'filix-core' ),
  99.                 'type' => Controls_Manager::REPEATER,
  100.                 'title_field' => '{{{ title }}}',
  101.                 'fields' => $repeater->get_controls(),
  102.             ]
  103.         );
  104.  
  105.         $this->end_controls_section();
  106.  
  107.  
  108.         /// ------------------------------------ Social Links ----------------------------------///
  109.         $this->start_controls_section(
  110.             'social_portfolio_links',
  111.             [
  112.                 'label' => esc_html__( 'Socail Profile Links', 'filix-core' ),
  113.             ]
  114.         );
  115.         $this->add_control(
  116.             'f_link',
  117.             [
  118.                 'label' => esc_html__( 'Facebook Link', 'filix-core' ),
  119.                 'type' => Controls_Manager::TEXT,
  120.                 'placeholder' => __( 'https://', 'filix-core' ),
  121.                 'show_external' => true,
  122.             ]
  123.         );
  124.         $this->add_control(
  125.             't_link',
  126.             [
  127.                 'label' => esc_html__( 'Twitter Link', 'filix-core' ),
  128.                 'type' => Controls_Manager::TEXT,
  129.                 'placeholder' => __( 'https://', 'filix-core' ),
  130.                 'show_external' => true,
  131.             ]
  132.         );
  133.         $this->add_control(
  134.             'in_link',
  135.             [
  136.                 'label' => esc_html__( 'Instagram Link', 'filix-core' ),
  137.                 'type' => Controls_Manager::TEXT,
  138.                 'placeholder' => __( 'https://', 'filix-core' ),
  139.                 'show_external' => true,
  140.             ]
  141.         );
  142.         $this->add_control(
  143.             'linkedin_link',
  144.             [
  145.                 'label' => esc_html__( 'LinkedIn Link', 'filix-core' ),
  146.                 'type' => Controls_Manager::TEXT,
  147.                 'placeholder' => __( 'https://', 'filix-core' ),
  148.                 'show_external' => true,
  149.             ]
  150.         );
  151.         $this->add_control(
  152.             'be_link',
  153.             [
  154.                 'label' => esc_html__( 'Behance Link', 'filix-core' ),
  155.                 'type' => Controls_Manager::TEXT,
  156.                 'placeholder' => __( 'https://', 'filix-core' ),
  157.                 'show_external' => true,
  158.             ]
  159.         );
  160.         $this->add_control(
  161.             'git_link',
  162.             [
  163.                 'label' => esc_html__( 'GitHub Link', 'filix-core' ),
  164.                 'type' => Controls_Manager::TEXT,
  165.                 'placeholder' => __( 'https://', 'filix-core' ),
  166.                 'show_external' => true,
  167.             ]
  168.         );
  169.         $this->add_control(
  170.             'd_link',
  171.             [
  172.                 'label' => esc_html__( 'Dribble Link', 'filix-core' ),
  173.                 'type' => Controls_Manager::TEXT,
  174.                 'placeholder' => __( 'https://', 'filix-core' ),
  175.                 'show_external' => true,
  176.             ]
  177.         );
  178.         $this->add_control(
  179.             'pin_link',
  180.             [
  181.                 'label' => esc_html__( 'Pinterest Link', 'filix-core' ),
  182.                 'type' => Controls_Manager::TEXT,
  183.                 'placeholder' => __( 'https://', 'filix-core' ),
  184.                 'show_external' => true,
  185.             ]
  186.         );
  187.         $this->add_control(
  188.             'qq_link',
  189.             [
  190.                 'label' => esc_html__( 'QQ Link', 'filix-core' ),
  191.                 'type' => Controls_Manager::TEXT,
  192.                 'placeholder' => __( 'https://', 'filix-core' ),
  193.                 'show_external' => true,
  194.             ]
  195.         );
  196.         $this->add_control(
  197.             'y_link',
  198.             [
  199.                 'label' => esc_html__( 'YouTube Link', 'filix-core' ),
  200.                 'type' => Controls_Manager::TEXT,
  201.                 'placeholder' => __( 'https://', 'filix-core' ),
  202.                 'show_external' => true,
  203.             ]
  204.         );
  205.  
  206.  
  207.         $this->end_controls_section();
  208.  
  209.  
  210.         /// --------------------------------------- Arrow Link ----------------------------------///
  211.         $this->start_controls_section(
  212.             'scroll_arrow_link',
  213.             [
  214.                 'label' => esc_html__( 'Scroll Link', 'filix-core' ),
  215.             ]
  216.         );
  217.  
  218.         $this->add_control(
  219.             'scroll_title_text',
  220.             [
  221.                 'label' => esc_html__( 'Title Text', 'filix-core' ),
  222.                 'type' => Controls_Manager::TEXT,
  223.                 'label_block' => true,
  224.                 'default' => 'Scroll Down',
  225.             ]
  226.         );
  227.  
  228.         $this->add_control(
  229.             'scroll_link',
  230.             [
  231.                 'label' => __( 'Link To', 'filix-core' ),
  232.                 'type' => Controls_Manager::TEXT,
  233.                 'placeholder' => __( '#section ID', 'filix-core' ),
  234.                 'show_label' => true,
  235.             ]
  236.         );
  237.  
  238.         $this->end_controls_section();
  239.  
  240.         /**
  241.          * Style Tab
  242.          * ------------------------------ Style Title ------------------------------
  243.          */
  244.         $this->start_controls_section(
  245.             'style_title', [
  246.                 'label' => esc_html__( 'Style Title', 'filix-core' ),
  247.                 'tab' => Controls_Manager::TAB_STYLE,
  248.             ]
  249.         );
  250.  
  251.         $this->add_control(
  252.             'color_title', [
  253.                 'label' => esc_html__( 'Text Color', 'filix-core' ),
  254.                 'type' => Controls_Manager::COLOR,
  255.                 'selectors' => [
  256.                     '{{WRAPPER}} .hero_warp .banner_content .banner_title' => 'color: {{VALUE}};',
  257.                 ],
  258.             ]
  259.         );
  260.  
  261.         $this->add_group_control(
  262.             Group_Control_Typography::get_type(), [
  263.                 'name' => 'typography_title',
  264.                 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
  265.                 'selector' => '{{WRAPPER}} .hero_warp .banner_content .banner_title',
  266.             ]
  267.         );
  268.  
  269.         $this->end_controls_section();
  270.  
  271.  
  272.         //------------------------------ Gradient Color ------------------------------
  273.         $this->start_controls_section(
  274.             'style_background',
  275.             [
  276.                 'label' => esc_html__( 'Background', 'filix-core' ),
  277.                 'tab' => Controls_Manager::TAB_STYLE
  278.             ]
  279.         );
  280.  
  281.         // Gradient Color
  282.         $this->add_control(
  283.             'bg_color', [
  284.                 'label' => esc_html__( 'Background Color', 'filix-core' ),
  285.                 'type' => Controls_Manager::COLOR,
  286.                 'scheme' => [
  287.                     'type' => Scheme_Color::get_type(),
  288.                     'value' => Scheme_Color::COLOR_1,
  289.                 ],
  290.                 'selectors' => [
  291.                     '{{WRAPPER}} .hero_warp' => 'background-color: {{VALUE}};',
  292.                 ],
  293.             ]
  294.         );
  295.  
  296.         $this->add_control(
  297.             'bg_image', [
  298.                 'label' => esc_html__( 'Background Image', 'filix-core' ),
  299.                 'type' => Controls_Manager::MEDIA,
  300.                 'default' => [
  301.                     'url' => \Elementor\Utils::get_placeholder_image_src(),
  302.                 ],
  303.                 'selectors' => [
  304.                     '{{WRAPPER}} .hero_warp' => 'background-image: url( {{url}} );',
  305.                 ],
  306.             ]
  307.         );
  308.  
  309.         $this->end_controls_section();
  310.     }
  311.  
  312.     protected function render() {
  313.  
  314.         $settings = $this->get_settings();
  315.         ?>
  316.         <section class="hero_warp">
  317.             <div class="container">
  318.                 <div class="row d-flex align-items-center height_vh">
  319.                     <div class="col-md-12 col-12">
  320.                         <div class="banner_content">
  321.                             <?php if (!empty($settings['title_text'])) : ?>
  322.                                 <h1 class="banner_title"> <?php echo wp_kses_post(nl2br($settings['title_text'])) ?> </h1>
  323.                             <?php endif; ?>
  324.                             <ul class="exp_list">
  325.                                 <?php
  326.                                 if(!empty($settings['words'])) {
  327.                                     foreach ($settings['words'] as $i => $word) {
  328.                                         $i = $i + 1;
  329.                                         ?>
  330.                                         <li class=" wow fadeInUp" data-wow-duration='<?php echo $i; ?>s'> <?php echo esc_html( $word['title'] ) ?> </li>
  331.                                         <?php
  332.                                     }
  333.                                 }
  334.                                 ?>
  335.                             </ul>
  336.                         </div>
  337.                     </div>
  338.                 </div>
  339.             </div>
  340.             <ul class="social_link">
  341.                 <?php if(!empty($settings['f_link'])) { ?>
  342.                 <li>
  343.                     <a href="<?php echo esc_url($settings['f_link']); ?> target='_blank' ">
  344.                         <i class="fa fa-facebook" aria-hidden="true"></i>
  345.                         <i class="fa fa-facebook" aria-hidden="true"></i>
  346.                     </a>
  347.                 </li>
  348.                 <?php } ?>
  349.                
  350.             </ul>
  351.             <div class="scroll_down">                
  352.                 <a href="<?php echo esc_html( $settings['scroll_link'] ) ?>"><?php echo esc_html( $settings['scroll_title_text'] ) ?></a>
  353.             </div>
  354.         </section>
  355.         <?php
  356.     }
  357. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement