added error handling for improper input for page name and page id
authorAnthony Talarico <talarico@gaslightmedia.com>
Mon, 23 May 2016 20:57:44 +0000 (16:57 -0400)
committerAnthony Talarico <talarico@gaslightmedia.com>
Mon, 23 May 2016 20:57:44 +0000 (16:57 -0400)
models/admin/management/index.php
views/admin/management/index.html

index 5e4e3e4..ee75af1 100644 (file)
@@ -117,6 +117,8 @@ class GlmMembersAdmin_management_index extends GlmDataSettingsGeneral
         $settingsUpdated = false;
         $settingsUpdateError = false;
         $requiredPagesUpdateError = false;
+        $idError = false;
+        $titleError = false;
         // General settings are always stored in a record with ID=1.
         $id = 1;
 
@@ -160,8 +162,13 @@ class GlmMembersAdmin_management_index extends GlmDataSettingsGeneral
                             'post_title' => $postValueTitle
                         );
                         wp_update_post($args);
-                    } else { 
                         echo $pageTitle;
+                    } else if($pageTitle == $postValueTitle && !empty($postValueTitle)) { 
+                        
+                    } else{
+                        $settingsUpdateError = true;
+                        $settingsUpdated = false;
+                        $titleError = true;
                     }
                 }
 
@@ -174,11 +181,15 @@ class GlmMembersAdmin_management_index extends GlmDataSettingsGeneral
                     $pageSlug = 'glm_members_database_id_' . $pageSlug;
                     $formID = filter_var($_POST[$pageSlug], FILTER_SANITIZE_STRING);
                     $formTitle = filter_var($_POST[$titleSlug], FILTER_SANITIZE_STRING);
-                    if($id != $formID && !empty($formTitle) && get_post_status($formID) != false && is_int($formID)){
+                    if($id != $formID && !empty($formTitle) && get_post_status($formID) != false && is_numeric($formID)){
                         update_option($slug, $formID);
-                    } else {
+                    } else if($id == $formID && is_numeric($formID)) {
                         update_option($slug, $id);
-                    }                    
+                    } else {
+                       $settingsUpdateError = true;
+                       $settingsUpdated = false;
+                       $idError = true;
+                    }                 
                 }
 
                 $this->updateRequiredPages();
@@ -228,6 +239,9 @@ class GlmMembersAdmin_management_index extends GlmDataSettingsGeneral
 
                 break;
         }
+        if($settingsUpdateError){
+            $settingsUpdated = false;
+        }
         // Compile template data
         $templateData = array(
             'reason' => '',
@@ -236,6 +250,8 @@ class GlmMembersAdmin_management_index extends GlmDataSettingsGeneral
             'settingsUpdated' => $settingsUpdated,
             'settingsUpdateError' => $settingsUpdateError,
             'requiredPages' => $this->requiredPages,
+            'idError'         => $idError,
+            'titleError'    => $titleError,
             'requiredPagesUpdateError' => $requiredPagesUpdateError
         );
 
index 187b1be..98dbc87 100644 (file)
@@ -19,6 +19,8 @@
         <!-- Required Pages -->
         
         <table id="glm-table-required-page" class="glm-admin-table glm-settings-table">
+            {if $idError}<span class="glm-error">Page ID should be a number, may not be blank and should be associated with an existing page</span>{/if}
+            {if $titleError}<span class="glm-error">Page name should not be empty</span>{/if}
             {foreach from=$requiredPages key=addon item=requiredPage}
             <tr><td colspan="2"><h2>Plugin: {$addon}</h2></td></tr>
                 {foreach from=$requiredPage key=requiredPageName item=requiredPageData}