function updateSubscriptionUser($object, $attributes) { $modified = false; $userDataMap = $object->DataMap(); $subscriptions = JAJSubscriptionUser::subscriptionsObjectID($object); $newSubscriptions = $subscriptions; if ($attributes['subscriptions_add']) { if (!is_array($attributes['subscriptions_add'])) { $newSubscriptions = array($attributes['subscriptions_add']); } else { $newSubscriptions = $attributes['subscriptions_add']; } } // TODO: Add transaction ? $userSubDiff = array_diff($newSubscriptions, $subscriptions); if (count($userSubDiff)) { $newSubscriptions = array_unique(array_merge($newSubscriptions, $subscriptions)); $subscriptionAttribute = implode("-", $newSubscriptions); $userDataMap['subscriptions']->fromString($subscriptionAttribute); $userDataMap['subscriptions']->store(); $modified = true; } if (isset($attributes['name']) && $attributes['name'] != $userDataMap['name']->toString()) { $userDataMap['name']->fromString($attributes['name']); $userDataMap['name']->store(); $modified = true; } if (isset($attributes['status']) && $attributes['status'] != $userDataMap['status']->toString()) { $userDataMap['status']->fromString($attributes['status']); $userDataMap['status']->store(); $modified = true; } if ($modified) { $object->expireAllViewCache(); } return $object; }
continue; } if (count($users) == 1) { $user = $users[0]; $userObject = $user->object(); $userDataMap = $userObject->DataMap(); $userStatus = $userDataMap['status']->toString(); if ($userStatus == "Removed by admin") { $error['removed_by_admin'] = true; continue; } if (!in_array($userStatus, array('Approved', 'Confirmed'))) { $userStatus = 'Pending'; } $attributes = array('name' => $name, 'subscriptions_add' => $node->ContentObjectID, 'status' => $userStatus); $userObject = JAJSubscriptionUser::updateSubscriptionUser($userObject, $attributes); $success['created'] = true; continue; } } } while (false); $tpl = templateInit(); $tpl->setVariable('node', $node); $tpl->setVariable('module', $Module); $tpl->setVariable('error', $error); $tpl->setVariable('success', $success); $tpl->setVariable('email', $email); $tpl->setVariable('name', $name); $Result = array(); // $Result['left_menu'] = "design:parts/jnewsletter/menu.tpl"; $Result['content'] = $tpl->fetch('design:newsletter/sign_up.tpl');