BossBey File Manager
PHP:
8.2.30
OS:
Linux
User:
imagivibe
Root
/
home
/
imagivibe
/
public_html
/
CTR
/
wp-content
/
plugins
/
porto-functionality
/
elementor
/
widgets
📤 Upload
📝 New File
📁 New Folder
Close
Editing: portfolios_category.php
<?php if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Porto Elementor Portfolio Categories Widget * * Porto Elementor widget to display portfolio categories. * * @since 1.7.5 */ use Elementor\Controls_Manager; class Porto_Elementor_Portfolios_Category_Widget extends \Elementor\Widget_Base { public function get_name() { return 'porto_portfolios_category'; } public function get_title() { return __( 'Porto Portfolio Categories', 'porto-functionality' ); } public function get_categories() { return array( 'porto-elements' ); } public function get_keywords() { return array( 'portfolio', 'posts', 'category', 'categories' ); } public function has_widget_inner_wrapper(): bool { return ! Elementor\Plugin::$instance->experiments->is_feature_active( 'e_optimized_markup' ); } public function get_icon() { return 'eicon-folder-o porto-elementor-widget-icon'; } protected function is_dynamic_content(): bool { return false; } public function get_script_depends() { if ( isset( $_REQUEST['elementor-preview'] ) ) { return array( 'isotope', 'porto-elementor-widgets-js', 'porto-bg-parallax' ); } else { return array(); } } protected function register_controls() { $order_way_values = array_slice( porto_vc_woo_order_way(), 1 ); $this->start_controls_section( 'section_portfolio_categories', array( 'label' => __( 'Layout', 'porto-functionality' ), ) ); $this->add_control( 'title', array( 'label' => __( 'Title', 'porto-functionality' ), 'type' => Controls_Manager::TEXT, 'placeholder' => __( 'Title', 'porto-functionality' ), ) ); $this->add_control( 'category_layout', array( 'type' => Controls_Manager::SELECT, 'label' => __( 'Category Layout', 'porto-functionality' ), 'default' => 'strip', 'options' => array( 'stripes' => 'Strip', 'parallax' => 'Parallax', 'list' => __( 'Simple List', 'porto-functionality' ), ), ) ); $this->add_control( 'info_view', array( 'type' => Controls_Manager::SELECT, 'label' => __( 'Info View Type', 'porto-functionality' ), 'default' => '', 'options' => array( '' => __( 'Basic', 'porto-functionality' ), 'bottom-info' => __( 'Bottom Info', 'porto-functionality' ), 'bottom-info-dark' => __( 'Bottom Info Dark', 'porto-functionality' ), ), 'condition' => array( 'category_layout' => array( 'stripes', 'parallax' ), ), ) ); $this->add_control( 'thumb_image', array( 'type' => Controls_Manager::SELECT, 'label' => __( 'Hover Image Effect', 'porto-functionality' ), 'options' => array( 'zoom' => __( 'Zoom', 'porto-functionality' ), 'slow-zoom' => __( 'Slow Zoom', 'porto-functionality' ), 'no-zoom' => __( 'No Zoom', 'porto-functionality' ), ), 'condition' => array( 'category_layout' => 'stripes', ), ) ); $this->add_control( 'portfolios_counter', array( 'type' => Controls_Manager::SELECT, 'label' => __( 'Portfolios Counter', 'porto-functionality' ), 'description' => __( 'Show the number of portfolios in the category.', 'porto-functionality' ), 'default' => 'show', 'options' => array( 'show' => __( 'Show', 'porto-functionality' ), 'hide' => __( 'Hide', 'porto-functionality' ), ), 'condition' => array( 'category_layout' => array( 'stripes', 'parallax' ), ), ) ); $this->add_control( 'number', array( 'type' => Controls_Manager::NUMBER, 'label' => __( 'Category Count', 'porto-functionality' ), 'default' => 5, 'min' => 1, 'max' => 99, ) ); $this->add_control( 'cat_in', array( 'type' => 'porto_ajaxselect2', 'label' => __( 'Category IDs', 'porto-functionality' ), 'description' => __( 'comma separated list of category ids', 'porto-functionality' ), 'options' => 'portfolio_cat', 'multiple' => true, 'label_block' => true, ) ); $this->add_control( 'orderby', array( 'type' => Controls_Manager::SELECT, 'label' => __( 'Order by', 'porto-functionality' ), 'default' => 'name', 'options' => array( 'name' => __( 'Title', 'porto-functionality' ), 'term_id' => __( 'ID', 'porto-functionality' ), 'count' => __( 'Portfolio Count', 'porto-functionality' ), 'none' => __( 'None', 'porto-functionality' ), 'parent' => __( 'Parent', 'porto-functionality' ), 'description' => __( 'Description', 'porto-functionality' ), 'term_group' => __( 'Term Group', 'porto-functionality' ), ), ) ); $this->add_control( 'order', array( 'type' => Controls_Manager::SELECT, 'label' => __( 'Order way', 'porto-functionality' ), 'options' => array_combine( array_values( $order_way_values ), array_keys( $order_way_values ) ), /* translators: %s: Wordpres codex page */ 'description' => sprintf( __( 'Designates the ascending or descending order. More at %s.', 'porto-functionality' ), '<a href="http://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters" target="_blank">WordPress codex page</a>' ), ) ); $this->end_controls_section(); $this->start_controls_section( 'section_portfolio_title_style', array( 'label' => esc_html__( 'Title', 'porto-functionality' ), 'tab' => Controls_Manager::TAB_STYLE, ) ); $this->add_group_control( Elementor\Group_Control_Typography::get_type(), array( 'name' => 'title_tg', 'label' => __( 'Typography', 'porto-functionality' ), 'selector' => '.elementor-element-{{ID}} .portfolio-item-title, {{WRAPPER}} .thumb-info-title, .elementor-element-{{ID}} .portfolio-parallax h2', ) ); $this->add_control( 'title_clr', array( 'type' => Controls_Manager::COLOR, 'label' => __( 'Color', 'porto-functionality' ), 'selectors' => array( '.elementor-element-{{ID}} .portfolio-item-title, {{WRAPPER}} .thumb-info-title, .elementor-element-{{ID}} .portfolio-parallax h2' => 'color: {{VALUE}};', '.elementor-element-{{ID}} .thumb-info-bottom-info:not(.thumb-info-bottom-info-dark) .thumb-info-inner' => 'color: {{VALUE}};', ), ) ); $this->add_control( 'title_bgc', array( 'type' => Controls_Manager::COLOR, 'label' => __( 'Background Color', 'porto-functionality' ), 'selectors' => array( '.elementor-element-{{ID}} .portfolio-item-title, {{WRAPPER}} .thumb-info-title, .elementor-element-{{ID}} .portfolio-parallax h2' => 'background-color: {{VALUE}};', ), ) ); $this->add_control( 'title_mg', array( 'label' => __( 'Margin', 'porto-functionality' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', 'em', 'rem', ), 'selectors' => array( '.elementor-element-{{ID}} .portfolio-item-title, {{WRAPPER}} .thumb-info-title, .elementor-element-{{ID}} .portfolio-parallax h2' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}', ), ) ); $this->add_control( 'title_pd', array( 'label' => __( 'Padding', 'porto-functionality' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', 'em', 'rem', ), 'selectors' => array( '.elementor-element-{{ID}} .portfolio-item-title, {{WRAPPER}} .thumb-info-title, .elementor-element-{{ID}} .portfolio-parallax h2' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}', ), ) ); $this->end_controls_section(); $this->start_controls_section( 'section_portfolio_pc_style', array( 'label' => esc_html__( 'Portfolios Counter', 'porto-functionality' ), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => array( 'category_layout' => array( 'stripes', 'parallax' ), 'portfolios_counter' => 'show', ), ) ); $this->add_group_control( Elementor\Group_Control_Typography::get_type(), array( 'name' => 'pc_tg', 'label' => __( 'Typography', 'porto-functionality' ), 'selector' => '.elementor-element-{{ID}} .thumb-info-icons .thumb-info-icon, .elementor-element-{{ID}} .thumb-info-bottom-info .thumb-info-type', ) ); $this->add_control( 'pc_clr', array( 'type' => Controls_Manager::COLOR, 'label' => __( 'Color', 'porto-functionality' ), 'selectors' => array( '.elementor-element-{{ID}} .thumb-info-icons .thumb-info-icon, .elementor-element-{{ID}} .thumb-info-bottom-info .thumb-info-type' => 'color: {{VALUE}};', ), ) ); $this->add_control( 'pc_bgc', array( 'type' => Controls_Manager::COLOR, 'label' => __( 'Background Color', 'porto-functionality' ), 'selectors' => array( '.elementor-element-{{ID}} .thumb-info-icons .thumb-info-icon, .elementor-element-{{ID}} .thumb-info-bottom-info .thumb-info-type' => 'background-color: {{VALUE}} !important;', ), ) ); $this->add_control( 'pc_pd', array( 'label' => __( 'Padding', 'porto-functionality' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', 'em', 'rem', ), 'selectors' => array( '.elementor-element-{{ID}} .thumb-info-icons .thumb-info-icon, .elementor-element-{{ID}} .thumb-info-bottom-info .thumb-info-type' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}', ), ) ); $this->add_control( 'pc_br', array( 'type' => Controls_Manager::SLIDER, 'label' => __( 'Border Radius (px)', 'porto-functionality' ), 'range' => array( 'px' => array( 'step' => 1, 'min' => 1, 'max' => 100, ), ), 'default' => array( 'unit' => 'px', ), 'selectors' => array( '.elementor-element-{{ID}} .thumb-info-icons .thumb-info-icon, .elementor-element-{{ID}} .thumb-info-bottom-info .thumb-info-type' => 'border-radius: {{SIZE}}{{UNIT}};', ), ) ); $this->end_controls_section(); } protected function render() { if ( $template = porto_shortcode_template( 'porto_portfolios_category' ) ) { $atts = $this->get_settings_for_display(); if ( ! empty( $atts['cat_in'] ) && is_array( $atts['cat_in'] ) ) { $atts['cat_in'] = implode( ',', $atts['cat_in'] ); } include $template; } } }
Save
Cancel