File "utilities-responsive.php"
Full Path: /var/www/bvnghean.vn/save_bvnghean.vn/wp-content/plugins/sneeit-framework/includes/utilities/utilities-responsive.php
File size: 6.99 KB
MIME-type: text/x-php
Charset: utf-8
<?php
add_action('sneeit_setup_responsive', 'sneeit_setup_responsive');
function sneeit_setup_responsive($args = array()) {
global $Sneeit_Responsive;
$Sneeit_Responsive = wp_parse_args($args, array(
/* url of your logo image */
'logo' => '',
'logo_retina' => '',
/* icon for toggle buttons, you can use images */
'left_icon' => 'fa-bars',
'right_icon' => 'fa-search',
/* the action that will happen after click a toggle button
* of the header. Ex: slide out an box from above of header
*
* slide-under, slide-above, slide-left, slide-right
* don't want slide our default boxes, you can select
* by inputting, effect:box-selector
* ex: slide:.your-selector
*/
'left_action' => 'slide-under',
'right_action' => 'slide-above',
/* allow the responsive header can sticky or not
* values: up, down, always, disable
*/
'sticky_enable' => 'up',
/* you can use function name for this
* you can also use template with short tags
* ex: clone an element: [clone:.your-selector]
* ex: move a element: [move:.your-selector]
* others: [logo] [toggle-left] [toggle-right]
*/
'header_content' => '[toggle-left][logo][toggle-right]',
/* content that will show after clicking toggle left button */
'left_content' => '',
/* content that will show after clicking toggle right button */
'right_content' => '',
/* classes */
'header_content_class' => '',
'left_content_class' => '',
'right_content_class' => '',
'logo_class' => '',
'left_icon_class' => '',
'right_icon_class' => '',
));
if (empty($Sneeit_Responsive['header_content'])) {
return;
}
// validate classes
$Sneeit_Responsive['header_content_class'] .= ' sneeit-mob-header';
$Sneeit_Responsive['left_content_class'] .= ' sneeit-mob-ctn sneeit-mob-ctn-left';
$Sneeit_Responsive['right_content_class'] .= ' sneeit-mob-ctn sneeit-mob-ctn-right';
$Sneeit_Responsive['logo_class'] .= ' sneeit-mob-logo';
$Sneeit_Responsive['left_icon_class'] .= ' sneeit-mob-tgl sneeit-mob-tgl-left';
$Sneeit_Responsive['right_icon_class'] .= ' sneeit-mob-tgl sneeit-mob-tgl-right';
add_action('wp_enqueue_scripts', 'sneeit_responsive_enqueue');
}
add_action('sneeit_display_responsive', 'sneeit_display_responsive');
function sneeit_display_responsive_smart_tags($content = '', $tag = 'clone') {
if (strpos($content, '['.$tag.':') !== false) {
$content = explode('['.$tag.':', $content);
foreach ($content as $key => $value) {
if (strpos($value, ']') !== false) {
$value = explode(']', $value);
$content[$key] = '<div class="sneeit-mob-ctn-'.$tag.'" data-'.$tag.'="'.esc_attr($value[0]).'"></div>'.$value[1];
}
/* forgot close the square bracket*/
else {
$value = '';
}
}
$content = implode('', $content);
}
return $content;
}
function sneeit_display_responsive_smart_tags_replace($content) {
$content = sneeit_display_responsive_smart_tags($content, 'clone');
$content = sneeit_display_responsive_smart_tags($content, 'move');
return $content;
}
function sneeit_display_responsive() {
global $Sneeit_Responsive;
if (empty($Sneeit_Responsive['header_content'])) {
return;
}
extract($Sneeit_Responsive);
$html = '';
// content for head template
// - fill header if has callback
if (function_exists($header_content)) {
$header_content = call_user_func($header_content);
}
// - replace header clone & move elemenets
$header_content = sneeit_display_responsive_smart_tags_replace($header_content);
// - header logo
if (strpos($header_content, '[logo]') !== false) {
$logo_html = '<a href="'.home_url().'" class="'.esc_attr($logo_class).'">';
if (sneeit_is_image_src($logo)) {
$logo_html .= '<img alt="'.esc_attr(get_bloginfo('name')).'" src="'.esc_attr($logo).'"';
if (sneeit_is_image_src($logo_retina)) {
$logo_html .= ' data-retina="'. esc_attr($logo_retina).'"';
}
$logo_html .= '/>';
} else {
$logo_html .= get_bloginfo('name');
}
$logo_html .= '</a>';
$header_content = str_replace('[logo]', $logo_html, $header_content);
}
// - left toggle and box content
if (strpos($header_content, '[toggle-left]') !== false) {
if (!empty($left_icon) && !empty($left_action) && !empty($left_content)) {
$left = '<a href="javascript:void(0)" class="'. esc_attr($left_icon_class).'"><span class="sneeit-mob-icon">';
if (sneeit_is_image_src($left_icon)) {
$left .= '<img alt="tgl-btn" src="'.esc_attr($left_icon).'"/>';
} else {
$left .= sneeit_font_awesome_tag($left_icon);
}
$left .= '</span></a>';
// content for left box
// - for callback action
if (function_exists($left_content)) {
$left_content = call_user_func($left_content);
}
// - replace clone & move elemenets
$left_content = sneeit_display_responsive_smart_tags_replace($left_content);
} else {
$left = '';
$left_content = '';
}
$header_content = str_replace('[toggle-left]', $left, $header_content);
}
// - right toggle and box content
if (strpos($header_content, '[toggle-right]') !== false) {
if (!empty($right_icon) && !empty($right_action) && !empty($right_content)) {
$right = '<a href="javascript:void(0)" class="'. esc_attr($right_icon_class).'"><span class="sneeit-mob-icon">';
if (sneeit_is_image_src($right_icon)) {
$right .= '<img alt="tgl-btn" src="'.esc_attr($right_icon).'"/>';
} else {
$right .= sneeit_font_awesome_tag($right_icon);
}
$right .= '</span></a>';
// content for right box
// - for callback action
if (function_exists($right_content)) {
$right_content = call_user_func($right_content);
}
// - replace clone & move elemenets
$right_content = sneeit_display_responsive_smart_tags_replace($right_content);
} else {
$right = '';
$right_content = '';
}
$header_content = str_replace('[toggle-right]', $right, $header_content);
}
if (empty($header_content)) {
return;
}
if (!empty($left_content)) {
$left_content = '<div class="'.esc_attr($left_content_class).'">'.$left_content.'</div>';
}
$html = '<div class="'.esc_attr($header_content_class).'">'.$header_content.'</div>';
if (!empty($right_content)) {
$right_content = '<div class="'.esc_attr($right_content_class).'">'.$right_content.'</div>';
}
if (strpos($left_action, '-above')) {
$html = $left_content . $html;
} else {
$html = $html . $left_content;
}
if (strpos($right_action, '-above')) {
$html = $right_content . $html;
} else {
$html = $html . $right_content;
}
if ($html) {
$html = '<div class="sneeit-mob-clone"></div><div class="sneeit-mob"><div class="sneeit-mob-inner">'.$html.'</div></div>';
}
echo $html;
}
function sneeit_responsive_enqueue() {
global $Sneeit_Responsive;
wp_enqueue_style( 'sneeit-responsive', sneeit_front_enqueue_url('front-responsive.css'), array(), SNEEIT_PLUGIN_VERSION );
wp_enqueue_script('sneeit-responsive', sneeit_front_enqueue_url('front-responsive.js'), array('jquery'), SNEEIT_PLUGIN_VERSION, true);
wp_localize_script( 'sneeit-responsive', 'Sneeit_Responsive', $Sneeit_Responsive);
}