%PDF- %PDF-
Direktori : /var/www/html/shaban/laviva/wp-content/plugins/slider-wd/admin/controllers/ |
Current File : /var/www/html/shaban/laviva/wp-content/plugins/slider-wd/admin/controllers/Sliders.php |
<?php /** * Class SlidersController_wds */ class SlidersController_wds { /** * @var $model */ private $model; /** * @var $view */ private $view; /** * @var string $page */ private $page; /** * @var int $items_per_page */ private $items_per_page = 20; /** * @var array $actions */ private $actions = array(); /** * SlidersController_wds constructor. * @param array $args */ public function __construct( $args = array() ) { $this->model = $args['model']; $this->view = $args['view']; $this->page = WDW_S_Library::get('page'); $this->actions = array( 'publish' => array( 'title' => __('Publish', WDS()->prefix), 'bulk_action' => __('published', WDS()->prefix), ), 'unpublish' => array( 'title' => __('Unpublish', WDS()->prefix), 'bulk_action' => __('unpublished', WDS()->prefix), ), 'delete' => array( 'title' => __('Delete', WDS()->prefix), 'bulk_action' => __('deleted', WDS()->prefix), ), 'duplicate' => array( 'title' => __('Duplicate', WDS()->prefix), 'bulk_action' => __('duplicated', WDS()->prefix), ), 'export' => array( 'title' => __('Export', WDS()->prefix), 'bulk_action' => __('export', WDS()->prefix), ), 'merge' => array( 'title' => __('Merge', WDS()->prefix), 'bulk_action' => __('merged', WDS()->prefix), ), ); $user = get_current_user_id(); $screen = get_current_screen(); $option = $screen->get_option('per_page', 'option'); $this->items_per_page = get_user_meta($user, $option, TRUE); if ( empty ($this->items_per_page) || $this->items_per_page < 1 ) { $this->items_per_page = $screen->get_option('per_page', 'default'); } } /** * Execute. */ public function execute() { $task = WDW_S_Library::get('task'); $id = (int) WDW_S_Library::get('current_id', 0); if ( method_exists($this, $task) ) { if ( $task != 'edit' && $task != 'display' ) { check_admin_referer(WDS()->nonce, WDS()->nonce); } $action = WDW_S_Library::get('bulk_action', -1); if ( $action != -1 ) { $this->bulk_action( $action ); } else { $this->$task( $id ); } } else { $this->display(); } } /** * Bulk actions. * * @param $task */ public function bulk_action( $task = '' ) { $message = 0; $successfully_updated = 0; $url_arg = array('page' => $this->page, 'task' => 'display'); $check = WDW_S_Library::get('check', ''); $all = WDW_S_Library::get('check_all_items', ''); $all = ($all == 'on' ? TRUE : FALSE); if ( method_exists($this, $task) ) { if ( $all ) { $message = $this->$task(0, TRUE, TRUE); $url_arg['message'] = $message; } else { if ( $check ) { foreach ( $check as $id => $item ) { $message = $this->$task($id, TRUE); if ( $message != 2 ) { // Increase successfully updated items count, if action doesn't failed. $successfully_updated++; } } } if ( $successfully_updated ) { $message = sprintf(_n('%s item successfully %s.', '%s items successfully %s.', $successfully_updated, WDS()->prefix), $successfully_updated, $this->actions[$task]['bulk_action']); } $key = ($message === 2 ? 'message' : 'msg'); $url_arg[$key] = $message; } } WDW_S_Library::redirect( add_query_arg($url_arg, admin_url('admin.php')) ); } /** * Display. */ public function display() { // Set params for view. $params = array(); $params['page'] = $this->page; $params['page_title'] = __('Sliders', WDS()->prefix); $params['actions'] = $this->actions; $params['order'] = WDW_S_Library::get('order', 'asc'); $params['orderby'] = WDW_S_Library::get('orderby', 'name'); // To prevent SQL injections. $params['order'] = ($params['order'] == 'desc') ? 'desc' : 'asc'; if ( !in_array($params['orderby'], array( 'name' )) ) { $params['orderby'] = 'id'; } $params['items_per_page'] = $this->items_per_page; $page = (int) WDW_S_Library::get('paged', 1); $page_num = $page ? ($page - 1) * $params['items_per_page'] : 0; $params['page_num'] = $page_num; $params['search'] = WDW_S_Library::get('s', ''); $params['preview_url'] = $this->model->get_slide_preview_post(); $data = $this->model->get_rows_data($params); if ( !empty($data['rows']) ) { $ids = array(); foreach( $data['rows'] as $row ) { $ids[] = $row->id; } // Get slides more info. $params['slides_info'] = $this->model->get_slides_info( array('ids' => $ids) ); } $params['rows'] = $data['rows']; $params['total'] = $data['total']; $url_arg = array(); $page_url = add_query_arg( array( 'page' => $this->page, WDS()->nonce => wp_create_nonce(WDS()->nonce), ), admin_url('admin.php') ); $params['page_url'] = add_query_arg($url_arg, $page_url); $this->view->display( $params ); } /** * Edit. * * @param int $id * @param bool $reset */ public function edit( $id = 0, $reset = FALSE ) { $row = $this->model->get_row_data($id, $reset); if ( $id != 0 && empty($row->id) ) { WDW_S_Library::redirect( add_query_arg( array('page' => $this->page, 'task' => 'display'), admin_url('admin.php') ) ); } $slides_row = $this->model->get_slides_row_data($id); $layers_row = array(); if ( !empty($slides_row) ) { foreach ( $slides_row as $slide_row) { $slide_ids[] = $slide_row->id; } $layers_row = $this->model->get_layers_row_data( $slide_ids ); } $wds_global_options = get_option("wds_global_options", 0); $options_values = WDW_S_Library::get_values(); $global_options = json_decode($wds_global_options); $page_title = __('Create new slider', WDS()->prefix); $save_btn_name = __('Publish', WDS()->prefix); if ( $id ) { $page_title = sprintf(__('Edit slider %s', WDS()->prefix), $row->name); $save_btn_name = __('Update', WDS()->prefix); } // Set params for view. $params = array(); $params['id'] = $id; $params['row'] = $row; $params['slides_row'] = $slides_row; $params['layers_row'] = $layers_row; $params['global_options'] = $global_options; $params['options_values'] = $options_values; $params['slider_preview_link'] = $this->model->get_slide_preview_post(); $params['sub_tab_type'] = WDW_S_Library::get('sub_tab', ''); $params['page_title'] = $page_title; $params['save_btn_name'] = $save_btn_name; $this->view->edit( $params ); } /** * Apply. * * @param int $id */ public function apply( $id = 0 ) { $save = $this->save_slider_db(); $id = $save['id']; $this->save_slide_db( $id ); // TODO. need works the other version. // $this->create_frontend_js_file( $id ); $this->edit( $id ); } /** * Publish. * * @param $id * @param bool $bulk * @param bool $all * * @return int */ public function publish( $id = 0, $bulk = FALSE, $all = FALSE ) { $message = $this->model->publish($id, $all); if ( $bulk ) { return $message; } WDW_S_Library::redirect( add_query_arg( array( 'page' => $this->page, 'task' => 'display', 'message' => $message, ), admin_url('admin.php'))); } /** * Unpublish. * * @param $id * @param bool $bulk * @param bool $all * * @return int */ public function unpublish( $id = 0, $bulk = FALSE, $all = FALSE ) { $message = $this->model->unpublish( $id, $all ); if ( $bulk ) { return $message; } WDW_S_Library::redirect( add_query_arg( array( 'page' => $this->page, 'task' => 'display', 'message' => $message, ), admin_url('admin.php'))); } /** * Delete. * * @param $id * @param bool $bulk * @param bool $all * * @return int */ public function delete( $id = 0, $bulk = FALSE, $all = FALSE ) { $message = $this->model->delete($id, $all); if ( $bulk ) { return $message; } WDW_S_Library::redirect( add_query_arg( array( 'page' => $this->page, 'task' => 'display', 'message' => $message, ), admin_url('admin.php'))); } /** * Duplicate. * * @param $id * @param bool $bulk * @param bool $all * * @return int */ public function duplicate( $id = 0, $bulk = FALSE, $all = FALSE ) { $message = $this->model->duplicate($id, $all); if ( $bulk ) { return $message; } WDW_S_Library::redirect( add_query_arg( array( 'page' => $this->page, 'task' => 'display', 'message' => $message, ), admin_url('admin.php'))); } /** * Reset. * * @param int $id */ public function reset( $id = 0 ) { echo WDW_S_Library::message('Changes must be saved.', 'wd_error'); $this->edit( $id, TRUE); } /** * Merge sliders. * * @param int $id */ public function merge( $id = 0 ) { $id = WDW_S_Library::get('select_slider_merge'); $all = WDW_S_Library::get('check_all_items'); $message_id = $this->model->merge($id, $all); echo WDW_S_Library::message_id($message_id); $this->display(); } /** * Save slider DB. * * @param int $id * * @return array $data */ public function save_slider_db( $id = 0) { global $wpdb; $allow = TRUE; if ( WDS()->is_free && get_option("wds_theme_version") ) { $allow = FALSE; } $slider_id = (isset($_POST['current_id']) ? (int) $_POST['current_id'] : $id); $slider_data = (isset($_POST['slider_data']) ? stripslashes($_POST['slider_data']) : ''); $params_array = json_decode($slider_data, TRUE); $del_slide_ids_string = ( isset($params_array['del_slide_ids_string']) ? rtrim($params_array['del_slide_ids_string'], ',') : ''); if ($del_slide_ids_string) { $wpdb->query('DELETE FROM ' . $wpdb->prefix . 'wdsslide WHERE slider_id=' . $slider_id . ' AND id IN (' . $del_slide_ids_string . ')'); } $name = WDW_S_Library::esc_sanitize_data($params_array, 'name', 'sanitize_text_field'); $published = (int) WDW_S_Library::esc_sanitize_data($params_array, 'published', '', 1); $full_width = (int) WDW_S_Library::esc_sanitize_data($params_array, 'full_width', '', 0); $auto_height = (int) WDW_S_Library::esc_sanitize_data($params_array, 'auto_height', '', 0); $width = (int) WDW_S_Library::esc_sanitize_data($params_array, 'width', '', 900); $height = (int) WDW_S_Library::esc_sanitize_data($params_array, 'height', '', 400); $align = WDW_S_Library::esc_sanitize_data($params_array, 'align', 'sanitize_text_field', 'center'); $effect = WDW_S_Library::esc_sanitize_data($params_array, 'effect', 'sanitize_text_field', 'fade'); $time_intervval = (int) WDW_S_Library::esc_sanitize_data($params_array, 'time_intervval', '', 5); $autoplay = (int) WDW_S_Library::esc_sanitize_data($params_array, 'autoplay', '', 1); $shuffle = (int) WDW_S_Library::esc_sanitize_data($params_array, 'shuffle', '', 0); $music = (int) WDW_S_Library::esc_sanitize_data($params_array, 'music', '', 0); $music_url = ''; if ( isset($params_array['music_url']) && WDW_S_Library::validate_audio_file($params_array['music_url']) ) { $music_url = WDW_S_Library::esc_sanitize_data($params_array, 'music_url', 'esc_url'); $music_url = str_replace(site_url(), '{site_url}', $music_url); } $preload_images = (int) WDW_S_Library::esc_sanitize_data($params_array, 'preload_images', '', 1); $background_color = WDW_S_Library::esc_sanitize_data($params_array, 'background_color', 'sanitize_text_field', '000000'); $background_transparent = (int) WDW_S_Library::esc_sanitize_data($params_array, 'background_transparent', '', 100); $glb_border_width = (int) WDW_S_Library::esc_sanitize_data($params_array, 'glb_border_width', '', 0); $glb_border_style = WDW_S_Library::esc_sanitize_data($params_array, 'glb_border_style', 'sanitize_text_field', 'none'); $glb_border_color = WDW_S_Library::esc_sanitize_data($params_array, 'glb_border_color', 'sanitize_text_field', '000000'); $glb_border_radius = WDW_S_Library::esc_sanitize_data($params_array, 'glb_border_radius', 'sanitize_text_field'); $glb_margin = (int) WDW_S_Library::esc_sanitize_data($params_array, 'glb_margin', '', 0); $glb_box_shadow = WDW_S_Library::esc_sanitize_data($params_array, 'glb_box_shadow', 'sanitize_text_field'); $image_right_click = (int) WDW_S_Library::esc_sanitize_data($params_array, 'image_right_click', '', 0); $layer_out_next = (int) WDW_S_Library::esc_sanitize_data($params_array, 'layer_out_next', '', 0); $prev_next_butt = (int) WDW_S_Library::esc_sanitize_data($params_array, 'prev_next_butt', '', 1); $play_paus_butt = (int) WDW_S_Library::esc_sanitize_data($params_array, 'play_paus_butt', '', 0); $navigation = WDW_S_Library::esc_sanitize_data($params_array, 'navigation', 'sanitize_text_field', 'hover'); $rl_butt_style = WDW_S_Library::esc_sanitize_data($params_array, 'rl_butt_style', 'sanitize_text_field', 'fa-angle'); $rl_butt_size = (int) WDW_S_Library::esc_sanitize_data($params_array, 'rl_butt_size', '', 40); $pp_butt_size = (int) WDW_S_Library::esc_sanitize_data($params_array, 'pp_butt_size', '', 40); $butts_color = WDW_S_Library::esc_sanitize_data($params_array, 'butts_color', 'sanitize_text_field', '000000'); $butts_transparent = (int) WDW_S_Library::esc_sanitize_data($params_array, 'butts_transparent', '', 100); $hover_color = WDW_S_Library::esc_sanitize_data($params_array, 'butts_color', 'sanitize_text_field', 'FFFFFF'); $nav_border_width = (int) WDW_S_Library::esc_sanitize_data($params_array, 'nav_border_width', '', 0); $nav_border_style = WDW_S_Library::esc_sanitize_data($params_array, 'nav_border_style', 'sanitize_text_field', 'none'); $nav_border_color = WDW_S_Library::esc_sanitize_data($params_array, 'nav_border_color', 'sanitize_text_field', 'FFFFFF'); $nav_border_radius = WDW_S_Library::esc_sanitize_data($params_array, 'nav_border_radius', 'sanitize_text_field', '20px'); $nav_bg_color = WDW_S_Library::esc_sanitize_data($params_array, 'nav_bg_color', 'sanitize_text_field', 'FFFFFF'); $bull_position = WDW_S_Library::esc_sanitize_data($params_array, 'bull_position', 'sanitize_text_field', 'bottom'); if ( isset($params_array['enable_bullets']) && $params_array['enable_bullets'] == 0 ) { $bull_position = 'none'; } $bull_style = WDW_S_Library::esc_sanitize_data($params_array, 'bull_style', 'sanitize_text_field', 'fa-square-o'); $bull_size = (int) WDW_S_Library::esc_sanitize_data($params_array, 'bull_size', '', 20); $bull_color = WDW_S_Library::esc_sanitize_data($params_array, 'bull_color', 'sanitize_text_field', 'FFFFFF'); $bull_act_color = WDW_S_Library::esc_sanitize_data($params_array, 'bull_act_color', 'sanitize_text_field', 'FFFFFF'); $bull_margin = ((isset($params_array['bull_margin']) && $allow) ? (int) WDW_S_Library::esc_sanitize_data($params_array, 'bull_margin', 'sanitize_text_field', 3) : 3); $film_pos = WDW_S_Library::esc_sanitize_data($params_array, 'film_pos', 'sanitize_text_field', 'none'); if ( isset($params_array['enable_filmstrip']) && $params_array['enable_filmstrip'] == 0 ) { $film_pos = 'none'; } $film_small_screen = (int) WDW_S_Library::esc_sanitize_data($params_array, 'film_small_screen', '', 0); $film_thumb_width = (int) WDW_S_Library::esc_sanitize_data($params_array, 'film_thumb_width', '', 100); $film_thumb_height = (int) WDW_S_Library::esc_sanitize_data($params_array, 'film_thumb_height', '', 50); $film_bg_color = WDW_S_Library::esc_sanitize_data($params_array, 'film_bg_color', 'sanitize_text_field', '000000'); $film_tmb_margin = (int) WDW_S_Library::esc_sanitize_data($params_array, 'film_tmb_margin', '', 0); $film_act_border_width = (int) WDW_S_Library::esc_sanitize_data($params_array, 'film_act_border_width', '', 0); $film_act_border_style = WDW_S_Library::esc_sanitize_data($params_array, 'film_act_border_style', 'sanitize_text_field', 'none'); $film_act_border_color = WDW_S_Library::esc_sanitize_data($params_array, 'film_act_border_color', 'sanitize_text_field', 'FFFFFF'); $film_dac_transparent = (int) WDW_S_Library::esc_sanitize_data($params_array, 'film_dac_transparent', '', 50); $built_in_watermark_type = WDW_S_Library::esc_sanitize_data($params_array, 'built_in_watermark_type', 'sanitize_text_field', 'none'); $built_in_watermark_position = WDW_S_Library::esc_sanitize_data($params_array, 'built_in_watermark_position', 'sanitize_text_field', 'middle-center'); $built_in_watermark_size = (int) WDW_S_Library::esc_sanitize_data($params_array, 'built_in_watermark_size', '', 15); $built_in_watermark_url = WDW_S_Library::esc_sanitize_data($params_array, 'built_in_watermark_url', 'esc_url'); $built_in_watermark_url = str_replace(site_url(), '{site_url}', $built_in_watermark_url); $built_in_watermark_text = WDW_S_Library::esc_sanitize_data($params_array, 'built_in_watermark_text', 'sanitize_text_field', '10Web.io'); $built_in_watermark_opacity = (int) WDW_S_Library::esc_sanitize_data($params_array, 'built_in_watermark_opacity', '', 70); $built_in_watermark_font_size = (int) WDW_S_Library::esc_sanitize_data($params_array, 'built_in_watermark_font_size', '', 20); $built_in_watermark_font = WDW_S_Library::esc_sanitize_data($params_array, 'built_in_watermark_font', 'sanitize_text_field'); $built_in_watermark_color = WDW_S_Library::esc_sanitize_data($params_array, 'built_in_watermark_color', 'sanitize_text_field', 'FFFFFF'); $css = (isset($params_array['css']) ? htmlspecialchars_decode((addslashes($params_array['css'])), ENT_QUOTES) : ''); $timer_bar_type = WDW_S_Library::esc_sanitize_data($params_array, 'timer_bar_type', 'sanitize_text_field', 'top'); if ( isset($params_array['enable_time_bar']) && $params_array['enable_time_bar'] == 0 ) { $timer_bar_type = 'none'; } $timer_bar_size = (int) WDW_S_Library::esc_sanitize_data($params_array, 'timer_bar_size', '', 5); $timer_bar_color = WDW_S_Library::esc_sanitize_data($params_array, 'timer_bar_color', 'sanitize_text_field', 'BBBBBB'); $timer_bar_transparent = (int) WDW_S_Library::esc_sanitize_data($params_array, 'timer_bar_transparent', '', 50); $stop_animation = (int) WDW_S_Library::esc_sanitize_data($params_array, 'stop_animation', '', 0); $right_butt_url = WDW_S_Library::esc_sanitize_data($params_array, 'right_butt_url', 'esc_url'); $right_butt_url = str_replace(site_url(), '{site_url}', $right_butt_url); $left_butt_url = WDW_S_Library::esc_sanitize_data($params_array, 'left_butt_url', 'esc_url'); $left_butt_url = str_replace(site_url(), '{site_url}', $left_butt_url); $right_butt_hov_url = WDW_S_Library::esc_sanitize_data($params_array, 'right_butt_hov_url', 'esc_url'); $right_butt_hov_url = str_replace(site_url(), '{site_url}', $right_butt_hov_url); $left_butt_hov_url = WDW_S_Library::esc_sanitize_data($params_array, 'left_butt_hov_url', 'esc_url'); $left_butt_hov_url = str_replace(site_url(), '{site_url}', $left_butt_hov_url); $rl_butt_img_or_not = WDW_S_Library::esc_sanitize_data($params_array, 'rl_butt_img_or_not', 'sanitize_text_field', 'style'); $bullets_img_main_url = WDW_S_Library::esc_sanitize_data($params_array, 'bullets_img_main_url', 'esc_url'); $bullets_img_main_url = str_replace(site_url(), '{site_url}', $bullets_img_main_url); $bullets_img_hov_url = WDW_S_Library::esc_sanitize_data($params_array, 'bullets_img_hov_url', 'esc_url'); $bullets_img_hov_url = str_replace(site_url(), '{site_url}', $bullets_img_hov_url); $bull_butt_img_or_not = WDW_S_Library::esc_sanitize_data($params_array, 'bull_butt_img_or_not', 'sanitize_text_field', 'style'); $play_paus_butt_img_or_not = WDW_S_Library::esc_sanitize_data($params_array, 'play_paus_butt_img_or_not', 'sanitize_text_field', 'style'); $play_butt_url = WDW_S_Library::esc_sanitize_data($params_array, 'play_butt_url', 'esc_url'); $play_butt_url = str_replace(site_url(), '{site_url}', $play_butt_url); $play_butt_hov_url = WDW_S_Library::esc_sanitize_data($params_array, 'play_butt_hov_url', 'esc_url'); $play_butt_hov_url = str_replace(site_url(), '{site_url}', $play_butt_hov_url); $paus_butt_url = WDW_S_Library::esc_sanitize_data($params_array, 'paus_butt_url', 'esc_url'); $paus_butt_url = str_replace(site_url(), '{site_url}', $paus_butt_url); $paus_butt_hov_url = WDW_S_Library::esc_sanitize_data($params_array, 'paus_butt_hov_url', 'esc_url'); $paus_butt_hov_url = str_replace(site_url(), '{site_url}', $paus_butt_hov_url); $start_slide_num = (int) WDW_S_Library::esc_sanitize_data($params_array, 'start_slide_num', '', 1); $effect_duration = (int) WDW_S_Library::esc_sanitize_data($params_array, 'effect_duration', '', 800); $carousel = ((isset($params_array['carousel']) && !WDS()->is_free) ? (int) WDW_S_Library::esc_sanitize_data($params_array, 'carousel', '', 0) : 0); $carousel_image_counts = ( (isset($params_array['carousel_image_counts']) && !WDS()->is_free) ? (int) WDW_S_Library::esc_sanitize_data($params_array, 'carousel_image_counts', '', 0) : 7 ); $carousel_image_parameters = ( (isset($params_array['carousel_image_parameters']) && !WDS()->is_free) ? WDW_S_Library::esc_sanitize_data($params_array, 'carousel_image_parameters', '', 0.85) : 0.85 ); $carousel_fit_containerWidth = ((isset($params_array['carousel_fit_containerWidth']) && !WDS()->is_free) ? (int) WDW_S_Library::esc_sanitize_data($params_array, 'carousel_fit_containerWidth', '', 0) : 0); $carousel_width = ((isset($params_array['carousel_width']) && !WDS()->is_free) ? (int) WDW_S_Library::esc_sanitize_data($params_array, 'carousel_width', '', 1000) : 1000); $parallax_effect = ((isset($params_array['parallax_effect']) && !WDS()->is_free) ? (int) WDW_S_Library::esc_sanitize_data($params_array, 'parallax_effect', '', 0) : 0); $mouse_swipe_nav = ((isset($params_array['mouse_swipe_nav'])) ? (int) WDW_S_Library::esc_sanitize_data($params_array, 'mouse_swipe_nav', '', 0) : 0); $bull_hover = (int) WDW_S_Library::esc_sanitize_data($params_array, 'bull_hover', '', 1); $touch_swipe_nav = (int) WDW_S_Library::esc_sanitize_data($params_array, 'touch_swipe_nav', '', 1); $mouse_wheel_nav = (int) WDW_S_Library::esc_sanitize_data($params_array, 'mouse_wheel_nav', '', 0); $keyboard_nav = (int) WDW_S_Library::esc_sanitize_data($params_array, 'keyboard_nav', '', 0); $show_thumbnail = (int) WDW_S_Library::esc_sanitize_data($params_array, 'show_thumbnail', '', 0); $thumb_size = WDW_S_Library::esc_sanitize_data($params_array, 'thumb_size', '', '0.3'); $fixed_bg = (int) WDW_S_Library::esc_sanitize_data($params_array, 'fixed_bg', '', 0); $smart_crop = (int) WDW_S_Library::esc_sanitize_data($params_array, 'smart_crop', '', 0); $crop_image_position = WDW_S_Library::esc_sanitize_data($params_array, 'crop_image_position', 'sanitize_text_field', 'middle-center'); $javascript = ((isset($params_array['javascript'])) ? $params_array['javascript'] : ''); $carousel_degree = (int) WDW_S_Library::esc_sanitize_data($params_array, 'carousel_degree', '', 0); $carousel_grayscale = (int) WDW_S_Library::esc_sanitize_data($params_array, 'carousel_grayscale', '', 0); $carousel_transparency = (int) WDW_S_Library::esc_sanitize_data($params_array, 'carousel_transparency', '', 0); $bull_back_act_color = WDW_S_Library::esc_sanitize_data($params_array, 'bull_back_act_color', 'sanitize_text_field', '000000'); $bull_back_color = WDW_S_Library::esc_sanitize_data($params_array, 'bull_back_color', 'sanitize_text_field', 'CCCCCC'); $bull_radius = WDW_S_Library::esc_sanitize_data($params_array, 'bull_radius', 'sanitize_text_field', '20px'); $slider_loop = (int) WDW_S_Library::esc_sanitize_data($params_array, 'slider_loop', '', 1); $hide_on_mobile = (int) WDW_S_Library::esc_sanitize_data($params_array, 'hide_on_mobile', '', 0); $twoway_slideshow = (int) WDW_S_Library::esc_sanitize_data($params_array, 'twoway_slideshow', '', 0); $full_width_for_mobile = (int) WDW_S_Library::esc_sanitize_data($params_array, 'full_width_for_mobile', '', 0); $order_dir = WDW_S_Library::esc_sanitize_data($params_array, 'order_dir', 'sanitize_text_field', 'asc'); $data = array( 'name' => $name, 'published' => $published, 'full_width' => $full_width, 'auto_height' => $auto_height, 'width' => $width, 'height' => $height, 'align' => $align, 'effect' => $effect, 'time_intervval' => $time_intervval, 'autoplay' => $autoplay, 'shuffle' => $shuffle, 'music' => $music, 'music_url' => $music_url, 'preload_images' => $preload_images, 'background_color' => $background_color, 'background_transparent' => $background_transparent, 'glb_border_width' => $glb_border_width, 'glb_border_style' => $glb_border_style, 'glb_border_color' => $glb_border_color, 'glb_border_radius' => $glb_border_radius, 'glb_margin' => $glb_margin, 'glb_box_shadow' => $glb_box_shadow, 'image_right_click' => $image_right_click, 'prev_next_butt' => $prev_next_butt, 'play_paus_butt' => $play_paus_butt, 'navigation' => $navigation, 'rl_butt_style' => $rl_butt_style, 'rl_butt_size' => $rl_butt_size, 'pp_butt_size' => $pp_butt_size, 'butts_color' => $butts_color, 'butts_transparent' => $butts_transparent, 'hover_color' => $hover_color, 'nav_border_width' => $nav_border_width, 'nav_border_style' => $nav_border_style, 'nav_border_color' => $nav_border_color, 'nav_border_radius' => $nav_border_radius, 'nav_bg_color' => $nav_bg_color, 'bull_position' => $bull_position, 'bull_style' => $bull_style, 'bull_size' => $bull_size, 'bull_color' => $bull_color, 'bull_act_color' => $bull_act_color, 'bull_margin' => $bull_margin, 'film_pos' => $film_pos, 'film_small_screen' => $film_small_screen, 'film_thumb_width' => $film_thumb_width, 'film_thumb_height' => $film_thumb_height, 'film_bg_color' => $film_bg_color, 'film_tmb_margin' => $film_tmb_margin, 'film_act_border_width' => $film_act_border_width, 'film_act_border_style' => $film_act_border_style, 'film_act_border_color' => $film_act_border_color, 'film_dac_transparent' => $film_dac_transparent, 'built_in_watermark_type' => $built_in_watermark_type, 'built_in_watermark_position' => $built_in_watermark_position, 'built_in_watermark_size' => $built_in_watermark_size, 'built_in_watermark_url' => $built_in_watermark_url, 'built_in_watermark_text' => $built_in_watermark_text, 'built_in_watermark_opacity' => $built_in_watermark_opacity, 'built_in_watermark_font_size' => $built_in_watermark_font_size, 'built_in_watermark_font' => $built_in_watermark_font, 'built_in_watermark_color' => $built_in_watermark_color, 'css' => $css, 'timer_bar_type' => $timer_bar_type, 'timer_bar_size' => $timer_bar_size, 'timer_bar_color' => $timer_bar_color, 'timer_bar_transparent' => $timer_bar_transparent, 'layer_out_next' => $layer_out_next, 'stop_animation' => $stop_animation, 'right_butt_url' => $right_butt_url, 'left_butt_url' => $left_butt_url, 'right_butt_hov_url' => $right_butt_hov_url, 'left_butt_hov_url' => $left_butt_hov_url, 'rl_butt_img_or_not' => $rl_butt_img_or_not, 'bullets_img_main_url' => $bullets_img_main_url, 'bullets_img_hov_url' => $bullets_img_hov_url, 'bull_butt_img_or_not' => $bull_butt_img_or_not, 'play_paus_butt_img_or_not' => $play_paus_butt_img_or_not, 'play_butt_url' => $play_butt_url, 'play_butt_hov_url' => $play_butt_hov_url, 'paus_butt_url' => $paus_butt_url, 'paus_butt_hov_url' => $paus_butt_hov_url, 'start_slide_num' => $start_slide_num, 'effect_duration' => $effect_duration, 'carousel' => $carousel, 'carousel_image_counts' => $carousel_image_counts, 'carousel_image_parameters' => $carousel_image_parameters, 'carousel_fit_containerWidth' => $carousel_fit_containerWidth, 'carousel_width' => $carousel_width, 'parallax_effect' => $parallax_effect, 'mouse_swipe_nav' => $mouse_swipe_nav, 'bull_hover' => $bull_hover, 'touch_swipe_nav' => $touch_swipe_nav, 'mouse_wheel_nav' => $mouse_wheel_nav, 'keyboard_nav' => $keyboard_nav, 'show_thumbnail' => $show_thumbnail, 'thumb_size' => $thumb_size, 'fixed_bg' => $fixed_bg, 'smart_crop' => $smart_crop, 'crop_image_position' => $crop_image_position, 'javascript' => $javascript, 'carousel_degree' => $carousel_degree, 'carousel_grayscale' => $carousel_grayscale, 'carousel_transparency' => $carousel_transparency, 'bull_back_act_color' => $bull_back_act_color, 'bull_back_color' => $bull_back_color, 'bull_radius' => $bull_radius, 'slider_loop' => $slider_loop, 'hide_on_mobile' => $hide_on_mobile, 'twoway_slideshow' => $twoway_slideshow, 'full_width_for_mobile' => $full_width_for_mobile, 'order_dir' => $order_dir, ); if ( !$slider_id ) { $save = $wpdb->insert($wpdb->prefix . 'wdsslider', $data); $slider_id = (int) $wpdb->insert_id; $_POST['current_id'] = $slider_id; } else { $save = $wpdb->update($wpdb->prefix . 'wdsslider', $data, array('id' => $slider_id)); } $status = 2; if ($save !== FALSE) { $status = 1; } $data = array(); $data['id'] = $slider_id; $data['status'] = $status; return $data; } /** * Save slide DB. * * @param int $id */ public function save_slide_db( $id = 0 ) { global $wpdb; $allow = TRUE; if ( WDS()->is_free && get_option("wds_theme_version") ) { $allow = FALSE; } $slider_id = (isset($_POST['current_id']) ? (int) $_POST['current_id'] : $id); $save_as_copy = (int) WDW_S_Library::get('save_as_copy', 0); if ( !$slider_id ) { $slider_id = $wpdb->get_var('SELECT MAX(id) FROM ' . $wpdb->prefix . 'wdsslider'); } $slides = isset($_POST['slides']) ? $_POST['slides'] : array(); foreach ($slides as $slide) { $params_array = json_decode(stripslashes($slide), TRUE); $slide_id = (isset($params_array['id']) ? $params_array['id'] : 0); if ( $slide_id ) { $del_layer_ids_string = ( (isset($params_array['slide' . $slide_id . '_del_layer_ids_string']) && !$save_as_copy ) ? rtrim(sanitize_text_field($params_array['slide' . $slide_id . '_del_layer_ids_string']), ',') : ''); if ($del_layer_ids_string) { $wpdb->query('DELETE FROM ' . $wpdb->prefix . 'wdslayer WHERE id IN (' . $del_layer_ids_string . ')'); } $title = WDW_S_Library::esc_sanitize_data($params_array, 'title' . $slide_id, 'sanitize_text_field'); $type = WDW_S_Library::esc_sanitize_data($params_array, 'type' . $slide_id, 'sanitize_text_field'); $order = WDW_S_Library::esc_sanitize_data($params_array, 'order' . $slide_id, 'sanitize_text_field'); $published = (int) WDW_S_Library::esc_sanitize_data($params_array, 'published' . $slide_id, '', 0); $target_attr_slide = (int) WDW_S_Library::esc_sanitize_data($params_array, 'target_attr_slide' . $slide_id, '', 0); $link = ((isset($params_array['link' . $slide_id])) ? WDW_S_Library::esc_sanitize_data($params_array, 'link' . $slide_id, 'sanitize_text_field') : ( ($type == 'video') ? 0 : '') ); $image_url = WDW_S_Library::esc_sanitize_data($params_array, 'image_url' . $slide_id, 'sanitize_text_field'); $image_url = str_replace(site_url(), '{site_url}', $image_url); $thumb_url = WDW_S_Library::esc_sanitize_data($params_array, 'thumb_url' . $slide_id, 'esc_url'); $thumb_url = str_replace(site_url(), '{site_url}', $thumb_url); $att_width = WDW_S_Library::esc_sanitize_data($params_array, 'att_width' . $slide_id, 'sanitize_text_field'); $att_height = WDW_S_Library::esc_sanitize_data($params_array, 'att_height' . $slide_id, 'sanitize_text_field'); $video_duration = WDW_S_Library::esc_sanitize_data($params_array, 'video_duration' . $slide_id, 'sanitize_text_field'); $youtube_rel_video = ((isset($params_array['youtube_rel_video' . $slide_id]) && !WDS()->is_free) ? (int) WDW_S_Library::esc_sanitize_data($params_array, 'youtube_rel_video' . $slide_id, 'sanitize_text_field', 0) : 0); $video_loop = ((isset($params_array['video_loop' . $slide_id]) && !WDS()->is_free) ? (int) WDW_S_Library::esc_sanitize_data($params_array, 'video_loop' . $slide_id, '', 1) : 0); $fillmode = WDW_S_Library::esc_sanitize_data($params_array, 'fillmode' . $slide_id, 'sanitize_text_field'); $title_dimension = array(); $title_dimension['title'] = $title; $title_dimension['att_width'] = $att_width; $title_dimension['att_height'] = $att_height; $title_dimension['video_duration'] = $video_duration; $title_dimension = json_encode($title_dimension); $data = array( 'slider_id' => $slider_id, 'title' => $title_dimension, 'type' => $type, 'order' => $order, 'published' => $published, 'link' => $link, 'image_url' => $image_url, 'thumb_url' => $thumb_url, 'target_attr_slide' => $target_attr_slide, 'youtube_rel_video' => $youtube_rel_video, 'video_loop' => $video_loop, 'fillmode' => $fillmode ); if (strpos($slide_id, 'pr') !== FALSE || $save_as_copy) { $wpdb->insert($wpdb->prefix . 'wdsslide', $data); $slide_id_pr = $wpdb->get_var('SELECT MAX(id) FROM ' . $wpdb->prefix . 'wdsslide'); } else { $wpdb->update($wpdb->prefix . 'wdsslide', $data, array('id' => $slide_id)); $slide_id_pr = $slide_id; } if ( !WDS()->is_free ) { $this->save_layer_db($slide_id, $slide_id_pr, $params_array); } } } } public function save_layer_db($slide_id, $slide_id_pr, $params_array) { global $wpdb; $save_as_copy = WDW_S_Library::get('save_as_copy', 0); $layer_ids_string = (isset($params_array['slide' . $slide_id . '_layer_ids_string']) ? rtrim(sanitize_text_field($params_array['slide' . $slide_id . '_layer_ids_string']), ',') : ''); $layer_id_array = explode(',', $layer_ids_string); foreach ($layer_id_array as $layer_id) { if ($layer_id) { $prefix = 'slide' . $slide_id . '_layer' . $layer_id; $json_string = (isset($params_array[$prefix . '_json']) ? $params_array[$prefix . '_json'] : ''); $params_array_layer = json_decode($json_string, TRUE); $title = WDW_S_Library::esc_sanitize_data($params_array_layer, 'title', 'sanitize_text_field'); $type = WDW_S_Library::esc_sanitize_data($params_array_layer, 'type', 'sanitize_text_field'); $depth = WDW_S_Library::esc_sanitize_data($params_array_layer, 'depth', 'sanitize_text_field'); $text = ((isset($params_array_layer['text'])) ? stripcslashes($params_array_layer['text']) : ''); $link = WDW_S_Library::esc_sanitize_data($params_array_layer, 'link', 'sanitize_text_field'); $target_attr_layer = (int) WDW_S_Library::esc_sanitize_data($params_array_layer, 'target_attr_layer', 'sanitize_text_field', 0); $left = WDW_S_Library::esc_sanitize_data($params_array_layer, 'left', 'sanitize_text_field'); $top = WDW_S_Library::esc_sanitize_data($params_array_layer, 'top', 'sanitize_text_field'); $start = WDW_S_Library::esc_sanitize_data($params_array_layer, 'start', 'sanitize_text_field'); $end = WDW_S_Library::esc_sanitize_data($params_array_layer, 'end', 'sanitize_text_field'); $published = (int) WDW_S_Library::esc_sanitize_data($params_array_layer, 'published', '',0); $color = WDW_S_Library::esc_sanitize_data($params_array_layer, 'color', 'sanitize_text_field'); $size = WDW_S_Library::esc_sanitize_data($params_array_layer, 'size', 'sanitize_text_field'); $ffamily = WDW_S_Library::esc_sanitize_data($params_array_layer, 'ffamily', 'sanitize_text_field'); $fweight = WDW_S_Library::esc_sanitize_data($params_array_layer, 'fweight', 'sanitize_text_field'); $padding = WDW_S_Library::esc_sanitize_data($params_array_layer, 'padding', 'sanitize_text_field'); $fbgcolor = WDW_S_Library::esc_sanitize_data($params_array_layer, 'fbgcolor', 'sanitize_text_field'); $transparent = WDW_S_Library::esc_sanitize_data($params_array_layer, 'transparent', 'sanitize_text_field'); $border_width = WDW_S_Library::esc_sanitize_data($params_array_layer, 'border_width', 'sanitize_text_field'); $border_style = WDW_S_Library::esc_sanitize_data($params_array_layer, 'border_style', 'sanitize_text_field'); $border_color = WDW_S_Library::esc_sanitize_data($params_array_layer, 'border_color', 'sanitize_text_field'); $border_radius = WDW_S_Library::esc_sanitize_data($params_array_layer, 'border_radius', 'sanitize_text_field'); $shadow = WDW_S_Library::esc_sanitize_data($params_array_layer, 'shadow', 'sanitize_text_field'); $image_url = WDW_S_Library::esc_sanitize_data($params_array_layer, 'image_url', 'esc_url'); $image_url = str_replace(site_url(), '{site_url}', $image_url); $image_width = WDW_S_Library::esc_sanitize_data($params_array_layer, 'image_width', 'sanitize_text_field'); $image_height = WDW_S_Library::esc_sanitize_data($params_array_layer, 'image_height', 'sanitize_text_field'); $image_scale = WDW_S_Library::esc_sanitize_data($params_array_layer, 'image_scale', 'sanitize_text_field'); $alt = WDW_S_Library::esc_sanitize_data($params_array_layer, 'alt', 'sanitize_text_field'); $imgtransparent = WDW_S_Library::esc_sanitize_data($params_array_layer, 'imgtransparent', 'sanitize_text_field'); $social_button = WDW_S_Library::esc_sanitize_data($params_array_layer, 'social_button', 'sanitize_text_field'); $hover_color = WDW_S_Library::esc_sanitize_data($params_array_layer, 'hover_color', 'sanitize_text_field'); $layer_effect_in = WDW_S_Library::esc_sanitize_data($params_array_layer, 'layer_effect_in', 'sanitize_text_field'); $layer_effect_out = WDW_S_Library::esc_sanitize_data($params_array_layer, 'layer_effect_out', 'sanitize_text_field'); $duration_eff_in = (int) WDW_S_Library::esc_sanitize_data($params_array_layer, 'duration_eff_in', '', 3); $duration_eff_out = (int) WDW_S_Library::esc_sanitize_data($params_array_layer, 'duration_eff_out', '', 3); $hotp_width = WDW_S_Library::esc_sanitize_data($params_array_layer, 'hotp_width', 'sanitize_text_field'); $hotp_fbgcolor = WDW_S_Library::esc_sanitize_data($params_array_layer, 'hotp_fbgcolor', 'sanitize_text_field'); $hotp_border_width = WDW_S_Library::esc_sanitize_data($params_array_layer, 'hotp_border_width', 'sanitize_text_field'); $hotp_border_style = WDW_S_Library::esc_sanitize_data($params_array_layer, 'hotp_border_style', 'sanitize_text_field'); $hotp_border_color = WDW_S_Library::esc_sanitize_data($params_array_layer, 'hotp_border_color', 'sanitize_text_field'); $hotp_border_radius = WDW_S_Library::esc_sanitize_data($params_array_layer, 'hotp_border_radius', 'sanitize_text_field'); $hotp_text_position = WDW_S_Library::esc_sanitize_data($params_array_layer, 'hotp_text_position', 'sanitize_text_field'); $google_fonts = WDW_S_Library::esc_sanitize_data($params_array_layer, 'google_fonts', 'sanitize_text_field'); $attr_width = WDW_S_Library::esc_sanitize_data($params_array_layer, 'attr_width', 'sanitize_text_field'); $attr_height = WDW_S_Library::esc_sanitize_data($params_array_layer, 'attr_height', 'sanitize_text_field'); $add_class = WDW_S_Library::esc_sanitize_data($params_array_layer, 'add_class', 'sanitize_text_field'); $layer_video_loop = (int) WDW_S_Library::esc_sanitize_data($params_array_layer, 'layer_video_loop', 'sanitize_text_field', 0); $youtube_rel_layer_video = (int) WDW_S_Library::esc_sanitize_data($params_array_layer, 'youtube_rel_layer_video', 'sanitize_text_field', 0); $hotspot_animation = (int) WDW_S_Library::esc_sanitize_data($params_array_layer, 'hotspot_animation', 'sanitize_text_field', 0); $layer_callback_list = WDW_S_Library::esc_sanitize_data($params_array_layer, 'layer_callback_list', 'sanitize_text_field'); $hotspot_text_display = WDW_S_Library::esc_sanitize_data($params_array_layer, 'hotspot_text_display', 'sanitize_text_field'); $hover_color_text = WDW_S_Library::esc_sanitize_data($params_array_layer, 'hover_color_text', 'sanitize_text_field'); $text_alignment = WDW_S_Library::esc_sanitize_data($params_array_layer, 'text_alignment', 'sanitize_text_field'); $link_to_slide = (int) WDW_S_Library::esc_sanitize_data($params_array_layer, 'link_to_slide', 'sanitize_text_field', 0); $align_layer = (int) WDW_S_Library::esc_sanitize_data($params_array_layer, 'align_layer', 'sanitize_text_field', 0); $static_layer = (int) WDW_S_Library::esc_sanitize_data($params_array_layer, 'static_layer', 'sanitize_text_field', 0); $infinite_in = (int) WDW_S_Library::esc_sanitize_data($params_array_layer, 'infinite_in', 'sanitize_text_field', 1); $infinite_out = (int) WDW_S_Library::esc_sanitize_data($params_array_layer, 'infinite_out', 'sanitize_text_field', 1); $min_size = (int) WDW_S_Library::esc_sanitize_data($params_array_layer, 'min_size', 'sanitize_text_field', 11); $title_dimension = array(); $title_dimension['title'] = $title; $title_dimension['attr_width'] = $attr_width; $title_dimension['attr_height'] = $attr_height; $title_dimension = json_encode($title_dimension); if ($title) { if (strpos($layer_id, 'pr_') !== FALSE || $save_as_copy) { $save = $wpdb->insert($wpdb->prefix . 'wdslayer', array( 'slide_id' => $slide_id_pr, 'title' => $title_dimension, 'type' => $type, 'depth' => $depth, 'text' => $text, 'link' => $link, 'left' => $left, 'top' => $top, 'start' => $start, 'end' => $end, 'published' => $published, 'color' => $color, 'size' => $size, 'ffamily' => $ffamily, 'fweight' => $fweight, 'padding' => $padding, 'fbgcolor' => $fbgcolor, 'transparent' => $transparent, 'border_width' => $border_width, 'border_style' => $border_style, 'border_color' => $border_color, 'border_radius' => $border_radius, 'shadow' => $shadow, 'image_url' => $image_url, 'image_width' => $image_width, 'image_height' => $image_height, 'image_scale' => $image_scale, 'alt' => $alt, 'imgtransparent' => $imgtransparent, 'social_button' => $social_button, 'hover_color' => $hover_color, 'layer_effect_in' => $layer_effect_in, 'layer_effect_out' => $layer_effect_out, 'duration_eff_in' => $duration_eff_in, 'duration_eff_out' => $duration_eff_out, 'target_attr_layer' => $target_attr_layer, 'hotp_width' => $hotp_width, 'hotp_fbgcolor' => $hotp_fbgcolor, 'hotp_border_width' => $hotp_border_width, 'hotp_border_style' => $hotp_border_style, 'hotp_border_color' => $hotp_border_color, 'hotp_border_radius' => $hotp_border_radius, 'hotp_text_position' => $hotp_text_position, 'google_fonts' => $google_fonts, 'add_class' => $add_class, 'layer_video_loop' => $layer_video_loop, 'youtube_rel_layer_video' => $youtube_rel_layer_video, 'hotspot_animation' => $hotspot_animation, 'layer_callback_list' => $layer_callback_list, 'hotspot_text_display' => $hotspot_text_display, 'hover_color_text' => $hover_color_text, 'text_alignment' => $text_alignment, 'link_to_slide' => $link_to_slide, 'align_layer' => $align_layer, 'static_layer' => $static_layer, 'infinite_in' => $infinite_in, 'infinite_out' => $infinite_out, 'min_size' => $min_size, )); } else { $save = $wpdb->update($wpdb->prefix . 'wdslayer', array( 'title' => $title_dimension, 'type' => $type, 'depth' => $depth, 'text' => $text, 'link' => $link, 'left' => $left, 'top' => $top, 'start' => $start, 'end' => $end, 'published' => $published, 'color' => $color, 'size' => $size, 'ffamily' => $ffamily, 'fweight' => $fweight, 'padding' => $padding, 'fbgcolor' => $fbgcolor, 'transparent' => $transparent, 'border_width' => $border_width, 'border_style' => $border_style, 'border_color' => $border_color, 'border_radius' => $border_radius, 'shadow' => $shadow, 'image_url' => $image_url, 'image_width' => $image_width, 'image_height' => $image_height, 'image_scale' => $image_scale, 'alt' => $alt, 'imgtransparent' => $imgtransparent, 'social_button' => $social_button, 'hover_color' => $hover_color, 'layer_effect_in' => $layer_effect_in, 'layer_effect_out' => $layer_effect_out, 'duration_eff_in' => $duration_eff_in, 'duration_eff_out' => $duration_eff_out, 'target_attr_layer' => $target_attr_layer, 'hotp_width' => $hotp_width, 'hotp_fbgcolor' => $hotp_fbgcolor, 'hotp_border_width' => $hotp_border_width, 'hotp_border_style' => $hotp_border_style, 'hotp_border_color' => $hotp_border_color, 'hotp_border_radius' => $hotp_border_radius, 'hotp_text_position' => $hotp_text_position, 'google_fonts' => $google_fonts, 'add_class' => $add_class, 'layer_video_loop' => $layer_video_loop, 'youtube_rel_layer_video' => $youtube_rel_layer_video, 'hotspot_animation' => $hotspot_animation, 'layer_callback_list' => $layer_callback_list, 'hotspot_text_display' => $hotspot_text_display, 'hover_color_text' => $hover_color_text, 'text_alignment' => $text_alignment, 'link_to_slide' => $link_to_slide, 'align_layer' => $align_layer, 'static_layer' => $static_layer, 'infinite_in' => $infinite_in, 'infinite_out' => $infinite_out, 'min_size' => $min_size, ), array('id' => $layer_id)); } } } } } public function set_watermark() { // Save before set watermark. $save = $this->save_slider_db(); $slider_id = $save['id']; $this->save_slide_db( $slider_id ); global $wpdb; $slider_images = $wpdb->get_col($wpdb->prepare('SELECT image_url FROM ' . $wpdb->prefix . 'wdsslide WHERE `slider_id`="%d"', $slider_id)); $slider = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'wdsslider WHERE `id`="%d"', $slider_id)); switch ($slider->built_in_watermark_type) { case 'text': { foreach ($slider_images as $slider_image) { if ($slider_image) { $slider_image = str_replace('{site_url}', site_url(), $slider_image); $slider_image_dir = str_replace(site_url() . '/', ABSPATH, $slider_image); $last_slash_pos = strrpos($slider_image_dir, '/') + 1; $dest_dir = substr($slider_image_dir, 0, $last_slash_pos); $image_name = substr($slider_image_dir, $last_slash_pos); $new_image = $dest_dir . '.original/' . $image_name; if (!is_dir($dest_dir . '.original')) { mkdir($dest_dir . '.original', 0777, TRUE); } if (!file_exists($new_image)) { copy($slider_image_dir, $new_image); } $this->set_text_watermark($slider_image_dir, $slider_image_dir, $slider->built_in_watermark_text, $slider->built_in_watermark_font, $slider->built_in_watermark_font_size, '#' . $slider->built_in_watermark_color, $slider->built_in_watermark_opacity, $slider->built_in_watermark_position); } } break; } case 'image': { foreach ($slider_images as $slider_image) { if ($slider_image) { $slider_image = str_replace('{site_url}', site_url(), $slider_image); $slider_image_dir = str_replace(site_url() . '/', ABSPATH, $slider_image); $last_slash_pos = strrpos($slider_image_dir, '/') + 1; $dest_dir = substr($slider_image_dir, 0, $last_slash_pos); $image_name = substr($slider_image_dir, $last_slash_pos); $new_image = $dest_dir . '.original/' . $image_name; if (!is_dir($dest_dir . '.original')) { mkdir($dest_dir . '.original', 0777, TRUE); } if (!file_exists($new_image)) { copy($slider_image_dir, $new_image); } $slider->built_in_watermark_url = str_replace('{site_url}', site_url(), $slider->built_in_watermark_url); $watermark_image_dir = str_replace(site_url() . '/', ABSPATH, $slider->built_in_watermark_url); $this->set_image_watermark($slider_image_dir, $slider_image_dir, $watermark_image_dir, $slider->built_in_watermark_size, $slider->built_in_watermark_size, $slider->built_in_watermark_position); } } break; } default: { break; } } } public function reset_watermark() { // Save before reset watermark. $save = $this->save_slider_db(); $slider_id = $save['id']; $this->save_slide_db( $slider_id ); global $wpdb; $slider_images = $wpdb->get_col($wpdb->prepare('SELECT image_url FROM ' . $wpdb->prefix . 'wdsslide WHERE `slider_id`="%d"', $slider_id)); foreach ($slider_images as $slider_image) { if ($slider_image) { $slider_image = str_replace('{site_url}', site_url(), $slider_image); $slider_image_dir = str_replace(site_url() . '/', ABSPATH, $slider_image); $last_slash_pos = strrpos($slider_image_dir, '/') + 1; $dest_dir = substr($slider_image_dir, 0, $last_slash_pos); $image_name = substr($slider_image_dir, $last_slash_pos); $new_image = $dest_dir . '.original/' . $image_name; if (file_exists($new_image)) { copy($new_image, $slider_image_dir); } else { // For 1.0.1 version. $last_dot_pos = strrpos($slider_image_dir, '.'); $base_name = substr($slider_image_dir, 0, $last_dot_pos); $ext = substr($slider_image_dir, strlen($base_name)); $new_image = $base_name . '-original' . $ext; if (file_exists($new_image)) { copy($new_image, $slider_image_dir); } } } } } function wds_hex2rgb($hex) { $hex = str_replace("#", "", $hex); if (strlen($hex) == 3) { $r = hexdec(substr($hex,0,1).substr($hex,0,1)); $g = hexdec(substr($hex,1,1).substr($hex,1,1)); $b = hexdec(substr($hex,2,1).substr($hex,2,1)); } else { $r = hexdec(substr($hex,0,2)); $g = hexdec(substr($hex,2,2)); $b = hexdec(substr($hex,4,2)); } $rgb = array($r, $g, $b); return $rgb; } function wds_imagettfbboxdimensions($font_size, $font_angle, $font, $text) { $box = @ImageTTFBBox($font_size, $font_angle, $font, $text) or die; $max_x = max(array($box[0], $box[2], $box[4], $box[6])); $max_y = max(array($box[1], $box[3], $box[5], $box[7])); $min_x = min(array($box[0], $box[2], $box[4], $box[6])); $min_y = min(array($box[1], $box[3], $box[5], $box[7])); return array( "width" => ($max_x - $min_x), "height" => ($max_y - $min_y) ); } function set_text_watermark($original_filename, $dest_filename, $watermark_text, $watermark_font, $watermark_font_size, $watermark_color, $watermark_transparency, $watermark_position) { $original_filename = htmlspecialchars_decode($original_filename, ENT_COMPAT | ENT_QUOTES); $dest_filename = htmlspecialchars_decode($dest_filename, ENT_COMPAT | ENT_QUOTES); $watermark_transparency = 127 - ((100 - $watermark_transparency) * 1.27); @ini_set('memory_limit', '-1'); list($width, $height, $type) = getimagesize($original_filename); $watermark_image = imagecreatetruecolor($width, $height); $watermark_color = $this->wds_hex2rgb($watermark_color); $watermark_color = imagecolorallocatealpha($watermark_image, $watermark_color[0], $watermark_color[1], $watermark_color[2], $watermark_transparency); $watermark_font = WDS()->plugin_dir . '/fonts/' . $watermark_font; $watermark_font_size = ($height * $watermark_font_size / 500); $watermark_position = explode('-', $watermark_position); $watermark_sizes = $this->wds_imagettfbboxdimensions($watermark_font_size, 0, $watermark_font, $watermark_text); $top = $height - 5; $left = $width - $watermark_sizes['width'] - 5; switch ($watermark_position[0]) { case 'top': $top = $watermark_sizes['height'] + 5; break; case 'middle': $top = ($height + $watermark_sizes['height']) / 2; break; } switch ($watermark_position[1]) { case 'left': $left = 5; break; case 'center': $left = ($width - $watermark_sizes['width']) / 2; break; } if ($type == 2) { $image = imagecreatefromjpeg($original_filename); imagettftext($image, $watermark_font_size, 0, $left, $top, $watermark_color, $watermark_font, $watermark_text); imagejpeg ($image, $dest_filename, 100); imagedestroy($image); } elseif ($type == 3) { $image = imagecreatefrompng($original_filename); imagettftext($image, $watermark_font_size, 0, $left, $top, $watermark_color, $watermark_font, $watermark_text); imageColorAllocateAlpha($image, 0, 0, 0, 127); imagealphablending($image, FALSE); imagesavealpha($image, TRUE); imagepng($image, $dest_filename, 9); imagedestroy($image); } elseif ($type == 1) { $image = imagecreatefromgif($original_filename); imageColorAllocateAlpha($watermark_image, 0, 0, 0, 127); imagecopy($watermark_image, $image, 0, 0, 0, 0, $width, $height); imagettftext($watermark_image, $watermark_font_size, 0, $left, $top, $watermark_color, $watermark_font, $watermark_text); imagealphablending($watermark_image, FALSE); imagesavealpha($watermark_image, TRUE); imagegif($watermark_image, $dest_filename); imagedestroy($image); } imagedestroy($watermark_image); @ini_restore('memory_limit'); } function set_image_watermark($original_filename, $dest_filename, $watermark_url, $watermark_height, $watermark_width, $watermark_position) { $original_filename = htmlspecialchars_decode($original_filename, ENT_COMPAT | ENT_QUOTES); $dest_filename = htmlspecialchars_decode($dest_filename, ENT_COMPAT | ENT_QUOTES); $watermark_url = htmlspecialchars_decode($watermark_url, ENT_COMPAT | ENT_QUOTES); list($width, $height, $type) = getimagesize($original_filename); list($width_watermark, $height_watermark, $type_watermark) = getimagesize($watermark_url); $watermark_width = $width * $watermark_width / 100; $watermark_height = $height_watermark * $watermark_width / $width_watermark; $watermark_position = explode('-', $watermark_position); $top = $height - $watermark_height - 5; $left = $width - $watermark_width - 5; switch ($watermark_position[0]) { case 'top': $top = 5; break; case 'middle': $top = ($height - $watermark_height) / 2; break; } switch ($watermark_position[1]) { case 'left': $left = 5; break; case 'center': $left = ($width - $watermark_width) / 2; break; } @ini_set('memory_limit', '-1'); if ($type_watermark == 2) { $watermark_image = imagecreatefromjpeg($watermark_url); } elseif ($type_watermark == 3) { $watermark_image = imagecreatefrompng($watermark_url); } elseif ($type_watermark == 1) { $watermark_image = imagecreatefromgif($watermark_url); } else { return false; } $watermark_image_resized = imagecreatetruecolor($watermark_width, $watermark_height); imagecolorallocatealpha($watermark_image_resized, 255, 255, 255, 127); imagealphablending($watermark_image_resized, FALSE); imagesavealpha($watermark_image_resized, TRUE); imagecopyresampled ($watermark_image_resized, $watermark_image, 0, 0, 0, 0, $watermark_width, $watermark_height, $width_watermark, $height_watermark); if ($type == 2) { $image = imagecreatefromjpeg($original_filename); imagecopy($image, $watermark_image_resized, $left, $top, 0, 0, $watermark_width, $watermark_height); if ($dest_filename <> '') { imagejpeg ($image, $dest_filename, 100); } else { header('Content-Type: image/jpeg'); imagejpeg($image, null, 100); }; imagedestroy($image); } elseif ($type == 3) { $image = imagecreatefrompng($original_filename); imagecopy($image, $watermark_image_resized, $left, $top, 0, 0, $watermark_width, $watermark_height); imagealphablending($image, FALSE); imagesavealpha($image, TRUE); imagepng($image, $dest_filename, 9); imagedestroy($image); } elseif ($type == 1) { $image = imagecreatefromgif($original_filename); $tempimage = imagecreatetruecolor($width, $height); imagecopy($tempimage, $image, 0, 0, 0, 0, $width, $height); imagecopy($tempimage, $watermark_image_resized, $left, $top, 0, 0, $watermark_width, $watermark_height); imagegif($tempimage, $dest_filename); imagedestroy($image); imagedestroy($tempimage); } imagedestroy($watermark_image); @ini_restore('memory_limit'); } /** * Create frontend js file. * * @param int $id * * @return mixed */ private function create_frontend_js_file( $id = 0 ) { require_once WDS()->plugin_dir . "/admin/models/WDSModelSliders_wds.php"; $model = new WDSModelSliders_wds(); return $model->create_frontend_js_file( $id = 0 ); } /** * Remove frontend js file. * * @param int $id */ private function remove_frontend_js_file( $id = 0 ) { $wp_upload_dir = wp_upload_dir(); if ( is_file($wp_upload_dir['basedir'] . '/slider-wd-scripts/script-' . $id . '.js') ){ unlink( $wp_upload_dir['basedir'] . '/slider-wd-scripts/script-' . $id . '.js' ); } } }