Adding link for clear shortcode cache.
authorSteve Sutton <steve@gaslightmedia.com>
Thu, 7 Mar 2019 16:56:09 +0000 (11:56 -0500)
committerSteve Sutton <steve@gaslightmedia.com>
Thu, 7 Mar 2019 16:56:40 +0000 (11:56 -0500)
Updating the mobel for coding standards.

models/admin/management/index.php
views/admin/management/index.html

index a7df4cf..23449ac 100755 (executable)
@@ -67,16 +67,19 @@ class GlmMembersAdmin_management_index extends GlmDataSettingsGeneral
      */
     public function updateRequiredPages(){
         $this->requiredPages = array();
-        foreach ( $this->config[ 'addOns' ] as $a ) {
-            if ( isset ( $a[ 'requiredPages' ] ) ) {
-                foreach ( $a[ 'requiredPages' ] as $page_name => $page_data ) {
-                    $pageID = get_option(GLM_MEMBERS_PLUGIN_OPTION_PREFIX.$page_data['underscored_title']);
-                    $this->prefixSlugs[] = GLM_MEMBERS_PLUGIN_OPTION_PREFIX.$page_data['underscored_title'];
-                    $this->requiredPages[ $a[ 'underscored_name' ] ][ $page_name ]['id'] = $pageID;
-                    $page = get_post( $pageID );
-                    $this->requiredPages[ $a[ 'underscored_name' ] ][ $page_name ][ 'slug' ] = $page->post_name;
-                    $this->requiredPages[ $a[ 'underscored_name' ] ][ $page_name ][ 'title' ] = $page->post_title;
-                    $this->requiredPages[ $a[ 'underscored_name' ] ][ $page_name][ 'static_name' ] = strtolower(str_replace(" ","-",$page_name));
+        foreach ( $this->config['addOns'] as $a ) {
+            if ( isset ( $a['requiredPages'] ) ) {
+                foreach ( $a['requiredPages'] as $page_name => $page_data ) {
+                    // Get $pageID and $page
+                    $pageID = get_option( GLM_MEMBERS_PLUGIN_OPTION_PREFIX . $page_data['underscored_title'] );
+                    $page   = get_post( $pageID );
+
+                    // Setup class variables
+                    $this->prefixSlugs[]                                                        = GLM_MEMBERS_PLUGIN_OPTION_PREFIX . $page_data['underscored_title'];
+                    $this->requiredPages[ $a['underscored_name'] ][ $page_name ]['id']          = $pageID;
+                    $this->requiredPages[ $a['underscored_name'] ][ $page_name ]['slug']        = $page->post_name;
+                    $this->requiredPages[ $a['underscored_name'] ][ $page_name ]['title']       = $page->post_title;
+                    $this->requiredPages[ $a['underscored_name'] ][ $page_name ]['static_name'] = strtolower( str_replace( " ", "-", $page_name ) );
                 }
             }
         }
@@ -118,26 +121,26 @@ class GlmMembersAdmin_management_index extends GlmDataSettingsGeneral
      */
     public function modelAction ($actionData = false)
     {
-        $settings_updated = false;
-        $settings_update_error = false;
+        $settings_updated              = false;
+        $settings_update_error         = false;
         $required_pages_required_error = false;
-        $id_error = false;
-        $title_error = false;
-        $MapInterfaceSelected = array();
+        $id_error                      = false;
+        $title_error                   = false;
+        $MapInterfaceSelected          = array();
 
         // General settings are always stored in a record with ID=1.
         $id = 1;
 
         // Determine if current user can edit configurations
-        if (!current_user_can('glm_members_settings')) {
+        if ( ! current_user_can( 'glm_members_settings' ) ) {
             return array(
-                    'status' => false,
-                    'menuItemRedirect' => 'error',
-                    'modelRedirect' => 'index',
-                    'view' => 'admin/error/index.html',
-                    'data' => array(
-                            'reason' => 'User does not have rights to make configuration changes.'
-                    )
+                'status'           => false,
+                'menuItemRedirect' => 'error',
+                'modelRedirect'    => 'index',
+                'view'             => 'admin/error/index.html',
+                'data'             => array(
+                    'reason' => 'User does not have rights to make configuration changes.'
+                )
             );
         }
 
@@ -150,102 +153,106 @@ class GlmMembersAdmin_management_index extends GlmDataSettingsGeneral
         $this->updateRequiredPages();
         switch( $option ) {
 
-            // Update General Settings and redisplay the form
-            case 'submit':
-                foreach ( $this->config[ 'addOns' ] as $a ) {
-                    if ( isset( $a[ 'requiredPages' ] ) ) {
-                        foreach( $a[ 'requiredPages'] as $pageName => $pageData ) {
-
-                            $current_page_id_value = get_option( GLM_MEMBERS_PLUGIN_OPTION_PREFIX.$pageData[ 'underscored_title' ] );
-
-                            // the static slug name used to create unique form field names
-                            $page_title_field_name = 'glm_members_database_title_' . $this->requiredPages[ $a[ 'underscored_name'] ][ $pageName ][ 'static_name' ];
-                            $page_id_field_name = 'glm_members_database_id_' . $this->requiredPages[ $a[ 'underscored_name' ] ][ $pageName ][ 'static_name' ];
-
-                            // the slug used to update the options table
-                            $page_option_slug = GLM_MEMBERS_PLUGIN_OPTION_PREFIX.$pageData['underscored_title'];
-
-                            $current_page_title_value = $this->requiredPages[ $a[ 'underscored_name' ] ][ $pageName][ 'title' ];
-
-                            if ( isset( $_POST[ $page_title_field_name ] ) && ! empty( $_POST[ $page_title_field_name ] ) ){
-                                $new_page_title_value = filter_var( $_POST[ $page_title_field_name ], FILTER_SANITIZE_STRING);
-                            } else {
-                                $title_error = true;
-                            }
-
-                            // check to make sure the post value isn't empty and is numeric
-                            if ( isset( $_POST[ $page_id_field_name ] ) && ! empty( $_POST[ $page_id_field_name ] ) && is_numeric( $_POST[ $page_id_field_name ] ) ){
-                                $new_page_id_value = filter_var( $_POST[ $page_id_field_name ], FILTER_SANITIZE_STRING );
-                            } else {
-                                $id_error = true;
-                            }
-
-                            // if the current page title matches the posted value, no need to update
-                            if ( $current_page_title_value !== $new_page_title_value ){
-                                $args = array (
-                                    'ID' => $current_page_id_value,
-                                    'post_title' => $new_page_title_value,
-                                );
-                                wp_update_post( $args );
-                            }
-
-                            // ensure the new page id exists and isn't already the same as the current page ID value
-                            if ( $current_page_id_value !== $new_page_id_value && get_post_status( $new_page_id_value ) ){
-                                update_option( $page_option_slug, $new_page_id_value );
-                            }
+        // Update General Settings and redisplay the form
+        case 'submit':
+            foreach ( $this->config['addOns'] as $a ) {
+                if ( isset( $a['requiredPages'] ) ) {
+                    foreach( $a['requiredPages'] as $pageName => $pageData ) {
+
+                        $current_page_id_value = get_option( GLM_MEMBERS_PLUGIN_OPTION_PREFIX . $pageData['underscored_title'] );
+
+                        // the static slug name used to create unique form field names
+                        $page_title_field_name = 'glm_members_database_title_' . $this->requiredPages[ $a['underscored_name'] ][ $pageName ]['static_name'];
+                        $page_id_field_name    = 'glm_members_database_id_' . $this->requiredPages[ $a['underscored_name'] ][ $pageName ]['static_name'];
+
+                        // the slug used to update the options table
+                        $page_option_slug         = GLM_MEMBERS_PLUGIN_OPTION_PREFIX . $pageData['underscored_title'];
+                        $current_page_title_value = $this->requiredPages[ $a['underscored_name'] ][ $pageName]['title'];
+
+                        if ( isset( $_POST[ $page_title_field_name ] ) && ! empty( $_POST[ $page_title_field_name ] ) ) {
+                            $new_page_title_value = filter_var( $_POST[ $page_title_field_name ], FILTER_SANITIZE_STRING );
+                        } else {
+                            $title_error = true;
+                        }
+
+                        // check to make sure the post value isn't empty and is numeric
+                        if ( isset( $_POST[ $page_id_field_name ] ) && ! empty( $_POST[ $page_id_field_name ] ) && is_numeric( $_POST[ $page_id_field_name ] ) ) {
+                            $new_page_id_value = filter_var( $_POST[ $page_id_field_name ], FILTER_SANITIZE_STRING );
+                        } else {
+                            $id_error = true;
+                        }
+
+                        // if the current page title matches the posted value, no need to update
+                        if ( $current_page_title_value !== $new_page_title_value ) {
+                            $args = array (
+                                'ID'         => $current_page_id_value,
+                                'post_title' => $new_page_title_value,
+                            );
+                            wp_update_post( $args );
+                        }
+
+                        // ensure the new page id exists and isn't already the same as the current page ID value
+                        if ( $current_page_id_value !== $new_page_id_value && get_post_status( $new_page_id_value ) ) {
+                            update_option( $page_option_slug, $new_page_id_value );
                         }
                     }
                 }
+            }
 
-                $this->updateRequiredPages();
+            $this->updateRequiredPages();
 
-               // Update all general setttings
-                $generalSettings = $this->updateEntry( 1 );
-                // echo '<pre>$generalSettings: ' . print_r( $generalSettings, true ) . '</pre>';
-                if ( $generalSettings[ 'status' ] ) {
-                    $settings_updated = true;
-                } else {
-                    $settings_update_error = true;
-                }
+           // Update all general setttings
+            $generalSettings = $this->updateEntry( 1 );
+            if ( $generalSettings['status'] ) {
+                $settings_updated = true;
+            } else {
+                $settings_update_error = true;
+            }
 
-                break;
+            break;
 
-            // Default is to get the current settings and display the form
-            default:
+        case 'clearCache':
 
-                // Try to get the first (should be only) entry for general settings.
-                $generalSettings = $this->editEntry( $id );
-                // echo '<pre>$generalSettings: ' . print_r( $generalSettings, true ) . '</pre>';
+            // Cleaor the shortcode cache.
+            glmClearShortcodeCache();
 
-                break;
+            // Try to get the first (should be only) entry for general settings.
+            $generalSettings = $this->editEntry( $id );
+            break;
+
+        // Default is to get the current settings and display the form
+        default:
+
+            // Try to get the first (should be only) entry for general settings.
+            $generalSettings = $this->editEntry( $id );
+
+            break;
         }
 
-        if( $settings_update_error ){
+        if ( $settings_update_error ) {
             $settings_updated = false;
         }
 
         // Compile template data
         $templateData = array(
-            'reason'                    => '',
-            'genSettings'               => $generalSettings,
-            'timezones'                 => DateTimeZone::listIdentifiers(),
-            'settingsUpdated'           => $settings_updated,
-            'settingsUpdateError'       => $settings_update_error,
-            'requiredPages'             => $this->requiredPages,
-            'id_error'                  => $id_error,
-            'title_error'               => $title_error,
-            'requiredPagesUpdateError'  => $required_pages_required_error,
+            'reason'                   => '',
+            'genSettings'              => $generalSettings,
+            'timezones'                => DateTimeZone::listIdentifiers(),
+            'settingsUpdated'          => $settings_updated,
+            'settingsUpdateError'      => $settings_update_error,
+            'requiredPages'            => $this->requiredPages,
+            'id_error'                 => $id_error,
+            'title_error'              => $title_error,
+            'requiredPagesUpdateError' => $required_pages_required_error,
         );
 
         // Return status, suggested view, and data to controller
         return array(
-            'status'                    => true,
-            'menuItemRedirect'          => false,
-            'modelRedirect'             => false,
-            'view'                      => 'admin/management/index.html',
-            'data'                      => $templateData,
+            'status'           => true,
+            'menuItemRedirect' => false,
+            'modelRedirect'    => false,
+            'view'             => 'admin/management/index.html',
+            'data'             => $templateData,
         );
     }
 }
-
-?>
index 5830d94..9ae0814 100755 (executable)
         </h2>
 
 
-            <!-- Debug Settings -->
-
-        <table id="glm-table-debug" class="glm-admin-table glm-settings-table">
-            <tr><td colspan="2"><h2 style="margin-top: 1em;">Debug Settings</h2></td></tr>
-            <tr>
-                <th>Admin Debug Information:</th>
-                <td>
-                    <input type="checkbox" name="admin_debug"{if $genSettings.fieldData.admin_debug.value} checked="checked"{/if}>
-                </td>
-            </tr>
-            <tr>
-                <th>Admin Debug Verbose:</th>
-                <td>
-                    <input type="checkbox" name="admin_debug_verbose"{if $genSettings.fieldData.admin_debug_verbose.value} checked="checked"{/if}>
-                </td>
-            </tr>
-            <tr>
-                <th>Front-End Debug Information:</th>
-                <td>
-                    <input type="checkbox" name="front_debug"{if $genSettings.fieldData.front_debug.value} checked="checked"{/if}>
-                </td>
-            </tr>
-            <tr>
-                <th>Front-End Debug Verbose:</th>
-                <td>
-                    <input type="checkbox" name="front_debug_verbose"{if $genSettings.fieldData.front_debug_verbose.value} checked="checked"{/if}>
-                </td>
-            </tr>
-        </table>
-
         <!-- Required Pages -->
 
         <table id="glm-table-required-page" class="glm-admin-table glm-settings-table glm-hidden">
             {/foreach}
         </table>
 
-            <!-- Member Related Settings -->
 
         <table id="glm-table-misc" class="glm-admin-table glm-settings-table">
+            <!-- Debug Settings -->
+            <tr><td colspan="2"><h2 style="margin-top: 1em;">Debug Settings</h2></td></tr>
+            <tr>
+                <th>Admin Debug Information:</th>
+                <td>
+                    <input type="checkbox" name="admin_debug"{if $genSettings.fieldData.admin_debug.value} checked="checked"{/if}>
+                </td>
+            </tr>
+            <tr>
+                <th>Admin Debug Verbose:</th>
+                <td>
+                    <input type="checkbox" name="admin_debug_verbose"{if $genSettings.fieldData.admin_debug_verbose.value} checked="checked"{/if}>
+                </td>
+            </tr>
+            <tr>
+                <th>Front-End Debug Information:</th>
+                <td>
+                    <input type="checkbox" name="front_debug"{if $genSettings.fieldData.front_debug.value} checked="checked"{/if}>
+                </td>
+            </tr>
+            <tr>
+                <th>Front-End Debug Verbose:</th>
+                <td>
+                    <input type="checkbox" name="front_debug_verbose"{if $genSettings.fieldData.front_debug_verbose.value} checked="checked"{/if}>
+                </td>
+            </tr>
+            <!-- Member Related Settings -->
             <tr><td colspan="2"><h2 style="margin-top: 1em;">Members Related Settings</h2></td></tr>
             <tr>
                 <th>Enable Members:</th>
             </tr>
             <tr>
                 <th> Enable Caching </th>
-                <td><input type="checkbox" name="enable_caching"{if $genSettings.fieldData.enable_caching.value} checked="checked"{/if}></td>
+                <td><input type="checkbox" name="enable_caching"{if $genSettings.fieldData.enable_caching.value} checked="checked"{/if}>
+                    <a href="{$thisUrl}?page={$thisPage}&glm_action=index&option=clearCache" class="glm-button"> Clear Cache</a>
+                </td>
             </tr>
             <tr>
                 <th>Enable Counties:</th>