From: Steve Sutton Date: Wed, 20 Jun 2018 20:28:37 +0000 (-0400) Subject: Rework settings tabs and adding page for email settings. X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=81c7bdaed21c8287c3c0d293d11d449a2aac07f5;p=WP-Plugins%2Fglm-member-db.git Rework settings tabs and adding page for email settings. Rework main plugin setting tabs. Add page in main setting for email settings. --- diff --git a/models/admin/member/memberInfo.php b/models/admin/member/memberInfo.php index e8e99c38..54ea5378 100644 --- a/models/admin/member/memberInfo.php +++ b/models/admin/member/memberInfo.php @@ -250,6 +250,8 @@ class GlmMembersAdmin_member_memberInfo extends GlmDataMemberInfo // Check to see if the user is locked to a particular member $lockedToMember = apply_filters('glm_members_locked_to_member_id', false); + // echo '
$lockedToMember: ' . print_r( $lockedToMember, true ) . '
'; + // If member ID not supplied or someone is tampering with a member id for a locked member - we shouldn't be here, so redirect to an error page if ($this->memberID <= 0 || ($lockedToMember && $this->memberID != $lockedToMember)) { @@ -358,7 +360,7 @@ class GlmMembersAdmin_member_memberInfo extends GlmDataMemberInfo $memberUpdated = true; $memberUpdateError = false; } - + } else { $memberUpdateError = true; } diff --git a/models/admin/settings/emailsettings.php b/models/admin/settings/emailsettings.php new file mode 100644 index 00000000..f625e787 --- /dev/null +++ b/models/admin/settings/emailsettings.php @@ -0,0 +1,173 @@ + + * @license http://www.gaslightmedia.com Gaslightmedia + * @version 0.1 + */ + +// Load Members data abstract +require_once GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/settings/dataSettingsGeneral.php' ; + +/* + * This class performs the work for the default action of the "Members" menu + * option, which is to display the members dashboard. + * + */ +class GlmMembersAdmin_settings_emailsettings extends GlmDataSettingsGeneral +{ + /** + * WordPress Database Object + * + * @var $wpdb + * @access public + */ + public $wpdb; + /** + * Plugin Configuration Data + * + * @var $config + * @access public + */ + public $config; + + /* + * Constructor + * + * This constructor sets up this model. At this time that only includes + * storing away the WordPress data object. + * + * @return object Class object + * + */ + public function __construct ( $wpdb, $config ) + { + + // Save WordPress Database object + $this->wpdb = $wpdb; + + // Save plugin configuration object + $this->config = $config; + + // Run constructor for members data class + parent::__construct( false, false ); + + } + + /* + * Perform Model Action + * + * This method does the work for this model and returns any resulting data + * + * @return array Status and data array + * + * 'status' + * + * True if successful and false if there was a fatal failure. + * + * 'menuItemRedirect' + * + * If not false, provides a menu item the controller should + * execute after this one. Normally if this is used, there would also be a + * modelRedirect value supplied as well. + * + * 'modelRedirect' + * + * If not false, provides an action the controller should execute after + * this one. + * + * 'view' + * + * A suggested view name that the controller should use instead of the + * default view for this model or false to indicate that the default view + * should be used. + * + * 'data' + * + * Data that the model is returning for use in merging with the view to + * produce output. + * + */ + public function modelAction ( $actionData = false ) + { + $settings_updated = false; + $settings_update_error = false; + + // 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' ) ) { + 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.' + ) + ); + } + + // Check for submission option + $option = ''; + if ( isset( $_REQUEST[ 'option' ] ) && $_REQUEST[ 'option' ] == 'submit' ) { + $option = $_REQUEST['option']; + } + + switch( $option ) { + + // Update General Settings and redisplay the form + case 'submit': + + // Update all general settings + $generalSettings = $this->updateEntry( 1 ); + if ( $generalSettings[ 'status' ] ) { + $settings_updated = true; + } else { + $settings_update_error = true; + } + + 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 ){ + $settings_updated = false; + } + + // Compile template data + $templateData = array( + 'reason' => '', + 'genSettings' => $generalSettings, + 'settingsUpdated' => $settings_updated, + 'settingsUpdateError' => $settings_update_error, + ); + + // Return status, suggested view, and data to controller + return array( + 'status' => true, + 'menuItemRedirect' => false, + 'modelRedirect' => false, + 'view' => 'admin/settings/emailsettings.html', + 'data' => $templateData, + ); + } +} + +?> diff --git a/setup/validActions.php b/setup/validActions.php index c9d93a05..e111d676 100644 --- a/setup/validActions.php +++ b/setup/validActions.php @@ -69,12 +69,13 @@ $glmMembersValidActions = array( 'locations' => 'glm-member-db' ), 'settings' => array( - 'index' => 'glm-member-db', // Member Types - 'categories' => 'glm-member-db', - 'cities' => 'glm-member-db', - 'regions' => 'glm-member-db', - 'counties' => 'glm-member-db', - 'amenities' => 'glm-member-db' + 'index' => 'glm-member-db', // Member Types + 'categories' => 'glm-member-db', + 'cities' => 'glm-member-db', + 'regions' => 'glm-member-db', + 'counties' => 'glm-member-db', + 'amenities' => 'glm-member-db', + 'emailsettings' => 'glm-member-db', ), 'management' => array( 'index' => 'glm-member-db', // General Options diff --git a/views/admin/settings/amenities.html b/views/admin/settings/amenities.html index 70b27e68..bb26a19f 100644 --- a/views/admin/settings/amenities.html +++ b/views/admin/settings/amenities.html @@ -73,7 +73,7 @@

* Required

Cancel - + @@ -152,11 +152,11 @@

* Required

Cancel - + - - + +

Amenities

@@ -214,7 +214,7 @@
- - + + {include file='admin/footer.html'} diff --git a/views/admin/settings/emailsettings.html b/views/admin/settings/emailsettings.html new file mode 100644 index 00000000..e6ef1df0 --- /dev/null +++ b/views/admin/settings/emailsettings.html @@ -0,0 +1,55 @@ +{include file='admin/settings/header.html'} + + +
+ + + +

+ {if $settingsUpdated}Settings Updated{/if} + {if $settingsUpdateError}Settings Update Error{/if} +

+ + + + + + + + + + + + + + + + + +

Members Only Settings

Updates Notification To: + +
Updates Notification From: + +
Updates Notification Message: + {php} + wp_editor('{if $genSettings.fieldData.updates_notification} {$genSettings.fieldData.updates_notification|escape:quotes} {/if}', 'updates_notification', array( + 'media_buttons' => false, + 'textarea_name' => 'updates_notification', + 'editor_height' => 300, + )); + {/php} +
+ +
+ + + +{include file='admin/footer.html'} diff --git a/views/admin/settings/header.html b/views/admin/settings/header.html index 713b88aa..5361c8fb 100644 --- a/views/admin/settings/header.html +++ b/views/admin/settings/header.html @@ -3,22 +3,35 @@

{$glmPluginName} Settings

+
+ {if isset( $thisAction ) && in_array( $thisAction, array( 'index', 'categories', 'amenities', 'cities', 'regions', 'counties', 'emailsettings' ) )} + + {/if}