$jobtypeclass ) { add_action( 'wp_ajax_backwpup_jobtype_' . strtolower( $id ), array( $jobtypeclass, 'edit_ajax' ) ); } } //ajax calls for destinations if ( $dests = BackWPup::get_registered_destinations() ) { foreach ( $dests as $id => $dest ) { if ( ! empty( $dest[ 'class' ] ) ) add_action( 'wp_ajax_backwpup_dest_' . strtolower( $id ), array( BackWPup::get_destination( $id ), 'edit_ajax' ) ); } } } //display about page after Update if ( ! defined( 'DOING_AJAX' ) && ! get_site_option( 'backwpup_about_page', FALSE ) && ! isset( $_GET['activate-multi'] ) ) { update_site_option( 'backwpup_about_page', TRUE ); wp_redirect( network_admin_url( 'admin.php' ) . '?page=backwpupabout' ); exit(); } } /** * Admin init function */ public static function admin_css() { //register js and css for BackWPup if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) { wp_enqueue_style( 'backwpup', BackWPup::get_plugin_data( 'URL' ) . '/assets/css/backwpup.css', array(), time(), 'screen' ); if ( version_compare( BackWPup::get_plugin_data( 'wp_version' ), '3.8-beta-1', '<' ) ) { wp_enqueue_style( 'backwpup-wplt38', BackWPup::get_plugin_data( 'URL' ) . '/assets/css/lower_wp38.css', array( 'backwpup' ), time(), 'screen' ); } } else { wp_enqueue_style( 'backwpup', BackWPup::get_plugin_data( 'URL' ) . '/assets/css/backwpup.min.css', array(), BackWPup::get_plugin_data( 'Version' ), 'screen' ); if ( version_compare( BackWPup::get_plugin_data( 'wp_version' ), '3.8-beta-1', '<' ) ) { wp_enqueue_style( 'backwpup-wplt38', BackWPup::get_plugin_data( 'URL' ) . '/assets/css/lower_wp38.min.css', array( 'backwpup' ), BackWPup::get_plugin_data( 'Version' ), 'screen' ); } } } /** * * Add Links in Plugins Menu to BackWPup * * @param $links * @param $file * @return array */ public function plugin_links( $links, $file ) { if ( $file == plugin_basename( BackWPup::get_plugin_data( 'MainFile' ) ) ) { $links[ ] = '' . __( 'Documentation', 'backwpup' ) . ''; if ( class_exists( 'BackWPup_Pro', FALSE ) ) $links[ ] = '' . __( 'Pro Support', 'backwpup' ) . ''; else $links[ ] = '' . __( 'Support', 'backwpup' ) . ''; } return $links; } /** * Add menu entries */ public function admin_menu() { add_menu_page( BackWPup::get_plugin_data( 'name' ), BackWPup::get_plugin_data( 'name' ), 'backwpup', 'backwpup', array( 'BackWPup_Page_Backwpup', 'page' ), 'div' ); $this->page_hooks[ 'backwpup' ] = add_submenu_page( 'backwpup', __( 'BackWPup Dashboard', 'backwpup' ), __( 'Dashboard', 'backwpup' ), 'backwpup', 'backwpup', array( 'BackWPup_Page_Backwpup', 'page' ) ); add_action( 'load-' . $this->page_hooks[ 'backwpup' ], array( 'BackWPup_Admin', 'init_generel' ) ); add_action( 'load-' . $this->page_hooks[ 'backwpup' ], array( 'BackWPup_Page_Backwpup', 'load' ) ); add_action( 'admin_print_scripts-' . $this->page_hooks[ 'backwpup' ], array( 'BackWPup_Page_Backwpup', 'admin_print_scripts' ) ); //Add pages form plugins $this->page_hooks = apply_filters( 'backwpup_admin_pages' ,$this->page_hooks ); } /** * @param $page_hooks * @return mixed */ public function admin_page_jobs( $page_hooks ) { $this->page_hooks[ 'backwpupjobs' ] = add_submenu_page( 'backwpup', __( 'Jobs', 'backwpup' ), __( 'Jobs', 'backwpup' ), 'backwpup_jobs', 'backwpupjobs', array( 'BackWPup_Page_Jobs', 'page' ) ); add_action( 'load-' . $this->page_hooks[ 'backwpupjobs' ], array( 'BackWPup_Admin', 'init_generel' ) ); add_action( 'load-' . $this->page_hooks[ 'backwpupjobs' ], array( 'BackWPup_Page_Jobs', 'load' ) ); add_action( 'admin_print_styles-' . $this->page_hooks[ 'backwpupjobs' ], array( 'BackWPup_Page_Jobs', 'admin_print_styles' ) ); add_action( 'admin_print_scripts-' . $this->page_hooks[ 'backwpupjobs' ], array( 'BackWPup_Page_Jobs', 'admin_print_scripts' ) ); return $page_hooks; } /** * @param $page_hooks * @return mixed */ public function admin_page_editjob( $page_hooks ) { $this->page_hooks[ 'backwpupeditjob' ] = add_submenu_page( 'backwpup', __( 'Add new job', 'backwpup' ), __( 'Add new job', 'backwpup' ), 'backwpup_jobs_edit', 'backwpupeditjob', array( 'BackWPup_Page_Editjob', 'page' ) ); add_action( 'load-' . $this->page_hooks[ 'backwpupeditjob' ], array( 'BackWPup_Admin', 'init_generel' ) ); add_action( 'load-' . $this->page_hooks[ 'backwpupeditjob' ], array( 'BackWPup_Page_Editjob', 'auth' ) ); add_action( 'load-' . $this->page_hooks[ 'backwpupeditjob' ], array( 'BackWPup_Page_Editjob', 'load' ) ); add_action( 'admin_print_styles-' . $this->page_hooks[ 'backwpupeditjob' ], array( 'BackWPup_Page_Editjob', 'admin_print_styles' ) ); add_action( 'admin_print_scripts-' . $this->page_hooks[ 'backwpupeditjob' ], array( 'BackWPup_Page_Editjob', 'admin_print_scripts' ) ); return $page_hooks; } /** * @param $page_hooks * @return mixed */ public function admin_page_logs( $page_hooks ) { $this->page_hooks[ 'backwpuplogs' ] = add_submenu_page( 'backwpup', __( 'Logs', 'backwpup' ), __( 'Logs', 'backwpup' ), 'backwpup_logs', 'backwpuplogs', array( 'BackWPup_Page_Logs', 'page' ) ); add_action( 'load-' . $this->page_hooks[ 'backwpuplogs' ], array( 'BackWPup_Admin', 'init_generel' ) ); add_action( 'load-' . $this->page_hooks[ 'backwpuplogs' ], array( 'BackWPup_Page_Logs', 'load' ) ); add_action( 'admin_print_styles-' . $this->page_hooks[ 'backwpuplogs' ], array( 'BackWPup_Page_Logs', 'admin_print_styles' ) ); add_action( 'admin_print_scripts-' . $this->page_hooks[ 'backwpuplogs' ], array( 'BackWPup_Page_Logs', 'admin_print_scripts' ) ); return $page_hooks; } /** * @param $page_hooks * @return mixed */ public function admin_page_backups( $page_hooks ) { $this->page_hooks[ 'backwpupbackups' ] = add_submenu_page( 'backwpup', __( 'Backups', 'backwpup' ), __( 'Backups', 'backwpup' ), 'backwpup_backups', 'backwpupbackups', array( 'BackWPup_Page_Backups', 'page' ) ); add_action( 'load-' . $this->page_hooks[ 'backwpupbackups' ], array( 'BackWPup_Admin', 'init_generel' ) ); add_action( 'load-' . $this->page_hooks[ 'backwpupbackups' ], array( 'BackWPup_Page_Backups', 'load' ) ); add_action( 'admin_print_styles-' . $this->page_hooks[ 'backwpupbackups' ], array( 'BackWPup_Page_Backups', 'admin_print_styles' ) ); add_action( 'admin_print_scripts-' . $this->page_hooks[ 'backwpupbackups' ], array( 'BackWPup_Page_Backups', 'admin_print_scripts' ) ); return $page_hooks; } /** * @param $page_hooks * @return mixed */ public function admin_page_settings( $page_hooks ) { $this->page_hooks[ 'backwpupsettings' ] = add_submenu_page( 'backwpup', __( 'Settings', 'backwpup' ), __( 'Settings', 'backwpup' ), 'backwpup_settings', 'backwpupsettings', array( 'BackWPup_Page_Settings', 'page' ) ); add_action( 'load-' . $this->page_hooks[ 'backwpupsettings' ], array( 'BackWPup_Admin', 'init_generel' ) ); add_action( 'admin_print_scripts-' . $this->page_hooks[ 'backwpupsettings' ], array( 'BackWPup_Page_Settings', 'admin_print_scripts' ) ); return $page_hooks; } /** * @param $page_hooks * @return mixed */ public function admin_page_about( $page_hooks ) { $this->page_hooks[ 'backwpupabout' ] = add_submenu_page( 'backwpup', __( 'About', 'backwpup' ), __( 'About', 'backwpup' ), 'backwpup', 'backwpupabout', array( 'BackWPup_Page_About', 'page' ) ); add_action( 'load-' . $this->page_hooks[ 'backwpupabout' ], array( 'BackWPup_Admin', 'init_generel' ) ); add_action( 'admin_print_styles-' . $this->page_hooks[ 'backwpupabout' ], array( 'BackWPup_Page_About', 'admin_print_styles' ) ); add_action( 'admin_print_scripts-' . $this->page_hooks[ 'backwpupabout' ], array( 'BackWPup_Page_About', 'admin_print_scripts' ) ); return $page_hooks; } /** * Load for all BackWPup pages */ public static function init_generel() { add_thickbox(); //register js and css for BackWPup if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) { wp_register_script( 'backwpuptiptip', BackWPup::get_plugin_data( 'URL' ) . '/assets/js/jquery.tipTip.js', array( 'jquery' ), '1.3.1', TRUE ); wp_register_script( 'backwpupgeneral', BackWPup::get_plugin_data( 'URL' ) . '/assets/js/general.js', array( 'jquery', 'backwpuptiptip' ), time(), TRUE ); } else { wp_register_script( 'backwpuptiptip', BackWPup::get_plugin_data( 'URL' ) . '/assets/js/jquery.tipTip.min.js', array( 'jquery' ), '1.3.1', TRUE ); wp_register_script( 'backwpupgeneral', BackWPup::get_plugin_data( 'URL' ) . '/assets/js/general.min.js', array( 'jquery', 'backwpuptiptip' ), BackWPup::get_plugin_data( 'Version' ), TRUE ); } //add Help BackWPup_Help::help(); } /** * Called on save form. Only POST allowed. */ public function save_post_form() { //Allowed Pages if ( ! in_array( $_POST[ 'page' ], array ( 'backwpupeditjob', 'backwpupinformation', 'backwpupsettings' ) ) ) wp_die( __( 'Cheating, huh?', 'backwpup' ) ); //nonce check check_admin_referer( $_POST[ 'page' ] . '_page' ); if ( ! current_user_can( 'backwpup' ) ) wp_die( __( 'Cheating, huh?', 'backwpup' ) ); //build query for redirect if ( ! isset( $_POST[ 'anchor' ] ) ) $_POST[ 'anchor' ] = NULL; $query_args=array(); if ( isset( $_POST[ 'page' ] ) ) $query_args[ 'page' ] = $_POST[ 'page' ]; if ( isset( $_POST[ 'tab' ] ) ) $query_args[ 'tab' ] = $_POST[ 'tab' ]; if ( isset( $_POST[ 'tab' ] ) && isset( $_POST[ 'nexttab' ] ) && $_POST[ 'tab' ] != $_POST[ 'nexttab' ] ) $query_args[ 'tab' ] = $_POST[ 'nexttab' ]; $jobid = NULL; if ( isset( $_POST[ 'jobid' ] ) ) { $jobid = (int) $_POST[ 'jobid' ]; $query_args[ 'jobid' ] = $jobid; } //Call method to save data if ( $_POST[ 'page' ] == 'backwpupeditjob' ) BackWPup_Page_Editjob::save_post_form( $_POST[ 'tab' ], $jobid ); elseif ( $_POST[ 'page' ] == 'backwpupsettings' ) { BackWPup_Page_Settings::save_post_form(); } //Back to topic wp_safe_redirect( add_query_arg( $query_args, network_admin_url( 'admin.php' ) ) . $_POST[ 'anchor' ] ); exit; } /** * Add Message (across site loadings) * * @param $message string Message test * @param $error bool ist it a error message */ public static function message( $message, $error = FALSE ) { $saved_message = self::get_messages(); if ( $error ) $saved_message[ 'error' ][] = $message; else $saved_message[ 'updated' ][] = $message; update_site_option( 'backwpup_messages', $saved_message ); } /** * Get all Message that not displayed * * @return array */ public static function get_messages() { return get_site_option( 'backwpup_messages', array() ); } /** * Display Messages * * @param bool $echo * @return string */ public static function display_messages( $echo = TRUE ) { $message_updated= ''; $message_error = ''; $saved_message = self::get_messages(); $message_id = ' id="message"'; if( empty( $saved_message ) ) return ''; if ( ! empty( $saved_message[ 'updated' ] ) ) { foreach( $saved_message[ 'updated' ] as $msg ) $message_updated .= '

