| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292 |
- <?php if ( ! defined( 'ABSPATH' ) ) exit;
- function ninja_forms_add_menu(){
- $page = add_menu_page("Ninja Forms" , __( 'Forms', 'ninja-forms' ), apply_filters( 'ninja_forms_admin_parent_menu_capabilities', 'manage_options' ), "ninja-forms", "ninja_forms_admin", "dashicons-feedback", "35.1337" );
- $all_forms = add_submenu_page("ninja-forms", __( 'Forms', 'ninja-forms' ), __( 'All Forms', 'ninja-forms' ), apply_filters( 'ninja_forms_admin_all_forms_capabilities', 'manage_options' ), "ninja-forms", "ninja_forms_admin");
- $new_form = add_submenu_page("ninja-forms", __( 'Add New', 'ninja-forms' ), __( 'Add New', 'ninja-forms' ), apply_filters( 'ninja_forms_admin_add_new_capabilities', 'manage_options' ), "ninja-forms&tab=builder&form_id=new", "ninja_forms_admin");
-
- $upgrade = add_submenu_page( null, __( 'Ninja Forms Upgrades', 'ninja-forms' ), __( 'Upgrades', 'ninja-forms' ), 'install_plugins', 'nf-upgrades', 'nf_upgrades_screen' );
-
- add_action('admin_print_styles-' . $page, 'ninja_forms_admin_css');
- add_action('admin_print_styles-' . $page, 'ninja_forms_admin_js');
- add_action('admin_print_styles-' . $new_form, 'ninja_forms_admin_css');
- add_action('admin_print_styles-' . $new_form, 'ninja_forms_admin_js');
-
- add_action( 'load-' . $page, 'ninja_forms_load_screen_options_tab' );
- add_action( 'load-' . $all_forms, 'ninja_forms_load_screen_options_tab' );
- }
- add_action( 'admin_menu', 'ninja_forms_add_menu' );
- /**
- * Add our submenu pages
- *
- * @since 2.7
- * @return void
- */
- function nf_add_submenus() {
- $import = add_submenu_page("ninja-forms", __( 'Import/Export', 'ninja-forms' ), __( 'Import / Export', 'ninja-forms' ), apply_filters( 'ninja_forms_admin_import_export_capabilities', 'manage_options' ), "ninja-forms-impexp", "ninja_forms_admin");
- $settings = add_submenu_page("ninja-forms", __( 'Ninja Form Settings', 'ninja-forms' ), __( 'Settings', 'ninja-forms' ), apply_filters( 'ninja_forms_admin_settings_capabilities', 'manage_options' ), "ninja-forms-settings", "ninja_forms_admin");
- $system_status = add_submenu_page("ninja-forms", __( 'System Status', 'ninja-forms' ), __( 'System Status', 'ninja-forms' ), apply_filters( 'ninja_forms_admin_status_capabilities', 'manage_options' ), "ninja-forms-system-status", "ninja_forms_admin");
- $extend = add_submenu_page("ninja-forms", __( 'Add-Ons', 'ninja-forms' ), __( 'Add-Ons', 'ninja-forms' ), apply_filters( 'ninja_forms_admin_extend_capabilities', 'manage_options' ), "ninja-forms-extend", "ninja_forms_admin");
- add_action('admin_print_styles-' . $settings, 'ninja_forms_admin_js');
- add_action('admin_print_styles-' . $settings, 'ninja_forms_admin_css');
- add_action('admin_print_styles-' . $import, 'ninja_forms_admin_js');
- add_action('admin_print_styles-' . $import, 'ninja_forms_admin_css');
- add_action('admin_print_styles-' . $system_status, 'ninja_forms_admin_js');
- add_action('admin_print_styles-' . $system_status, 'ninja_forms_admin_css');
- add_action('admin_print_styles-' . $extend, 'ninja_forms_admin_js');
- add_action('admin_print_styles-' . $extend, 'ninja_forms_admin_css');
- add_action( 'load-' . $settings, 'ninja_forms_load_screen_options_tab' );
- add_action( 'load-' . $import, 'ninja_forms_load_screen_options_tab' );
- add_action( 'load-' . $system_status, 'ninja_forms_load_screen_options_tab' );
- add_action( 'load-' . $extend, 'ninja_forms_load_screen_options_tab' );
- }
- add_action( 'admin_menu', 'nf_add_submenus', 15 );
- function ninja_forms_admin(){
- global $wpdb, $ninja_forms_tabs, $ninja_forms_sidebars, $current_tab, $ninja_forms_tabs_metaboxes, $ninja_forms_admin_update_message;
- $current_tab = ninja_forms_get_current_tab();
- $current_page = esc_html( $_REQUEST['page'] );
- if( isset ( $_REQUEST['form_id'] ) ) {
- $form_id = absint( $_REQUEST['form_id'] );
- $data = Ninja_Forms()->form( $form_id )->get_all_settings();
- $form_title = isset ( $data['form_title'] ) ? $data['form_title'] : '';
- }else{
- $form_id = '';
- $data = '';
- $form_title = '';
- }
- if( !isset( $ninja_forms_admin_update_message ) AND isset( $_REQUEST['update_message'] ) ){
- $ninja_forms_admin_update_message = esc_html( $_REQUEST['update_message'] );
- }
- $output_form = isset ( $ninja_forms_tabs[$current_page][$current_tab]['output_form'] ) ? $ninja_forms_tabs[$current_page][$current_tab]['output_form'] : true;
- $form_method = isset ( $ninja_forms_tabs[$current_page][$current_tab]['form_method'] ) ? $ninja_forms_tabs[$current_page][$current_tab]['form_method'] : 'post';
- $hidden_fields = isset ( $ninja_forms_tabs[$current_page][$current_tab]['hidden_fields'] ) ? $ninja_forms_tabs[$current_page][$current_tab]['hidden_fields'] : true;
- if ( $output_form ) {
- ?>
- <form id="ninja_forms_admin" enctype="multipart/form-data" method="<?php echo $form_method; ?>">
- <input type="hidden" name="_page" id="_page" value="<?php echo $current_page;?>">
- <input type="hidden" name="_tab" id="_tab" value="<?php echo $current_tab;?>">
- <input type="hidden" name="_form_id" id="_form_id" value="<?php echo $form_id;?>">
- <input type="hidden" name="_fields_order" id="_fields_order" value="same">
- <?php
- wp_nonce_field('_ninja_forms_save','_ninja_forms_admin_submit');
- }
- ?>
- <div class="wrap">
- <?php
- screen_icon( 'ninja-custom-forms' );
- if(isset($ninja_forms_tabs[$current_page][$current_tab]['title'])){
- echo $ninja_forms_tabs[$current_page][$current_tab]['title'];
- }
- if ( 'form_list' == $current_tab ) {
- $builder_url = esc_url( add_query_arg( array( 'form_id' => 'new', 'tab' => 'builder' ) ) );
- ?>
- <h2><?php _e( 'Forms', 'ninja-forms' ); ?> <a href="<?php echo $builder_url; ?>" class="add-new-h2"><?php _e( 'Add New', 'ninja-forms'); ?></a></h2>
- <?php
- } else {
- ?>
- <h2 id="nf-display-form-title"><?php echo $form_title; ?></h2>
- <?php
- }
- if($ninja_forms_tabs[$current_page][$current_tab]['show_tab_links']){
- ?>
- <h2 class="nav-tab-wrapper">
- <?php
- ninja_forms_display_tabs();
- if ( ! empty ( $form_id ) ) {
- $preview_link = ninja_forms_preview_link( $form_id, false );
- $subs_link = admin_url( 'edit.php?post_status=all&post_type=nf_sub&action=-1&m=0&form_id=' . $form_id . '&begin_date&end_date&paged=1&mode=list&action2=-1' );
- ?>
- <a href="<?php echo $preview_link; ?>" target="_blank" class="nf-preview button-secondary"><span class="dashicons dashicons-welcome-view-site"></span><?php _e( 'Preview', 'ninja-forms' ); ?></a>
- <a href="<?php echo $subs_link; ?>" target="_blank" class="nf-subs button-secondary"><span class="dashicons dashicons-email-alt"></span><?php _e( 'Submissions', 'ninja-forms' ); ?></a>
- <?php } ?>
- </h2>
- <?php
- }
- if( isset( $ninja_forms_admin_update_message ) AND $ninja_forms_admin_update_message != '' ){
- ?>
- <div id="message" class="updated below-h2">
- <p>
- <?php echo $ninja_forms_admin_update_message;?>
- </p>
- </div>
- <?php
- }
- if(isset($ninja_forms_sidebars[$current_page][$current_tab]) AND is_array($ninja_forms_sidebars[$current_page][$current_tab])){
- ?>
- <div id="nav-menus-frame">
- <?php ninja_forms_display_sidebars($data); ?>
- </div><!-- /#menu-settings-column -->
- <?php
- }
- ?>
- <div id="poststuff">
- <div id="post-body">
- <div id="post-body-content">
- <?php
- //Check to see if the registered tab has an metaboxes registered to it.
- if(isset($ninja_forms_tabs_metaboxes[$current_page][$current_tab]) AND !empty($ninja_forms_tabs_metaboxes[$current_page][$current_tab])){
- ?>
- <div id="ninja_forms_admin_metaboxes">
- <?php
- foreach($ninja_forms_tabs_metaboxes[$current_page][$current_tab] as $slug => $metabox){
- ninja_forms_output_tab_metabox($form_id, $slug, $metabox);
- }
- ?>
- </div>
- <?php
- }
- //Check to see if the registered tab has a display function registered.
- if(isset($ninja_forms_tabs[$current_page][$current_tab]['display_function']) AND $ninja_forms_tabs[$current_page][$current_tab]['display_function'] != ''){
- $tab_callback = $ninja_forms_tabs[$current_page][$current_tab]['display_function'];
- $arguments = func_get_args();
- array_shift($arguments); // We need to remove the first arg ($function_name)
- $arguments['form_id'] = $form_id;
- $arguments['data'] = $data;
- call_user_func_array($tab_callback, $arguments);
- }
- if(isset($ninja_forms_tabs[$current_page][$current_tab]['show_save']) AND $ninja_forms_tabs[$current_page][$current_tab]['show_save'] === true){ ?>
- <br />
- <input class="button-primary menu-save ninja-forms-save-data" id="ninja_forms_save_data_top" type="submit" value="<?php _e( 'Save', 'ninja-forms' ); ?>" />
- <?php
- }
- ?>
- </div><!-- /#post-body-content -->
- </div><!-- /#post-body -->
- </div>
- </div>
- <!-- </div>/.wrap-->
- <?php
- if ( $output_form ) {
- ?>
- </form>
- <?php
- }
- ?>
- <?php
- } //End ninja_edit_forms function
- if(is_admin()){
- require_once(ABSPATH . 'wp-admin/includes/post.php');
- }
- function ninja_forms_get_current_tab(){
- global $ninja_forms_tabs;
- if(isset($_REQUEST['page'])){
- $current_page = esc_html( $_REQUEST['page'] );
- if(isset($_REQUEST['tab'])){
- $current_tab = esc_html( $_REQUEST['tab'] );
- }else{
- if(isset($ninja_forms_tabs[$current_page]) AND is_array($ninja_forms_tabs[$current_page])){
- $first_tab = array_slice($ninja_forms_tabs[$current_page], 0, 1);
- foreach($first_tab as $key => $val){
- $current_tab = $key;
- }
- }else{
- $current_tab = '';
- }
- }
- return $current_tab;
- }else{
- return false;
- }
- }
- function ninja_forms_date_to_datepicker($date){
- $pattern = array(
- //day
- 'd', //day of the month
- 'j', //3 letter name of the day
- 'l', //full name of the day
- 'z', //day of the year
- //month
- 'F', //Month name full
- 'M', //Month name short
- 'n', //numeric month no leading zeros
- 'm', //numeric month leading zeros
- //year
- 'Y', //full numeric year
- 'y' //numeric year: 2 digit
- );
- $replace = array(
- 'dd','d','DD','o',
- 'MM','M','m','mm',
- 'yy','y'
- );
- foreach($pattern as &$p) {
- $p = '/'.$p.'/';
- }
- return preg_replace($pattern,$replace,$date);
- }
- function str_putcsv( $array, $delimiter = ',', $enclosure = '"', $terminator = "\n" ) {
- // First convert associative array to numeric indexed array
- $workArray = array();
- foreach ($array as $key => $value) {
- $workArray[] = $value;
- }
- $returnString = ''; # Initialize return string
- $arraySize = count( $workArray ); # Get size of array
- for ( $i=0; $i<$arraySize; $i++ ) {
- // Nested array, process nest item
- if ( is_array( $workArray[$i] ) ) {
- $returnString .= str_putcsv( $workArray[$i], $delimiter, $enclosure, $terminator );
- } else {
- switch ( gettype( $workArray[$i] ) ) {
- // Manually set some strings
- case "NULL": $_spFormat = ''; break;
- case "boolean": $_spFormat = ($workArray[$i] == true) ? 'true': 'false'; break;
- // Make sure sprintf has a good datatype to work with
- case "integer": $_spFormat = '%i'; break;
- case "double": $_spFormat = '%0.2f'; break;
- case "string": $_spFormat = '%s'; $workArray[$i] = str_replace("$enclosure", "$enclosure$enclosure", $workArray[$i]); break;
- // Unknown or invalid items for a csv - note: the datatype of array is already handled above, assuming the data is nested
- case "object":
- case "resource":
- default: $_spFormat = ''; break;
- }
- $returnString .= sprintf('%2$s'.$_spFormat.'%2$s', $workArray[$i], $enclosure);
- $returnString .= ($i < ($arraySize-1)) ? $delimiter : $terminator;
- }
- }
- // Done the workload, return the output information
- return $returnString;
- }
|