public function modelAction($actionData = false)
{
- $displayData = 'Hello, World! This is the Social Add-On "social" model talking to you from inside WordPress.';
- $success = true;
- $urlUpdated = false;
- $haveMember = false;
- $socialError = false;
- $option = false;
- $debug = true;
+ // 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,
+ 'menuItemRedirect' => 'error',
+ 'modelRedirect' => 'index',
+ 'view' => 'admin/error/index.html',
+ 'data' => false
+ );
+ }
+ $displayData = 'Hello, World! This is the Social Add-On "social" model talking to you from inside WordPress.';
+ $success = true;
+ $urlUpdated = false;
+ $haveMember = true;
+ $socialError = false;
+ $option = false;
+ $debug = false;
$statusMessage = "Update complete";
require_once(GLM_MEMBERS_SOCIAL_PLUGIN_CLASS_PATH.'/data/dataUrls.php');
- $Urls = new GlmDataUrls($this->wpdb, $this->config);
+ $Urls = new GlmDataUrls($this->wpdb, $this->config);
$urlStats = $Urls->getStats();
$haveUrls = ($urlStats > 0);
if ($urlStats && $urlStats > 0) {
$haveUrls = true;
}
- $urlList = $Urls->getList();
+ $urlList = $Urls->getList("member_id = " . $memberID);
+ //$urlList = $Urls->getList();
require_once(GLM_MEMBERS_SOCIAL_PLUGIN_CLASS_PATH.'/data/dataSocials.php');
- $Socials = new GlmDataSocials($this->wpdb, $this->config);
+ $Socials = new GlmDataSocials($this->wpdb, $this->config);
$socialList = $Socials->getList();
// Get the option or set to default
$option = "default";
}
- // 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,
- 'menuItemRedirect' => 'error',
- 'modelRedirect' => 'index',
- 'view' => 'admin/error/index.html',
- 'data' => false
- );
- }
-
- if (!$Urls->getEntry($memberID)){
- $sql = "
- INSERT INTO ".$Urls->table."
- (id)
- VALUES ($memberID)
- ;";
- $this->wpdb->query($sql);
- if ($debug) {
- echo "<hr>Member not found. Created new record in Urls table using id=$memberID with statement: $sql<hr>";
- }
- }
switch ($option) {
case "submit":
- $Urls->updateEntry($memberID);
- $urlUpdated = true;
+ // loop thru the socialList to see if there's a new value for that media
+ // if there no value then see if there's a record and delete it
+ // if there's no record then add it
+ // if there's a record then update it
+ if ($socialList) {
+ // get list of current member social urls
+ $memberSocialUrlList = array();
+ $convertedNameList = array();
+ if (!empty($urlList)) {
+ foreach ($urlList as $url) {
+ $mediumName = strtolower($url['medium']);
+ $convertedNameList[$mediumName] = $url['medium'];
+ if (!isset($_REQUEST[$mediumName]) || $_REQUEST[$mediumName] == '') {
+ // delete record here
+ $this->wpdb->delete(
+ GLM_MEMBERS_SOCIAL_PLUGIN_DB_PREFIX . 'urls',
+ array( 'id' => $url['id']),
+ array( '%d' )
+ );
+ } else {
+ $memberSocialUrlList[] = $mediumName;
+ }
+ }
+ }
+ foreach ($socialList as $socialData) {
+ $socialName = strtolower($socialData['name']);
+ if (isset($_REQUEST[$socialName]) && $_REQUEST[$socialName]) {
+ // see if there's a record for it
+ if (in_array($socialName, $memberSocialUrlList)) {
+ // update record here
+ $urlData = array('url' => $_REQUEST[$socialName]);
+ $urlDataFormat = array('%s');
+ $this->wpdb->update(
+ GLM_MEMBERS_SOCIAL_PLUGIN_DB_PREFIX . 'urls',
+ $urlData,
+ array( 'member_id' => $memberID, 'medium' => $socialData['name']),
+ $urlDataFormat,
+ array('%d', '%s' )
+ );
+ } else {
+ // add record here
+ $urlData = array(
+ 'url' => $_REQUEST[$socialName],
+ 'member_id' => $memberID,
+ 'medium' => $socialData['name']
+ );
+ $urlDataFormat = array( '%s', '%d', '%s' );
+ $newId = $this->wpdb->insert(
+ GLM_MEMBERS_SOCIAL_PLUGIN_DB_PREFIX . 'urls',
+ $urlData,
+ $urlDataFormat
+ );
+ }
+ }
+ }
+ }
+
+ //$Urls->updateEntry($memberID);
+ //$urlUpdated = true;
$statusMessage = "Social Media URLs Updated";
-
+ $urlList = $Urls->getList("member_id = " . $memberID);
break;
case "social";
default:
// If we had a fatal error, redirect to the error page
if ($socialError) {
return array(
- 'status' => $success,
- 'option' => $option,
+ 'status' => $success,
+ 'option' => $option,
'menuItemRedirect' => 'error',
- 'modelRedirect' => 'index',
- 'view' => 'admin/error/index.html',
- 'data' => false
+ 'modelRedirect' => 'index',
+ 'view' => 'admin/error/index.html',
+ 'data' => false
);
}
// Refresh the Url list before returning it
$memberUrlList = array();
- $urlList = $Urls->getList("member_id = " . $memberID);
if (!empty($urlList)) {
foreach ($urlList as $url) {
-
$memberUrlList[strtolower($url['medium'])] = $url['url'];
}
}
echo "</table>";
echo "<hr />UrlList:<table>";
echo "<pre>".print_r($urlList[$memberID], true)."</pre>";
- //echo "<hr />Recordlist:<table>";
- //echo "<pre>".print_r($socialList, true)."</pre>";
+ echo "<hr />sociallist:<table>";
+ echo "<pre>".print_r($socialList, true)."</pre>";
echo "</table>";
}
$templateData = array(
- 'displayData' => $displayData,
- 'socials' => $socialList,
- 'urlList' => $memberUrlList,
- 'assetsUrl' => GLM_MEMBERS_SOCIAL_PLUGIN_ASSETS_URL,
- 'urlUpdated' => $urlUpdated,
- 'socialError' => $socialError,
- 'haveMember' => $haveMember,
- 'memberID' => $memberID,
- 'option' => $option,
+ 'displayData' => $displayData,
+ 'socials' => $socialList,
+ 'urlList' => $memberUrlList,
+ 'assetsUrl' => GLM_MEMBERS_SOCIAL_PLUGIN_ASSETS_URL,
+ 'urlUpdated' => $urlUpdated,
+ 'socialError' => $socialError,
+ 'haveMember' => $haveMember,
+ 'memberID' => $memberID,
+ 'option' => $option,
'statusMessage' => $statusMessage
);
// Return status, any suggested view, and any data to controller
return array(
- 'status' => true,
+ 'status' => true,
'modelRedirect' => false,
- 'view' => 'admin/member/social.html',
- 'data' => $templateData
+ 'view' => 'admin/member/social.html',
+ 'data' => $templateData
);
}
}