/** * Get custom styles and store them in custom.css file or use inline css fallback * This function will be called by masterslider save handler * * @return void */ function msp_save_custom_styles() { $uploads = wp_upload_dir(); $css_dir = apply_filters('masterslider_custom_css_dir', $uploads['basedir'] . '/' . MSWP_SLUG); $css_file = $css_dir . '/custom.css'; $css_terms = "/*\n===============================================================\n # CUSTOM CSS\n - Please do not edit this file. this file is generated by server-side code\n - Every changes here will be overwritten\n===============================================================*/\n\n"; // Get all custom css styles $css = msp_get_all_custom_css(); /** * Initialize the WP_Filesystem */ global $wp_filesystem; if (empty($wp_filesystem)) { require_once ABSPATH . '/wp-admin/includes/file.php'; WP_Filesystem(); } if (wp_mkdir_p($css_dir) && !$wp_filesystem->put_contents($css_file, $css_terms . $css, 0644)) { // if the directory is not writable, try inline css fallback msp_update_option('custom_inline_style', $css); // save css rules as option to print as inline css } else { $custom_css_ver = msp_get_option('masterslider_custom_css_ver', '1.0'); $custom_css_ver = (double) $custom_css_ver + 0.1; msp_update_option('masterslider_custom_css_ver', $custom_css_ver); // disable inline css output msp_update_option('custom_inline_style', ''); } }
/** * Print custom styles in page header if inline custom css is set. */ function inline_css_fallback() { $inline_css = msp_get_option('custom_inline_style', ''); // if custom.css is not writable, print css styles in page header if (!empty($inline_css)) { if (current_user_can('manage_options')) { printf("<!-- Note for admin: The custom.css file in [%s] is not writeable, so masterslider uses inline css callback instead. -->\n", MSWP_AVERTA_URL . '/assets/custom.css'); } printf("<style>%s</style>\n", $inline_css); } printf("<script>var ms_grabbing_curosr = '%s', ms_grab_curosr = '%s';</script>\n", MSWP_AVERTA_URL . '/public/assets/css/common/grabbing.cur', MSWP_AVERTA_URL . '/public/assets/css/common/grab.cur'); }
/** * Print required variable for master slider panel */ public function add_panel_variables() { $slider_skins = array(array('class' => 'ms-skin-default', 'label' => 'Default'), array('class' => 'ms-skin-light-2', 'label' => 'Light 2'), array('class' => 'ms-skin-light-3', 'label' => 'Light 3'), array('class' => 'ms-skin-light-4', 'label' => 'Light 4'), array('class' => 'ms-skin-light-5', 'label' => 'Light 5'), array('class' => 'ms-skin-light-6', 'label' => 'Light 6'), array('class' => 'ms-skin-light-6 round-skin', 'label' => 'Light 6 Round'), array('class' => 'ms-skin-contrast', 'label' => 'Contrast'), array('class' => 'ms-skin-black-1', 'label' => 'Black 1'), array('class' => 'ms-skin-black-2', 'label' => 'Black 2'), array('class' => 'ms-skin-black-2 round-skin', 'label' => 'Black 2 Round'), array('class' => 'ms-skin-metro', 'label' => 'Metro')); wp_localize_script('jquery', '__MSP_SKINS', apply_filters('masterslider_skins', $slider_skins)); // get and print slider id if (isset($_REQUEST['slider_id'])) { $slider_id = $_REQUEST['slider_id']; } else { global $mspdb; $slider_id = 0; if (isset($_REQUEST['action']) && 'add' == $_REQUEST['action']) { $slider_id = $mspdb->add_slider(array('status' => 'draft')); wp_localize_script('jquery', '__MSP_SLIDER_ID', (string) $slider_id); } } // Get and print panel data if ($slider_id) { global $mspdb; $slider_data = $mspdb->get_slider($slider_id); $slider_type = isset($slider_data['type']) ? $slider_data['type'] : 'custom'; $slider_type = empty($slider_type) ? 'custom' : $slider_type; $msp_data = isset($slider_data['params']) ? $slider_data['params'] : NULL; $msp_data = empty($slider_data['params']) ? NULL : $slider_data['params']; $msp_preset_style = msp_get_option('preset_style', NULL); $msp_preset_effect = msp_get_option('preset_effect', NULL); $msp_buttons_style = msp_get_option('buttons_style', NULL); $msp_preset_style = empty($msp_preset_style) ? NULL : $msp_preset_style; $msp_preset_effect = empty($msp_preset_effect) ? NULL : $msp_preset_effect; $msp_buttons_style = empty($msp_buttons_style) ? NULL : $msp_buttons_style; wp_localize_script('jquery', '__MSP_DATA', $msp_data); wp_localize_script('jquery', '__MSP_PRESET_STYLE', $msp_preset_style); wp_localize_script('jquery', '__MSP_PRESET_EFFECT', $msp_preset_effect); wp_localize_script('jquery', '__MSP_TYPE', $slider_type); wp_localize_script('jquery', '__MSP_PRESET_BUTTON', $msp_buttons_style); } // define panel directory path wp_localize_script('jquery', '__MSP_PATH', MSWP_AVERTA_ADMIN_URL . '/views/slider-panel/'); $slider_panel_default_setting = array('width' => 1000, 'height' => 500, 'autoCrop' => false, 'autoplay' => false, 'layout' => 'boxed', 'autoHeight' => false, 'transition' => 'basic', 'speed' => 20, 'className' => '', 'start' => 1, 'space' => 0, 'grabCursor' => true, 'swipe' => true, 'wheel' => false, 'mouse' => true, 'loop' => false, 'shuffle' => false, 'preload' => '-1', 'overPause' => true, 'endPause' => false, 'hideLayers' => false, 'dir' => 'h', 'parallaxMode' => 'swipe', 'centerControls' => true, 'instantShowLayers' => false, 'skin' => 'ms-skin-default', 'duration' => 3, 'slideFillMode' => 'fill', 'sliderVideoFillMode' => 'fill', 'slideVideoLoop' => true, 'slideVideoMute' => true, 'slideVideoAutopause' => false, 'layerContent' => 'Lorem Ipsum'); wp_localize_script('jquery', '__MSP_DEF_OPTIONS', apply_filters('masterslider_panel_default_setting', $slider_panel_default_setting)); do_action('masterslider_admin_add_panel_variables', $slider_type); }
/** * Print required variable for master slider panel */ public function add_panel_variables() { wp_localize_script('jquery', '__MSP_SKINS', msp_get_skins()); global $mspdb; $slider_alias = ''; // get and print slider id if (isset($_REQUEST['slider_id'])) { $slider_id = $_REQUEST['slider_id']; } else { $slider_id = 0; if (isset($_REQUEST['action']) && 'add' == $_REQUEST['action']) { $slider_id = $mspdb->add_slider(array('status' => 'draft')); wp_localize_script('jquery', '__MSP_SLIDER_ID', (string) $slider_id); $slider_alias = $mspdb->generate_slider_alias($slider_id); wp_localize_script('jquery', '__MSP_SLIDER_ALIAS', $slider_alias); } } // Get and print panel data if ($slider_id) { $slider_data = $mspdb->get_slider($slider_id); $slider_type = isset($slider_data['type']) ? $slider_data['type'] : 'custom'; $slider_type = empty($slider_type) ? 'custom' : $slider_type; $msp_data = isset($slider_data['params']) ? $slider_data['params'] : NULL; $msp_data = empty($slider_data['params']) ? NULL : $slider_data['params']; $msp_preset_style = msp_get_option('preset_style', NULL); $msp_preset_effect = msp_get_option('preset_effect', NULL); $msp_buttons_style = msp_get_option('buttons_style', NULL); $msp_preset_style = empty($msp_preset_style) ? NULL : $msp_preset_style; $msp_preset_effect = empty($msp_preset_effect) ? NULL : $msp_preset_effect; $msp_buttons_style = empty($msp_buttons_style) ? NULL : $msp_buttons_style; if (empty($slider_alias)) { $slider_alias = isset($slider_data['alias']) && !empty($slider_data['alias']) ? $slider_data['alias'] : $mspdb->generate_slider_alias($slider_id); wp_localize_script('jquery', '__MSP_SLIDER_ALIAS', $slider_alias); } wp_localize_script('jquery', '__MSP_DATA', $msp_data); wp_localize_script('jquery', '__MSP_PRESET_STYLE', $msp_preset_style); wp_localize_script('jquery', '__MSP_PRESET_EFFECT', $msp_preset_effect); wp_localize_script('jquery', '__MSP_TYPE', $slider_type); wp_localize_script('jquery', '__MSP_PRESET_BUTTON', $msp_buttons_style); } // print essential variables (types, taxs, terms, template tags) for post slider in admin panel // since version 1.7 if (isset($slider_type) && 'post' == $slider_type) { $defined_tags = msp_get_general_post_template_tags(); $tags = array(); foreach ($defined_tags as $defined_tag) { $tag_type = '_general' == $defined_tag['type'] ? 'general' : $defined_tag['type']; $tags[$tag_type][] = array('name' => $defined_tag['name'], 'label' => $defined_tag['label']); } // -- get post types, taxes and terms -- $PS = msp_get_post_slider_class(); $terms = $PS->get_tax_term_dictionary(); // ------------------------------------- // $js_data = array('types_taxs_terms' => $terms, 'content_tags' => $tags); wp_localize_script('jquery', '__MSP_POST', apply_filters('masterslider_post_slider_init_data', $js_data)); } // print essential variables (types, taxs, terms, template tags) for woocommerce sliders in admin panel // since version 1.8 if (isset($slider_type) && 'wc-product' == $slider_type) { // if woocommerce is installed and actived if (msp_is_plugin_active('woocommerce/woocommerce.php')) { // -- template tags -------------------- $defined_tags = msp_get_general_post_template_tags(); $woocomm_tags = msp_get_woocommerce_template_tags(); $defined_tags = array_merge($defined_tags, $woocomm_tags); $tags = array(); foreach ($defined_tags as $defined_tag) { $tag_type = '_general' == $defined_tag['type'] ? 'general' : $defined_tag['type']; $tags[$tag_type][] = array('name' => $defined_tag['name'], 'label' => $defined_tag['label']); } // -- get post types, taxes and terms -- $WCS = msp_get_wc_slider_class(); $terms = $WCS->get_tax_term_dictionary(); // ------------------------------------- $js_data = array('types_taxs_terms' => $terms, 'content_tags' => $tags); // if woocommerce is not activated } else { $js_data = null; $wc_installation_url = admin_url('plugin-install.php?tab=plugin-information&plugin=woocommerce&TB_iframe=true&width=600&height=550'); wp_localize_script('jquery', '__WC_INSTALL_URL', $wc_installation_url); } wp_localize_script('jquery', '__MSP_POST', apply_filters('masterslider_wc_product_slider_init_data', $js_data)); } // define panel directory path wp_localize_script('jquery', '__MSP_PATH', MSWP_AVERTA_ADMIN_URL . '/views/slider-panel/'); $slider_panel_default_setting = array('width' => 1000, 'height' => 500, 'autoCrop' => false, 'autoplay' => false, 'layout' => 'boxed', 'autoHeight' => false, 'transition' => 'basic', 'speed' => 20, 'className' => '', 'start' => 1, 'space' => 0, 'grabCursor' => true, 'swipe' => true, 'wheel' => false, 'mouse' => true, 'loop' => false, 'shuffle' => false, 'preload' => '-1', 'overPause' => true, 'endPause' => false, 'hideLayers' => false, 'dir' => 'h', 'parallaxMode' => 'swipe', 'centerControls' => true, 'instantShowLayers' => false, 'skin' => 'ms-skin-default', 'duration' => 3, 'slideFillMode' => 'fill', 'sliderVideoFillMode' => 'fill', 'slideVideoLoop' => true, 'slideVideoMute' => true, 'slideVideoAutopause' => false, 'layerContent' => 'Lorem Ipsum'); wp_localize_script('jquery', '__MSP_DEF_OPTIONS', apply_filters('masterslider_panel_default_setting', $slider_panel_default_setting)); do_action('masterslider_admin_add_panel_variables', $slider_type); }
/** * Get slider export data * * @param int|array $slider_id the slider id(s) * @param array The other options that should be included in export data ( preset_styles, preset_effects ) * @param bool $base64 encode output data to base64 or not * @return string the slider export data */ function get_slider_export_data($slider_ids = array(), $args = null, $base64 = true) { $slider_ids = (array) $slider_ids; $args = (array) $args; // stores export data $export_data = array(); $export_data['sliders_data'] = array(); // loop through selected sliders and store in sliders_data foreach ($slider_ids as $slider_id) { if (is_numeric($slider_id)) { global $mspdb; $slider_title = $mspdb->get_slider_field_val($slider_id, 'title'); $slider_alias = $mspdb->get_slider_field_val($slider_id, 'alias'); $slider_params = $mspdb->get_slider_field_val($slider_id, 'params'); $slider_type = $mspdb->get_slider_field_val($slider_id, 'type'); $slides_num = $mspdb->get_slider_field_val($slider_id, 'slides_num'); $export_data['sliders_data'][$slider_id] = array('title' => $slider_title, 'alias' => $slider_alias, 'params' => $slider_params, 'type' => $slider_type, 'slides_num' => $slides_num); } } // add origin_uploads_url to export data - this helps us to fetch images from origin domian // if you need to bundle sample sliders in your theme you can change the origin_uploads_url // by default origin_uploads_url is the uploads baseurl on domain you exported the sliders from (e.g www.domain.com/wp-content/uploads) // when you decide to import data to new domain, importer will use the origin_uploads_url to fetch images from. // you can change origin_uploads_url by using 'masterslider_export_origin_uploads_url' filter // if you change origin_uploads_url to something else, importer will import slider images // from your custom origin_uploads_url instead of default origin_uploads_url $custom_export_origin_uploads_url = apply_filters('masterslider_export_origin_uploads_url', null); // if filter passed empty string, origin_uploads_url will be plugins/masterslider/samples folder if ('' === $custom_export_origin_uploads_url) { $export_data['origin_uploads_url'] = '{{masterslider}}/samples'; // if filter passed a string with our special tags : } elseif (false !== strpos($custom_export_origin_uploads_url, '{{masterslider}}') || false !== strpos($custom_export_origin_uploads_url, '{{theme_dir}}') || false !== strpos($custom_export_origin_uploads_url, '{{child_theme_dir}}')) { $export_data['origin_uploads_url'] = $custom_export_origin_uploads_url; // if filter value not changed use upload baseurl for current domain } else { $uploads = wp_upload_dir(); $export_data['origin_uploads_url'] = $uploads['baseurl']; } $export_data['preset_styles'] = in_array('preset_styles', $args) ? msp_get_option('preset_style', '') : ''; $export_data['preset_effects'] = in_array('preset_effects', $args) ? msp_get_option('preset_effect', '') : ''; $export_data['buttons_style'] = in_array('buttons_style', $args) ? msp_get_option('buttons_style', '') : ''; $export_json_data = json_encode($export_data); $export_b64_data = base64_encode($export_json_data); if ($base64) { return $export_b64_data; } return $export_data; }