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 );
//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 );
add_filter( 'smartlib_main_navigation_class', array( $this, 'smartlib_main_navigation_class' ), 10, 2 );
//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 );
}
/**
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 = '', $config_class = '' ) {
if ( strlen( $config_class ) > 0 ) {
return $config_class;
}
else {
return $default_class;
}
}
/**
*
* Return default open tag container
* @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' ) {
global $post;
$option = get_theme_mod( 'smartlib_layout_' . $type );
//get category option
$cat = get_query_var('cat');
$cat_extra_data = get_option( 'category_' . $cat );
$category_variant = isset($cat_extra_data['smartlib_layout_category'])? (int)$cat_extra_data['smartlib_layout_category']:0;
if(isset($post) && is_singular('page')){
$option = get_post_meta( $post->ID, 'smartlib_layout_' . $type, true );
}
if ( $option =='' ) {
$option = get_theme_mod( 'smartlib_layout_default', 1 );
}
//if category option = 1 force no sidebar
if($category_variant ==1){
$option = 0;
}
return $this->smartlib_filter_config_class( $default_class, $option, 'content' );
}
/**
* 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').'
';
return $new_link;
}
public function smartlib_widget_before_title($before_title, $instance){
if(isset($instance['panels_info'])){
return '';
}else{
return $after_title;
}
}
public function smartlib_main_navigation_class($default_string, $type='default'){
$classes = $default_string;
$option_search = (int)get_theme_mod( 'smartlib_show_search_in_navbar_' . 'default', 2 );
if($option_search==2){
$classes .= ' smartlib-navbar-with-search';
}
$option_fixed = (int)get_theme_mod( 'smartlib_fixed_navbar_' . 'default', 2 );
if($option_fixed==2){
$classes .= ' navbar-fixed-top';
}
$option_in_grid = get_theme_mod('smartlib_ingrid_navbar_'.$type);
if($option_in_grid=='2'){
$classes .= ' smartlib-nabar-in-grid';
}
return $classes;
}
/*
* 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;
}
$navbar_over_content = get_theme_mod('smartlib_navbar_over_content_'. $type, 0);
if($top_bar_option==1){
$classes[] = 'smartlib-body-has-topbar';//if navigation is fixed
}
if($navbar_over_content=='1'){
$classes[] = 'smartlib-body-navbar-over-content';//if navigation is fixed
}
$navigation_option = get_theme_mod('smartlib_fixed_navbar_'. $type, 2);
if($navigation_option=='2'){
$classes[] = 'smartlib-body-navigation-fixed';//if navigation is fixed
}else{
$classes[] = 'smartlib-body-navigation-static';//if navigation is fixed
}
/*check local page settings*/
if(isset($post->ID)){
$page_navigation_option = get_post_meta( $post->ID, 'smartlib_navbar_over_content', true );
if($page_navigation_option=='1'){
$classes[] = 'smartlib-body-navbar-over-content';//if navigation is fixed
}
$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;
}
}