get_var(sprintf("SELECT `name` FROM %s WHERE id=%d", $name_directory_table_directory, $delete_dir)); $wpdb->delete($name_directory_table_directory, array('id' => $delete_dir), array('%d')); $wpdb->delete($name_directory_table_directory_name, array('directory' => $delete_dir), array('%d')); echo "

" . sprintf(__('Name directory %s and all entries deleted', 'name-directory'), "" . $name . "") . "

"; } $wp_file = admin_url('admin.php'); $wp_page = sanitize_text_field($_GET['page']); $wp_url_path = sprintf("%s?page=%s", $wp_file, $wp_page); $wp_new_url = sprintf("%s&sub=%s", $wp_url_path, 'new-directory'); $wp_nonce = wp_create_nonce('name-directory-action'); echo '
'; echo "

" . __('Name Directory management', 'name-directory') . " " . __('Add directory', 'name-directory') . "" . "

"; if(! empty($_POST['mode']) && ! empty($_POST['dir_id']) && check_admin_referer( 'name_directory_dirmanagement','name_directory_adminnonce' )) { $wpdb->update( $name_directory_table_directory, array( 'name' => sanitize_text_field($_POST['name']), 'description' => sanitize_text_field($_POST['description']), 'show_title' => (int)$_POST['show_title'], 'show_description' => (int)$_POST['show_description'], 'show_submit_form' => (int)$_POST['show_submit_form'], 'show_search_form' => (int)$_POST['show_search_form'], 'search_in_description' => (int)$_POST['search_in_description'], 'search_highlight' => (int)$_POST['search_highlight'], 'show_submitter_name' => (int)$_POST['show_submitter_name'], 'show_current_num_names' => (int)$_POST['show_current_num_names'], 'show_index_instructions' => (int)$_POST['show_index_instructions'], 'show_line_between_names' => (int)$_POST['show_line_between_names'], 'show_character_header' => (int)$_POST['show_character_header'], 'show_all_names_on_index' => (int)$_POST['show_all_names_on_index'], 'show_all_index_letters' => (int)$_POST['show_all_index_letters'], 'jump_to_search_results' => (int)$_POST['jump_to_search_results'], 'nr_columns' => (int)$_POST['nr_columns'], 'nr_most_recent' => intval($_POST['nr_most_recent']), 'nr_words_description' => intval($_POST['nr_words_description']), 'email_for_submission' => sanitize_email($_POST['email_for_submission']), 'name_term' => sanitize_text_field($_POST['name_term']), 'name_term_singular' => sanitize_text_field($_POST['name_term_singular']), 'submitted_by_term' => sanitize_text_field($_POST['submitted_by_term']), 'check_submitted_names_first' => intval($_POST['check_submitted_names_first']), ), array('id' => intval($_POST['dir_id'])) ); echo "

" . sprintf(__('Directory %s updated.', 'name-directory'), "" . sanitize_text_field($_POST['name']) . "") . "

"; unset($_GET['dir_id']); } elseif(! empty($_POST['mode']) && $_POST['mode'] == "new" && check_admin_referer( 'name_directory_dirmanagement','name_directory_adminnonce' )) { $cleaned_name = sanitize_text_field($_POST['name']); if( empty($cleaned_name)) { echo "

" . __('Please fill in at least a (valid) name to create new name directory', 'name-directory') . "

