예제 #1
0
/**
 * Skin Generator
 */
function spyropress_skin_generator()
{
    // Security
    check_ajax_referer('skin_generator_form', 'skin_generator_nonce');
    $name = $_POST['skin_name'];
    $color = $_POST['skin_color'];
    $gradient = $_POST['skin_gradient'];
    if (empty($name) || empty($color)) {
        die;
    }
    // generate filename
    $filename = spyropress_uglify($name);
    $skin = template_path() . 'assets/less/skin.less';
    $css = template_path() . 'assets/css/skins/' . $filename . '.css';
    // Delte previous file
    if (file_exists($css)) {
        unlink($css);
    }
    // LESS
    require framework_classes() . 'class-lessc.php';
    $less = new lessc();
    $less->setFormatter('compressed');
    $less->setVariables(array('skinColor' => spyropress_validate_setting($color, 'colorpicker', 'skin_color', array()), 'gradient' => $gradient));
    $result = $less->compileFile($skin, $css);
    if ($result) {
        $skins = get_option('_spyropress_porto_skins');
        $skins = $skins ? $skins : array();
        $skins[$filename] = array('name' => $name, 'color' => $color, 'gradient' => $gradient);
        update_option('_spyropress_porto_skins', $skins);
    }
    // Refresh page
    echo 'window.location = "' . $_SERVER['HTTP_REFERER'] . '";';
    // Exit
    die;
}
 /**
  * Add MetaBoxes to the post type
  */
 public function add_meta_box($id, $title = '', $fields = array(), $meta_key = false, $build_tabs = true, $context = 'normal', $priority = 'default')
 {
     // checks
     if (empty($id)) {
         return;
     }
     $title = empty($title) ? $id : $title;
     // Meta variables
     $box_id = spyropress_uglify($id);
     $box_title = spyropress_beautify($title);
     $box_context = $context;
     $box_priority = $priority;
     $args = array('id' => $box_id, 'title' => $box_title, 'context' => $context, 'priority' => $priority, 'meta_key' => $meta_key, 'build_tabs' => $build_tabs, 'post_type_slug' => $this->slug, 'fields' => $fields);
     $this->meta_boxes[$id] = $args;
 }