default_config = $conObj;
/*FILTERS*/
add_filter( 'smartlib_header_fixed_class', array( $this, 'smartlib_header_fixed_class' ), 10 );
add_filter( 'smartlib_sidebar_layout_class', array( $this, 'smartlib_sidebar_layout_class' ), 10, 2 );
add_filter( 'smartlib_content_layout_class', array( $this, 'smartlib_content_layout_class' ), 10, 2 );
add_filter( 'smartlib_before_sidebar', array( $this, 'smartlib_before_sidebar' ), 10,2 );
add_filter( 'smartlib_get_awesome_ico', array( $this, 'smartlib_get_awesome_ico' ), 10,2 );
add_filter( 'smartlib_after_sidebar', array( $this, 'smartlib_after_sidebar' ), 10,2 );
add_filter( 'smartlib_before_logo', array( $this, 'smartlib_before_logo' ), 10 );
add_filter( 'smartlib_after_logo', array( $this, 'smartlib_after_logo' ), 10 );
//add header attributes
add_filter( 'smartlib_header_attributes', array( $this, 'smartlib_header_attributes' ), 10 );
//add header classes
add_filter( 'smartlib_header_wrapper_classes', array( $this, 'smartlib_header_wrapper_classes' ), 10 );
//add header classes
add_filter( 'smartlib_content_header_attributes', array( $this, 'smartlib_content_header_attributes' ), 10 ,3 );
//smartlib aligment class
add_filter( 'smartlib_algin_text', array( $this, 'smartlib_algin_text' ), 10, 2 );
//change more link button
add_filter( 'the_content_more_link', array( $this, 'smartlib_content_more' ), 10 );
//subtitle
//add_filter( 'the_title', array( $this,'smartlib_add_subtitle'), 10 );
//Body class
add_filter('body_class',array( $this,'smartlib_body_class_modyficator'), 2);
//conditional class
add_filter('smartlib_conditional_class',array( $this,'smartlib_conditional_class'), 3, 3);
/*
* Modify WordPress Native Filters
*/
/* Widgets filters */
add_filter( 'smartlib_widget_before_title', array( $this, 'smartlib_widget_before_title' ), 10,2 );
add_filter( 'smartlib_widget_after_title', array( $this, 'smartlib_widget_after_title' ), 10,2 );
/*Pagination next/prev filters*/
add_filter('next_posts_link_attributes', array( $this,'smartlib_prevnext_link_attributes'));
add_filter('previous_posts_link_attributes', array( $this,'smartlib_prevnext_link_attributes'));
/*Portfolio*/
add_filter('smartlib_portfolio_filter_string', array( $this,'smartlib_portfolio_filter_string'));
/*plugini integration filters*/
add_filter( 'smartlib_get_theme_config', array( $this, 'smartlib_get_theme_config' ), 10 );
/*add rel attribute*/
add_filter('wp_get_attachment_link', array( $this,'smartlib_add_rel_attribute'));
/*page header class*/
add_filter('smartlib_page_header_class', array( $this,'smartlib_page_header_class'),10, 4 );
add_filter('smartlib_get_context_sidebar', array( $this,'smartlib_get_context_sidebar'),10);
add_filter('smartlib_get_sidebar_template', array( $this,'smartlib_get_sidebar_template'),10, 2);
//default theme settings values
add_filter('smartlib_default_theme_content', array($this,'smartlib_default_theme_content'));
//default menu font settings
add_filter('smartlib_default_fonts', array($this,'smartlib_default_fonts'));
//default frontpage sections order
add_filter('smartlib_home_sections_order', array($this,'smartlib_home_sections_order'));
}
/**
Retrieves project_fixed_top bar option and get fixed class
*/
public function smartlib_header_fixed_class() {
$fixed = get_theme_mod( 'project_fixed_topbar' );
echo $fixed == '1' ? ' smartlib-fixed-top-bar' : '';
}
/**
* Get smartlib sidebar class
*
* @param string $default_class - default class
* @param string $config_class - pass param from config array
*
* @return string
*/
public function smartlib_sidebar_layout_class( $default_class = '', $type='default' ) {
$layout_class_array = $this->default_config->layout_class_array;
$layout_option = __SMARTLIB_HELPERS::smartlib_sidebar_layout_variant($type);
if ( isset($layout_class_array[$layout_option]) && strlen($layout_class_array[$layout_option]['sidebar'] ) > 0) {
return $layout_class_array[$layout_option]['sidebar'];
}
else {
return $default_class;
}
}
/**
*
* Return default open sidebar tag
* @param $default_container
* @param string $type
*
* @return mixed
*/
public function smartlib_before_sidebar($default_container, $type=''){
$assign_context_sidebar = $this->default_config->assign_context_sidebar;
if(empty($type)){
return $default_container;
}
if(isset($assign_context_sidebar[$type])){
return $assign_context_sidebar[$type][0];//return closed tax
}else{
return $default_container;
}
}
/**
*
* Return default close tag container
* @param $default_container
* @param string $type
*
* @return mixed
*/
public function smartlib_after_sidebar($default_container, $type=''){
$assign_context_sidebar = $this->default_config->assign_context_sidebar;
if(empty($type)){
return $default_container;
}
if(isset($assign_context_sidebar[$type])){
return $assign_context_sidebar[$type][2];//return closed tax
}else{
return $default_container;
}
}
public function smartlib_before_logo($tag){
if ( is_front_page() ) {
$header_tag = '
';
}
else {
$header_tag = $tag;
}
return $header_tag;
}
/**
* Return Awesome Ico class string
* @param string $default_ico
* @param string $key_class
*
* @return mixed|string|void
*/
function smartlib_get_awesome_ico($default_ico='', $key_class=''){
if ( $key_class != '' ) {
$class_name = $this->get_awesome_icon_class( $key_class );
$return_string = $class_name;
}
else {
$return_string = $default_ico;
}
return $return_string;
}
/**
Return value form $this->icon_awesome_translate_class
*/
public function get_awesome_icon_class( $key ) {
$icon_awesome_translate_class = $this->default_config->icon_awesome_translate_class;
if ( isset( $icon_awesome_translate_class[$key] ) ) {
$icon_class = $icon_awesome_translate_class[$key];
}
else {
$icon_class = $icon_awesome_translate_class['default_icon'];
}
return apply_filters('smartlib_icon_class', $icon_class);
}
/**
* Get layout class based on configuration
* @param string $default_class
* @param string $type
*
* @return mixed
*/
public function smartlib_content_layout_class( $default_class = '', $type = 'default' ) {
$option = __SMARTLIB_HELPERS::smartlib_sidebar_layout_variant($type);
return $this->smartlib_filter_config_class( $default_class, $option, 'content' );
}
/**
* Get sidebar key based on context index
* see $assign_context_sidebar in class-config.php file
*
* @param string $type
*
* @return mixed
*/
public function smartlib_get_context_sidebar($type = 'default')
{
$assign_context_sidebar = $this->default_config->assign_context_sidebar;
if (isset($assign_context_sidebar[$type][1])) {
return $assign_context_sidebar[$type][1];
} else {
return $assign_context_sidebar['default'][1];
}
}
/**
* Get sidebar template name or blank sidebar template
* @param $template
* @param string $type
* @return string
*/
public function smartlib_get_sidebar_template( $template, $type= 'default') {
$option = __SMARTLIB_HELPERS::smartlib_sidebar_layout_variant($type);
if( $option !=0){
return $template;
}else{
return 'blank';
}
}
/**
* Return layout class of component
* @param $default_class
* @param $option - theme_mod option
* @param $component - component: sidebar, content
*
* @return mixed
*/
private function smartlib_filter_config_class( $default_class, $option, $component ) {
$layout_class_array = $this->default_config->layout_class_array;
$index = (int) $option;
if ( isset( $layout_class_array[$index] ) && strlen( $layout_class_array[$index][$component] ) > 0 ) {
return $layout_class_array[$index][$component];
}
else {
return $default_class;
}
}
public function smartlib_content_more(){
$link = get_permalink('');
$new_link = ''.__('Continue reading', 'bootframe-core').'
';
return $new_link;
}
public function smartlib_widget_before_title($before_title, $instance){
if(isset($instance['panels_info'])){
return '';
}else{
return $after_title;
}
}
/*
* Add single page subtitle
function smartlib_add_subtitle($title){
global $post;
global $wp_query;
$title_content =$title;
if(is_singular( 'page' )&& in_the_loop()){
$subtitle = get_post_meta( $post->ID, 'smartlib_page_subtitle', true );
if(strlen($subtitle))
$title_content .='' .$subtitle .'';
}
return $title_content;
}
*/
/**
* Change Body Class
* @param $classes
* @param string $type
* @return array
*/
function smartlib_body_class_modyficator($classes, $type='default'){
global $post;
$meta_option = '';
$top_bar_option = (int) get_theme_mod('smartlib_show_top_bar_'. $type, 1);
if(isset($post->ID)){
$meta_option = get_post_meta($post->ID, 'smartlib_show_top_bar_page' , true);
}
if(strlen($meta_option)>0){
$top_bar_option = (int) $meta_option;
}
if($top_bar_option==1){
$classes[] = 'smartlib-body-has-topbar';//if navigation is fixed
}
/*check local page settings*/
if(isset($post->ID)){
$page_template = get_post_meta($post->ID, '_wp_page_template', true);
if($page_template == 'page-portfolio.php' || $page_template == 'page-portfolio-four-columns.php'){
$classes[] = 'page-portfolio-isotope';
}
}
return $classes;
}
/**
* Get align class
* @param $default
* @param string $option
* @return string
*/
function smartlib_algin_text($default, $option='left'){
$class=$default;
if($option=='left'){
$class = ' text-left';
}elseif($option=='center') {
$class = ' text-center';
}elseif($option=='right') {
$class = ' text-right';
}
return $class;
}
function smartlib_conditional_class($default_string, $theme_mod, $value){
$option = get_theme_mod($theme_mod);
if($option==$value){
return ' smartlib-force-display';
}else{
return $default_string;
}
}
function smartlib_prevnext_link_attributes(){
return 'class="btn btn-primary"';
}
function smartlib_portfolio_filter_string($default_string){
global $post;
$terms = get_the_terms($post->ID, 'portfolio_category');
$terms_string = '[';
if(count($terms)>0){
foreach($terms as $term){
$terms_string.= '"'.$term->slug .'"' .',';
}
return $terms_string .' "all"]';
}else{
return $default_string;
}
}
/**
* Return config array - usful for plugin
* @return mixed
*/
function smartlib_get_theme_config(){
return $this->default_config;
}
/**
* Add rel atribute to wordpress gallery
* @param $link
* @return mixed
*/
function smartlib_add_rel_attribute($link) {
global $post;
$switch_pretty_photo = get_theme_mod('section_smartlib_gallery_pretty_photo', '1');
if($switch_pretty_photo =='1'){
return str_replace('0){
$header_class .= ' smartlib-overlay-over-background';
}
return $header_class;
}
/**
* Add header attributes based on customizer settings
* @param $default
* @return string
*/
public function smartlib_header_attributes($default){
$navbar_fixed = get_theme_mod('smartlib_fixed_navbar_default', '2');
if($navbar_fixed=='2'){
$default .= 'data-spy="affix" data-offset-top="60" data-offset-bottom="200"';
}
return $default;
}
public function smartlib_content_header_attributes($default, $image, $color){
$attributes_string = $default;
$style_string = '';
if(strlen($image)>0 || strlen($color)>0){
$style_string = 'style="';
if(strlen($image)>0){
$style_string .= 'background-image: url('.$image.');';
}
if(strlen($color)>0){
$style_string .= 'background-color: '.$color.';';
}
$style_string .= '"';
if(strlen($image)>0 && strlen($color)>0){
$attributes_string = 'data-type="background" data-overlay-color="'.$color.'"';
}
}
return $style_string . ' ' . $attributes_string;
}
/**
* Add class based on customizer settings
* @param $default
* @return string
*/
public function smartlib_header_wrapper_classes($default){
global $post;
$navbar_fixed = get_theme_mod('smartlib_fixed_navbar_default');
$search_in_navbar = get_theme_mod('smartlib_show_search_in_navbar_default');
//navbar over the content
$over_content = 0;
if(isset($post->ID)){
$over_content = get_post_meta($post->ID, 'smartlib_navbar_over_content', true);
}
$navbar_ingrid = get_theme_mod('smartlib_ingrid_navbar_default');
if($navbar_ingrid=='2'&& $navbar_fixed=='1'){
$default .= ' smartlib-main-navigation-strech';
}
if($search_in_navbar =='1'){
$default .= ' smartlib-main-navigation-no-search';
}
if($over_content == '1'){
$default .= ' smartlib-main-navigation-over-content';
}
return $default;
}
/**
* Filter function - get default content
* @param array $additional_array
* @return array
*/
function smartlib_default_theme_content($additional_array=array()){
$default_content = $this->default_config->get_theme_starter_content();
return array_merge($default_content , $additional_array);
}
/**
* Get Menu Fonts
* @param array $additional_array
* @return array
*/
function smartlib_default_fonts($additional_array=array()){
$default_content = $this->default_config->smartlib_fonts;
return array_merge($default_content , $additional_array);
}
/**
* Filter function - get default order of home page sections
* @param array $additional_array
* @return array
*/
function smartlib_home_sections_order($additional_array=array()){
$default_content = $this->default_config->get_frontpage_sections_order();
return array_merge($default_content , $additional_array);
}
}