"; echo "" . __('Click here to go back and try again', 'name-directory') . "
"; } else { $wpdb->insert( $name_directory_table_directory, array( 'name' => $cleaned_name, 'description' => sanitize_text_field($_POST['description']), 'show_title' => (int)$_POST['show_title'], 'show_description' => (int)$_POST['show_description'], 'show_submit_form' => (int)$_POST['show_submit_form'], 'show_search_form' => (int)$_POST['show_search_form'], 'search_in_description' => (int)$_POST['search_in_description'], 'search_highlight' => (int)$_POST['search_highlight'], 'show_submitter_name' => (int)$_POST['show_submitter_name'], 'show_line_between_names' => (int)$_POST['show_line_between_names'], 'show_character_header' => (int)$_POST['show_character_header'], 'show_all_names_on_index' => (int)$_POST['show_all_names_on_index'], 'show_all_index_letters' => (int)$_POST['show_all_index_letters'], 'show_current_num_names' => (int)$_POST['show_current_num_names'], 'show_index_instructions' => (int)$_POST['show_index_instructions'], 'jump_to_search_results' => (int)$_POST['jump_to_search_results'], 'nr_columns' => (int)$_POST['nr_columns'], 'nr_most_recent' => intval($_POST['nr_most_recent']), 'nr_words_description' => intval($_POST['nr_words_description']), 'email_for_submission' => sanitize_text_field($_POST['email_for_submission']), 'name_term' => sanitize_text_field($_POST['name_term']), 'name_term_singular' => sanitize_text_field($_POST['name_term_singular']), 'submitted_by_term' => sanitize_text_field($_POST['submitted_by_term']), 'check_submitted_names_first' => (int)$_POST['check_submitted_names_first'], ), array('%s', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%s', '%s', '%s', '%s', '%d') ); echo "

" . sprintf(__('Directory %s created.', 'name-directory'), "" . $cleaned_name . "") . "

"; } } $directories = $wpdb->get_results(sprintf(" SELECT nd.* FROM `%s` nd LEFT JOIN `%s` ndn ON nd.id = ndn.directory GROUP by nd.id ORDER BY MAX(ndn.id) IS NULL DESC, MAX(ndn.id) DESC", $name_directory_table_directory, $name_directory_table_directory_name)); $num_directories = $wpdb->num_rows; $plural = ($num_directories==1)?__('name directory', 'name-directory'):__('name directories', 'name-directory'); echo "

" . sprintf(__('You currently have %d %s.', 'name-directory'), $num_directories, $plural) . "

"; ?> description, 0, 70); if(strlen($description) == '70') { $description .= "..."; } $alternate = ( $alternate == "alternate" ) ? "" : "alternate"; $entries = $wpdb->get_var(sprintf("SELECT COUNT(`id`) FROM %s WHERE directory=%d", $name_directory_table_directory_name, $directory->id)); $unpublished = $wpdb->get_var(sprintf("SELECT COUNT(`id`) FROM %s WHERE directory=%d AND `published` = 0", $name_directory_table_directory_name, $directory->id)); echo sprintf(" ", $directory->id, $directory->name, $directory->name, $description, $directory->id, __('Add, edit and remove names', 'name-directory'), __('Manage names', 'name-directory'), $directory->id, __('Go to the add-name-form on the Manage page', 'name-directory'), __('Add name', 'name-directory'), $directory->id, __('Edit name, description and appearance settings', 'name-directory'), __('Settings', 'name-directory'), $directory->id, __('Import entries for this directory by uploading a .csv file', 'name-directory'), __('Import', 'name-directory'), $directory->id, __('Download the contents of this directory as a .csv file', 'name-directory'), __('Export', 'name-directory'), $directory->id, $directory->id, __('Show the copy-paste shortcode for this directory', 'name-directory'), __('Shortcode', 'name-directory'), $directory->id, $wp_nonce, __('Permanently remove this name directory', 'name-directory'), __('Delete', 'name-directory'), __('Number of names in this directory', 'name-directory'), $entries, ($entries - $unpublished), $unpublished ); echo sprintf(" ", $directory->id, __('To show your directory on your website, use the shortcode on the right.', 'name-directory') . '
' . __('Copy the code and paste it in a post or in a page.', 'name-directory') . '
' . __('If you want to start with a specific character, like "J", use [namedirectory dir="X" start_with="j"].', 'name-directory') . '', $directory->id); } ?>
  %s  %s
 
%s | %s | %s | %s | %s | %s | %s
  %d

 
