From da97c0ed905fb5e407cd505e4e77fce1a27a129e Mon Sep 17 00:00:00 2001 From: Laury GvR Date: Tue, 7 Nov 2017 14:27:36 -0500 Subject: [PATCH] Adding custom fields to individual contacts profile admin pages --- models/admin/contacts/index.php | 91 ++++++++++++++++++--------------- models/admin/profile/index.php | 11 ++-- views/admin/contacts/edit.html | 61 ++++++++++++++++++++-- 3 files changed, 115 insertions(+), 48 deletions(-) diff --git a/models/admin/contacts/index.php b/models/admin/contacts/index.php index 45cc4bd..9d295fd 100644 --- a/models/admin/contacts/index.php +++ b/models/admin/contacts/index.php @@ -136,6 +136,7 @@ class GlmMembersAdmin_contacts_index extends GlmDataContacts $start = 1; $limit = 20; // Set to the number of listings per page $namesList = false; + $customFieldResults = false; $where = ''; @@ -266,6 +267,8 @@ class GlmMembersAdmin_contacts_index extends GlmDataContacts // If that was successful if ($contactInfo['status'] && !$newContactEmailExists && !$newContactUsernameExists && !$misMatchedWpUsers) { + $contactInfoID = $contactInfo['fieldData']['id']; + $customFieldResults = apply_filters( 'glm-member-db-save-custom-fields', $contactInfoID ); // If there's an existing WordPress user matching the E-Mail address but that has a different username if ($contactCheck['wordpressEmail'] @@ -442,7 +445,14 @@ class GlmMembersAdmin_contacts_index extends GlmDataContacts if ($contactInfo['status']) { $contactInfo = $this->editEntry(($_REQUEST['id']-0)); - $contactUpdated = true; + $customFieldResults = apply_filters( 'glm-member-db-save-custom-fields', $_REQUEST['id']-0 ); + if(is_array($customFieldResults)){ + $contactUpdated = false; + $contactUpdateError = true; + } else { + $contactUpdated = true; + $contactUpdateError = false; + } // Get the wordpress user ID $wpUser = get_user_by('email', $contactInfo['fieldData']['email']); @@ -625,44 +635,45 @@ class GlmMembersAdmin_contacts_index extends GlmDataContacts // Compile template data $templateData = array( - 'option' => $option, - 'loggedInMember' => $loggedInMember, - 'fromMemberMenu' => $fromMemberMenu, - 'haveMember' => $haveMember, - 'memberID' => $this->memberID, - 'memberData' => $memberData, - 'memberName' => $memberName, - 'membersList' => $membersList, - 'refType' => $refType, - 'refTypeName' => $refTypeName, - 'haveContacts' => $haveContacts, - 'contactsList' => $contactsList['list'], - 'numbContacts' => $numbContacts, - 'contactID' => $contactID, - 'contactInfo' => $contactInfo, - 'newContactEmailExists' => $newContactEmailExists, - 'newContactUsernameExists' => $newContactUsernameExists, - 'misMatchedWpUsers' => $misMatchedWpUsers, - 'usernameChangedToWP' => $usernameChangedToWP, - 'newContactCreated' => $newContactCreated, - 'usingExistingWPContact' => $usingExistingWPContact, - 'contactUpdated' => $contactUpdated, - 'filterArchived' => $filterArchived, - 'filterText' => $filterText, - 'haveFilter' => $haveFilter, - 'userDeleted' => $userDeleted, - 'wpUserDeleted' => $wpUserDeleted, - 'contactMembers' => $contactMembers, - - 'numbDisplayed' => $numbDisplayed, - 'lastDisplayed' => $lastDisplayed, - 'paging' => $paging, - 'prevStart' => $prevStart, - 'nextStart' => $nextStart, - 'start' => $start = 1, - 'limit' => $limit, - 'namesList' => $namesList, - 'EntityManagerRole' => $this->config['contact_role_numb']['EntityManager'] + 'option' => $option, + 'loggedInMember' => $loggedInMember, + 'fromMemberMenu' => $fromMemberMenu, + 'haveMember' => $haveMember, + 'memberID' => $this->memberID, + 'memberData' => $memberData, + 'memberName' => $memberName, + 'membersList' => $membersList, + 'refType' => $refType, + 'refTypeName' => $refTypeName, + 'haveContacts' => $haveContacts, + 'contactsList' => $contactsList['list'], + 'numbContacts' => $numbContacts, + 'contactID' => $contactID, + 'contactInfo' => $contactInfo, + 'newContactEmailExists' => $newContactEmailExists, + 'newContactUsernameExists' => $newContactUsernameExists, + 'misMatchedWpUsers' => $misMatchedWpUsers, + 'usernameChangedToWP' => $usernameChangedToWP, + 'newContactCreated' => $newContactCreated, + 'usingExistingWPContact' => $usingExistingWPContact, + 'contactUpdated' => $contactUpdated, + 'filterArchived' => $filterArchived, + 'filterText' => $filterText, + 'haveFilter' => $haveFilter, + 'userDeleted' => $userDeleted, + 'wpUserDeleted' => $wpUserDeleted, + 'contactMembers' => $contactMembers, + 'numbDisplayed' => $numbDisplayed, + 'lastDisplayed' => $lastDisplayed, + 'paging' => $paging, + 'prevStart' => $prevStart, + 'nextStart' => $nextStart, + 'start' => $start = 1, + 'limit' => $limit, + 'namesList' => $namesList, + 'EntityManagerRole' => $this->config['contact_role_numb']['EntityManager'], + 'slug' => GLM_MEMBERS_CONTACTS_PLUGIN_SLUG, + 'customFieldResults' => $customFieldResults ); @@ -741,7 +752,7 @@ class GlmMembersAdmin_contacts_index extends GlmDataContacts if (apply_filters('glm_members_menu_members', $update)) { // And if there's contact member data - if ($_REQUEST['contactMembers'] && count($_REQUEST['contactMembers'])) { + if (isset($_REQUEST['contactMembers']) && count($_REQUEST['contactMembers'])) { // Update the contact members selection $contactMembersList = implode(',', $_REQUEST['contactMembers']); diff --git a/models/admin/profile/index.php b/models/admin/profile/index.php index cef0d9e..3a38ddb 100644 --- a/models/admin/profile/index.php +++ b/models/admin/profile/index.php @@ -117,11 +117,12 @@ class GlmMembersAdmin_profile_index extends GlmDataContacts public function modelAction($actionData = false) { - $option = 'edit'; - $contactUpdated = false; - $contactMembers = false; - $membersList = false; - $view = 'admin/profile/index.html'; + $option = 'edit'; + $contactUpdated = false; + $contactMembers = false; + $membersList = false; + $customFieldResults = false; + $view = 'admin/profile/index.html'; $validOptions = array( diff --git a/views/admin/contacts/edit.html b/views/admin/contacts/edit.html index 8cffdd1..c7eb8d9 100644 --- a/views/admin/contacts/edit.html +++ b/views/admin/contacts/edit.html @@ -74,7 +74,7 @@ {/if} {if $option == 'create'} -

Add New Contact

+

Add New Contact

{else} {if $contactUpdated}

Contact Updated

{/if} Delete this Contact @@ -124,8 +124,28 @@ {/if} - - + + +
+ + + {if $option == 'create'} + {apply_filters('glm-members-custom-fields-form', '', $slug,'','')} + {else} + {$prefix = $slug|cat:'_'} + {$uid = $prefix|cat:$contactInfo.fieldData.id} + {apply_filters('glm-members-custom-fields-form', '', $slug,$contactInfo.fieldData.id,'')} + {apply_filters('glm-members-custom-fields-form', '', $uid,$contactInfo.fieldData.id,'')} + {/if} +
+
+ {if $haveMember} @@ -577,6 +597,41 @@
Contact For: