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;
 }
Beispiel #2
0
            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');