109 lines
3.0 KiB
PHP
109 lines
3.0 KiB
PHP
<?php
|
|
class DrawAttention_Themes {
|
|
public $parent;
|
|
|
|
function __construct( $parent ) {
|
|
$this->parent = $parent;
|
|
|
|
add_action( 'add_meta_boxes', array( $this, 'add_theme_pack_metabox' ) );
|
|
add_action( 'da_register_admin_script', array( $this, 'pass_themes_to_admin_js' ) );
|
|
}
|
|
|
|
function add_theme_pack_metabox() {
|
|
add_meta_box( 'da_theme_pack', __( 'Apply Color Scheme', 'draw-attention' ), array( $this, 'display_theme_pack_metabox' ), $this->parent->cpt->post_type, 'side', 'low');
|
|
}
|
|
|
|
function display_theme_pack_metabox() {
|
|
echo '<p>'.__( 'Quickly apply a theme (you can adjust each color afterwards).', 'draw-attention' ).'</p>'; ?>
|
|
<select id="da-theme-pack-select">
|
|
<option value=""><?php _e( 'Select a theme...', 'draw-attention' ) ?></option>
|
|
<?php foreach ( $this->get_themes() as $key => $theme ) : ?>
|
|
<option value="<?php echo $theme['slug']; ?>"><?php echo $theme['name']; ?></option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
<?php
|
|
}
|
|
|
|
public function pass_themes_to_admin_js() {
|
|
wp_localize_script( $this->parent->plugin_slug . '-admin-script', 'daThemes', array(
|
|
'cfPrefix' => $this->parent->custom_fields->prefix,
|
|
'themes' => $this->get_themes(),
|
|
) );
|
|
}
|
|
|
|
public function apply_theme( $post_id, $theme_slug ) {
|
|
$themes = self::get_themes();
|
|
if ( empty( $themes[$theme_slug]['values'] ) ) { return false; }
|
|
|
|
foreach ($themes[$theme_slug]['values'] as $key => $meta_value) {
|
|
update_post_meta( $post_id, $this->parent->custom_fields->prefix.$key, $meta_value );
|
|
}
|
|
}
|
|
|
|
public static function get_themes() {
|
|
$themes = array(
|
|
'light' => array(
|
|
'slug' => 'light',
|
|
'name' => 'Light',
|
|
'values' => array(
|
|
'map_highlight_color' => '#222222',
|
|
'map_highlight_opacity' => 0.8,
|
|
|
|
'map_border_color' => '#000000',
|
|
'map_border_opacity' => 0.8,
|
|
'map_border_width' => 1,
|
|
|
|
'map_hover_color' => '#666666',
|
|
'map_hover_opacity' => 0.9,
|
|
|
|
'map_title_color' => '#000000',
|
|
'map_text_color' => '#000000',
|
|
'map_background_color' => '#ffffff',
|
|
),
|
|
),
|
|
'dark' => array(
|
|
'slug' => 'dark',
|
|
'name' => 'Dark',
|
|
'values' => array(
|
|
'map_highlight_color' => '#cccccc',
|
|
'map_highlight_opacity' => 0.8,
|
|
|
|
'map_border_color' => '#ffffff',
|
|
'map_border_opacity' => 0.8,
|
|
'map_border_width' => 1,
|
|
|
|
'map_hover_color' => '#999999',
|
|
'map_hover_opacity' => 0.9,
|
|
|
|
'map_title_color' => '#ffffff',
|
|
'map_text_color' => '#ffffff',
|
|
'map_background_color' => '#000000',
|
|
),
|
|
),
|
|
'drawattention' => array(
|
|
'slug' => 'drawattention',
|
|
'name' => 'Draw Attention',
|
|
'values' => array(
|
|
'map_highlight_color' => '#3CA2A2',
|
|
'map_highlight_opacity' => 0.7,
|
|
|
|
'map_border_color' => '#235B6E',
|
|
'map_border_opacity' => 1,
|
|
'map_border_width' => 2,
|
|
|
|
'map_hover_color' => '#256464',
|
|
'map_hover_opacity' => 0.9,
|
|
|
|
'map_title_color' => '#93C7A4',
|
|
'map_text_color' => '#DFEBE5',
|
|
'map_background_color' => '#2E2D29',
|
|
),
|
|
),
|
|
|
|
);
|
|
|
|
return apply_filters( 'da_themes', $themes );
|
|
}
|
|
|
|
}
|