Example #1
0
 public static function run_controller()
 {
     global $wpr_routes;
     _wpr_handle_post();
     $path = $_GET['page'];
     if (self::is_admin_popup()) {
         self::render_admin_screen_popup();
     }
     if (self::is_template_html_request()) {
         self::render_template_html();
     }
     if (self::whetherCurrentPathRequiresAtleastOneNewsletterToExistToBeAccessible($wpr_routes, $path)) {
         _wpr_setview("no_newsletter");
         return;
     }
     if (self::whetherLegacyURL($_GET['page'])) {
         return;
     }
     $method_to_invoke = self::getMethodToInvoke();
     if (self::whetherControllerMethodExists($method_to_invoke)) {
         self::callControllerMethod($method_to_invoke);
     } else {
         throw new UnknownControllerInvokeRequested("Unknown control invoked - '{$method_to_invoke}''");
     }
 }
Example #2
0
 function wpresponder_init_method()
 {
     //load the scripts only for the administrator.
     global $current_user;
     global $db_checker;
     $activationDate = get_option("_wpr_NEWAGE_activation");
     if (empty($activationDate) || !$activationDate) {
         $timeNow = time();
         update_option("_wpr_NEWAGE_activation", $timeNow);
         /*
          * Because of the lack of tracking that was done in previous versions
          * of the blog category subscriptions, this version will deliver
          * blog posts to blog category subscribers ONLY after this date 
          * This was done to prevent triggering a full delivery of all 
          * blog posts in all categories to the respective category subscribers
          * on upgrade to this version.
          * I came up with the lousy name. Was a good idea at the time. 
          */
     }
     if (isset($_GET['wpr-optin']) && $_GET['wpr-optin'] == 1) {
         require "optin.php";
         exit;
     }
     if (isset($_GET['wpr-optin']) && $_GET['wpr-optin'] == 2) {
         require "verify.php";
         exit;
     }
     //a subscriber is trying to confirm their subscription.
     if (isset($_GET['wpr-confirm']) && $_GET['wpr-confirm'] != 2) {
         include "confirm.php";
         exit;
     }
     if (isset($_GET['wpr-vb'])) {
         $vb = intval($_GET['wpr-vb']);
         if (isset($_GET['wpr-vb']) && $vb > 0) {
             require "broadcast_html_frame.php";
             exit;
         }
     }
     require WPR_PLUGIN_DIR . "/proxy.php";
     do_action("_wpr_init");
     $admin_page_definitions = $GLOBALS['admin_pages_definitions'];
     foreach ($admin_page_definitions as $item) {
         if (isset($item['legacy']) && $item['legacy'] === 0) {
             $slug = str_replace("_wpr/", "", $item['menu_slug']);
             $actionName = "_wpr_" . $slug . "_handle";
             $handler = "_wpr_" . $slug . "_handler";
             add_action($actionName, $handler);
         }
     }
     _wpr_attach_cron_actions_to_functions();
     add_action('admin_menu', 'wpr_admin_menu');
     /*
      * This is needed until all the pages are migrated to the
      * MVC format. 
      */
     if (isset($_GET['page']) && (preg_match("@^wpresponder/.*@", $_GET['page']) || preg_match("@^_wpr/.*@", $_GET['page']))) {
         _wpr_handle_post();
         _wpr_run_controller();
     }
     //a visitor is trying to subscribe.
     $directory = str_replace(basename(__FILE__), "", __FILE__);
     $containingdirectory = basename($directory);
     $url = get_bloginfo("url");
     wp_register_script("jqueryui-full", "{$url}/?wpr-file=jqui.js");
     wp_register_script("wpresponder-tabber", "{$url}/?wpr-file=tabber.js");
     wp_register_script("wpresponder-ckeditor", "/" . PLUGINDIR . "/" . $containingdirectory . "/ckeditor/ckeditor.js");
     wp_register_script("wpresponder-addedit", "/" . PLUGINDIR . "/" . $containingdirectory . "/script.js");
     /*
      * The following code ensures that the WP Responder's crons are always scheduled no matter what
      * Sometimes the crons go missing from cron's registry. Only the great zeus knows why that happens. 
      * The following code ensures that the crons are always scheduled immediately after they go missing. 
      * It also unenqueues duplicate crons that get enqueued when the plugin is deactivated and then reactivated.
      */
     //run the single instances every day once:
     $last_run_esic = intval(_wpr_option_get("_wpr_ensure_single_instances_of_crons_last_run"));
     $timeSinceLast = time() - $last_run_esic;
     if ($timeSinceLast > WPR_ENSURE_SINGLE_INSTANCE_CHECK_PERIODICITY) {
         do_action("_wpr_ensure_single_instances_of_crons");
         $currentTime = time();
         _wpr_option_set("_wpr_ensure_single_instances_of_crons_last_run", $currentTime);
     }
     if (isset($_GET['wpr-confirm']) && $_GET['wpr-confirm'] == 2) {
         include "confirmed.php";
         exit;
     }
     if (isset($_GET['wpr-manage'])) {
         include "manage.php";
         exit;
     }
     if (isset($_GET['wpr-admin-action'])) {
         switch ($_GET['wpr-admin-action']) {
             case 'preview_email':
                 include "preview_email.php";
                 exit;
                 break;
             case 'view_recipients':
                 include "view_recipients.php";
                 exit;
                 break;
             case 'filter':
                 include "filter.php";
                 exit;
                 break;
             case 'delete_mailout':
                 include "delmailout.php";
                 exit;
                 break;
             case '':
                 break;
         }
     }
     if (isset($_GET['wpr-template'])) {
         include "templateproxy.php";
         exit;
     }
     add_action('admin_init', 'wpr_enqueue_admin_scripts');
     add_action('admin_menu', 'wpresponder_meta_box_add');
     //count all non-WP Autoresponder emails so that the hourly limit can be suitably adjusted
     add_filter("wp_mail", "_wpr_non_wpr_email_sent");
     add_action('edit_post', "wpr_edit_post_save");
     add_action('load-post-new.php', 'wpr_enqueue_post_page_scripts');
     add_action('admin_action_edit', 'wpr_enqueue_post_page_scripts');
     add_action('publish_post', "wpr_add_post_save");
 }