From 1e613d0107681ba931c131f2ef462ccb3cefd0b1 Mon Sep 17 00:00:00 2001 From: Laury GvR Date: Fri, 26 Feb 2016 19:13:51 -0500 Subject: [PATCH] Adding, removing, updating URLs functional. Documentation --- models/admin/member/social.php | 212 +++++++++--------- models/admin/social/index.php | 4 +- .../create_database_V0.0.1.sql | 28 +-- views/admin/member/social.html | 19 +- 4 files changed, 139 insertions(+), 124 deletions(-) diff --git a/models/admin/member/social.php b/models/admin/member/social.php index 415bfe0..2dc8ccf 100644 --- a/models/admin/member/social.php +++ b/models/admin/member/social.php @@ -18,7 +18,7 @@ require_once(GLM_MEMBERS_SOCIAL_PLUGIN_CLASS_PATH.'/data/dataSocial.php'); class GlmMembersAdmin_member_social extends GlmDataSocial { - + /** * WordPress Database Object * @@ -54,7 +54,7 @@ class GlmMembersAdmin_member_social extends GlmDataSocial * @access public */ public $contactID = false; - + /* * Constructor @@ -101,6 +101,26 @@ class GlmMembersAdmin_member_social extends GlmDataSocial } + + + public function updateUrlList(&$existingUrls) { + $getExistingUrls = " + SELECT * + FROM ".GLM_MEMBERS_SOCIAL_PLUGIN_DB_PREFIX."media_urls + ;"; + $existingUrls = $this->wpdb->get_results($getExistingUrls, ARRAY_A); +// $existingUrls = $queryUrls[0]; + return; + } + + public function printSocialList(&$array,$name="Array list") { + echo "
$name:"; + foreach($array[0] as $key=>$value) { + echo(""); + } + echo "
$key$value
"; + } + public function modelAction($actionData = false) { $displayData = 'Hello, World! This is the Social Add-On "social" model talking to you from inside WordPress.'; @@ -111,7 +131,8 @@ class GlmMembersAdmin_member_social extends GlmDataSocial $socialError = false; $newSocial = false; $option = false; - + $debug = true; + $socialArray = array( 'facebook' => array( 'name' => 'Facebook', @@ -132,7 +153,7 @@ class GlmMembersAdmin_member_social extends GlmDataSocial 'baseurl' => 'www.pinterest.com' ), 'googleplus' => array( - 'name' => 'Google Plus', + 'name' => 'GooglePlus', 'xpos' => -124, 'ypos' => -5, 'baseurl' => 'www.google.com' @@ -179,67 +200,43 @@ class GlmMembersAdmin_member_social extends GlmDataSocial 'ypos' => -45, 'baseurl' => 'www.photobucket.com' ), + 'rss' => array( + 'name' => 'RSS', + 'xpos' => -282, + 'ypos' => -5, + 'baseurl' => '#' + ) ); - + // The above array needs to be inserted into the Database + + $getExistingUrls = " + SELECT * + FROM ".GLM_MEMBERS_SOCIAL_PLUGIN_DB_PREFIX."media_urls + ;"; + $existingUrls = $this->wpdb->get_results($getExistingUrls, ARRAY_A); // If there's an action option if (isset($_REQUEST['option'])) { $option = trim(filter_var($_REQUEST['option'],FILTER_SANITIZE_STRING)); } else { $option = "default"; } - if (isset($_REQUEST['socialname-facebook'])) { - $socialUrl = trim(filter_var($_REQUEST['socialname-facebook'],FILTER_SANITIZE_STRING)); - } else { - echo "FAIL socialUrl REQUEST"; - } + echo "
Request:"; foreach($_REQUEST as $key=>$value) { echo(""); } echo "
$key$value
"; - $socialarray = array_filter($_REQUEST, function($k) { - return preg_match('/^socialname-/',$k); - }, ARRAY_FILTER_USE_KEY); - echo "
SocialArray:"; - echo "
";print_r($socialarray,true);echo "
"; - foreach($socialarray as $key=>$value) { - echo(""); - } - echo "
$key$value

"; - +// $formUrls = array_filter($_REQUEST, function($k) { +// return preg_match('/^socialname-/',$k); +// }, ARRAY_FILTER_USE_KEY); - // this causes ALERT: Empty Fields List in data abstract buildFieldsList()! Likely programming error. - // $socialData = $this->editEntry($memberID); - -// if (!$socialData) { -// $socialData = $this->newEntry($memberID); -// $newSocial = true; -// } - - - - -// switch($option) { -// case 'update': -// default: -// $this->updateEntry($memberID); -// if ($socialData) { -// $socialUpdated = true; -// } else { -// $socialError = true; -// } -// -// $option = 'update'; -// break; -// } - + // Get the Member ID $memberID = 0; if (isset($_REQUEST['member']) && ($_REQUEST['member']-0) > 0) { $memberID = $_REQUEST['member'] - 0; } if ($memberID == 0) { - // There should have been a member ID - So failure return array( 'status' => false, @@ -251,76 +248,87 @@ class GlmMembersAdmin_member_social extends GlmDataSocial } - switch ($option) { case "submit": - // if (isset($_REQUEST['option']) && $_REQUEST['option'] == 'submit') { - - $socialData = $this->updateEntry($memberID); - if (GLM_MEMBERS_PLUGIN_ADMIN_DEBUG) { glmMembersAdmin::addNotice("  Social Update: $memberID", 'Process'); } - // echo $option; - // echo $socialUrl; - // echo $memberID; - // If update was successful then use editEntry() to setup for the edit again. - if ($socialData) { - $social = 'facebook'; - $socialData = $this->editEntry($memberID); - $socialUpdated = true; - - // Also update all member info records with any possible name change - $sql = " - INSERT INTO ".GLM_MEMBERS_SOCIAL_PLUGIN_DB_PREFIX."socialURL - (member_id,".$social."_url) - VALUES (".$memberID.", '".$socialUrl."') - ;"; - echo "
".$sql."
"; - $sql2 = " - UPDATE ".GLM_MEMBERS_SOCIAL_PLUGIN_DB_PREFIX."socialURL - SET ".$social."_url = '".$socialUrl."' - WHERE member_id = $memberID - ;"; - echo "
".$sql2."
"; - $this->wpdb->query($sql); - $this->wpdb->query($sql2); - - } + + // Refresh the list of URLs based on the Database values + $this->updateUrlList($existingUrls); + if ($debug) { + $this->printSocialList($existingUrls,"Existing Urls Pre Submit"); + } + $socialUpdated = false; + $statusMessage=""; + + foreach($existingUrls[0] as $social=>$socialUrl) { + // Reset the query + $sql = ""; + + // Grab the URL for the current Social Media from the form + if (isset($_REQUEST['socialname-'.$social])) { + $formUrl = trim(filter_var($_REQUEST['socialname-'.$social],FILTER_SANITIZE_STRING)); + } else { + $formUrl = 1; + if ($debug) { + echo "
FAILED socialUrl REQUEST for ".$social."
"; + } + } + if ($socialUrl == 1 || $formUrl == $socialUrl || $formUrl == 1) { + // If it encounters the Member ID from the DB, the error code for the form, + // or the form does not differ from the database: skip this iteration + continue; + } else { + $sql = " + UPDATE ".GLM_MEMBERS_SOCIAL_PLUGIN_DB_PREFIX."media_urls + SET ".$social." = '".$formUrl."' + WHERE member_id = $memberID + ;"; + $statusMessage = "The selected social links have been updated."; + $socialUpdated = true; + $this->wpdb->query($sql); + } + if ($socialUpdated) { + echo "
".$statusMessage."
"; + if ($debug){ + echo "
Social:".$social."
"; + echo "
Social url:".$socialUrl."
"; + echo "
statement:".$sql."
"; + } + } + } + if ($debug) { + $this->updateUrlList($existingUrls); + $this->printSocialList($existingUrls,"Existing Urls Post Submit"); + } break; + case "social"; default: - $sql = " - SELECT * - FROM ".GLM_MEMBERS_SOCIAL_PLUGIN_DB_PREFIX."socialURL - ;"; - $existingUrls = $this->wpdb->get_results($sql, ARRAY_A); - echo ""; - foreach($existingUrls[0] as $key=>$value) { - echo(""); + if ($debug) { + $this->updateUrlList($existingUrls); + $this->printSocialList($existingUrls,"Existing Urls Default:"); } - echo "
$key$value
"; - echo "
";
-                var_dump($existingUrls);
-                echo "
"; break; } // If we had a fatal error, redirect to the error page if ($socialError) { return array( - 'status' => $success, - 'option' => $option, - 'menuItemRedirect' => 'error', - 'modelRedirect' => 'index', - 'view' => 'admin/error/index.html', - 'data' => false + 'status' => $success, + 'option' => $option, + 'menuItemRedirect' => 'error', + 'modelRedirect' => 'index', + 'view' => 'admin/error/index.html', + 'data' => false ); } if (GLM_MEMBERS_PLUGIN_ADMIN_DEBUG_VERBOSE) { glmMembersAdmin::addNotice($memberTypes, 'DataBlock', 'Member Types Data'); } - + // Refresh the URL list before sending it to the front + $this->updateUrlList($existingUrls); // Compile template data $templateData = array( 'displayData' => $displayData, @@ -331,15 +339,17 @@ class GlmMembersAdmin_member_social extends GlmDataSocial 'socialError' => $socialError, 'haveMember' => $haveMember, 'memberID' => $memberID, - 'option' => $option + 'option' => $option, + 'existingUrls' => $existingUrls[0], + 'statusMessage' => $statusMessage ); // Return status, any suggested view, and any data to controller return array( - 'status' => true, - 'modelRedirect' => false, - 'view' => 'admin/member/social.html', - 'data' => $templateData + 'status' => true, + 'modelRedirect' => false, + 'view' => 'admin/member/social.html', + 'data' => $templateData ); } } diff --git a/models/admin/social/index.php b/models/admin/social/index.php index de6e9d5..6679d73 100644 --- a/models/admin/social/index.php +++ b/models/admin/social/index.php @@ -244,12 +244,12 @@ class GlmMembersAdmin_social_index // extends GlmDataContacts // Also update all member info records with any possible name change $sql = " - UPDATE ".GLM_MEMBERS_SOCIAL_PLUGIN_DB_PREFIX."socialURL + UPDATE ".GLM_MEMBERS_SOCIAL_PLUGIN_DB_PREFIX."media_urls SET facebook_url = www.testval.com WHERE member_id = 1 ;"; // $sql = " -// UPDATE ".GLM_MEMBERS_SOCIAL_PLUGIN_DB_PREFIX."socialURL +// UPDATE ".GLM_MEMBERS_SOCIAL_PLUGIN_DB_PREFIX."media_urls // SET facebook_url = '".addslashes($socialData['fieldData']['name'])."' // WHERE member_id = $memberID // ;"; diff --git a/setup/databaseScripts/create_database_V0.0.1.sql b/setup/databaseScripts/create_database_V0.0.1.sql index ebc048e..241d872 100644 --- a/setup/databaseScripts/create_database_V0.0.1.sql +++ b/setup/databaseScripts/create_database_V0.0.1.sql @@ -11,27 +11,27 @@ -- To permit each query below to be executed separately, -- all queries must be separated by a line with four dashes -CREATE TABLE {prefix}socialURL ( +CREATE TABLE {prefix}media_urls ( member_id INT NULL, - facebook_url TEXT NULL, - twitter_url TEXT NULL, - pinterest_url TEXT NULL, - googleplus_url TEXT NULL, - digg_url TEXT NULL, - linkedin_url TEXT NULL, - instagram_url TEXT NULL, - rss_url TEXT NULL, - youtube_url TEXT NULL, - flickr_url TEXT NULL, - blog_url TEXT NULL, - photobucket_url TEXT NULL, + facebook TEXT NULL, + twitter TEXT NULL, + pinterest TEXT NULL, + googleplus TEXT NULL, + digg TEXT NULL, + linkedin TEXT NULL, + instagram TEXT NULL, + rss TEXT NULL, + youtube TEXT NULL, + flickr TEXT NULL, + blog TEXT NULL, + photobucket TEXT NULL, PRIMARY KEY (member_id), INDEX(member_id) ); ---- -CREATE TABLE {prefix}socialMEDIA ( +CREATE TABLE {prefix}media_record ( id INT NOT NULL AUTO_INCREMENT, social_name TINYTEXT NULL, social_xpos int NULL, diff --git a/views/admin/member/social.html b/views/admin/member/social.html index 667cdf7..ecdc32e 100644 --- a/views/admin/member/social.html +++ b/views/admin/member/social.html @@ -1,11 +1,8 @@ {include file='admin/members/header.html'} - -

Members Social Tab

+

{if $socialUpdated}{$statusMessage}{/if}

+

Member Social Tab

{$displayData}

-
-

Social Model

-

{$displayData}

Click me to see more!
@@ -13,6 +10,7 @@
Update
{foreach from=$socialArray key=k item=socialItem} + {$socialField = $socialItem.name|lower} {/foreach} @@ -28,5 +26,12 @@ - + + + {include file='admin/footer.html'} \ No newline at end of file -- 2.17.1
@@ -20,7 +18,7 @@ {$socialItem.name}
- +