static function Display() { wpfb_loadclass('Output', 'File', 'Category', 'TplLib'); $content = ''; $file_tpls = WPFB_Core::GetTpls('file'); $cat_tpls = WPFB_Core::GetTpls('cat'); if (true || !isset($file_tpls['filebrowser_admin'])) { $file_tpls['filebrowser_admin'] = '%file_small_icon% ' . '%file_display_name% (%file_size%) ' . '<!-- IF %file_user_can_edit% --><a href="%file_edit_url%" class="edit" onclick="wpfbFBEditFile(event)">%\'Edit\'%</a><!-- ENDIF -->' . '<!-- IF %file_user_can_edit% --><a href="#" class="delete" onclick="return confirm(\'Sure?\') && wpfbFBDelete(event) && false;">%\'Delete\'%</a><!-- ENDIF -->'; WPFB_Core::SetFileTpls($file_tpls); //WPFB_Admin::ParseTpls(); } if (true || !isset($cat_tpls['filebrowser_admin'])) { $cat_tpls['filebrowser_admin'] = '<span class="cat-icon" style="background-image:url(\'%cat_icon_url%\');"><span class="cat-icon-overlay"></span></span>' . '%cat_name% ' . '<!-- IF %cat_user_can_edit% --><a href="%cat_edit_url%" class="edit" onclick="wpfbFBEditCat(event)">%\'Edit\'%</a><!-- ENDIF -->' . '<!-- IF %cat_user_can_edit% --><a href="#" class="delete" onclick="return confirm(\'Sure?\') && wpfbFBDelete(event) && false;">%\'Delete\'%</a><!-- ENDIF -->'; WPFB_Core::SetCatTpls($cat_tpls); WPFB_Admin::ParseTpls(); } WPFB_Output::FileBrowser($content, 0, empty($_GET['wpfb_cat']) ? 0 : intval($_GET['wpfb_cat'])); WPFB_Core::PrintJS(); ?> <div class="wrap filebrowser-admin"> <h2><?php _e('File Browser', 'wp-filebase'); ?> </h2> <?php echo '<div>' . __('You can Drag & Drop (multiple) files directly on Categories to upload them. Dragging a category or an existing file to another category is also possible.', 'wp-filebase') . '</div>'; echo $content; ?> </div> <script> function wpfbFBEditCat(e) { e.stopPropagation(); } function wpfbFBEditFile(e) { e.stopPropagation(); } function wpfbFBDelete(e) { e.stopPropagation(); var t = jQuery(e.currentTarget).parents('li').first(); var d = {wpfb_action: 'delete'}; var tid = t.attr('id').split('-'); d[tid[tid.length-2]+'_id'] = +tid[tid.length-1]; jQuery.ajax({type: 'POST', url: wpfbConf.ajurl, data: d, //async: false, success: (function (data) { if (data == '1') { t.fadeOut(300, function() { t.remove(); }); } }) }); return false; } </script> <?php }
static function AdminBar() { global $wp_admin_bar; WPFB_Core::PrintJS(); $wp_admin_bar->add_menu(array('id' => WPFB, 'title' => WPFB_PLUGIN_NAME, 'href' => admin_url('admin.php?page=wpfilebase_manage'))); $wp_admin_bar->add_menu(array('parent' => WPFB, 'id' => WPFB . '-add-file', 'title' => __('Add File', WPFB), 'href' => admin_url('admin.php?page=wpfilebase_files#addfile'))); $current_object = get_queried_object(); if (!empty($current_object) && !empty($current_object->post_type) && $current_object->ID > 0) { $link = WPFB_PLUGIN_URI . 'editor_plugin.php?manage_attachments=1&post_id=' . $current_object->ID; $wp_admin_bar->add_menu(array('parent' => WPFB, 'id' => WPFB . '-attachments', 'title' => __('Manage attachments', WPFB), 'href' => $link, 'meta' => array('onclick' => 'window.open("' . $link . '", "wpfb-manage-attachments", "width=680,height=400,menubar=no,location=no,resizable=no,status=no,toolbar=no,scrollbars=yes");return false;'))); } $wp_admin_bar->add_menu(array('parent' => WPFB, 'id' => WPFB . '-add-file', 'title' => __('Sync Filebase', WPFB), 'href' => admin_url('admin.php?page=wpfilebase_manage&action=sync'))); $wp_admin_bar->add_menu(array('parent' => WPFB, 'id' => WPFB . '-toggle-context-menu', 'title' => __(!empty(WPFB_Core::$settings->file_context_menu) ? 'Disable file context menu' : 'Enable file context menu', WPFB), 'href' => 'javascript:;', 'meta' => array('onclick' => 'return wpfb_toggleContextMenu();'))); }
static function AdminBar() { global $wp_admin_bar; WPFB_Core::PrintJS(); $wp_admin_bar->add_menu(array('id' => WPFB, 'title' => WPFB_PLUGIN_NAME, 'href' => admin_url('admin.php?page=wpfilebase_manage'))); $wp_admin_bar->add_menu(array('parent' => WPFB, 'id' => WPFB . '-add-file', 'title' => __('Add File', 'wp-filebase'), 'href' => admin_url('admin.php?page=wpfilebase_files#addfile'))); $current_object = get_queried_object(); $is_filebrowser = false; if (!empty($current_object) && !empty($current_object->post_type) && $current_object->ID > 0) { $is_filebrowser = $current_object->ID == WPFB_Core::$settings->file_browser_post_id; $link = esc_attr(admin_url('?wpfilebase-screen=editor-plugin&manage_attachments=1&post_id=' . $current_object->ID)); $wp_admin_bar->add_menu(array('parent' => WPFB, 'id' => WPFB . '-attachments', 'title' => __('Manage attachments', 'wp-filebase'), 'href' => $link, 'meta' => array('onclick' => 'window.open("' . $link . '", "wpfb-manage-attachments", "width=680,height=400,menubar=no,location=no,resizable=no,status=no,toolbar=no,scrollbars=yes");return false;'))); } $wp_admin_bar->add_menu(array('parent' => WPFB, 'id' => WPFB . '-add-file', 'title' => __('Sync Filebase', 'wp-filebase'), 'href' => admin_url('admin.php?page=wpfilebase_manage&action=sync'))); $wp_admin_bar->add_menu(array('parent' => WPFB, 'id' => WPFB . '-toggle-context-menu', 'title' => !empty(WPFB_Core::$settings->file_context_menu) ? __('Disable file context menu', 'wp-filebase') : __('Enable file context menu', 'wp-filebase'), 'href' => 'javascript:;', 'meta' => array('onclick' => 'return wpfb_toggleContextMenu();'))); if ($is_filebrowser) { $wp_admin_bar->add_menu(array('parent' => WPFB, 'id' => WPFB . '-toggle-drag-drop', 'title' => get_user_option('wpfb_set_fbdd') ? __('Disable file browser Drag & Drop', 'wp-filebase') : __('Enable file browser Drag & Drop', 'wp-filebase'), 'href' => 'javascript:;', 'meta' => array('onclick' => 'jQuery.ajax({url:wpfbConf.ajurl,type:"POST",data:{wpfb_action:"set-user-setting",name:"fbdd",value:' . (get_user_option('wpfb_set_fbdd') ? 0 : 1) . '},async:false});location.reload();return false;'))); } }
static function Display() { wpfb_loadclass('Output', 'File', 'Category', 'TplLib'); $content = ''; $file_tpls = WPFB_Core::GetTpls('file'); $cat_tpls = WPFB_Core::GetTpls('cat'); if (true || !isset($file_tpls['filebrowser_admin'])) { $file_tpls['filebrowser_admin'] = '%file_small_icon% ' . '%file_display_name% (%file_size%) ' . '<!-- IF %file_user_can_edit% --><a href="%file_edit_url%" class="edit" onclick="wpfbFBEditFile(event)">%\'Edit\'%</a><!-- ENDIF -->'; WPFB_Core::SetFileTpls($file_tpls); //WPFB_Admin::ParseTpls(); } if (true || !isset($cat_tpls['filebrowser_admin'])) { $cat_tpls['filebrowser_admin'] = '<span class="cat-icon" style="background-image:url(\'%cat_icon_url%\');"><span class="cat-icon-overlay"></span></span>' . '%cat_name% ' . '<!-- IF %cat_user_can_edit% --><a href="%cat_edit_url%" class="edit" onclick="wpfbFBEditCat(event)">%\'Edit\'%</a><!-- ENDIF -->'; WPFB_Core::SetCatTpls($cat_tpls); WPFB_Admin::ParseTpls(); } WPFB_Output::FileBrowser($content, 0, empty($_GET['wpfb_cat']) ? 0 : intval($_GET['wpfb_cat'])); WPFB_Core::PrintJS(); ?> <div class="wrap filebrowser-admin"> <h2><?php _e('File Browser', WPFB); ?> </h2> <?php echo '<div>' . __('You can Drag & Drop (multiple) files directly on Categories to upload them. Dragging a category or an existing file to another category is also possible.', WPFB) . '</div>'; echo $content; ?> </div> <script> function wpfbFBEditCat(e) { e.stopPropagation(); } function wpfbFBEditFile(e) { e.stopPropagation(); } </script> <?php }
static function AdminPrintScripts() { if (!empty($_GET['page']) && strpos($_GET['page'], 'wpfilebase_') !== false) { WPFB_Core::PrintJS(); } if (has_filter('ckeditor_external_plugins')) { ?> <script type="text/javascript"> //<![CDATA[ /* CKEditor Plugin */ if(typeof(ckeditorSettings) == 'object') { ckeditorSettings.externalPlugins.wpfilebase = ajaxurl+'/../../wp-content/plugins/wp-filebase/extras/ckeditor/'; ckeditorSettings.additionalButtons.push(["WPFilebase"]); } //]]> </script> <?php } }
static function Display() { global $wpdb; wpfb_loadclass('Admin', 'Output'); WPFB_Core::PrintJS(); // prints wpfbConf.ajurl wp_register_script('jquery-imagepicker', WPFB_PLUGIN_URI . 'extras/jquery/image-picker/image-picker.min.js', array('jquery'), WPFB_VERSION); wp_register_style('jquery-imagepicker', WPFB_PLUGIN_URI . 'extras/jquery/image-picker/image-picker.css', array(), WPFB_VERSION); if (!current_user_can('manage_options')) { wp_die(__('Cheatin’ uh?') . '<!-- manage_options -->'); } // nonce and referer check (security) if ((!empty($_POST['reset']) || !empty($_POST['submit'])) && !check_admin_referer('wpfb-update-settings', 'wpfb-nonce')) { wp_die(__('Cheatin’ uh?')); } $post = stripslashes_deep($_POST); $action = !empty($post['action']) ? $post['action'] : (!empty($_GET['action']) ? $_GET['action'] : ''); $messages = array(); $errors = array(); $options = get_option(WPFB_OPT_NAME); $option_fields = WPFB_Admin::SettingsSchema(); if (isset($post['reset'])) { // keep templates $file_tpl = WPFB_Core::$settings->template_file; $cat_tpl = WPFB_Core::$settings->template_cat; wpfb_loadclass('Setup'); WPFB_Setup::ResetOptions(); WPFB_Core::UpdateOption('template_file', $file_tpl); WPFB_Core::UpdateOption('template_cat', $cat_tpl); $new_options = get_option(WPFB_OPT_NAME); $messages = array_merge($messages, WPFB_Admin::SettingsUpdated($options, $new_options)); unset($new_options); $messages[] = __('Settings reseted.', WPFB); $options = get_option(WPFB_OPT_NAME); } elseif (isset($post['submit'])) { // cleanup foreach ($option_fields as $opt_tag => $opt_data) { if (isset($post[$opt_tag])) { if (!is_array($post[$opt_tag])) { $post[$opt_tag] = trim($post[$opt_tag]); } switch ($opt_data['type']) { case 'number': $post[$opt_tag] = intval($post[$opt_tag]); break; case 'select': // check if value is in options array, if not set to default if (!in_array($post[$opt_tag], array_keys($opt_data['options']))) { $post[$opt_tag] = $opt_data['default']; } break; case 'roles': $post[$opt_tag] = array_values(array_filter($post[$opt_tag])); // the following must not be removed! if the roles array is empty, permissions are assumed to be set for everyone! // so make sure that the admin is explicitly set! if (!empty($opt_data['not_everyone']) && !in_array('administrator', $post[$opt_tag])) { if (!is_array($post[$opt_tag])) { $post[$opt_tag] = array(); } array_unshift($post[$opt_tag], 'administrator'); } break; case 'cat': $post[$opt_tag] = empty($post[$opt_tag]) || is_null($cat = WPFB_Category::GetCat($post[$opt_tag])) ? 0 : intval($post[$opt_tag]); break; } } } $post['upload_path'] = str_replace(ABSPATH, '', $post['upload_path']); $options['upload_path'] = str_replace(ABSPATH, '', $options['upload_path']); $post['download_base'] = trim($post['download_base'], '/'); if (WPFB_Admin::WPCacheRejectUri($post['download_base'] . '/', $options['download_base'] . '/')) { $messages[] = sprintf(__('/%s/ added to rejected URIs list of WP Super Cache.', WPFB), $post['download_base']); } $tpl_file = $post['template_file']; $tpl_cat = $post['template_cat']; if (!empty($tpl_file) && (empty($options['template_file_parsed']) || $tpl_file != $options['template_file'])) { wpfb_loadclass('TplLib'); $tpl_file = WPFB_TplLib::Parse($tpl_file); $result = WPFB_TplLib::Check($tpl_file); if (!$result['error']) { $options['template_file_parsed'] = $tpl_file; $messages[] = __('File template successfully parsed.', WPFB); } else { $errors[] = sprintf(__('Could not parse template: error (%s) in line %s.', WPFB), $result['msg'], $result['line']); } } if (!empty($tpl_cat) && (empty($options['template_cat_parsed']) || $tpl_cat != $options['template_cat'])) { wpfb_loadclass('TplLib'); $tpl_cat = WPFB_TplLib::Parse($tpl_cat); $result = WPFB_TplLib::Check($tpl_cat); if (!$result['error']) { $options['template_cat_parsed'] = $tpl_cat; $messages[] = __('Category template successfully parsed.', WPFB); } else { $errors[] = sprintf(__('Could not parse template: error (%s) in line %s.', WPFB), $result['msg'], $result['line']); } } $fb_sub_pages = get_pages(array('child_of' => $options['file_browser_post_id'])); if ($options['file_browser_post_id'] > 0 && count($fb_sub_pages)) { $messages[] = sprintf(__('Warning: The Filebrowser page <b>%s</b> has at least one subpage <b>%s</b>. This will cause unexpected behavior, since all requests to the subpages are redirected to the File Browser Page. Please choose a Page that does not have any subpages for File Browser.', WPFB), get_the_title($post['file_browser_post_id']), get_the_title($fb_sub_pages[0]->ID)); } // save options foreach ($option_fields as $opt_tag => $opt_data) { $val = isset($post[$opt_tag]) ? $post[$opt_tag] : ''; $options[$opt_tag] = $val; } // make sure a short tag exists, if not append one $select_opts = array('languages', 'platforms', 'licenses', 'requirements', 'custom_fields'); foreach ($select_opts as $opt_tag) { if (empty($options[$opt_tag])) { $options[$opt_tag] = ''; continue; } $lines = explode("\n", $options[$opt_tag]); $lines2 = array(); for ($i = 0; $i < count($lines); $i++) { $lines[$i] = str_replace('||', '|', trim($lines[$i], "|\r")); if (empty($lines[$i]) || $lines[$i] == '|') { continue; } $pos = strpos($lines[$i], '|'); if ($pos <= 0) { $lines[$i] .= '|' . sanitize_key(substr($lines[$i], 0, min(8, strlen($lines[$i])))); } $lines2[] = $lines[$i]; } $options[$opt_tag] = implode("\n", $lines2); } $old_options = get_option(WPFB_OPT_NAME); update_option(WPFB_OPT_NAME, $options); WPFB_Core::$settings = (object) $options; $messages = array_merge($messages, WPFB_Admin::SettingsUpdated($old_options, $options)); if (count($errors) == 0) { $messages[] = __('Settings updated.', WPFB); } //refresh any description which can contain opt values $option_fields = WPFB_Admin::SettingsSchema(); } if (WPFB_Core::$settings->allow_srv_script_upload) { $messages[] = __('WARNING: Script upload enabled!', WPFB); } $upload_path = WPFB_Core::$settings->upload_path; if (!empty($old_options) && path_is_absolute($upload_path) && !path_is_absolute($old_options['upload_path'])) { $rel_path = str_replace('\\', '/', $upload_path); $rel_path = substr($rel_path, strpos($rel_path, '/') + 1); $messages[] = __(sprintf('NOTICE: The upload path <code>%s</code> is rooted to the filesystem. You should remove the leading slash if you want to use a folder inside your Wordpress directory (i.e: <code>%s</code>)', $upload_path, $rel_path), WPFB); } $action_uri = admin_url('admin.php') . '?page=' . $_GET['page'] . '&updated=true'; if (!empty($messages)) { $message = ''; foreach ($messages as $msg) { $message .= '<p>' . $msg . '</p>'; } ?> <div id="message" class="updated fade"><?php echo $message; ?> </div> <?php } if (!empty($errors)) { $error = ''; foreach ($errors as $err) { $error .= '<p>' . $err . '</p>'; } ?> <div id="message" class="error fade"><?php echo $error; ?> </div> <?php } ?> <script type="text/javascript"> /* Option tabs */ jQuery(document).ready( function() { try { jQuery('#wpfb-tabs').tabs(); } catch(ex) {} /*if(typeof(CKEDITOR) != 'undefined') { CKEDITOR.plugins.addExternal('wpfilebase', ajaxurl+'/../../wp-content/plugins/wp-filebase/extras/ckeditor/'); alert( ajaxurl+'/../../wp-content/plugins/wp-filebase/extras/ckeditor/'); }*/ }); </script> <div class="wrap"> <div id="icon-options-general" class="icon32"><br /></div> <h2><?php echo WPFB_PLUGIN_NAME; echo ' '; _e("Settings"); ?> </h2> <form method="post" action="<?php echo $action_uri; ?> " name="wpfilebase-options"> <?php wp_nonce_field('wpfb-update-settings', 'wpfb-nonce'); ?> <p class="submit"> <input type="submit" name="submit" value="<?php _e('Save Changes'); ?> " class="button-primary" /> </p> <?php $misc_tags = array('disable_id3', 'search_id3', 'thumbnail_path', 'use_path_tags', 'no_name_formatting'); if (function_exists('wp_admin_bar_render')) { $misc_tags[] = 'admin_bar'; } $limits = array('bitrate_unregistered', 'bitrate_registered', 'traffic_day', 'traffic_month', 'traffic_exceeded_msg', 'file_offline_msg', 'daily_user_limits', 'daily_limit_subscriber', 'daily_limit_contributor', 'daily_limit_author', 'daily_limit_editor', 'daily_limit_exceeded_msg'); $option_categories = array(__('Common', WPFB) => array('upload_path', 'search_integration'), __('Display', WPFB) => array('file_date_format', 'thumbnail_size', 'auto_attach_files', 'attach_loop', 'attach_pos', 'filelist_sorting', 'filelist_sorting_dir', 'filelist_num', 'decimal_size_format', 'search_result_tpl', 'disable_css'), __('File Browser', WPFB) => array('file_browser_post_id', 'file_browser_cat_sort_by', 'file_browser_cat_sort_dir', 'file_browser_file_sort_by', 'file_browser_file_sort_dir', 'file_browser_fbc', 'late_script_loading', 'folder_icon', 'small_icon_size', 'disable_footer_credits', 'footer_credits_style'), __('Download', WPFB) => array('hide_links', 'disable_permalinks', 'download_base', 'force_download', 'range_download', 'http_nocache', 'ignore_admin_dls', 'accept_empty_referers', 'allowed_referers', 'use_fpassthru'), __('Form Presets', WPFB) => array('default_author', 'default_roles', 'default_cat', 'default_direct_linking', 'languages', 'platforms', 'licenses', 'requirements', 'custom_fields'), __('Limits', WPFB) => $limits, __('Security', WPFB) => array('allow_srv_script_upload', 'fext_blacklist', 'frontend_upload', 'hide_inaccessible', 'inaccessible_msg', 'inaccessible_redirect', 'cat_inaccessible_msg', 'login_redirect_src', 'protect_upload_path', 'private_files'), __('Templates and Scripts', WPFB) => array('template_file', 'template_cat', 'dlclick_js'), __('Sync', WPFB) => array('cron_sync', 'base_auto_thumb', 'remove_missing_files', 'fake_md5'), __('Misc') => $misc_tags); ?> <div id="wpfb-tabs"> <ul class="wpfb-tab-menu"> <?php foreach ($option_categories as $key => $val) { echo '<li><a href="#' . sanitize_title($key) . '">' . esc_html($key) . '</a></li>'; } ?> </ul> <?php $page_option_list = ''; $n = 0; foreach ($option_categories as $opt_cat => $opt_cat_fields) { //echo "\n".'<h3>'.$opt_cat.'</h3>'; echo "\n\n" . '<div id="' . sanitize_title($opt_cat) . '" class="wpfilebase-opttab"><h3>' . $opt_cat . '</h3><table class="form-table">'; foreach ($opt_cat_fields as $opt_tag) { $field_data = $option_fields[$opt_tag]; $opt_val = $options[$opt_tag]; echo "\n" . '<tr valign="top">' . "\n" . '<th scope="row">' . $field_data['title'] . '</th>' . "\n" . '<td>'; $style_class = ''; if (!empty($field_data['class'])) { $style_class .= ' class="' . $field_data['class'] . '"'; } if (!empty($field_data['style'])) { $style_class .= ' style="' . $field_data['style'] . '"'; } switch ($field_data['type']) { case 'text': case 'number': case 'checkbox': echo '<input name="' . $opt_tag . '" type="' . $field_data['type'] . '" id="' . $opt_tag . '"'; echo !empty($field_data['class']) ? ' class="' . $field_data['class'] . '"' : ''; if ($field_data['type'] == 'checkbox') { echo ' value="1" '; checked('1', $opt_val); } elseif ($field_data['type'] == 'number') { echo ' value="' . intval($opt_val) . '" size="5" style="text-align: right"'; } else { echo ' value="' . esc_attr($opt_val) . '"'; if (isset($field_data['size'])) { echo ' size="' . (int) $field_data['size'] . '"'; } } echo $style_class . ' />'; break; case 'textarea': $code_edit = strpos($opt_tag, 'template_') !== false || isset($field_data['class']) && strpos($field_data['class'], 'code') !== false; $nowrap = !empty($field_data['nowrap']); echo '<textarea name="' . $opt_tag . '" id="' . $opt_tag . '"'; if ($nowrap || $code_edit) { echo ' cols="100" wrap="off" style="width: 100%;' . ($code_edit ? 'font-size: 9px;' : '') . '"'; } else { echo ' cols="50"'; } echo ' rows="' . ($code_edit ? 20 : 5) . '"'; echo $style_class; echo '>'; echo esc_html($opt_val); echo '</textarea>'; break; case 'select': echo '<select name="' . $opt_tag . '" id="' . $opt_tag . '">'; foreach ($field_data['options'] as $opt_v => $opt_n) { echo '<option value="' . esc_attr($opt_v) . '"' . ($opt_v == $opt_val ? ' selected="selected" ' : '') . $style_class . '>' . (!is_numeric($opt_v) && $opt_v !== $opt_n ? esc_html($opt_v) . ': ' : '') . esc_html($opt_n) . '</option>'; } echo '</select>'; break; case 'roles': WPFB_Admin::RolesCheckList($opt_tag, $opt_val, empty($field_data['not_everyone'])); break; case 'icon': wp_print_scripts('jquery-imagepicker'); wp_print_styles('jquery-imagepicker'); echo '<select class="image-picker show-html" name="' . $opt_tag . '" id="' . $opt_tag . '">'; ?> <?php foreach ($field_data['icons'] as $icon) { echo '<option data-img-src="' . $icon['url'] . '" value="' . $icon['path'] . '" ' . ($icon['path'] === $opt_val ? ' selected="selected" ' : '') . '>' . basename($icon['path']) . '</option>'; } ?> </select> <script type="text/javascript"> jQuery(document).ready( function() { jQuery("#<?php echo $opt_tag; ?> ").imagepicker(); }); </script> <?php break; case 'cat': echo "<select name='{$opt_tag}' id='{$opt_tag}'>"; echo WPFB_Output::CatSelTree(array('selected' => $opt_val)); echo "</select>"; break; } if (!empty($field_data['unit'])) { echo ' ' . $field_data['unit']; } if (!empty($field_data['desc'])) { echo "\n" . '<br />' . str_replace('%value%', is_array($opt_val) ? join(', ', $opt_val) : $opt_val, $field_data['desc']); } echo "\n</td>\n</tr>"; $page_option_list .= $opt_tag . ','; } echo '</table></div>' . "\n"; } ?> </div> <!--wpfilebase-opttabs--> <input type="hidden" name="action" value="update" /> <input type="hidden" name="page_options" value="<?php echo $page_option_list; ?> " /> <p class="submit"> <input type="submit" name="submit" value="<?php _e('Save Changes'); ?> " class="button-primary" /> <input type="submit" name="reset" value="<?php _e('Restore Default Settings', WPFB); ?> " onclick="return confirm('<?php _e('All settings (except default file and category template) will be set to default values. Continue?', WPFB); ?> ')" class="button delete" style="float: right;" /> </p> </form> </div> <!-- wrap --> <?php }
public function Display() { WPFB_Core::PrintJS(); wp_print_scripts('utils'); // setUserSetting ?> <style type="text/css" media="screen">@import url(<?php echo WPFB_PLUGIN_URI . 'css/batch-uploader.css'; ?> );</style> <div id="<?php echo $this->prefix; ?> -uploader-wrap"> <div id="<?php echo $this->prefix; ?> -uploader-interface" class="wpfb-batch-uploader-interface"> <div class="form-wrap uploader-presets" id="<?php echo $this->prefix; ?> -uploader-presets"> <form method="POST" action="" class="validate" name="batch_presets"> <h2><?php _e('Upload Presets', 'wp-filebase'); ?> </h2> <?php self::DisplayUploadPresets($this->prefix); //wp_nonce_field('batch-presets'); // TODO validate this! ?> </form> </div> <div id="<?php echo $this->prefix; ?> -drag-drop-uploader" class="drag-drop-uploader"> <h2>Drag & Drop</h2> <div id="<?php echo $this->prefix; ?> -drag-drop-area" class="drag-drop-area"> <div style="margin: 70px auto 0;"> <p class="drag-drop-info"><?php _e('Drop files here'); ?> </p> <p><?php _ex('or', 'Uploader: Drop files here - or - Select Files'); ?> </p> <p class="drag-drop-buttons"><input id="<?php echo $this->prefix; ?> -browse-button" type="button" value="<?php esc_attr_e('Select Files'); ?> " class="button" /></p> </div> </div> <div id="<?php echo $this->prefix; ?> -uploader-errors"></div> </div> <div style="clear: both;"></div> </div> <div id="<?php echo $this->prefix; ?> -uploader-files" style="position:relative;"></div> </div> <?php wp_print_scripts('jquery-color'); wp_print_scripts('jquery-deserialize'); ?> <script type="text/javascript"> var mouseDragPos = []; var presetData = ''; var morePresets = 0; jQuery(document).ready( function() { var form = jQuery('#<?php echo $this->prefix; ?> -uploader-presets').find('form'); jQuery('#<?php echo $this->prefix; ?> -drag-drop-area').bind('dragover', function(e){ mouseDragPos = [e.originalEvent.pageX, e.originalEvent.pageY]; }); <?php ?> wpfb_setupFormAutoSave(form,'batch_presets'); <?php ?> // "more" toggle init form.find('tr.more').hide(); form.find('tr.more-more').hide(); morePresets = 0; jQuery('#<?php echo $this->prefix; ?> -uploader-presets-more-toggle').click(function() { var pm = morePresets; pm++; pm %= 3; batchUploaderSetPresetsMore(pm); }); batchUploaderSetPresetsMore(typeof(getUserSetting) !== 'function' || getUserSetting('wpfb_batch_presets_more') || 0); }); function batchUploaderSetPresetsMore(m) { if(isNaN(m)) m = 0; var form = jQuery('#<?php echo $this->prefix; ?> -uploader-presets').find('form'); var s = (m+morePresets); if( s==1||s==2 ) form.find('tr.more').toggle(400); if( m==2||morePresets==2) form.find('tr.more-more').toggle(400); morePresets = m; // TODO show any field with non-default value!! //form.find('tr.more').toggle(morePresets > 0); //form.find('tr.more-more').toggle(morePresets > 1); if(typeof(setUserSetting) !== 'undefined') setUserSetting('wpfb_batch_presets_more',''+morePresets); jQuery('#<?php echo $this->prefix; ?> -uploader-presets-more-toggle td span').html(m==2?'<?php _e('less'); ?> ':'<?php _e('more'); ?> '); } function batchUploaderFilesQueued(up, files) { var form = jQuery('#<?php echo $this->prefix; ?> -uploader-presets').find('form'); up.settings.multipart_params["presets"] = form.serialize(); var hidden_params = form.find('input[type=hidden]').serializeArray(); for (var i = 0; i < hidden_params.length; ++i) { up.settings.multipart_params[hidden_params[i].name] = hidden_params[i].value; } form .css({ background: "rgba(255,255,0,0.0)" }) .animate({ backgroundColor: "rgba(255,255,0,0.5)"}, 100) .animate({ backgroundColor: "rgba(255,255,0,0.0)"}, 400); form.find('input,textarea,select') .animate({ opacity: 0.2}, 100) .animate({ opacity: 1.0}, 400); form.find("input[name='file_display_name']").val(''); } function batchUploaderFileQueued(up, file) { //file.name, file.size jQuery('#<?php echo $this->prefix; ?> -uploader-files').prepend('<div id="<?php echo $this->prefix; ?> -uploader-file-'+file.id+'-spacer" class="batch-uploader-file-spacer"></div>'); jQuery('#<?php echo $this->prefix; ?> -uploader-files').prepend('<div id="'+file.dom_id+'" class="media-item batch-uploader-file">'+ '<div class="progress"><div class="percent">0%</div><div class="bar"></div></div>'+ '<img src="<?php echo site_url(WPINC . '/images/crystal/default.png'); ?> " alt="Loading..." /><span class="filename">'+file.name+'</span><span class="error"></span></div>'); var fileEl = jQuery('#'+file.dom_id); var spacerEl = jQuery('#<?php echo $this->prefix; ?> -uploader-file-'+file.id+'-spacer'); var dest = fileEl.offset(); var ppos = fileEl.parent().offset(); var destWidth = fileEl.width(); fileEl.css({position:'absolute', zIndex:100, top:mouseDragPos[1]-ppos.top, left:mouseDragPos[0]-ppos.left-15}); fileEl.animate({ //opacity: 0.25, left: dest.left-ppos.left, top: dest.top-ppos.top }, 400, function() { spacerEl.remove(); var startWidth = jQuery(this).width(); jQuery(this) .css({position:'',top:0,left:0,width:startWidth}) .animate({width: destWidth}, 200); }); spacerEl.animate({height: fileEl.outerHeight(true)}, 400); jQuery('.error', fileEl).hide(); } function batchUploaderSuccess(file, serverData) { var item = jQuery('#'+file.dom_id); if(!serverData || serverData == -1 || 'object' != typeof(serverData)) { jQuery('.error', item).show().html('Server response error! '+serverData); console.log(serverData); return; } var url = serverData.file_cur_user_can_edit ? serverData.file_edit_url : serverData.file_download_url; jQuery('.filename', item).html('<a href="'+url+'" target="_blank">'+serverData.file_display_name+'</a> <span class="ok"><?php _e('Upload OK!', 'wp-filebase'); ?> </span>'); jQuery('img', item).attr('src', serverData.file_thumbnail_url); } </script> <?php wpfb_loadclass('PLUploader'); $uploader = new WPFB_PLUploader(); $uploader->js_file_queued = 'batchUploaderFileQueued'; $uploader->js_files_queued = 'batchUploaderFilesQueued'; $uploader->js_upload_success = 'batchUploaderSuccess'; $uploader->post_params['file_add_now'] = true; if (!empty($this->hidden_vars)) { $uploader->post_params = array_merge($uploader->post_params, $this->hidden_vars); } $uploader->Init($this->prefix . '-drag-drop-area', $this->prefix . '-browse-button', $this->prefix . '-uploader-errors'); }
static function PrintForm($name, $item = null, $vars = array()) { wpfb_loadclass('Output'); WPFB_Core::PrintJS(); /* only required for wpfbConf */ ?> <script type="text/javascript"> //<![CDATA[ jQuery(document).ready(function($){ WPFB_formCategoryChanged(); }); function WPFB_formCategoryChanged() { var catId = jQuery('#file_category,#cat_parent').val(); if(!catId || catId <= 0) { jQuery('#<?php echo $name; ?> _inherited_permissions_label').html('<?php echo WPFB_Output::RoleNames(WPFB_Core::$settings->default_roles, true); ?> '); } else { jQuery.ajax({ url: wpfbConf.ajurl, data: {action:"catinfo","id":catId}, dataType: "json", success: (function(data){jQuery('#<?php echo $name; ?> _inherited_permissions_label').html(data.roles_str);}) }); } } //]]> </script> <?php extract($vars); if (is_writable(WPFB_Core::UploadDir())) { include WPFB_PLUGIN_ROOT . 'lib/wpfb_form_' . $name . '.php'; } }
static function Display() { global $wpdb, $user_ID, $user_identity; wpfb_loadclass('Admin', 'Output', 'TplLib', 'ListTpl'); WPFB_Core::PrintJS(); $_POST = stripslashes_deep($_POST); $_GET = stripslashes_deep($_GET); $action = !empty($_POST['action']) ? $_POST['action'] : (!empty($_GET['action']) ? $_GET['action'] : ''); $clean_uri = remove_query_arg(array('message', 'action', 'file_id', 'cat_id', 'deltpl', 'hash_sync')); // keep search keyword // security nonce if (!empty($action) && $action != 'edit' && !check_admin_referer($action . '-' . $_REQUEST['type'], 'wpfb-tpl-nonce')) { wp_die(__('Cheatin’ uh?')); } if ($action == 'add' || $action == 'update') { if (empty($_POST['type'])) { wp_die(__('Type missing!', 'wp-filebase')); } if (empty($_POST['tpltag'])) { wp_die(__('Please enter a template tag.', 'wp-filebase')); } $type = $_POST['type']; $for_cat = $type == 'cat'; $tpl_tag = preg_replace('/[^a-z0-9_-]/', '', str_replace(' ', '_', strtolower($_POST['tpltag']))); if (empty($tpl_tag)) { wp_die('Tag is invalid!'); } if ($type == 'list') { $data = array('header' => $_POST['tpl-list-header'], 'footer' => $_POST['tpl-list-footer'], 'cat_tpl_tag' => $_POST['tpl-list-cat-tpl'], 'file_tpl_tag' => $_POST['tpl-list-file-tpl']); $tpl = new WPFB_ListTpl($tpl_tag, $data); $tpl->Save(); } else { if (empty($_POST['tplcode'])) { wp_die('Please enter some template code.'); } if ($tpl_tag == 'default') { // hanle default tpls a bit different WPFB_Core::UpdateOption("template_{$type}", $_POST['tplcode']); } else { $tpls = WPFB_Core::GetTpls($type); $tpls[$tpl_tag] = $_POST['tplcode']; if ($for_cat) { WPFB_Core::SetCatTpls($tpls); } else { WPFB_Core::SetFileTpls($tpls); } } } WPFB_Admin::ParseTpls(); unset($_POST['type'], $_POST['tpltag'], $_POST['tplcode']); } elseif ($action == 'del') { if (!empty($_GET['type']) && !empty($_GET['tpl']) && !in_array($_GET['tpl'], self::$protected_tags)) { $type = $_GET['type']; if ($type == 'list') { $tpl = WPFB_ListTpl::Get($_GET['tpl']); if ($tpl) { $tpl->Delete(); } } $for_cat = $type == 'cat'; $tpls = WPFB_Core::GetTpls($type); unset($tpls['default']); if (!empty($tpls)) { unset($tpls[$_GET['tpl']]); if ($for_cat) { WPFB_Core::SetCatTpls($tpls); } else { WPFB_Core::SetFileTpls($tpls); } } unset($_POST['type'], $_POST['tpl']); } WPFB_Admin::ParseTpls(); } if (!empty($_POST['reset-tpls'])) { wpfb_call('Setup', 'ResetTpls'); // also reset default templates stored in settings wpfb_loadclass('Admin'); $settings_schema = WPFB_Admin::SettingsSchema(); WPFB_Core::UpdateOption('template_file', $settings_schema['template_file']['default']); WPFB_Core::UpdateOption('template_cat', $settings_schema['template_cat']['default']); WPFB_Admin::ParseTpls(); } ?> <script type="text/javascript"> function WPFB_GenSuccess(data, textStatus, request) { this.html(data); } function WPFB_PreviewTpl(ta, ty) { var tplc = (ty != 'list') ? jQuery(ta).val() : { header: jQuery('#tpl-list-header').val(), footer: jQuery('#tpl-list-footer').val(), file_tpl_tag: jQuery('#tpl-list-file-tpl').val(), cat_tpl_tag: jQuery('#tpl-list-cat-tpl').val() }; var previewId = 'tplinp_'+ty+'_preview'; jQuery.ajax({ type: 'POST', url: '<?php echo WPFB_Core::$ajax_url; ?> ', data: { wpfb_action: "tpl-sample", tpl: tplc, type: ty }, async: true, success: WPFB_GenSuccess, context: jQuery('#'+previewId) }); } jQuery(document).ready( function() { try { jQuery('#wpfb-tabs').tabs(); } catch(ex) {} }); </script> <?php switch ($action) { case 'edit': if (empty($_REQUEST['type']) || empty($_REQUEST['tpl'])) { wp_die('Request error'); } $tpl_tag = $_REQUEST['tpl']; $type = $_REQUEST['type']; if ($type == 'list') { if (WPFB_ListTpl::Get($tpl_tag) == null) { wp_die('No such template!'); } } else { $for_cat = $type == 'cat'; $tpl_src = WPFB_Core::GetTpls($type, $tpl_tag); if (empty($tpl_src)) { wp_die('No such template!'); } } echo '<div class="wrap">'; self::TplForm($type, $tpl_tag); echo '</div>'; break; default: ?> <div class="wrap"> <h2><?php _e('Templates', 'wp-filebase'); if (empty(WPFB_Core::$settings->disable_css) && current_user_can('edit_themes')) { ?> <a href="<?php echo admin_url('admin.php?page=wpfilebase_css'); ?> " class="add-new-h2"><?php _e('Edit Stylesheet', 'wp-filebase'); ?> </a> <?php } ?> <a href="<?php echo add_query_arg('iframe-preview', (int) empty($_GET['iframe-preview'])); ?> " class="add-new-h2">iframe preview</a> </h2> <div id="wpfb-tabs"> <ul class="wpfb-tab-menu"> <li><a href="#file"><?php _e('Files', 'wp-filebase'); ?> </a></li> <li><a href="#cat"><?php _e('Categories'); ?> </a></li> <li><a href="#list"><?php _e('File List', 'wp-filebase'); ?> </a></li> </ul> <div id="file" class="wrap"> <p><?php _e('Templates used for single embedded files or file lists.', 'wp-filebase'); ?> </p> <?php self::TplsTable('file'); ?> </div> <div id="cat" class="wrap"> <p><?php _e('These templates can be used for categories.', 'wp-filebase'); ?> </p> <?php self::TplsTable('cat'); ?> </div> <div id="list" class="wrap"> <p><?php _e('A list-template consists of header, footer and file template. It can optionally have a category template to list sub-categories.', 'wp-filebase'); ?> </p> <?php self::TplsTable('list'); ?> </div> <div id="browser" class="wrap"> </div> </div> <!-- tabs --> <form action="<?php echo remove_query_arg(array('action', 'type', 'tpl')); ?> " method="post" onsubmit="return confirm('<?php _e('This will reset all File, Category and List Templates! Are your sure?', 'wp-filebase'); ?> ');"><p> <input type="submit" name="reset-tpls" value="<?php _e('Reset all Templates to default', 'wp-filebase'); ?> " class="button" /> </p></form> </div> <?php break; } }
?> </label> <input type="radio" name="list-cat-sort-order" id="list-cat-sort-order-desc" value="desc" /> <label for="list-cat-sort-order-desc" class="radio"><?php _e('Descending'); ?> </label> </p> </form> <?php do_action('wpfilebase_editor_plugin_tabs'); } /*manage_attachments*/ ?> <?php do_action('admin_print_footer_scripts'); ?> <script type="text/javascript"> initEditorPlugin(); if(typeof wpOnload=='function')wpOnload(); </script> <?php WPFB_Core::PrintJS(); /* only required for wpfbConf */ ?> </body> </html>