%d %d
  %s
get_row("SELECT * FROM " . $name_directory_table_directory . " WHERE `id` = " . $directory_id, ARRAY_A); echo '
'; if($mode == "new") { $table_heading = __('Create new name directory', 'name-directory'); $button_text = __('Create', 'name-directory'); echo "

" . __('Create new name directory', 'name-directory') . "

"; echo "

" . __('Complete the form below to create a new name directory.', 'name-directory'); } else { $table_heading = __('Edit this directory', 'name-directory'); $button_text = __('Save Changes', 'name-directory'); echo "

" . __('Edit name directory', 'name-directory') . "

"; echo "

" . sprintf(__('You are editing the name, description and settings of directory %s', 'name-directory'), $directory['name']); } echo " " . __('Back to the directory overview', 'name-directory') . "

"; ?>
array( 'friendly_name' => __('Show title', 'name-directory'), 'description' => __('Displays the title in a h3-heading', 'name-directory'), ), 'show_description' => array( 'friendly_name' => __('Show description', 'name-directory'), 'description' => __('This is the description of the names on the front-end', 'name-directory'), ), 'show_line_between_names' => array( 'friendly_name' => __('Show line between names', 'name-directory'), 'description' => false, ), 'show_character_header' => array( 'friendly_name' => __('Show new character heading', 'name-directory'), 'description' => __('Show a B-heading after all words starting with A, which will that there is a new starting letter', 'name-directory'), ), 'show_all_names_on_index' => array( 'friendly_name' => __('Show all names by default', 'name-directory'), 'description' => __('If no, user HAS to use the index before entries are shown', 'name-directory'), ), ); name_directory_render_admin_directory_settings_section($directory, __('Appearance', 'name-directory'), $appearance_settings); $appearance_settings_options = array( 'nr_most_recent' => array( 'friendly_name' => __('Show most recent names', 'name-directory'), 'description' => __('If No, frontend will not show \'Latest\' option.', 'name-directory'), 'options' => array(0 => __('No', 'name-directory'), 3 => 3, 5 => 5, 10 => 10, 25 => 25, 50 => 50, 100 => 100) ), 'nr_words_description' => array( 'friendly_name' => __('Limit amount of words in description', 'name-directory'), 'description' => __('Display a "read-more" link on the website if the description exceeds X characters.', 'name-directory'), 'options' => array(0 => __('No', 'name-directory'), 10 => 10, 20 => 20, 25 => 25, 50 => 50, 100 => 100) ), 'nr_columns' => array( 'friendly_name' => __('Number of columns', 'name-directory'), 'description' => __('The number of (vertical) columns to display the names in', 'name-directory'), 'options' => array(1 => 1, 2 => 2, 3 => 3, 4 => 4) ) ); foreach($appearance_settings_options as $setting_name => $setting_props) { name_directory_render_admin_setting_options($directory, $setting_name, $setting_props['friendly_name'], $setting_props['description'], $setting_props['options']); } $index_settings = array( 'show_all_index_letters' => array( 'friendly_name' => __('Show all letters on index', 'name-directory'), 'description' => __('If no, just A B D E are shown if there are no entries starting with C', 'name-directory'), ), 'show_current_num_names' => array( 'friendly_name' => __('Show current amount of names', 'name-directory'), 'description' => '', ), 'show_index_instructions' => array( 'friendly_name' => __('Show instructions', 'name-directory'), 'description' => __('Show this text below the index characters', 'name-directory') . ': ' .__('Please select a letter from the index (above) to see entries', 'name-directory'), ), ); name_directory_render_admin_directory_settings_section($directory, __('Index / Character bar', 'name-directory'), $index_settings); $search_options = array( 'show_search_form' => array( 'friendly_name' => __('Show search form', 'name-directory'), 'description' => false, ), 'search_in_description' => array( 'friendly_name' => __('Search in description', 'name-directory'), 'description' => __('If yes, searches will be performed in the name and the description. If no, it will search in the names only', 'name-directory'), ), 'jump_to_search_results' => array( 'friendly_name' => __('Jump to Name Directory when searching', 'name-directory'), 'description' => __('On the front-end, jump to the Name Directory search box. Particularly useful if you have Name Directory on a long page or onepage websites', 'name-directory'), ), 'search_highlight' => array( 'friendly_name' => __('Highlight search term', 'name-directory'), 'description' => __('If yes, the search term will be highlighted on the page so users can spot them easier', 'name-directory'), ) ); name_directory_render_admin_directory_settings_section($directory, __('Search', 'name-directory'), $search_options); $submission_settings = array( 'show_submit_form' => array( 'friendly_name' => __('Submit form', 'name-directory'), 'description' => __('Visitors can submit suggestions', 'name-directory'), ), 'show_submitter_name' => array( 'friendly_name' => __('Submitter name', 'name-directory'), 'description' => __('Show the name of the submitter', 'name-directory'), ), 'check_submitted_names_first' => array( 'friendly_name' => __('Check submitted names', 'name-directory'), 'description' => __('Whether a submitted name has to be checked/approved by an admin before it will be visible', 'name-directory'), ), ); name_directory_render_admin_directory_settings_section($directory, __('Submissions', 'name-directory'), $submission_settings); ?>