' . $msg . '

'; } if ( ! empty( $saved_message[ 'error' ] ) ) { foreach( $saved_message[ 'error' ] as $msg ) $message_error .= '

' . $msg . '

'; } update_site_option( 'backwpup_messages', array() ); if ( ! empty( $message_updated ) ) { $message_updated = '' . $message_updated . ''; $message_id = ''; } if ( ! empty( $message_error ) ) { $message_error = '' . $message_error . ''; } if ( $echo ) echo $message_updated . $message_error; return $message_updated . $message_error; } /** * Overrides WordPress text in Footer * * @param $admin_footer_text string * @return string */ public function admin_footer_text( $admin_footer_text ) { $default_text = $admin_footer_text; if ( isset( $_REQUEST[ 'page' ] ) && strstr( $_REQUEST[ 'page' ], 'backwpup' ) ) { $admin_footer_text = ''; if ( ! class_exists( 'BackWPup_Pro', FALSE ) ) $admin_footer_text .= sprintf( __( 'Get BackWPup Pro now.', 'backwpup' ), __( 'http://marketpress.com/product/backwpup-pro/', 'backwpup' ) ); return $admin_footer_text . $default_text; } return $admin_footer_text; } /** * Overrides WordPress Version in Footer * * @param $update_footer_text string * @return string */ public function update_footer( $update_footer_text ) { $default_text = $update_footer_text; if ( isset( $_REQUEST[ 'page' ] ) && strstr( $_REQUEST[ 'page' ], 'backwpup') ) { $update_footer_text = '' . BackWPup::get_plugin_data( 'Name' ) . ' '. sprintf( __( 'version %s' ,'backwpup'), BackWPup::get_plugin_data( 'Version' ) ) . ''; return $update_footer_text . $default_text; } return $update_footer_text; } /** * Add filed for selecting user role in user section * * @param $user WP_User */ public function user_profile_fields( $user ) { global $wp_roles; if ( ! is_super_admin() && ! current_user_can( 'backwpup_admin' ) ) return; ?>


