/**
* Base class of options
*/
class Publisher_Theme_Styles_Manager {
/**
* Contains list of current active styles
*
* @var array
*/
public static $styles = array( 'default' );
/**
* Contains instance of styles classes
*
* @var array
*/
public $style_instances = array();
/**
* Contains current active style ID
*
* @var string
*/
public static $current_style = 'default';
/**
* Contains current active demo ID
*
* @var mixed|string
*/
public static $current_demo = '';
/**
* Contains styles dir path
*
* @var string
*/
public static $style_dir = '';
/**
* Contains styles directory URI
*
* @var string
*/
public static $style_uri = '';
/**
* Base theme styles initializer
*/
public function __construct() {
// Adds general page templates
add_filter( 'publisher-theme-core/page-templates/config', array( $this, 'general_page_templates' ), 100 );
//
// Cache current state
//
self::$current_style = publisher_get_style();
self::$current_demo = publisher_get_demo_id();
self::$style_dir = PUBLISHER_THEME_PATH . 'includes/styles/';
self::$style_uri = PUBLISHER_THEME_URI . 'includes/styles/';
// loads all styles when bf panel is saving to fix issues!
if ( defined( 'DOING_AJAX' )
&& isset( $_REQUEST['action'] )
&& $_REQUEST['action'] == 'bf_ajax'
&& ( ! isset( $_REQUEST['reqID'] ) || $_REQUEST['reqID'] !== 'fetch-panel-tab' )
) {
$all_styles = publisher_styles_config();
$styles = array_keys( $all_styles );
} else {
if ( self::$current_style === 'default' ) {
$styles = array( 'default' );
} else {
$styles = array( 'default', self::$current_style );
}
}
// Set styles
self::set_styles( $styles );
foreach ( $styles as $style ) {
// default style is in base fields and there is no preparation for that
if ( $style === 'default' ) {
continue;
}
// Unknown bug
// todo find the reason for this values
{
$_check = array(
'default-' => 'clean-magazine',
'clean-clean-magazine' => 'clean-magazine',
'clean-magazine-magazine' => 'clean-magazine',
'clean-magazine-clean-magazine' => 'clean-magazine',
'classic-classic-magazine' => 'classic-magazine',
'classic-magazine-magazine' => 'classic-magazine',
'pure-pure-magazine' => 'pure-magazine',
'pure-magazine-magazine' => 'pure-magazine',
'pure-magazine-pure-magazine' => 'pure-magazine',
);
if ( isset( $_check[ $style ] ) ) {
$lang = bf_get_current_language_option_code();
$style = $_check[ $style ];
$options = get_option( publisher_get_theme_panel_id() . $lang );
$options['style'] = $style;
update_option( publisher_get_theme_panel_id(), $options );
update_option( publisher_get_theme_panel_id() . $lang . '_current_style', $style );
update_option( publisher_get_theme_panel_id() . $lang . '_current_demo', $style );
}
}
//
// Compatibility for versions before 1.7 because in that versions the style and demo id was separeate
// and the compatibility runs after this so we should make it temporarily work the first time
// todo remove this after v2
//
{
$_check = array(
'pure' => 'pure',
'clean' => 'clean',
'classic' => 'classic',
'pure-' => 'pure',
'clean-' => 'clean',
'classic-' => 'classic',
);
//
// Fix style id
//
if ( isset( $_check[ $style ] ) ) {
$_demo = self::$current_demo;
if ( empty( $_demo ) ) {
$_demo = 'magazine';
} else {
$_demo = explode( '-', $_demo );
if ( ! empty( $_demo[1] ) ) {
$_demo = $_demo[1];
} else {
$_demo = 'magazine';
}
}
if ( $_check[ $style ] === 'pure' ) {
if ( $_demo != 'magazine' ) {
$_demo = 'magazine';
}
} elseif ( $_check[ $style ] === 'classic' ) {
if ( $_demo != 'magazine' && $_demo != 'blog' ) {
$_demo = 'magazine';
}
}
$style = $_check[ $style ] . '-' . $_demo;
}
} // comp fix
$class = $this->get_class_name( $style );
if ( ! class_exists( $class ) && file_exists( self::get_path( $style . '/bs-theme-style-' . $style . '.php' ) ) ) {
include self::get_path( $style . '/bs-theme-style-' . $style . '.php' );
}
if ( class_exists( $class ) ) {
$this->add_style_instance( new $class );
}
}
}
/**
* Used to get path of styles directory
*
* @param $append
*
* @return string
*/
public static function get_path( $append ) {
return self::$style_dir . $append;
}
/**
* Used to get path of styles URI
*
* @param $append
*
* @return string
*/
public static function get_uri( $append ) {
return self::$style_uri . $append;
}
/**
* Convert string to class name
*
* @param string $name
*
* @return string
*/
public function convert_class_name( $name = '' ) {
$class = str_replace(
array( '/', '-', ' ' ),
'_',
$name
);
$class = explode( '_', $class );
$class = array_map( 'ucwords', $class );
return implode( '_', $class );
}
/**
* Creates class name from style and demo ID's
*
* @param string $style
* @param string $demo
*
* @return string
*/
public function get_class_name( $style = '', $demo = '' ) {
$class = 'Publisher_Theme_Style_' . $this->convert_class_name( $style );
if ( ! empty( $demo ) ) {
$class .= '_' . $this->convert_class_name( $demo );
}
return $class;
}
/**
* Used to set styles from outside
*
* @param array $styles
*/
public static function set_styles( $styles ) {
if ( is_array( $styles ) ) {
self::$styles = $styles;
} else {
self::$styles = array( $styles );
}
}
/**
* Used to get current active styles
*
* @return array
*/
public static function get_styles() {
return self::$styles;
}
/**
* @param $instance
*/
public function add_style_instance( $instance ) {
$this->style_instances[] = $instance;
}
/**
* Adds general page templates to all demos
*
* @hooked publisher-theme-core/page-templates/config
*
* @param $page_templates
*
* @return mixed
*/
public function general_page_templates( $page_templates ) {
$page_templates['our-contributors-1'] = array(
'name' => __( 'Our Contributors 1', 'publisher' ),
'screenshot' => 'http://cdn.betterstudio.com/publisher/page-templates/general/our-contributors-1.png?v=' . PUBLISHER_THEME_VERSION,
'preview' => 'http://demo.betterstudio.com/publisher/our-contributors-1/',
'category' => array(
__( '2 Column', 'publisher' ),
),
'type' => array(
__( 'Contributors', 'publisher' ),
),
'post_meta' => array(
array(
'meta_key' => 'page_layout',
'meta_value' => '1-col',
),
array(
'meta_key' => '_hide_title',
'meta_value' => 1,
),
array(
'meta_key' => '_bs_imported_template',
'meta_value' => 'our-contributors-1',
),
array(
'meta_key' => '_custom_css_code',
'meta_value' => '.our-contributors-title h4{
font-size: 26px;
}
.our-contributors-title {
margin-bottom: 20px !important;
}
.wpb_text_column{
margin-bottom: 22px !important;
}
.vc_btn3-container{
margin-bottom: 35px !important;
}',
),
array(
'meta_key' => 'bam_disable_all',
'meta_value' => 1,
),
),
'prepare_vc_css' => true,
);
$page_templates['our-contributors-2'] = array(
'name' => __( 'Our Contributors 2', 'publisher' ),
'screenshot' => 'http://cdn.betterstudio.com/publisher/page-templates/general/our-contributors-2.png?v=' . PUBLISHER_THEME_VERSION,
'preview' => 'http://demo.betterstudio.com/publisher/our-contributors-2/',
'category' => array(
__( '2 Column', 'publisher' ),
),
'type' => array(
__( 'Contributors', 'publisher' ),
),
'post_meta' => array(
array(
'meta_key' => 'page_layout',
'meta_value' => '1-col',
),
array(
'meta_key' => '_hide_title',
'meta_value' => 1,
),
array(
'meta_key' => '_bs_imported_template',
'meta_value' => 'our-contributors-2',
),
array(
'meta_key' => '_custom_css_code',
'meta_value' => '.wpb_text_column{
margin-bottom: 12px!important;
}
.wpb_text_column h1{
font-size: 28px!important;
margin: 0 0 10px;
}
.vc_btn3-container{
margin-bottom: 28px !important;
}
.vc_separator {
margin-bottom: 28px !important;
}',
),
array(
'meta_key' => 'bam_disable_all',
'meta_value' => 1,
),
),
'prepare_vc_css' => true,
);
$page_templates['our-contributors-3'] = array(
'name' => __( 'Our Contributors 3', 'publisher' ),
'screenshot' => 'http://cdn.betterstudio.com/publisher/page-templates/general/our-contributors-3.png?v=' . PUBLISHER_THEME_VERSION,
'preview' => 'http://demo.betterstudio.com/publisher/our-contributors-3/',
'category' => array(
__( '2 Column', 'publisher' ),
),
'type' => array(
__( 'Contributors', 'publisher' ),
),
'post_meta' => array(
array(
'meta_key' => 'page_layout',
'meta_value' => '1-col',
),
array(
'meta_key' => '_hide_title',
'meta_value' => 1,
),
array(
'meta_key' => '_bs_imported_template',
'meta_value' => 'our-contributors-3',
),
array(
'meta_key' => '_custom_css_code',
'meta_value' => '.wpb_text_column h1{
font-size: 28px!important;
margin: 0 0 10px;
}
.wpb_text_column{
margin-bottom: 30px !important;
}',
),
array(
'meta_key' => 'bam_disable_all',
'meta_value' => 1,
),
),
'prepare_vc_css' => true,
);
return $page_templates;
}
} // Publisher_Theme_Styles_Manager
Blog - DeaLFunia
To promote research activities nationwide and develop a bilateral relationship between Bangladesh and China in a broader context, Daffodil International!-->…
See More...
State Minister for Social Welfare Ashraf Ali Khan Khasru has urged the non-government development organizations to have greater!-->…
See More...
Bangladesh Embassy is convening the Bangladesh-Netherlands Agri-Business Conclave on 30 May in The Hague to forge result-oriented collaboration!-->…
See More...
A Memorandum of Understanding (MoU) was concluded between the Governance Innovation Unit (GIU), Prime Minister's Office (PMO), Bangladesh and the Ash Center!-->…
See More...
The Innovation Design and Entrepreneurship Academy (iDEA) Project of Bangladesh Computer Council (BCC) under the ICT Division and The North South University!-->…
See More...
#Bangladesh Bank speaks about Financial Irregularity after the fact that the dollar had skyrocketed against the Taka. The same Bangladesh Bank had lost!-->…
See More...
Nissan today launched the powerful, all-new Nissan Magnite in Bangladesh. The award-winning B-SUV offers a smooth, confident driving experience, with a!-->…
See More...
One in every five (21%) adults are hypertensive in Bangladesh. Hypertension causes increased risks of various noncommunicable diseases (NCDs) especially!-->…
See More...
Research and advocacy organization PROGGA (Knowledge for Progress) and Anti-Tobacco Media Alliance (ATMA) have raised demands for increasing prices of all!-->…
See More...
Bangladesh is still lagging far behind the top-performing countries in the Tobacconomics Cigarette Tax Scorecard. In 2021, Bangladesh has bagged a score of!-->…
See More...
Four (4) Job positions Openings with clients of IITM. Total Number of persons to be recruited will be 6 to 10 persons (All 4 jobs in Total). Send CV!-->…
See More...
Bangladesh Venture Capital (BVCL) Signs MoU with E-CAB. Bangladesh Venture Capital Limited (BVCL) – a sister concern of Daffodil Family has signed a Memorandum!-->…
See More...
The Innovation Design and Entrepreneurship Academy (iDEA) Project of Bangladesh Computer Council (BCC) under the ICT Division organized a workshop with the!-->…
See More...
To safeguard the youth and the poor, folks from all walks of life participated in a virtual human chain demanding a raise in the prices of cigarettes and other!-->…
See More...
Bangladesh lacks any specific policy measure when it comes to revenue generation from tobacco products. In 2016, the Honorable Prime Minister Sheikh Hasina!-->…
See More...