""



"Club member: Henk"
get_var(sprintf("SELECT `name` FROM %s WHERE id=%d", $name_directory_table_directory_name, $_GET['delete_name'])); $wpdb->delete($name_directory_table_directory_name, array('id' => $_GET['delete_name']), array('%d')); echo "

" . sprintf(__('Name %s deleted', 'name-directory'), "" . esc_html($name) . "") . "

"; } else if(! empty($_POST['name_id'])) { if(empty($_POST['name-directory-nonce']) || ! wp_verify_nonce( $_POST['name-directory-nonce'], 'name-directory-action')) { echo name_directory_get_csrf_error_message($_POST['name']); exit; } $description = stripslashes($_POST['description']); if( ! empty( $name_directory_settings['simple_wysiwyg_editor'] ) ) { $description = nl2br($description); } $wpdb->update( $name_directory_table_directory_name, array( 'name' => wp_kses_post(stripslashes($_POST['name'])), 'letter' => name_directory_get_first_char($_POST['name']), 'description' => wp_kses_post(stripslashes($description)), 'published' => (int)$_POST['published'], 'submitted_by' => wp_kses_post($_POST['submitted_by']), ), array('id' => intval($_POST['name_id'])) ); if($_POST['action'] == "name_directory_ajax_names") { $refresh_url = str_replace('edit_name=', '', $_SERVER['HTTP_REFERER']); echo '

'; echo sprintf(__('Name %s updated', 'name-directory'), "" . esc_html($_POST['name']) . ""); echo '. ' . __('Will be visible when the page is refreshed.', 'name-directory') . ' '; echo ' ' . __('Refresh now', 'name-directory') . ''; echo '

'; exit; } echo "

" . sprintf(__('Name %s updated', 'name-directory'), "" . esc_html($_POST['name']) . "") . "

"; unset($_GET['edit_name']); } else if(! empty($_POST['name'])) { if(! wp_verify_nonce( $_POST['name-directory-nonce'], 'name-directory-action')) { echo name_directory_get_csrf_error_message($_POST['name']); exit; } $name_exists = name_directory_name_exists_in_directory($_POST['name'], $_POST['directory']); if($name_exists && $_POST['action'] == "name_directory_ajax_names") { echo '

'; echo sprintf(__('Name %s was already on the list, so it was not added', 'name-directory'), '' . esc_html($_POST['name']) . ''); echo '