roles ) as $role ) { if ( ! strstr( $role, 'backwpup_' ) ) continue; $backwpup_roles[] = $role; } //get user for adding/removing role $user = new WP_User( $user_id ); //remove BackWPup role from user foreach ( $user->roles as $role ) { if ( ! strstr( $role, 'backwpup_' ) ) continue; $user->remove_role( $role ); } //add new role to user if ( ! empty( $_POST['backwpup_role'] ) && in_array( $_POST['backwpup_role'], $backwpup_roles ) ) $user->add_role( $_POST['backwpup_role'] ); return; } public function gettext( $translations, $text, $domain ) { if ( strstr( $text, 'back up your database and files' ) ) return sprintf( __( 'Important: before updating, please back up your database and files with %2$s. For help with updates, visit the Updating WordPress Codex page.', 'backwpup' ), network_admin_url( 'admin.php?page=backwpupjobs' ), BackWPup::get_plugin_data( 'name' ) ); if ( strstr( $text, 'This plugin has not been tested with your current version of WordPress.' ) ) return $translations . '

' .sprintf( __( 'Important: before installing this plugin, please back up your database and files with %2$s.', 'backwpup' ), network_admin_url( 'admin.php?page=backwpupjobs' ), BackWPup::get_plugin_data( 'name' ) ); if ( strstr( $text, 'This plugin has not been marked as compatible with your version of WordPress.' ) ) return $translations . '

