| Server IP : 146.59.209.152 / Your IP : 216.73.216.152 Web Server : Apache System : Linux webm009.cluster131.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64 User : monpetu ( 144298) PHP Version : 7.4.33 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/monpetu/www/benneplus/wp-content/themes/neve/header-footer-grid/Core/Components/ |
Upload File : |
<?php
/**
* Button 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\Manager as SettingsManager;
use HFG\Main;
use WP_Customize_Manager;
/**
* Class Button
*
* @package HFG\Core\Components
*/
class Button extends Abstract_Component {
const COMPONENT_ID = 'button_base';
const LINK_ID = 'link_setting';
const TEXT_ID = 'text_setting';
/**
* Default spacing value
*
* @var array
*/
protected $default_padding_value = array(
'mobile' => array(
'top' => 8,
'right' => 12,
'bottom' => 8,
'left' => 12,
),
'tablet' => array(
'top' => 8,
'right' => 12,
'bottom' => 8,
'left' => 12,
),
'desktop' => array(
'top' => 8,
'right' => 12,
'bottom' => 8,
'left' => 12,
),
'mobile-unit' => 'px',
'tablet-unit' => 'px',
'desktop-unit' => 'px',
);
/**
* Button constructor.
*
* @param string $panel Builder panel.
*/
public function __construct( $panel ) {
parent::__construct( $panel );
$this->default_selector = '.builder-item--' . $this->get_id() . ' > .component-wrap > .button.button-primary:first-child';
}
/**
* Button constructor.
*
* @since 1.0.0
* @access public
*/
public function init() {
$this->set_property( 'label', __( 'Button', 'neve' ) );
$this->set_property( 'id', $this->get_class_const( 'COMPONENT_ID' ) );
$this->set_property( 'component_slug', 'hfg-button' );
$this->set_property( 'width', 2 );
$this->set_property( 'section', 'header_button' );
$this->set_property( 'icon', 'admin-links' );
}
/**
* Called to register component controls.
*
* @since 1.0.0
* @access public
*/
public function add_settings() {
SettingsManager::get_instance()->add(
[
'id' => self::LINK_ID,
'group' => $this->get_class_const( 'COMPONENT_ID' ),
'tab' => SettingsManager::TAB_GENERAL,
'transport' => 'post' . $this->get_class_const( 'COMPONENT_ID' ),
'sanitize_callback' => 'wp_filter_nohtml_kses',
'default' => '#',
'label' => __( 'Link', 'neve' ),
'type' => 'text',
'section' => $this->section,
]
);
SettingsManager::get_instance()->add(
[
'id' => self::TEXT_ID,
'group' => $this->get_class_const( 'COMPONENT_ID' ),
'tab' => SettingsManager::TAB_GENERAL,
'transport' => 'post' . $this->get_class_const( 'COMPONENT_ID' ),
'sanitize_callback' => 'wp_filter_nohtml_kses',
'default' => __( 'Button', 'neve' ),
'label' => __( 'Text', 'neve' ),
'type' => 'text',
'section' => $this->section,
]
);
}
/**
* The render method for the component.
*
* @since 1.0.0
* @access public
*/
public function render_component() {
Main::get_instance()->load( 'components/component-button' );
}
}