'; exit; } $description = $_POST['description']; if( ! empty( $name_directory_settings['simple_wysiwyg_editor'] ) ) { $description = nl2br($description); } $wpdb->insert( $name_directory_table_directory_name, array( 'directory' => (int)$_POST['directory'], 'name' => wp_kses_post($_POST['name']), 'letter' => name_directory_get_first_char(wp_kses_post($_POST['name'])), 'description' => wp_kses_post($description), 'published' => (int)$_POST['published'], 'submitted_by' => wp_kses_post($_POST['submitted_by']), ), array('%d', '%s', '%s', '%s', '%d', '%s') ); if($_POST['action'] == "name_directory_ajax_names") { echo '

'; printf(__('New name %s added', 'name-directory'), '' . esc_html($_POST['name']) . ' '); echo '. ' . __('Will be visible when the page is refreshed.', 'name-directory') . ' '; echo ' ' . __('Refresh now', 'name-directory') . ''; echo '

'; exit; } echo "

" . sprintf(__('New name %s added', 'name-directory'), "" . esc_html($_POST['name']) . " ") . "

"; } else if($_SERVER['REQUEST_METHOD'] == 'POST') { if($_POST['action'] == "name_directory_ajax_names") { echo '

' . __('Please fill in at least a name', 'name-directory') . '

'; exit; } echo "

" . __('Please fill in at least a name', 'name-directory') . "

"; } $wp_file = admin_url('admin.php'); $wp_page = sanitize_text_field($_GET['page']); $wp_sub = sanitize_text_field($_GET['sub']); $overview_url = sprintf("%s?page=%s", $wp_file, $wp_page); if(! array_key_exists('dir', $_GET)) { echo ""; exit; } $directory_id = intval($_GET['dir']); $wp_url_path = sprintf("%s?page=%s&sub=%s&dir=%d", $wp_file, $wp_page, $wp_sub, $directory_id); $wp_ndir_path = sprintf("%s?page=%s&sub=%s&dir=%d", $wp_file, $wp_page, 'manage-directory', $directory_id); $name_directory_settings = get_option('name_directory_general_option'); $wp_nonce = wp_create_nonce('name-directory-action'); $published_status = '0,1'; $emphasis_class = 's_all'; if(! empty($_GET['status']) && $_GET['status'] == 'published') { $published_status = '1'; $emphasis_class = 's_published'; } else if(! empty($_GET['status']) && $_GET['status'] == 'unpublished') { $published_status = '0'; $emphasis_class = 's_unpublished'; } $directory = $wpdb->get_row("SELECT * FROM " . $name_directory_table_directory . " WHERE `id` = " . $directory_id, ARRAY_A); if( ! empty( $name_directory_settings['use_namedirectory_admin_pagination'] ) ) { $pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1; $page_size = 50; // number of rows in page $offset = ( $pagenum - 1 ) * $page_size; $total_names = $wpdb->get_var( sprintf("SELECT COUNT(`id`) FROM %s WHERE `directory` = %d AND `published` IN (%s)", $name_directory_table_directory_name, $directory_id, $published_status)); $num_of_pages = ceil( $total_names / $page_size ); $names = $wpdb->get_results(sprintf("SELECT * FROM %s WHERE `directory` = %d AND `published` IN (%s) ORDER BY `name` ASC LIMIT %d, %d", $name_directory_table_directory_name, $directory_id, $published_status, $offset, $page_size)); } else { $names = $wpdb->get_results(sprintf("SELECT * FROM %s WHERE `directory` = %d AND `published` IN (%s) ORDER BY `name` ASC", $name_directory_table_directory_name, $directory_id, $published_status)); } echo '
'; echo "

" . sprintf(__('Manage names for %s', 'name-directory'), $directory['name']) . "

"; ?> get_row(sprintf("SELECT * FROM `%s` WHERE `id` = %d", $name_directory_table_directory_name, $_GET['edit_name']), ARRAY_A); $table_heading = __('Edit a name', 'name-directory'); $save_button_txt = __('Save name', 'name-directory'); $show_all_names = false; } else { $table_heading = __('Add a new name', 'name-directory'); $save_button_txt = __('Add name', 'name-directory'); $name = array('name' => null, 'description' => '', 'submitted_by' => null); } ?>

 

