*/
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 ) );
}
}
}
*/
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.'
+ )
);
}
$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,
);
}
}
-
-?>
</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>