File "ButtonsGroup.php"
Full Path: /home/pumpbmko/public_html/wp-content/themes/momota/lib/colibriwp/src/Components/FrontHeader/ButtonsGroup.php
File size: 4.17 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace ColibriWP\Theme\Components\FrontHeader;
use ColibriWP\Theme\Components\CSSOutput;
use ColibriWP\Theme\Core\ComponentBase;
use ColibriWP\Theme\Defaults;
use ColibriWP\Theme\Translations;
use ColibriWP\Theme\View;
class ButtonsGroup extends ComponentBase {
protected static $settings_prefix = 'header_front_page.button_group.';
/**
* @return array();
*/
protected static function getOptions() {
$prefix = static::$settings_prefix;
return array(
'sections' => array(
"{$prefix}section" => array(
'title' => Translations::get( 'buttons' ),
'panel' => 'header_panel',
'type' => 'colibri_section',
'hidden' => true,
),
),
'settings' => array(
"{$prefix}show" => array(
'default' => Defaults::get( "{$prefix}show" ),
'transport' => 'refresh',
'control' => array(
'label' => Translations::get( 'buttons' ),
'type' => 'switch',
'show_toggle' => true,
'section' => 'hero',
'colibri_tab' => 'content',
),
),
"{$prefix}value" => array(
'default' => Defaults::get( "{$prefix}value" ),
'control' => array(
'label' => Translations::get( 'buttons' ),
'type' => 'repeater',
'input_type' => 'textarea',
'section' => "{$prefix}section",
'colibri_tab' => 'content',
'item_add_label' => Translations::get( 'add_button' ),
'max' => 2,
'min' => 1,
'fields' => array(
'label' => array(
'type' => 'text',
'label' => Translations::get( 'label' ),
'default' => Translations::get( 'button' ),
),
'url' => array(
'type' => 'text',
'label' => Translations::get( 'link' ),
'default' => '#',
),
'button_type' => array(
'type' => 'select',
'label' => Translations::get( 'button_type' ),
'default' => '0',
'props' => array(
'options' => array(
'0' => Translations::escHtml( 'primary_button' ),
'1' => Translations::escHtml( 'secondary_button' ),
),
),
),
),
),
),
"{$prefix}style.textAlign" => array(
'default' => Defaults::get( "{$prefix}style.textAlign" ),
'control' => array(
'label' => Translations::escHtml( 'align' ),
'type' => 'align-button-group',
'button_size' => 'medium',
'choices' => array(
'left' => 'left',
'center' => 'center',
'right' => 'right',
),
'section' => "{$prefix}section",
'colibri_tab' => 'content',
),
'css_output' => array(
array(
'selector' => static::selectiveRefreshSelector(),
'media' => CSSOutput::NO_MEDIA,
'property' => 'text-align',
),
),
),
),
);
}
public static function selectiveRefreshSelector() {
return Defaults::get( static::$settings_prefix . 'selective_selector', false );
}
public function getPenPosition() {
return static::PEN_ON_RIGHT;
}
public function renderContent( $parameters = array() ) {
if ( $this->mod( static::$settings_prefix . 'show' ) ) {
View::partial(
'front-header',
'button_group',
array(
'component' => $this,
)
);
}
}
public function printButtons() {
if ( get_theme_mod( static::$settings_prefix . 'value', false ) || is_user_logged_in() ) {
$buttons = $this->mod( static::$settings_prefix . 'value', array() );
} else {
$latest_posts = wp_get_recent_posts(
array(
'numberposts' => 2,
'post_status' => 'publish',
)
);
$buttons = array();
$button_index = 0;
foreach ( $latest_posts as $id => $post ) {
$buttons[] = array(
'label' => get_the_title( $post['ID'] ),
'url' => get_post_permalink( $post['ID'] ),
'button_type' => $button_index,
'index' => $button_index,
);
$button_index ++;
}
}
foreach ( $buttons as $button ) {
$type = array_key_exists( 'button_type', $button ) ? $button['button_type'] : 0;
View::partial( 'front-header', "buttons/button-{$type}", $button );
}
}
}