'; } ?>
' . esc_textarea($name['description']) . ''; } else { wp_editor($name['description'], 'description', array('textarea_rows' => 5, 'textarea_name' => 'description')); } ?>
>
 

  • |
  • |
'; echo ''; if(empty($name_filter['character']) && ! empty($search_value)) { echo '

"; } else { echo "

"; } echo ""; ?> ", __('Currently, there are no names in this directory..', 'name-directory')); } foreach($names as $name) { if(is_array($name)) { $name = (object)$name; } echo sprintf(" ", esc_html(stripslashes($name->name)), esc_html(stripslashes($name->description)), sanitize_text_field(esc_html($name->submitted_by)), $name->id, $name->id, ! empty($name->published)?' checked':'', __('Toggle published status', 'name-directory'), $name->id, __('Edit', 'name-directory'), $name->id, $wp_nonce, __('Delete', 'name-directory'), $name->id); } ?>
%s
%s%s%s %s %s %s

 

"; echo __('You are currently in editing or adding-mode, so not all the names are shown.', 'name-directory'); echo " " . __('View the names', 'name-directory') . ""; echo "

"; } wp_add_inline_script('name_directory_admin', "jQuery('." . $emphasis_class . "').css('font-weight', 'bold');"); if(! empty($_GET['edit_name'])) { wp_add_inline_script('name_directory_admin', "jQuery('#input_extensive').trigger('click');"); } } /** * Create a directory with just a name and then go to the import page */ function name_directory_quick_import() { global $wpdb; global $name_directory_table_directory; echo '
'; echo "

" . __('Import names into a new directory', 'name-directory') . "

"; if(! empty($_POST['mode']) && $_POST['mode'] == "new" && check_admin_referer('name-directory-quick','quicknonce')) { $cleaned_name = sanitize_text_field($_POST['name']); if(empty($cleaned_name)){ $cleaned_name = __('Quick import', 'name-directory'); } $wpdb->insert( $name_directory_table_directory, array( 'name' => $cleaned_name, 'description' => __('Quick import', 'name-directory'), 'show_title' => 1, 'show_description' => 1, 'show_submit_form' => 0, 'check_submitted_names_first' => 0, 'show_search_form' => 1, 'show_submitter_name' => 0, 'show_line_between_names' => 0, 'show_character_header' => 0, 'show_all_names_on_index' => 0, 'show_all_index_letters' => 1, 'jump_to_search_results' => 1, 'nr_columns' => 1, 'nr_most_recent' => 0, 'nr_words_description' => 0, 'name_term' => '', 'name_term_singular' => '', 'email_for_submission' => '', 'show_current_num_names' => 1, 'show_index_instructions' => 1, ), array('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%d', '%d', '%s', '%s', '%s', '%d', '%d') ); $import_url = sprintf("%s?page=%s&sub=%s&dir=%d", admin_url('admin.php'), sanitize_text_field($_GET['page']), 'import', $wpdb->insert_id); echo "

" . sprintf(__('Directory %s created.', 'name-directory'), "" . $cleaned_name . "") . "

"; echo __('Loading the import page...', 'name-directory'); echo ""; } $wp_nonce = wp_create_nonce('name-directory-quick'); ?>
">
 
