-
WIBUHAX0R1337
-
/
home
/
coludnqa
/
www
/
wp-content
/
themes
/
neve
/
header-footer-grid
/
Core
/
Components
/
[ Home ]
Create Folder
Create File
Nama File / Folder
Size
Action
.htaccess
0.231KB
Edit File
Delete File
Rename
Abstract_Component.php
31.414KB
Edit File
Delete File
Rename
Abstract_FooterWidget.php
1.4KB
Edit File
Delete File
Rename
Button.php
7.114KB
Edit File
Delete File
Rename
CartIcon.php
10.828KB
Edit File
Delete File
Rename
Copyright.php
4.335KB
Edit File
Delete File
Rename
CustomHtml.php
7.239KB
Edit File
Delete File
Rename
FooterWidgetFour.php
1.417KB
Edit File
Delete File
Rename
FooterWidgetOne.php
1.41KB
Edit File
Delete File
Rename
FooterWidgetThree.php
1.421KB
Edit File
Delete File
Rename
FooterWidgetTwo.php
1.408KB
Edit File
Delete File
Rename
Logo.php
16.097KB
Edit File
Delete File
Rename
MenuIcon.php
7.468KB
Edit File
Delete File
Rename
Nav.php
19.922KB
Edit File
Delete File
Rename
NavFooter.php
12.142KB
Edit File
Delete File
Rename
PaletteSwitch.php
18.231KB
Edit File
Delete File
Rename
Search.php
19.179KB
Edit File
Delete File
Rename
SearchResponsive.php
27.958KB
Edit File
Delete File
Rename
SecondNav.php
12.575KB
Edit File
Delete File
Rename
<?php /** * Custom Component class for Header Footer Grid. * * Name: Header Footer Grid * Author: Bogdan Preda <bogdan.preda@themeisle.com> * * @version 1.0.0 * @package HFG */ namespace HFG\Core\Components; use HFG\Core\Settings; use HFG\Core\Settings\Manager as SettingsManager; use HFG\Main; use Neve\Core\Settings\Config; use Neve\Core\Styles\Dynamic_Selector; use WP_Customize_Manager; /** * Class NavFooter * * @package HFG\Core\Components */ class NavFooter extends Abstract_Component { const COMPONENT_ID = 'footer-menu'; const STYLE_ID = 'style'; const COLOR_ID = 'color'; const HOVER_COLOR_ID = 'hover_color'; const ITEM_HEIGHT = 'item_height'; const SPACING = 'spacing'; /** * Nav constructor. * * @since 1.0.0 * @access public */ public function init() { $this->set_property( 'label', __( 'Footer Menu', 'neve' ) ); $this->set_property( 'id', self::COMPONENT_ID ); $this->set_property( 'width', 6 ); $this->set_property( 'icon', 'tagcloud' ); $this->set_property( 'section', 'footer_menu_primary' ); $this->set_property( 'has_font_family_control', true ); $this->set_property( 'has_typeface_control', true ); $this->set_property( 'default_typography_selector', $this->default_typography_selector . '.builder-item--' . $this->get_id() . ' li > a' ); } /** * Called to register component controls. * * @since 1.0.0 * @access public */ public function add_settings() { SettingsManager::get_instance()->add( [ 'id' => self::STYLE_ID, 'group' => self::COMPONENT_ID, 'tab' => SettingsManager::TAB_STYLE, 'transport' => 'post' . self::COMPONENT_ID, 'sanitize_callback' => 'wp_filter_nohtml_kses', 'default' => 'style-plain', 'label' => __( 'Hover Skin Mode', 'neve' ), 'type' => '\Neve\Customizer\Controls\React\Radio_Buttons', 'section' => $this->section, 'options' => [ 'large_buttons' => true, 'is_for' => 'menu', ], ] ); SettingsManager::get_instance()->add( [ 'id' => self::COLOR_ID, 'group' => self::COMPONENT_ID, 'tab' => SettingsManager::TAB_STYLE, 'transport' => 'postMessage', 'sanitize_callback' => 'neve_sanitize_colors', 'default' => neve_is_new_skin() ? '' : 'var(--nv-text-color)', 'label' => __( 'Items Color', 'neve' ), 'type' => 'neve_color_control', 'section' => $this->section, 'live_refresh_selector' => true, 'live_refresh_css_prop' => [ 'cssVar' => [ 'vars' => '--color', 'selector' => '.builder-item--' . $this->get_id(), ], [ 'selector' => $this->default_typography_selector, 'prop' => 'color', 'fallback' => 'inherit', ], ], ] ); SettingsManager::get_instance()->add( [ 'id' => self::HOVER_COLOR_ID, 'group' => self::COMPONENT_ID, 'tab' => SettingsManager::TAB_STYLE, 'transport' => 'postMessage', 'sanitize_callback' => 'neve_sanitize_colors', 'default' => 'var(--nv-primary-accent)', 'label' => __( 'Items Hover Color', 'neve' ), 'type' => 'neve_color_control', 'section' => $this->section, 'live_refresh_selector' => true, 'live_refresh_css_prop' => [ 'cssVar' => [ 'vars' => '--hoverColor', 'selector' => '.builder-item--' . $this->get_id(), ], [ 'selector' => $this->default_typography_selector . ':after', 'prop' => 'background-color', 'fallback' => 'inherit', ], [ 'selector' => '.builder-item--' . $this->get_id() . ' .nav-menu-footer:not(.style-full-height) #footer-menu li:hover > a', 'prop' => 'color', 'fallback' => 'inherit', ], ], ] ); SettingsManager::get_instance()->add( [ 'id' => 'shortcut', 'group' => self::COMPONENT_ID, 'tab' => SettingsManager::TAB_GENERAL, 'transport' => 'postMessage', 'sanitize_callback' => 'esc_attr', 'type' => '\Neve\Customizer\Controls\Button', 'options' => [ 'button_class' => 'nv-top-bar-menu-shortcut', 'icon_class' => 'menu', 'button_text' => __( 'Footer Menu', 'neve' ), 'shortcut' => true, ], 'section' => $this->section, ] ); SettingsManager::get_instance()->add( [ 'id' => self::SPACING, 'group' => $this->get_class_const( 'COMPONENT_ID' ), 'tab' => SettingsManager::TAB_LAYOUT, 'section' => $this->section, 'label' => __( 'Items Spacing (px)', 'neve' ), 'type' => 'Neve\Customizer\Controls\React\Responsive_Range', 'transport' => 'post' . $this->get_class_const( 'COMPONENT_ID' ), 'sanitize_callback' => [ $this, 'sanitize_responsive_int_json' ], 'default' => $this->get_default_for_responsive_from_intval( self::SPACING, 20 ), 'options' => [ 'input_attrs' => [ 'min' => 1, 'max' => 100, 'units' => [ 'px' ], 'defaultVal' => [ 'mobile' => 20, 'tablet' => 20, 'desktop' => 20, ], ], ], 'conditional_header' => true, ] ); SettingsManager::get_instance()->add( [ 'id' => self::ITEM_HEIGHT, 'group' => $this->get_class_const( 'COMPONENT_ID' ), 'tab' => SettingsManager::TAB_LAYOUT, 'label' => __( 'Items Min Height (px)', 'neve' ), 'sanitize_callback' => [ $this, 'sanitize_responsive_int_json' ], 'transport' => 'post' . $this->get_class_const( 'COMPONENT_ID' ), 'default' => $this->get_default_for_responsive_from_intval( self::ITEM_HEIGHT, 25 ), 'type' => 'Neve\Customizer\Controls\React\Responsive_Range', 'options' => [ 'input_attrs' => [ 'min' => 1, 'max' => 100, 'units' => [ 'px' ], 'defaultVal' => [ 'mobile' => 25, 'tablet' => 25, 'desktop' => 25, ], ], ], 'section' => $this->section, 'conditional_header' => true, ] ); } /** * The render method for the component. * * @since 1.0.0 * @access public */ public function render_component() { Main::get_instance()->load( 'components/component-nav-footer' ); } /** * Add legacy style. * * @param array $css_array css array. * * @return array */ private function add_legacy_style( $css_array ) { $css_array[] = [ Dynamic_Selector::KEY_SELECTOR => '.nav-menu-footer #footer-menu > li > a', Dynamic_Selector::KEY_RULES => [ Config::CSS_PROP_COLOR => [ Dynamic_Selector::META_KEY => $this->get_id() . '_' . self::COLOR_ID, Dynamic_Selector::META_DEFAULT => SettingsManager::get_instance()->get_default( $this->get_id() . '_' . self::COLOR_ID ), ], ], ]; $css_array[] = [ Dynamic_Selector::KEY_SELECTOR => '#footer-menu > li > a:after', Dynamic_Selector::KEY_RULES => [ Config::CSS_PROP_BACKGROUND_COLOR => [ Dynamic_Selector::META_KEY => $this->get_id() . '_' . self::HOVER_COLOR_ID, Dynamic_Selector::META_DEFAULT => SettingsManager::get_instance()->get_default( $this->get_id() . '_' . self::HOVER_COLOR_ID ), ], ], ]; $css_array[] = [ Dynamic_Selector::KEY_SELECTOR => '.nav-menu-footer:not(.style-full-height) #footer-menu > li:hover > a', Dynamic_Selector::KEY_RULES => [ Config::CSS_PROP_COLOR => [ Dynamic_Selector::META_KEY => $this->get_id() . '_' . self::HOVER_COLOR_ID, Dynamic_Selector::META_DEFAULT => SettingsManager::get_instance()->get_default( $this->get_id() . '_' . self::HOVER_COLOR_ID ), ], ], ]; $is_rtl = is_rtl(); $last = $is_rtl ? 'first' : 'last'; $css_array[] = [ Dynamic_Selector::KEY_SELECTOR => '.builder-item--' . $this->get_id() . ' .nav-ul > li:not(:' . $last . '-of-type)', Dynamic_Selector::KEY_RULES => [ Config::CSS_PROP_MARGIN_RIGHT => [ Dynamic_Selector::META_KEY => $this->get_id() . '_' . self::SPACING, Dynamic_Selector::META_IS_RESPONSIVE => true, Dynamic_Selector::META_FILTER => function ( $css_prop, $value, $meta, $device ) { return sprintf( '%s:%s;', $css_prop, absint( $value ) . 'px' ); }, Dynamic_Selector::META_DEFAULT => SettingsManager::get_instance()->get_default( $this->get_id() . '_' . self::SPACING ), ], ], ]; $css_array[] = [ Dynamic_Selector::KEY_SELECTOR => '.builder-item--' . $this->get_id() . ' .style-full-height .nav-ul#footer-menu > li > a:after', Dynamic_Selector::KEY_RULES => [ 'position' => [ Dynamic_Selector::META_KEY => $this->get_id() . '_' . self::SPACING, Dynamic_Selector::META_IS_RESPONSIVE => true, Dynamic_Selector::META_FILTER => function ( $css_prop, $value, $meta, $device ) { if ( $device !== Dynamic_Selector::DESKTOP ) { return ''; } $value = absint( $value ); return sprintf( 'left:%s;right:%s', - $value / 2 . 'px', - $value / 2 . 'px' ); }, Dynamic_Selector::META_DEFAULT => SettingsManager::get_instance()->get_default( $this->get_id() . '_' . self::SPACING ), ], ], ]; $css_array[] = [ Dynamic_Selector::KEY_SELECTOR => '.builder-item--' . $this->get_id() . ' .style-full-height .nav-ul#footer-menu > li:hover > a:after', Dynamic_Selector::KEY_RULES => [ Config::CSS_PROP_WIDTH => [ Dynamic_Selector::META_KEY => $this->get_id() . '_' . self::SPACING, Dynamic_Selector::META_IS_RESPONSIVE => true, Dynamic_Selector::META_FILTER => function ( $css_prop, $value, $meta, $device ) { return sprintf( 'width: calc(100%% + %s);', absint( $value ) . 'px' ); }, Dynamic_Selector::META_DEFAULT => SettingsManager::get_instance()->get_default( $this->get_id() . '_' . self::SPACING ), ], ], ]; $css_array[] = [ Dynamic_Selector::KEY_SELECTOR => '.builder-item--' . $this->get_id() . ' .nav-ul a', Dynamic_Selector::KEY_RULES => [ Config::CSS_PROP_MIN_HEIGHT => [ Dynamic_Selector::META_KEY => $this->get_id() . '_' . self::ITEM_HEIGHT, Dynamic_Selector::META_IS_RESPONSIVE => true, Dynamic_Selector::META_DEFAULT => SettingsManager::get_instance()->get_default( $this->get_id() . '_' . self::ITEM_HEIGHT ), ], ], ]; return parent::add_style( $css_array ); } /** * Add styles to the component. * * @param array $css_array rules array. * * @return array */ public function add_style( array $css_array = array() ) { if ( ! neve_is_new_skin() ) { return $this->add_legacy_style( $css_array ); } $rules = [ '--color' => [ Dynamic_Selector::META_KEY => $this->get_id() . '_' . self::COLOR_ID, ], '--hoverColor' => [ Dynamic_Selector::META_KEY => $this->get_id() . '_' . self::HOVER_COLOR_ID, Dynamic_Selector::META_DEFAULT => SettingsManager::get_instance()->get_default( $this->get_id() . '_' . self::HOVER_COLOR_ID ), ], '--spacing' => [ Dynamic_Selector::META_KEY => $this->get_id() . '_' . self::SPACING, Dynamic_Selector::META_IS_RESPONSIVE => true, Dynamic_Selector::META_SUFFIX => 'px', Dynamic_Selector::META_DEFAULT => SettingsManager::get_instance()->get_default( $this->get_id() . '_' . self::SPACING ), ], '--height' => [ Dynamic_Selector::META_KEY => $this->get_id() . '_' . self::ITEM_HEIGHT, Dynamic_Selector::META_IS_RESPONSIVE => true, Dynamic_Selector::META_SUFFIX => 'px', Dynamic_Selector::META_DEFAULT => SettingsManager::get_instance()->get_default( $this->get_id() . '_' . self::ITEM_HEIGHT ), ], ]; $css_array[] = [ Dynamic_Selector::KEY_SELECTOR => '.builder-item--' . $this->get_id(), Dynamic_Selector::KEY_RULES => $rules, ]; return parent::add_style( $css_array ); } }
© 2022 - 2023 WIBUHAXOR V1 By Lutfifakee || Padang Blackhat