function wowslider_add($folder = false, $update = 0, $delete = true) { global $wp_filesystem, $wpdb, $user_ID; static $id = 0; if (!$folder) { return $id; } if (!$wp_filesystem || !is_object($wp_filesystem)) { WP_Filesystem(); } if ($wp_filesystem->is_file($folder) && strtolower(substr($folder, -4)) == '.zip') { return wowslider_import($folder, $update, $delete); } $folder = rtrim(str_replace('\\', '/', $folder), '/') . '/'; if ($wp_filesystem->is_file($folder . 'slider.html') && $wp_filesystem->is_dir($folder . 'images/')) { $images = array(); $list = $wp_filesystem->dirlist($folder . ($wp_filesystem->is_dir($folder . 'tooltips/') ? 'tooltips/' : 'images/')); foreach ($list as $name => $v) { if ($v['type'] == 'f' && strtolower(substr($name, -4)) == '.jpg') { $images[] = $name; } if (count($images) == 10) { break; } } if (count($images)) { $name = ''; if (preg_match('/<!--\\s*Name:(.+?)\\s*-->/ui', file_get_contents($folder . 'slider.html'), $match)) { $name = trim($match[1]); } $date = current_time('mysql'); $insert = array('slider_name' => mb_substr($name, 0, 200), 'slider_author' => $user_ID, 'slider_date' => $date, 'slider_date_gmt' => get_gmt_from_date($date), 'slider_public' => 1, 'slider_images' => serialize($images)); if ($update) { $insert['ID'] = $update; } foreach ($insert as $k => $v) { $insert[$k] = '"' . $wpdb->escape($v) . '"'; } $wpdb->query('INSERT INTO ' . $wpdb->prefix . 'wowslider (' . implode(',', array_keys($insert)) . ') VALUES (' . implode(',', array_values($insert)) . ');'); $id = $update ? (int) $update : (int) $wpdb->get_var('SELECT LAST_INSERT_ID();'); if ($id) { $dest = WOWSLIDER_PLUGIN_PATH . 'sliders/' . $id . '/'; if ($wp_filesystem->is_dir($dest)) { $wp_filesystem->delete($dest, true); } $wp_filesystem->move($folder, $dest); if ($name == '') { $wpdb->query('UPDATE ' . $wpdb->prefix . 'wowslider SET slider_name = "' . $wpdb->escape('Slider ' . $id) . '" WHERE ID = ' . $id . ';'); } file_put_contents($dest . 'slider.html', str_replace('%ID%', $id, file_get_contents($dest . 'slider.html'))); file_put_contents($dest . 'style.css', str_replace('%ID%', $id, file_get_contents($dest . 'style.css'))); return true; } else { return __('Failure when added to the table.', 'wowslider'); } } } return __('Wrong slider.', 'wowslider'); }
function wowslider_add_new() { $tab = isset($_GET['tab']) && $_GET['tab'] == 'import' ? 'import' : 'upload'; $verif = isset($_POST['_wpnonce']) && wp_verify_nonce($_POST['_wpnonce'], 'wowslider-add-new'); if (isset($_GET['message'])) { if (isset($_GET['error'])) { echo '<div id="message" class="error"><p>' . htmlspecialchars(urldecode($_GET['message'])) . '</p></div>'; } else { if (isset($_GET['slider'])) { if ($_GET['message']) { echo '<div id="message" class="updated"><p>' . str_replace('%s', '<strong>./import/' . htmlspecialchars(urldecode($_GET['message'])) . '</strong>', __('Slider imported from file %s! To add it on the page use the shortcode:', 'wowslider')) . ' <strong><code>[wowslider id="' . (int) $_GET['slider'] . '"]</code></strong></p></div>'; } else { echo '<div id="message" class="updated"><p>' . __('Slider added! To add it on the page use the shortcode:', 'wowslider') . ' <strong><code>[wowslider id="' . (int) $_GET['slider'] . '"]</code></strong></p></div>'; } } } } if ($tab == 'upload' && isset($_FILES['sliderzip']) && $verif) { $file = wp_handle_upload($_FILES['sliderzip'], array('test_form' => false, 'mimes' => array('zip' => 'application/zip'))); if (isset($file['error'])) { exit(wp_redirect(admin_url('admin.php?page=wowslider-add-new&error=1&message=' . urlencode($file['error'])))); } else { if (($status = wowslider_add($file['file'])) !== true) { exit(wp_redirect(admin_url('admin.php?page=wowslider-add-new&error=1&message=' . urlencode($status)))); } else { exit(wp_redirect(admin_url('admin.php?page=wowslider-add-new&message=&slider=' . wowslider_add()))); } } } else { if ($tab == 'import' && $verif) { if (($status = wowslider_import()) !== true) { exit(wp_redirect(admin_url('admin.php?page=wowslider-add-new&tab=import&error=1&message=' . urlencode($status)))); } else { exit(wp_redirect(admin_url('admin.php?page=wowslider-add-new&tab=import&message=' . urlencode(wowslider_import('file')) . '&slider=' . wowslider_add()))); } } } ?> <div class="wrap"> <div id="icon-wowslider" class="icon32"><br /></div> <h2><?php _e('Add New Slider', 'wowslider'); ?> </h2> <ul class="subsubsub"> <li><a href="<?php echo admin_url('admin.php?page=wowslider-add-new'); ?> "<?php if ($tab == 'upload') { echo ' class="current"'; } ?> ><?php _e('Upload', 'wowslider'); ?> </a> |</li> <li><a href="<?php echo admin_url('admin.php?page=wowslider-add-new&tab=import'); ?> "<?php if ($tab == 'import') { echo ' class="current"'; } ?> ><?php _e('Import from Folder', 'wowslider'); ?> </a></li> </ul><br class="clear" /> <?php if ($tab == 'upload') { ?> <h4><?php _e('Add a slider in .zip format', 'wowslider'); ?> </h4> <p class="install-help"><?php echo str_replace('WOW Slider', '<a href="http://wowslider.com/wordpress-jquery-slider.html" target="_blank">WOW Slider</a>', __('Create a slider with WOW Slider first and then upload it here. <br/>Please see full tutorial+video here: <a href="http://wowslider.com/wordpress-jquery-slider.html" target="_blank">http://wowslider.com/wordpress-jquery-slider.html</a>', 'wowslider')); ?> </p> <form method="post" enctype="multipart/form-data" action="<?php echo self_admin_url('admin.php?page=wowslider-add-new&noheader=1'); ?> "> <?php wp_nonce_field('wowslider-add-new'); ?> <label class="screen-reader-text" for="sliderzip"><?php _e('Slider zip file', 'wowslider'); ?> </label> <input type="file" id="sliderzip" name="sliderzip" /> <input type="submit" class="button" value="<?php esc_attr_e('Add Now', 'wowslider'); ?> " /> </form> <p><div class="video"><object width="532" height="325"> <param name="movie" value="http://www.youtube.com/v/o82IuhWtgTo?fs=1" /> <param name="allowFullScreen" value="true" /> <param name="allowscriptaccess" value="never" /> <embed src="http://www.youtube.com/v/o82IuhWtgTo?fs=1" type="application/x-shockwave-flash" allowscriptaccess="never" allowfullscreen="true" width="532" height="325" /> </object></div></p> <?php } else { ?> <h4><?php _e('Add a slider in .zip format from folder', 'wowslider'); ?> </h4> <p class="install-help"><?php echo str_replace('WOW Slider', '<a href="http://wowslider.com/" target="_blank">WOW Slider</a>', __('Create a slider with WOW Slider app and copy to folder:', 'wowslider')); ?> "./wp-content/uploads/wow-slider-plugin/import/".</p> <br /> <form method="post" action="<?php echo self_admin_url('admin.php?page=wowslider-add-new&tab=import&noheader=1'); ?> "> <?php wp_nonce_field('wowslider-add-new'); ?> <input type="submit" class="button" value="<?php esc_attr_e('Import from Folder', 'wowslider'); ?> " /> </form> <?php } ?> </div> <?php }