delete( $name_directory_table_directory_name, array( 'directory' => $directory_id ) ); } if(! empty($_POST['use_utf8_import'])) { $use_utf_import = true; } $csv = array_map( 'str_getcsv', file($file['file']) ); wp_import_cleanup($file['id']); array_shift($csv); $names_error = 0; $names_imported = 0; $names_duplicate = 0; foreach($csv as $entry) { if ( ! $prepared_row = name_directory_prepared_import_row($entry, 1, $use_utf_import) ) { continue; } if ( name_directory_name_exists_in_directory($prepared_row['name'], $directory_id) ) { $names_duplicate++; continue; } $db_res = $wpdb->insert( $name_directory_table_directory_name, array( 'directory' => $directory_id, 'name' => sanitize_text_field($prepared_row['name']), 'letter' => name_directory_get_first_char($prepared_row['name']), 'description' => ! empty($prepared_row['description']) ? wp_kses_post($prepared_row['description']) : '', 'published' => ! empty($prepared_row['published']) ? $prepared_row['published'] : '', 'submitted_by' => ! empty($prepared_row['submitted_by']) ? sanitize_text_field($prepared_row['submitted_by']) : '', ), array('%d', '%s', '%s', '%s', '%d', '%s') ); if($db_res === false) { $names_error++; } else { $names_imported++; } } $notice_class = 'updated'; $import_success = true; $import_message = sprintf(__('Imported %d entries in this directory', 'name-directory'), $names_imported); if($names_imported === 0) { $notice_class = 'error'; $import_success = false; $import_message = __('Could not import any names into Name Directory', 'name-directory'); } if($names_error > 0) { $notice_class = 'error'; $import_success = false; if($names_imported === 0) { $import_message .= "! "; } $import_message .= "
" . sprintf(__('There were %d names that produces errors with the WordPress database on import', 'name-directory'), $names_error); } if($names_duplicate > 0) { $ignored = (count($csv)==$names_duplicate)?__('all', 'name-directory'):$names_duplicate; echo '

' . sprintf(__('Ignored %s names, because they were duplicate (already in the directory)', 'name-directory'), $ignored) . '

'; } elseif($names_imported === 0) { $import_message .= ', ' . __('please check your .csv-file', 'name-directory'); } echo '

' . $import_message . '

'; } $wp_file = admin_url('admin.php'); $wp_page = sanitize_text_field($_GET['page']); $wp_sub = sanitize_text_field($_GET['sub']); $overview_url = sprintf("%s?page=%s", $wp_file, $wp_page); $wp_url_path = sprintf("%s?page=%s&sub=%s&dir=%d", $wp_file, $wp_page, $wp_sub, $directory_id); $wp_ndir_path = sprintf("%s?page=%s&sub=%s&dir=%d", $wp_file, $wp_page, 'manage-directory', $directory_id); $directory = $wpdb->get_row("SELECT * FROM " . $name_directory_table_directory . " WHERE `id` = " . $directory_id, ARRAY_A); echo '
'; echo '

' . sprintf(__('Import names for %s', 'name-directory'), $directory['name']) . '

'; echo '

'; if(! $import_success && empty($names_duplicate)) { echo __('Use the upload form below to upload a .csv-file containing all of your names (in the first column), description and submitter are optional.', 'name-directory') . ' '; echo '

' . __('If you saved it from Excel or OpenOffice, please ensure that:', 'name-directory') . '

'; echo '
  1. ' . __('There is a header row (this contains the column names, the first row will NOT be imported)', 'name-directory'); echo '
  2. ' . __('Fields are encapsulated by double quotes', 'name-directory'); echo '
  3. ' . __('Fields are comma-separated', 'name-directory'); echo '
  4. ' . __('If such an option presents itself, save as UTF-8 (not ANSI)', 'name-directory'); echo '
'; echo '

' . sprintf(__('Please check out %s first and ensure your file is formatted the same.', 'name-directory'), '' . __('the example import file', 'name-directory') . '') . '

'; echo '

' . __('One of the best ways to verify if your file has the right format is opening it in a plain text editor, like Windows Notepad, Geany, SublimeText or Notepad++.', 'name-directory') . '

'; echo '
'; echo '

' . __('If uploading or importing fails, these are your options', 'name-directory') . '

    '; echo '
  1. ' . __('Use an online File Convertor', 'name-directory') . '
  2. OpenOffice csv-export help
  3. Excel csv-export help
  4. '; echo sprintf(__('If everything else fails, you can always ask a question at the %s.', 'name-directory'), '' . __('plugin support forums', 'name-directory') . '') . ' ' . __('Please make sure you include all the steps you did to create the file you are trying to import.', 'name-directory'); echo '

'; echo '

' . __('When using the upload function, script-tags are being removed for security reasons.', 'name-directory') . '

'; echo '
'; if(! function_exists('str_getcsv')) { echo '

'; echo __('Name Directory Import requires at least PHP 5.3, you seem to have an older version. Importing names will not work for your website.', 'name-directory'); echo '

'; } echo '

' . __('Upload your .csv-file', 'name-directory') . '

'; wp_import_upload_form($wp_url_path); } echo '
'; echo '' . sprintf(__('Back to %s', 'name-directory'), '' . $directory['name'] . '') . ''; echo ' | '; echo '' . __('Go to Name Directory Overview', 'name-directory') . ''; } /** * Page to export names from a directory file as a .csv-file */ function name_directory_export() { if(! name_directory_is_control_allowed() ) { wp_die( __('You do not have sufficient permissions to access this page.', 'name-directory') ); } global $wpdb; global $name_directory_table_directory; $directory = $wpdb->get_row("SELECT * FROM " . $name_directory_table_directory . " WHERE `id` = " . intval($_GET['dir']), ARRAY_A); $names = name_directory_get_directory_names($directory); echo ''; foreach($names as $entry) { $description = str_replace(array("\n", "\r"), '', $entry['description']); echo ''; } echo ''; /* Notify the user of possible not-working export functionality */ if(stripos($_SERVER['HTTP_USER_AGENT'], 'WebKit') === false && stripos($_SERVER['HTTP_USER_AGENT'], 'Firefox') === false) { echo '

'; echo __('Name Directory Export works best in modern browsers.', 'name-directory') . ' '; echo __('If you encounter problems (or it does not export) in browsers like Internet Explorer or older, please try another browser.', 'name-directory'); echo '

'; } echo '
'; echo '

' . sprintf(__('Export directory %s', 'name-directory'), $directory['name']) . '

'; echo '

'; echo __('Click the Export button to download a .csv file with the contents of your directory.', 'name-directory'); echo '

' . __('Export', 'name-directory') . '

'; echo '

' . __('Go to Name Directory Overview', 'name-directory') . '

'; } /** * Proxy for the AJAX request to switch published-statusses * No params, assumes POST */ function name_directory_ajax_switch_name_published_status() { check_ajax_referer('name_directory_nonce', 'ndnonce', true); if(! name_directory_is_control_allowed() ) { wp_die( __('You do not have sufficient permissions to access this page.', 'name-directory') ); } $name_id = intval($_POST['name_id']); if( ! empty($name_id) ) { echo name_directory_switch_name_published_status($name_id); exit; } echo 'Error!'; exit; } /** * Add the javascript and css resources to the admin */ function name_directory_admin_add_resources() { $admin_vars = array( 'delete_question' => __('Are you sure you want to delete this name directory?', 'name-directory'), 'empty_directory_on_import' => __('Remove all the entries of this directory before starting the import', 'name-directory'), 'use_utf8_import' => __('Use special import option (use only when importing has failed before and if you are using non-latin characters)', 'name-directory'), 'ajaxurl' => admin_url('admin-ajax.php'), 'nd_ajax_nonce' => wp_create_nonce('name_directory_nonce') ); wp_register_script('name_directory_admin', plugins_url('name_directory_admin.js', __FILE__), array('jquery'), '1.1', true); wp_localize_script('name_directory_admin', 'name_directory_adminjs', $admin_vars); wp_enqueue_script('name_directory_admin'); wp_enqueue_style('name_directory_admin', plugins_url('name_directory_admin.css', __FILE__), '', '1.0'); }