User Guide page to embed your prayer wall, change the color scheme and more. Version: 2.3.2 Author: Eric Murrell (Volacious) Author URI: http://theprayerengine.com */ /* ----- Install the Plugin ----- */ global $wp_version; /* ----- Plugin Updates ----- */ require 'plugin-updates/plugin-update-checker.php'; $ENMPEUpdateChecker = Puc_v4_Factory::buildUpdateChecker( 'http://pluginupdates.theprayerengine.com/newupdater.json', __FILE__, 'prayerengine_plugin' ); define ( 'ENMPE_CURRENT_VERSION', '2.3.2' ); register_activation_hook( __FILE__, 'enm_prayerengine_install_ms' ); //add_action('activated_plugin','save_error'); // Generate Error Messages for Activation hooks //function save_error(){ // update_option('plugin_error', ob_get_contents()); //} function enm_prayerengine_install_ms( $network_wide ) { // Check for multisite global $wpdb; if ( $network_wide ) { $blog_list = $wpdb->get_col("SELECT blog_id FROM " . $wpdb->prefix . "blogs"); foreach ($blog_list as $blog) { switch_to_blog($blog); enm_prayerengine_install(); $data = get_option( 'enm_prayerengine_options' ); ; $css_dir = plugin_dir_path( __FILE__ ) . 'css/'; // Shorten code, save 1 call ob_start(); // Capture all output (output buffering) include($css_dir . 'pe_styles_generate.php'); // Generate CSS $css = ob_get_clean(); // Get generated CSS (output buffering) file_put_contents($css_dir . 'pe_' . $blog . '_styles.css', $css, LOCK_EX); // Save it } switch_to_blog($wpdb->blogid); } else { enm_prayerengine_install(); } } add_action( 'wpmu_new_blog', 'enmpe_new_blog', 10, 6); // Multisite - If a new site is added function enmpe_new_blog($blog_id, $user_id, $domain, $path, $site_id, $meta ) { global $wpdb; if (is_plugin_active_for_network('prayerengine_plugin/prayerengine_plugin.php')) { $old_blog = $wpdb->blogid; switch_to_blog($blog_id); enm_prayerengine_install(); $data = get_option( 'enm_prayerengine_options' ); ; $css_dir = plugin_dir_path( __FILE__ ) . 'css/'; // Shorten code, save 1 call ob_start(); // Capture all output (output buffering) include($css_dir . 'pe_styles_generate.php'); // Generate CSS $css = ob_get_clean(); // Get generated CSS (output buffering) file_put_contents($css_dir . 'pe_' . $blog_id . '_styles.css', $css, LOCK_EX); // Save it switch_to_blog($old_blog); } } function enm_prayerengine_install() { // Install Process include('includes/core/install.php'); }; /* ----- Uninstall the Plugin ----- */ function enm_prayerengine_uninstall_ms() { // Check for multisite global $wpdb; if (function_exists('is_multisite') && is_multisite()) { $blog_list = $wpdb->get_col("SELECT blog_id FROM " . $wpdb->prefix . "blogs"); foreach ($blog_list as $blog) { switch_to_blog($blog); enm_prayerengine_uninstall(); } switch_to_blog($wpdb->blogid); } else { enm_prayerengine_uninstall(); } } function enm_prayerengine_uninstall() { delete_option( 'enm_prayerengine_options' ); delete_option( 'enmpe_db_version' ); global $wpdb; $deletedtable = $wpdb->prefix . "prayers"; $dprayerwalls = $wpdb->prefix . "pe_prayerwalls"; $dprayerfocuses = $wpdb->prefix . "pe_prayerfocuses"; $dsignups = $wpdb->prefix . "pe_signups"; $wpdb->query("DROP TABLE IF EXISTS $deletedtable, $dprayerwalls, $dprayerfocuses, $dsignups"); }; /* ----- Generate Static Stylesheet ----- */ function generate_pe_options_css($newdata) { $data = $newdata; $css_dir = plugin_dir_path( __FILE__ ) . 'css/'; // Shorten code, save 1 call ob_start(); // Capture all output (output buffering) include($css_dir . 'pe_styles_generate.php'); // Generate CSS $css = ob_get_clean(); // Get generated CSS (output buffering) if(is_multisite()) { global $current_blog; file_put_contents($css_dir . 'pe_' . $current_blog->blog_id . '_styles.css', $css, LOCK_EX); // Save it } else { file_put_contents($css_dir . 'pe_styles.css', $css, LOCK_EX); // Save it } } /* ----- Modify User Theme to Add Stylesheets and JavaScript ----- */ add_action('template_redirect', 'enm_prayerengine_frontend_content'); function enm_prayerengine_frontend_content() { if(is_multisite()) { global $current_blog; wp_register_style( 'PrayerEngineFrontendStyles', plugins_url('/css/pe_' . $current_blog->blog_id . '_styles.css', __FILE__) ); wp_enqueue_style( 'PrayerEngineFrontendStyles' ); } else { wp_register_style( 'PrayerEngineFrontendStyles', plugins_url('/css/pe_styles.css', __FILE__) ); wp_enqueue_style( 'PrayerEngineFrontendStyles' ); } wp_register_script( 'PrayerEngineFrontendJavascript', plugins_url('/js/prayerwall210.js', __FILE__) ); wp_enqueue_script( 'PrayerEngineFrontendJavascript' ); wp_localize_script( 'PrayerEngineFrontendJavascript', 'peajax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); } /* ----- Add IE Code to Header ----- */ add_action ( 'wp_head', 'enmpe_ie_compatibility' ); function enmpe_ie_compatibility() { echo ' '; } /* ----- Create the Admin Menus ----- */ add_action( 'admin_menu', 'enm_prayerengine_create_menu' ); function enm_prayerengine_create_menu() { add_menu_page( 'Manage Prayer Requests', 'Prayer Engine', 'edit_posts', __FILE__, 'enm_prayerengine_prayerrequests_page', plugins_url( '/images/blank.png', __FILE__ ) ); add_submenu_page( __FILE__, 'Add a Prayer Request', 'Add New Request', 'edit_posts', __FILE__ . '_addnew', 'enm_prayerengine_addnew_page'); add_submenu_page( __FILE__, 'Manage Prayer Walls', 'Prayer Walls', 'edit_posts', __FILE__ . '_prayerwalls', 'enm_prayerengine_prayerwalls_page'); add_submenu_page( __FILE__, 'Manage Prayer Focuses', 'Prayer Focuses', 'edit_posts', __FILE__ . '_focuses', 'enm_prayerengine_focuses_page'); add_submenu_page( __FILE__, 'Manage Prayer Focus Sign Ups', 'View Focus Signups', 'edit_posts', __FILE__ . '_signups', 'enm_prayerengine_signups_page'); add_submenu_page( __FILE__, 'Embedding Prayer Walls and Prayer Focuses', 'Get Shortcodes', 'edit_posts', __FILE__ . '_embed', 'enm_prayerengine_embed_page'); add_submenu_page( __FILE__, 'Print Prayer Reports', 'Report Library', 'edit_posts', __FILE__ . '_reports', 'enm_prayerengine_reports_page'); add_submenu_page( __FILE__, 'Using The Prayer Engine', 'User Guide', 'edit_posts', __FILE__ . '_userguide', 'enm_prayerengine_userguide_page'); // add_submenu_page( __FILE__, 'Check for Updates', 'Check for Updates', 'edit_pages', __FILE__ . '_update', 'enm_prayerengine_update_page'); } /* Admin Menu - Settings Page */ add_action('admin_menu', 'enm_prayerengine_add_page'); function enm_prayerengine_add_page() { add_options_page( 'Prayer Engine', 'Prayer Engine', 'manage_options', 'enm_prayerengine', 'enm_prayerengine_options_page' ); } function enm_prayerengine_options_page() { include(plugin_dir_path( __FILE__ ) . 'includes/admin/settings.php'); } add_action('admin_enqueue_scripts', 'enm_prayerengine_admin_enqueue'); function enm_prayerengine_admin_enqueue() { // Add stylesheet wp_register_style( 'PrayerEngineAdminStylesheet', plugins_url('/css/pe_backend.css', __FILE__) ); wp_enqueue_style( 'PrayerEngineAdminStylesheet' ); } /* Settings page options */ add_action('admin_init', 'enm_prayerengine_admin_init'); function enm_prayerengine_admin_init() { include('includes/core/settings.php'); } /* Admin Menu - Prayer Requests Page */ function enm_prayerengine_prayerrequests_page() { include(plugin_dir_path( __FILE__ ) . 'includes/admin/prayerrequests.php'); } /* Admin Menu - Add a New Request */ function enm_prayerengine_addnew_page() { include(plugin_dir_path( __FILE__ ) . 'includes/admin/addnew.php'); } /* Admin Menu - Embed Code */ function enm_prayerengine_embed_page() { include(plugin_dir_path( __FILE__ ) . 'includes/admin/embed.php'); } /* Admin Menu - Prayer Reports */ function enm_prayerengine_reports_page() { include(plugin_dir_path( __FILE__ ) . 'includes/admin/reports.php'); } /* Admin Menu - User Guide */ function enm_prayerengine_userguide_page() { include(plugin_dir_path( __FILE__ ) . 'includes/admin/userguide.php'); } /* Admin Menu - Check for Updates */ function enm_prayerengine_update_page() { include(plugin_dir_path( __FILE__ ) . 'includes/admin/update.php'); } /* Admin Menu - Manage Prayer Walls */ function enm_prayerengine_prayerwalls_page() { include(plugin_dir_path( __FILE__ ) . 'includes/admin/prayerwalls.php'); } /* Admin Menu - Manage Focus Signups */ function enm_prayerengine_signups_page() { include(plugin_dir_path( __FILE__ ) . 'includes/admin/signups.php'); } /* Admin Menu - Manage Focuses */ function enm_prayerengine_focuses_page() { include(plugin_dir_path( __FILE__ ) . 'includes/admin/focuses.php'); } /* ----- Embed the Prayer Wall ----- */ // Register a new shortcode: [prayerengine] add_shortcode( 'prayerengine', 'enm_prayerengine_embedwall' ); // The callback function that will replace [prayerengine] function enm_prayerengine_wall( $attr ) { ob_start(); if ( isset($attr['enmpe_do']) ) { // Display Wall with Form Open? $enmpe_toggleform = 1; } else { $enmpe_toggleform = 0; } if ( isset($attr['enmpe_dwo']) ) { // Display Wall Only? $enmpe_wallonly = 1; } else { $enmpe_wallonly = 0; } if ( isset($attr['enmpe_dfo']) ) { // Display Form Only? $enmpe_formonly = 1; } else { $enmpe_formonly = 0; } include(plugin_dir_path( __FILE__ ) . 'includes/prayerwall.php'); $content = ob_get_clean(); return $content; } function enm_prayerengine_embedwall( $attr ) { ob_start(); // do it this way to render within page content $enmpe_s = 0; if ( isset($attr['enmpe_do']) ) { // Display Wall with Form Open? $enmpe_toggleform = 1; } else { $enmpe_toggleform = 0; } if ( isset($attr['enmpe_dwo']) ) { // Display Wall Only? $enmpe_wallonly = 1; } else { $enmpe_wallonly = 0; } if ( isset($attr['enmpe_dfo']) ) { // Display Form Only? $enmpe_formonly = 1; } else { $enmpe_formonly = 0; } include(plugin_dir_path( __FILE__ ) . 'includes/prayerwall.php'); $content = ob_get_clean(); return $content; } /* ------ Embed the Custom Prayer Wall ------- */ // Register a new shortcode: [prayerengine_s] add_shortcode( 'prayerengine_s', 'enm_prayerengine_embedwall_s' ); // The callback function that will replace [prayerengine] function enm_prayerengine_embedwall_s( $attr ) { ob_start(); // do it this way to render within page content if ( isset($attr['enmpe_sw']) ) { // Is a wall specified? $enmpe_s = 1; $enmpe_sw = $attr['enmpe_sw']; } else { $enmpe_s = 0; } if ( isset($attr['enmpe_do']) ) { // Display Wall with Form Open? $enmpe_toggleform = 1; } else { $enmpe_toggleform = 0; } if ( isset($attr['enmpe_dwo']) ) { // Display Wall Only? $enmpe_wallonly = 1; } else { $enmpe_wallonly = 0; } if ( isset($attr['enmpe_dfo']) ) { // Display Form Only? $enmpe_formonly = 1; } else { $enmpe_formonly = 0; } include(plugin_dir_path( __FILE__ ) . 'includes/prayerwall.php'); $content = ob_get_clean(); return $content; } /* ----- Embed Prayer Week ----- */ // Register a new shortcode: [prayerfocus] add_shortcode( 'prayerfocus', 'enm_prayerfocus_embed' ); // The callback function that will replace [prayerengine] function enm_prayerfocus_embed() { ob_start(); // do it this way to render within page content $enmpe_pw = 1; $enmpe_toggleform = 1; $enmpe_wallonly = 0; $enmpe_formonly = 0; include(plugin_dir_path( __FILE__ ) . 'includes/prayerfocus.php'); $content = ob_get_clean(); return $content; } // Register a new shortcode: [prayerengine_s] add_shortcode( 'prayerfocus_s', 'enm_prayerengine_embedfocus_s' ); // The callback function that will replace [prayerengine] function enm_prayerengine_embedfocus_s( $attr ) { ob_start(); // do it this way to render within page content if ( isset($attr['enmpe_pw']) ) { // Is a wall specified? $enmpe_s = 1; $enmpe_pw = $attr['enmpe_pw']; } else { $enmpe_s = 0; $enmpe_pw = 1; } if ( isset($attr['enmpe_do']) ) { // Display Wall with Form Open? $enmpe_toggleform = 1; } else { $enmpe_toggleform = 0; } if ( isset($attr['enmpe_dwo']) ) { // Display Wall Only? $enmpe_wallonly = 1; } else { $enmpe_wallonly = 0; } if ( isset($attr['enmpe_dfo']) ) { // Display Form Only? $enmpe_formonly = 1; } else { $enmpe_formonly = 0; } include(plugin_dir_path( __FILE__ ) . 'includes/prayerfocus.php'); $content = ob_get_clean(); return $content; } // Register a new shortcode: [prayerfocussignups_s] add_shortcode( 'prayerfocussignups_s', 'enm_prayerengine_embedfocussignups_s' ); function enm_prayerengine_embedfocussignups_s( $attr ) { ob_start(); // do it this way to render within page content if ( isset($attr['enmpe_pw']) ) { // Is a wall specified? $enmpe_s = 1; $enmpe_pf = $attr['enmpe_pw']; } else { $enmpe_s = 1; $enmpe_pf = 1; } include(plugin_dir_path( __FILE__ ) . 'includes/prayerfocussignups.php'); $content = ob_get_clean(); return $content; } /* ----- Custom RSS Feeds ----- */ // Main RSS Feed of Prayer Requests function enm_prayerengine_prayer_feed() { load_template( plugin_dir_path( __FILE__ ) . 'feeds/prayers.php' ); } add_action('do_feed_prayerengine', 'enm_prayerengine_prayer_feed', 10, 1); function enm_prayerengine_twitter_feed() { load_template( plugin_dir_path( __FILE__ ) . 'feeds/twitter.php' ); } add_action('do_feed_prayertweets', 'enm_prayerengine_twitter_feed', 10, 1); /* ----- Modify User Theme to Add jQuery ----- */ add_action('init', 'enm_prayerengine_add_jquery'); function enm_prayerengine_add_jquery() { wp_enqueue_script( 'jquery' ); } /* ----- Add Prayer Engine Settings to User Page ----- */ add_action( 'show_user_profile', 'enm_prayerengine_user_settings' ); add_action( 'edit_user_profile', 'enm_prayerengine_user_settings' ); function enm_prayerengine_user_settings( $user ) { // show prayer engine form on admin global $wp_version; if ( $wp_version >= 3.0 ) { $enmpe_adminemail = get_user_meta( $user->ID, 'prayerengine_admin_email', true ); } else { $enmpe_adminemail = get_usermeta( $user->ID, 'prayerengine_admin_email', true ); } include(plugin_dir_path( __FILE__ ) . 'includes/admin/admin_user_settings.php'); } add_action( 'personal_options_update', 'enm_prayerengine_update_user_settings' ); add_action( 'edit_user_profile_update', 'enm_prayerengine_update_user_settings' ); function enm_prayerengine_update_user_settings( $user_id ) { // show prayer engine form on admin if ( !current_user_can( 'edit_user', $user_id ) ) return false; if ( isset($_POST['prayerengine_admin_email']) ) { $updatepeadminemail = $_POST['prayerengine_admin_email']; } else { $updatepeadminemail = 0; } global $wp_version; if ( $wp_version >= 3.0 ) { update_user_meta( $user_id, 'prayerengine_admin_email', $updatepeadminemail ); } else { update_usermeta( $user_id, 'prayerengine_admin_email', $updatepeadminemail ); } } /* Override WordPress's Crazy default insertion of elements using [peraw] */ /*function enmpe_formatter($content) { $pe_options = get_option( 'enm_prayerengine_options' ); $enableperaw = $pe_options['enableperaw']; if ($enableperaw == 1) { remove_filter('the_content', 'wpautop'); remove_filter('the_content', 'wptexturize'); $new_content = ''; $pattern_full = '{(\[peraw\].*?\[/peraw\])}is'; $pattern_contents = '{\[peraw\](.*?)\[/peraw\]}is'; $pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE); foreach ($pieces as $piece) { if (preg_match($pattern_contents, $piece, $matches)) { $new_content .= $matches[1]; } else { $new_content .= wptexturize(wpautop($piece)); } } return $new_content; } else { // Do nothing if the code's not turned on return $content; } } add_filter('the_content', 'enmpe_formatter', 99);*/ function prayerengine_prayercount() { // New Prayer Counts include(plugin_dir_path( __FILE__ ) . 'includes/updateprayer.php'); } add_action( 'wp_ajax_nopriv_prayerengine_prayercount', 'prayerengine_prayercount' ); add_action( 'wp_ajax_prayerengine_prayercount', 'prayerengine_prayercount' ); /* Refresh styles and options on plugin update */ if ( get_option( 'enmpe_db_version' ) && get_option( 'enmpe_db_version' ) < "2.3.2" ) { include('includes/core/updates.php'); } ?>