$("#showDetail").dialog().dialog("option", "width", 422);
});
- var regExp = /\[([^)]+)\]/;
+// var regExp = /\[([^)]+)\]/;
+ var regExp = /glm_members_list_/g;
function get_tinymce_content(){
if (jQuery("#wp-content-wrap").hasClass("tmce-active")){
editor_shortcodes = get_tinymce_content();
if(editor_shortcodes){
+
var number_of_categories = (editor_shortcodes.match(/category="(.*?)"/g) || []).length;
+
}
console.debug(number_of_categories);
+
console.debug(editor_shortcodes);
if(editor_shortcodes){
if(editor_shortcodes.match(/category="(.*?)"/) !== null){
editor_content = editor_content.replace(ids, 'category="' + id_string + '"');
content.val(editor_content);
} else {
- editor_content = editor_content.replace(ids, id_string);
+ editor_content = editor_content.replace('category="' + ids, 'category="' + id_string);
content.val(editor_content);
}
} else if(tinyMCE.activeEditor !== null){
if(empty_space){
editor_content = tinyMCE.get('content').getContent({format: 'raw'});
- editor_content = editor_content.replace(ids, 'category="' + id_string + '"');
+ editor_content = editor_content.replace(ids, 'category="' + id_string + '"' );
tinyMCE.activeEditor.setContent(editor_content);
} else {
editor_content = tinyMCE.get('content').getContent({format: 'raw'});
- editor_content = editor_content.replace(ids, id_string);
+ editor_content = editor_content.replace('category="' + ids, 'category="' + id_string);
tinyMCE.activeEditor.setContent(editor_content);
}
}
}
}
// start the shortcode string that will be added to the tinymce editor
- shortcodeString = '<div class="previewCodes" id="' + count + '"> [' + shortcodeDropdown;
+ shortcodeString = '<div class="previewCodes" id="' + shortcodeDropdown + '_' + count + '"> [' + shortcodeDropdown;
// populate the shortcode object
for (var key in shortcodeValues) {
if($("#content").css("display") !== "none"){
editor_content = content.val();
- editor_content = editor_content.replace(ids, id_string);
+ editor_content = editor_content.replace('category="' + ids, 'category="' + id_string );
content.val(editor_content);
} else if(tinyMCE.activeEditor !== null){
editor_content = tinyMCE.get('content').getContent({format: 'raw'});
- editor_content = editor_content.replace(ids, id_string);
+ editor_content = editor_content.replace('category="' + ids, 'category="' + id_string);
tinyMCE.activeEditor.setContent(editor_content);
}
{
public $prefixSlugs = array();
public $requiredPages = array();
+// s
/**
* WordPress Database Object
*
parent::__construct(false, false);
}
- public function updateRequiredPages(){
+ public function updateRequiredPages(){
$this->requiredPages = array();
+// $this->reqPageTitlesStatic = array();
foreach ($this->config['addOns'] as $a) {
if (isset($a['requiredPages'])) {
foreach($a['requiredPages'] as $pageName => $pageData) {
+// $this->reqPageTitlesStatic[] = strtolower(str_replace(" ","-",$pageName));
$pageID = get_option(GLM_MEMBERS_PLUGIN_OPTION_PREFIX.$pageData['underscored_title']);
$this->prefixSlugs[] = GLM_MEMBERS_PLUGIN_OPTION_PREFIX.$pageData['underscored_title'];
$this->requiredPages[$a['underscored_name']][$pageName]['id'] = $pageID;
$page = get_post($pageID);
$this->requiredPages[$a['underscored_name']][$pageName]['slug'] = $page->post_name;
$this->requiredPages[$a['underscored_name']][$pageName]['title'] = $page->post_title;
+ $this->requiredPages[$a['underscored_name']][$pageName]['static_name'] = strtolower(str_replace(" ","-",$pageName));
}
}
}
$settingsUpdated = false;
$settingsUpdateError = false;
$requiredPagesUpdateError = false;
- $idError = false;
- $titleError = false;
+ $id_error = false;
+ $title_error = false;
// General settings are always stored in a record with ID=1.
$id = 1;
// Check for submission option
$option = '';
- if (isset($_REQUEST['option']) && $_REQUEST['option'] == 'submit') {
+ if ( isset( $_REQUEST[ 'option' ] ) && $_REQUEST[ 'option' ] == 'submit' ) {
$option = $_REQUEST['option'];
}
$this->updateRequiredPages();
- switch($option) {
+ switch( $option ) {
// Update General Settings and redisplay the form
case 'submit':
-
- // get all of the IDs from the form
- $requiredPagesIDs = array_intersect_key($_REQUEST, array_flip(preg_grep('/^glm_members_database_id/', array_keys($_REQUEST))));
+ 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' ] );
- foreach($requiredPagesIDs as $id){
- $page = get_post($id);
- $pageTitle = $page->post_title;
- $pageSlug= $page->post_name;
- $slug = 'glm_members_database_option_' . $pageSlug;
- $postValueTitle = filter_var($_POST[$slug], FILTER_SANITIZE_STRING);
- if($pageTitle != $postValueTitle && !empty($postValueTitle)){
- $args = array (
- 'ID' => $id,
- 'post_title' => $postValueTitle
- );
- wp_update_post($args);
- } else if($pageTitle == $postValueTitle) {
-
- } else if(empty($postValueTitle)){
- $settingsUpdateError = true;
- $settingsUpdated = false;
- $titleError = true;
- }
- }
+ $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' ];
+
+ $page_option_slug = GLM_MEMBERS_PLUGIN_OPTION_PREFIX.$pageData['underscored_title'];
- foreach($this->prefixSlugs as $slug){
- $id = get_option($slug);
- $pageTitle = $page->post_title;
- $page = get_post($id);
- $pageSlug = $page->post_name;
- $titleSlug = 'glm_members_database_option_' . $pageSlug;
- $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 && get_post_status($formID) != false && is_numeric($formID)){
- update_option($slug, $formID);
- } else if($id == $formID && is_numeric($formID)) {
- update_option($slug, $id);
- } else {
- $settingsUpdateError = true;
- $settingsUpdated = false;
- $idError = true;
- }
+ $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;
+ }
+
+ 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( $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 the field is not empty
+ 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 );
+ } else {
+
+ }
+ }
+ }
}
-
+
$this->updateRequiredPages();
-
+
// Required Pages
$requiredPagesUpdateError = false;
- if (isset($_REQUEST[GLM_MEMBERS_PLUGIN_OPTION_MEMBERS_LIST_ID]) ){
- $membersListIdOption = $requiredPages['glm-member-db']['members_list'][''];
- $newMembersListId = $_REQUEST[$membersListIdOption];
+ if ( isset( $_REQUEST[ GLM_MEMBERS_PLUGIN_OPTION_MEMBERS_LIST_ID ] ) ){
+ $membersListIdOption = $requiredPages[ 'glm-member-db' ][ 'members_list' ][''];
+ $newMembersListId = $_REQUEST[ $membersListIdOption ];
+ } else {
+
}
+ echo $_REQUEST[ 'glm_members_database_option_member-detail' ];
+ echo $newMembersListId;
$results = $this->wpdb->get_results( "SELECT ID FROM ".$this->wpdb->posts." WHERE ID = ".$newMembersListId);
- if (get_option($membersListIdOption) == $newMembersListId) {
+ if ( get_option( $membersListIdOption) == $newMembersListId ) {
$requiredPagesUpdateError = false;
- } else if (is_numeric($newMembersListId)) {
- if ($results) {
+ } else if ( is_numeric( $newMembersListId ) ) {
+ if ( $results ) {
$requiredPagesUpdateError = false;
} else {
$requiredPagesUpdateError .= "\n Page ID $newMembersListId does not exist. ";
// Update all general setttings
$generalSettings = $this->updateEntry(1);
- if ($generalSettings['status']) {
+ if ( $generalSettings[ 'status' ]) {
$settingsUpdated = true;
} else {
$settingsUpdateError = true;
default:
// Try to get the first (should be only) entry for general settings.
- $generalSettings = $this->editEntry($id);
+ $generalSettings = $this->editEntry( $id );
if ($generalSettings === false) {
- if (GLM_MEMBERS_PLUGIN_ADMIN_DEBUG) {
+ if ( GLM_MEMBERS_PLUGIN_ADMIN_DEBUG ) {
glmMembersAdmin::addNotice("<b> /modesl/admin/settings/index.php: Unable to load General Settings.", 'Alert');
}
-
}
break;
}
- if($settingsUpdateError){
+ if( $settingsUpdateError ){
$settingsUpdated = false;
}
// Compile template data
'settingsUpdated' => $settingsUpdated,
'settingsUpdateError' => $settingsUpdateError,
'requiredPages' => $this->requiredPages,
- 'idError' => $idError,
- 'titleError' => $titleError,
+ 'id_error' => $id_error,
+ 'title_error' => $title_error,
'requiredPagesUpdateError' => $requiredPagesUpdateError
);
'view' => 'admin/management/index.html',
'data' => $templateData
);
-
}
-
}
?>
\ No newline at end of file