colorcontrol = "Color Control";
$this->shortcolorcontrol = "cc";
// customize
add_action( 'customize_preview_init', array($this,'magazine_customize_preview_js') );
//get parametrs from databese
$value_of_std[0]=get_theme_mod($this->shortcolorcontrol."_menu_elem_back_color",'#FFFFFF');
$value_of_std[1]=get_theme_mod($this->shortcolorcontrol."_sideb_background_color",'#FFFFFF');
$value_of_std[2]=get_theme_mod($this->shortcolorcontrol."_footer_back_color",'#FFFFFF');
$value_of_std[3]=get_theme_mod($this->shortcolorcontrol."_featured_posts_color",'#F9F9F9');
$value_of_std[4]=get_theme_mod($this->shortcolorcontrol."_text_headers_color",'#000000');
$value_of_std[5]=get_theme_mod($this->shortcolorcontrol."_primary_text_color",'#000000');
$value_of_std[6]=get_theme_mod($this->shortcolorcontrol."_footer_text_color",'#2C2C2C');
$value_of_std[7]=get_theme_mod($this->shortcolorcontrol."_primary_links_color",'#545454');
$value_of_std[8]=get_theme_mod($this->shortcolorcontrol."_primary_links_hover_color",'#007087');
$value_of_std[9]=get_theme_mod($this->shortcolorcontrol."_menu_links_color",'#373737');
$value_of_std[10]=get_theme_mod($this->shortcolorcontrol."_menu_links_hover_color",'#000000');
$value_of_std[11]=get_theme_mod($this->shortcolorcontrol."_hover_menu_item",'#FFFFFF');
$value_of_std[12]=get_theme_mod($this->shortcolorcontrol."_selected_menu_color",'#FFFFFF');
$value_of_std[13]=get_theme_mod($this->shortcolorcontrol."_color_scheme",'#E0E0E0');
$value_of_std[14]=get_theme_mod($this->shortcolorcontrol."_meta_info_color",'#8F8F8F');
$value_of_std[15]=get_theme_mod($this->shortcolorcontrol."_logo_text_color",'#007087');
$value_of_std[16]=get_theme_mod($this->shortcolorcontrol."_footer_sideb_background_color",'#FFFFFF');
$value_of_std[17]=get_theme_mod($this->shortcolorcontrol."_borders_color",'#007087');
$value_of_std[18]=get_theme_mod($this->shortcolorcontrol."_slider_text_color",'#FFFFFF');
$value_of_std[19]=get_theme_mod($this->shortcolorcontrol."_button_background_color",'#007087');
$value_of_std[20]=get_theme_mod($this->shortcolorcontrol."_button_text_color",'#FFFFFF');
$value_of_std[21]=get_theme_mod($this->shortcolorcontrol."_content_post_bg_color",'#FFFFFF');
// all options information color control
$this->options_colorcontrol = array(
"menu_elem_back_color" => array(
"name" => "Menu Background Color",
"desc" => "",
"var_name" =>'menu_elem_back_color',
"id" => $this->shortcolorcontrol . "_menu_elem_back_color",
"type" => "picker",
"std" => $value_of_std[0]
),
"borders_color" => array(
"name" => "Borders Color",
"desc" => "",
"var_name" =>'borders_color',
"id" => $this->shortcolorcontrol . "_borders_color",
"type" => "picker",
"std" => $value_of_std[17]
),
"slider_text_color" => array(
"name" => "Slider Text Color",
"desc" => "",
"var_name" =>'slider_text_color',
"id" => $this->shortcolorcontrol . "_slider_text_color",
"type" => "picker",
"std" => $value_of_std[18]
),
"sideb_background_color" => array(
"name" => "Sidebar Background Color",
"desc" => "",
"var_name" =>'sideb_background_color',
"id" => $this->shortcolorcontrol . "_sideb_background_color",
"type" => "picker",
"std" => $value_of_std[1]
),
"content_post_bg_color" => array(
"name" => "Content Posts Background Color",
"desc" => "",
"var_name" =>'content_post_bg_color',
"id" => $this->shortcolorcontrol . "_content_post_bg_color",
"type" => "picker",
"std" => $value_of_std[21]
),
"footer_sideb_background_color" => array(
"name" => "Footer Sidebar Background Color",
"desc" => "",
"var_name" =>'footer_sideb_background_color',
"id" => $this->shortcolorcontrol . "_footer_sideb_background_color",
"type" => "picker",
"std" => $value_of_std[16]
),
"footer_back_color" => array(
"name" => "Footer Background Color",
"desc" => "",
"var_name" =>'footer_back_color',
"id" => $this->shortcolorcontrol . "_footer_back_color",
"type" => "picker",
"std" => $value_of_std[2]
),
"featured_posts_color" => array(
"name" => "Featured Post Background Color",
"desc" => "",
"var_name" =>'featured_posts_color',
"id" => $this->shortcolorcontrol . "_featured_posts_color",
"type" => "picker",
"std" => $value_of_std[3]
),
"text_headers_color" => array(
"name" => "Heading Text Color",
"desc" => "",
"var_name" =>'text_headers_color',
"id" => $this->shortcolorcontrol . "_text_headers_color",
"type" => "picker",
"std" => $value_of_std[4]
),
"primary_text_color" => array(
"name" => "Primary Text Color",
"desc" => "",
"var_name" =>'primary_text_color',
"id" => $this->shortcolorcontrol . "_primary_text_color",
"type" => "picker",
"std" => $value_of_std[5]
),
"footer_text_color" => array(
"name" => "Footer Text Color",
"desc" => "",
"var_name" =>'footer_text_color',
"id" => $this->shortcolorcontrol . "_footer_text_color",
"type" => "picker",
"std" => $value_of_std[6]
),
"primary_links_color" => array(
"name" => "Primary Links",
"desc" => "",
"var_name" =>'primary_links_color',
"id" => $this->shortcolorcontrol . "_primary_links_color",
"type" => "picker",
"std" => $value_of_std[7]
),
"primary_links_hover_color" => array(
"name" => "Primary Links Hover",
"desc" => "",
"var_name" =>'primary_links_hover_color',
"id" => $this->shortcolorcontrol . "_primary_links_hover_color",
"type" => "picker",
"std" => $value_of_std[8]
),
"menu_links_color" => array(
"name" => "Menu Links",
"desc" => "",
"var_name" =>'menu_links_color',
"id" => $this->shortcolorcontrol . "_menu_links_color",
"type" => "picker",
"std" => $value_of_std[9]
),
"menu_links_hover_color" => array(
"name" => "Menu Links Hover",
"desc" => "",
"var_name" =>'menu_links_hover_color',
"id" => $this->shortcolorcontrol . "_menu_links_hover_color",
"type" => "picker",
"std" => $value_of_std[10]
),
"hover_menu_item" => array(
"name" => "Hover Menu Item",
"desc" => "",
"var_name" =>'hover_menu_item',
"id" => $this->shortcolorcontrol . "_hover_menu_item",
"type" => "picker",
"std" => $value_of_std[11]
),
"selected_menu_color" => array(
"name" => "Selected Menu Item Background",
"desc" => "",
"var_name" =>'selected_menu_color',
"id" => $this->shortcolorcontrol . "_selected_menu_color",
"type" => "picker",
"std" => $value_of_std[12]
),
"color_scheme" => array(
"name" => " ",
"var_name" =>'color_scheme',
"id" => $this->shortcolorcontrol . "_color_scheme",
"std" => $value_of_std[13]
),
"logo_text_color" => array(
"name" => "Logo Text Color ",
"desc" => "",
"var_name" =>'logo_text_color',
"id" => $this->shortcolorcontrol . "_logo_text_color",
"type" => "picker",
"std" => $value_of_std[15]
),
"button_background_color" => array(
"name" => "Buttons Background Color ",
"desc" => "",
"var_name" =>'button_background_color',
"id" => $this->shortcolorcontrol . "_button_background_color",
"type" => "picker",
"std" => $value_of_std[19]
),
"button_text_color" => array(
"name" => "Buttons Text Color ",
"desc" => "",
"var_name" =>'button_text_color',
"id" => $this->shortcolorcontrol . "_button_text_color",
"type" => "picker",
"std" => $value_of_std[20]
),
"meta_info_color" => array(
"name" => "Meta Information Text Color",
"desc" => "",
"var_name" =>'meta_info_color',
"id" => $this->shortcolorcontrol . "_meta_info_color",
"type" => "picker",
"std" => $value_of_std[14]
),
);
/*$this->generete_customize_js();
exit;*/
}
/***********************************/
/* SAVE AND RESET PARAMETRS */
/***********************************/
public function web_dorado_theme_update_and_get_options_color_control(){
if ( isset($_GET['page']) && $_GET['page'] == "web_dorado_theme" && isset($_GET['controller']) && $_GET['controller'] == "color_control_page") {
if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'save' ) {
foreach ($this->options_colorcontrol as $value) {
set_theme_mod($value['id'], $_REQUEST[$value['var_name']]);
}
foreach ($this->options_colorcontrol as $value) {
if (isset($_REQUEST[$value['var_name']])) {
set_theme_mod($value['id'], $_REQUEST[$value['var_name']]);
} else {
remove_theme_mod($value['id']);
}
}
header("Location: themes.php?page=web_dorado_theme&controller=color_control_page&saved=true");
die;
} else if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'reset' ) {
foreach ($this->options_colorcontrol as $value) {
remove_theme_mod($value['id']);
}
header("Location: themes.php?page=web_dorado_theme&controller=color_control_page&reset=true");
die;
}
}
}
/***********************************/
/* COLOR CONTROL SCRIPTS AND STYLES*/
/***********************************/
public function web_dorado_color_control_page_admin_scripts(){
wp_enqueue_script('wp-color-picker');
wp_enqueue_style( 'wp-color-picker' );
wp_enqueue_style('color_control_main_style',get_template_directory_uri('template_directory').'/admin/css/color_control.css');
}
/***********************************/
/* BACK END ADMIN HTML */
/***********************************/
public function dorado_theme_admin_color_control(){
if (isset($_REQUEST['saved']) && $_REQUEST['saved'] )
echo '
' . $this->colorcontrol . ' settings saved.
';
if (isset($_REQUEST['reset']) && $_REQUEST['reset'] )
echo '' . $this->colorcontrol . ' settings reset.
';
global $business_world_admin_helepr_functions;
$pickers=$this->get_option_type('picker');
$count_picker=count( $pickers );
$array_of_colors=array(
array(
"menu_elem_back_color" => "#FFFFFF",
"sideb_background_color" => "#FFFFFF",
"footer_sideb_background_color" => "#FFFFFF",
"footer_back_color" => "#FFFFFF",
"featured_posts_color" => "#F9F9F9",
"text_headers_color" => "#000000",
"primary_text_color" => "#000000",
"footer_text_color" => "#2C2C2C",
"primary_links_color" => "#545454",
"primary_links_hover_color" => "#007087",
"menu_links_color" => "#373737",
"menu_links_hover_color" => "#000000",
"hover_menu_item" => "#FFFFFF",
"selected_menu_color" => "#FFFFFF",
"logo_text_color" => "#007087",
"slider_text_color" => "FFFFFF",
"meta_info_color" => "#8F8F8F",
"button_background_color" => "#007087",
"button_text_color" => "#FFFFFF",
"borders_color" => "#007087"
),
array(
"menu_elem_back_color" => "#FFFFFF",
"sideb_background_color" => "#FFFFFF",
"footer_sideb_background_color" => "#FFFFFF",
"footer_back_color" => "#FFFFFF",
"featured_posts_color" => "#F9F9F9",
"text_headers_color" => "#000000",
"primary_text_color" => "#000000",
"footer_text_color" => "#2C2C2C",
"primary_links_color" => "#545454",
"primary_links_hover_color" => "#870000",
"menu_links_color" => "#373737",
"menu_links_hover_color" => "#000000",
"hover_menu_item" => "#FFFFFF",
"selected_menu_color" => "#FFFFFF",
"logo_text_color" => "#870000",
"slider_text_color" => "FFFFFF",
"meta_info_color" => "#8F8F8F",
"button_background_color" => "#870000",
"button_text_color" => "#FFFFFF",
"borders_color" => "#870000"
),
array(
"menu_elem_back_color" => "#FFFFFF",
"sideb_background_color" => "#FFFFFF",
"footer_sideb_background_color" => "#FFFFFF",
"footer_back_color" => "#FFFFFF",
"featured_posts_color" => "#F9F9F9",
"text_headers_color" => "#000000",
"primary_text_color" => "#000000",
"footer_text_color" => "#2C2C2C",
"primary_links_color" => "#000000",
"primary_links_hover_color" => "#307900",
"menu_links_color" => "#373737",
"menu_links_hover_color" => "#000000",
"hover_menu_item" => "#FFFFFF",
"selected_menu_color" => "#FFFFFF",
"logo_text_color" => "#307900",
"slider_text_color" => "FFFFFF",
"meta_info_color" => "#8F8F8F",
"button_background_color" => "#307900",
"button_text_color" => "#FFFFFF",
"borders_color" => "#307900"
),
array(
"menu_elem_back_color" => "#F2F2F2",
"sideb_background_color" => "#FFFFFF",
"footer_sideb_background_color" => "#FFFFFF",
"footer_back_color" => "#FFFFFF",
"featured_posts_color" => "#F9F9F9",
"text_headers_color" => "#000000",
"primary_text_color" => "#000000",
"footer_text_color" => "#2C2C2C",
"primary_links_color" => "#000000",
"primary_links_hover_color" => "#CF8800",
"menu_links_color" => "#373737",
"menu_links_hover_color" => "#000000",
"hover_menu_item" => "#FFFFFF",
"selected_menu_color" => "#FFFFFF",
"logo_text_color" => "#CF8800",
"slider_text_color" => "FFFFFF",
"meta_info_color" => "#8F8F8F",
"button_background_color" => "#CF8800",
"button_text_color" => "#FFFFFF",
"borders_color" => "#CF8800"
)
);
$this->default_themes_jquery($array_of_colors);
global $business_world_web_dor;
?>
The color customization parameters are disabled in free version. Please buy the commercial version in order to enable this functionality.
template;
$wp_customize->add_section( 'color' , array(
'title' => __( 'Schemes', 'Magazine' ),
'priority' => 1,
)
);
foreach($this->options_colorcontrol as $key=>$spec_color)
{
if(isset($spec_color['type']) && $spec_color['type']=='picker'){
$wp_customize->add_setting( 'theme_mods_'.$theme_mod_prefix.'['.$spec_color['id'].']', array(
'default' => $spec_color['std'],
'type' => 'option',
'sanitize_callback' => 'sanitize_hex_color',
'capability' => 'edit_theme_options',
'transport' => 'postMessage'
)
);
$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'theme_mods_'.$theme_mod_prefix.'['.$spec_color['id'].']', array(
'label' => $spec_color['name'],
'section' => 'colors',
'settings' => 'theme_mods_'.$theme_mod_prefix.'['.$spec_color['id'].']'
) ) );
}
}
}
/***********************************/
/*SCRIPT FOR DEFAUL COLORED SCHEME */
/***********************************/
private function default_themes_jquery($array_of_colors=NULL){
// print array if it not set
if($array_of_colors===NULL){
echo "\$array_of_colors=array(
array(
";
foreach($this->options_colorcontrol as $key=>$special_color){
if($special_color['type']=='picker'){
echo " \"".$special_color['var_name']."\" => \"".$special_color['std']."\",
";
}
}
echo "),
array(
";
foreach($this->options_colorcontrol as $key=>$special_color){
if($special_color['type']=='picker'){
echo " \"".$special_color['var_name']."\" => \"".$special_color['std']."\",
";
}
}
echo ")); esi copy past ara array_of_colors tex@ kashxati";
die();
}
// print qjeru and initial colors standart themes
else
{
echo '";
}
}
/***********************************/
/*HTML FOR DEFAUL COLORED SCHEME */
/***********************************/
private function default_theme_select($array_of_colors=NULL){
$count_of_selects=count($array_of_colors);
echo '';
}
/***********************************/
/* REQUERD FUNCTION FOR COLORS */
/***********************************/
private function get_option_type($type=''){
$cur_type_elements=array();
$k=0;
foreach( $this->options_colorcontrol as $option ){
if(isset($type) && isset($option['type']) && $option['type'] == $type ){
$cur_type_elements[$k]=$option;
$k++;
}
}
return $cur_type_elements;
}
/***********************************/
/* REQUERD FUNCTION FOR COLORS */
/***********************************/
private function negativeColor($color)
{
//get red, green and blue
$r = substr($color, 0, 2);
$g = substr($color, 2, 2);
$b = substr($color, 4, 2);
//revert them, they are decimal now
$r = 0xff-hexdec($r);
$g = 0xff-hexdec($g);
$b = 0xff-hexdec($b);
//now convert them to hex and return.
return dechex($r).dechex($g).dechex($b);
}
/***********************************/
/* REQUERD FUNCTION FOR COLORS */
/***********************************/
private function ligthest_brigths($color,$pracent=15){
$new_color=$color;
if(!(strlen($new_color==6) || strlen($new_color)==7))
{
return $color;
}
$color_vandakanishov=strpos($new_color,'#');
if($color_vandakanishov == false) {
$new_color= str_replace('#','',$new_color);
}
$color_part_1=substr($new_color, 0, 2);
$color_part_2=substr($new_color, 2, 2);
$color_part_3=substr($new_color, 4, 2);
$color_part_1=dechex( (int) (hexdec( $color_part_1 ) + (( 255-( hexdec( $color_part_1 ) ) ) * $pracent / 100 )));
$color_part_2=dechex( (int) (hexdec( $color_part_2) + (( 255-( hexdec( $color_part_2 ) ) ) * $pracent / 100 )));
$color_part_3=dechex( (int) (hexdec( $color_part_3 ) + (( 255-( hexdec( $color_part_3 ) ) ) * $pracent / 100 )));
$new_color=$color_part_1.$color_part_2.$color_part_3;
if($color_vandakanishov == false){
return $new_color;
}
else{
return '#'.$new_color;
}
}
/***********************************/
/* REQUERD FUNCTION FOR COLORS */
/***********************************/
private function hex_to_rgba($color, $opacity = false) {
$default = 'rgb(0,0,0)';
//Return default if no color provided
if(empty($color))
return $default;
//Sanitize color if "#" is provided
if ($color[0] == '#' ) {
$color = substr( $color, 1 );
}
//Check if color has 6 or 3 characters and get values
if (strlen($color) == 6) {
$hex = array( $color[0] . $color[1], $color[2] . $color[3], $color[4] . $color[5] );
} elseif ( strlen( $color ) == 3 ) {
$hex = array( $color[0] . $color[0], $color[1] . $color[1], $color[2] . $color[2] );
} else {
return $default;
}
//Convert hexadec to rgb
$rgb = array_map('hexdec', $hex);
//Check if opacity is set(rgba or rgb)
if($opacity){
if(abs($opacity) > 1)
$opacity = 1.0;
$output = 'rgba('.implode(",",$rgb).','.$opacity.')';
} else {
$output = 'rgb('.implode(",",$rgb).')';
}
//Return rgb(a) color string
return $output;
}
/***********************************/
/* FRONT END COLOR CANROL */
/***********************************/
public function update_color_control(){
global $business_world_color_control_page;
foreach ($business_world_color_control_page->options_colorcontrol as $value) {
$$value['var_name'] = $value['std'];
}
$background_color = get_background_color();
$background_image=get_background_image();
?>
template;
$content=wp_remote_retrieve_body(wp_remote_get(get_template_directory_uri().'/admin/customize.css.html')); // get css in file
$content=preg_replace('/^\s+|\n|\r|\s+$/m', '', $content); // remove break lines in css
$content =str_replace(array(''),'',$content); // remove style tag
$all_content = explode('}', $content); /// explode for geting selector and params in selector
$all_content = array_slice($all_content,0, count($all_content)-1); // remove last null element
$all_params = array();// end results array
foreach($all_content as $all)
{
$ccc = array();
$fff = array();
$qqq=explode('{',$all);
$bbb[$qqq[0]]=$qqq[1];
foreach($bbb as $key=>$b)
{
$lll = array();
$b=str_replace(array(' ','','?>','echo',),'', $b);
$ewew = explode(';',$b);
$ewew = array_slice($ewew,0, count($ewew)-1);
foreach($ewew as $ew)
{
$nnn = explode(':',$ew);
$lll[$nnn[0]] = $nnn[1];
}
$ccc['selector'] = explode(',',$key);
$lll=str_replace(' ','', $lll);
$lll=str_replace(array('','?>','echo'),'', $lll);
$ccc['dinamicle_vaiable'] = $lll;
}
array_push($all_params, $ccc);
}
$count_of_all_params=count($all_params);
$option_color_control=array();
foreach($this->options_colorcontrol as $keycolor=>$colorvalue){
for($i=0;$i<$count_of_all_params;$i++){
$keyy_of_special_value=0;
foreach($all_params[$i]['dinamicle_vaiable'] as $csskey => $cssvalue){
$keyy_of_special_value++;
if(!(strpos($cssvalue,'$'.$keycolor) === false)){
// simple color
if(!preg_match('[\w\(]',$cssvalue,$matches)){
if(!isset($option_color_control[$keycolor][$csskey]))
$option_color_control[$keycolor][$csskey]=array();
foreach($all_params[$i]['selector'] as $selectorkey => $selectorvalue){
if(!in_array($selectorvalue,$option_color_control[$keycolor][$csskey]))
array_push($option_color_control[$keycolor][$csskey],$selectorvalue);
}
}
//colors with functions this dont translated
else{
if(!isset($option_color_control[$keycolor]['spec'.$keyy_of_special_value.$csskey.'key_endd'.$cssvalue]))
$option_color_control[$keycolor]['spec'.$keyy_of_special_value.$csskey.'key_endd'.$cssvalue]=array();
foreach($all_params[$i]['selector'] as $selectorkey => $selectorvalue){
if(!in_array($selectorvalue,$option_color_control[$keycolor]['spec'.$keyy_of_special_value.$csskey.'key_endd'.$cssvalue]))
array_push($option_color_control[$keycolor]['spec'.$keyy_of_special_value.$csskey.'key_endd'.$cssvalue],$selectorvalue);
}
}
}
}
}
}
foreach($option_color_control as $keycolor => $colorparametrs){
?>
wp.customize( 'theme_mods_[options_colorcontrol[$keycolor]['id'] ?>]', function( value ) {
value.bind( function( to ) {
style = jQuery('#custom--css');
style.remove();
style = jQuery('\
').appendTo( 'head' );
} );
if(!(jQuery('#custom--css').length > 0)){
jQuery('\
').appendTo( 'head' );
}
}
);