' .sprintf( __( 'Important: before installing this plugin, please back up your database and files with %2$s.', 'backwpup' ), network_admin_url( 'admin.php?page=backwpupjobs' ), BackWPup::get_plugin_data( 'name' ) ); return $translations; } /** * Filter BackWPup roles from displaying in normal WP roles selection * * @param $all_roles * @return mixed */ public function editable_roles( $all_roles ) { foreach( $all_roles AS $key => $role ) { if ( substr( $key, 0, 8 ) == 'backwpup' ) unset( $all_roles[$key] ); } return $all_roles; } /** * Add column for displaying BAckWPup user role * * @param $columns * @return mixed */ public function manage_users_columns( $columns ) { $columns[ 'backwpup_role' ] = __( 'BackWPup Role', 'backwpup' ); return $columns; } /** * Display BackWPup user role in column * * @param $value * @param $column_name * @param $user_id * @return string */ public function manage_users_custom_column( $value, $column_name, $user_id ) { global $wp_roles; if ( 'backwpup_role' != $column_name ) return $value; $user = get_userdata( $user_id ); foreach ( $user->roles as $role ) { if ( substr( $role, 0, 8 ) == 'backwpup' ) { $value .= $wp_roles->roles[ $role ][ 'name' ]. '
'; } } return $value; } }