Пример #1
0
        $subscriptionDataArray['last_name'] = trim($http->postVariable('Subscription_LastName'));
    }
    if ($http->hasPostVariable('Subscription_Salutation')) {
        $subscriptionDataArray['salutation'] = trim($http->postVariable('Subscription_Salutation'));
    }
    if ($http->hasPostVariable('Subscription_IdArray')) {
        $subscriptionDataArray['id_array'] = $http->postVariable('Subscription_IdArray');
    }
    if ($http->hasPostVariable('Subscription_ListArray')) {
        $subscriptionDataArray['list_array'] = $http->postVariable('Subscription_ListArray');
    }
    // $subscriptionDataArr['list_output_format_array'] = array();
    foreach ($subscriptionDataArray['id_array'] as $listId) {
        if ($http->hasPostVariable("Subscription_OutputFormatArray_{$listId}")) {
            $subscriptionDataArray['list_output_format_array'][$listId] = $http->postVariable("Subscription_OutputFormatArray_{$listId}");
        } else {
            $defaultOutputFormatId = 0;
            $subscriptionDataArray['list_output_format_array'][$listId] = array($defaultOutputFormatId);
        }
    }
    // TODO
    // required fields
    // update subscribe/ remove supscripions
    $subscriptionResultArray = CjwNewsletterSubscription::createSubscriptionByArray($subscriptionDataArray, CjwNewsletterUser::STATUS_PENDING, $subscribeOnlyMode = false, $context = 'configure');
    $tpl->setVariable('changes_saved', true);
}
$newsletterUser = CjwNewsletterUser::fetchByHash($Params['UserHash']);
$tpl->setVariable('newsletter_user', $newsletterUser);
$Result = array();
$Result['content'] = $tpl->fetch('design:newsletter/configure.tpl');
$Result['path'] = array(array('url' => false, 'text' => ezi18n('cjw_newsletter/configure', 'Configure newsletter settings')));
 /**
  * fetch email, first_name, ... from informationcollection to use for
  * subscription
  */
 private function fetchCurrentDataFromCollection($collection)
 {
     $http = eZHTTPTool::instance();
     // mapping of user data from contentobject for the newsletter user
     // the current object must be a User!!!
     $dataMap = $collection->attribute('data_map');
     $subscriptionDataArr = array('ez_user_id' => 0, 'email' => '', 'salutation' => 0, 'first_name' => '', 'last_name' => '', 'id_array' => array(), 'list_array' => array());
     // get email from informationcollection
     if (isset($dataMap['email'])) {
         $subscriptionDataArr['email'] = $dataMap['email']->content();
     } else {
         return false;
     }
     if (isset($dataMap['salutation'])) {
         $subscriptionDataArr['salutation'] = (int) $dataMap['salutation']->content();
     }
     if (isset($dataMap['first_name'])) {
         $subscriptionDataArr['first_name'] = $dataMap['first_name']->content();
     }
     if (isset($dataMap['last_name'])) {
         $subscriptionDataArr['last_name'] = $dataMap['last_name']->content();
     }
     if ($http->hasPostVariable('Subscription_IdArray')) {
         $subscriptionDataArr['id_array'] = $http->postVariable('Subscription_IdArray');
     }
     if ($http->hasPostVariable('Subscription_ListArray')) {
         $subscriptionDataArr['list_array'] = $http->postVariable('Subscription_ListArray');
     }
     foreach ($subscriptionDataArr['id_array'] as $listId) {
         if ($http->hasPostVariable("Subscription_OutputFormatArray_{$listId}")) {
             $subscriptionDataArr['list_output_format_array'][$listId] = $http->postVariable("Subscription_OutputFormatArray_{$listId}");
         } else {
             $defaultOutputFormatId = 0;
             $subscriptionDataArr['list_output_format_array'][$listId] = array($defaultOutputFormatId);
         }
     }
     $existingNewsletterUserObject = false;
     $subscriptionResultArray = false;
     // only create update subscriptions if a list is select
     if (count($subscriptionDataArr['list_array']) > 0) {
         if ($subscriptionDataArr['email'] != '') {
             $existingNewsletterUserObject = CjwNewsletterUser::fetchByEmail($subscriptionDataArr['email']);
         }
         // email exist but subscription for email is done again
         // => email send with configure link
         if (is_object($existingNewsletterUserObject)) {
             // $existingNewsletterUserObject->sendSubriptionInfoMail();
             $mailSendResult = $existingNewsletterUserObject->sendSubcriptionInformationMail();
         } else {
             $context = 'datatype_collect';
             // subscribe to all selected lists
             $subscriptionResultArray = CjwNewsletterSubscription::createSubscriptionByArray($subscriptionDataArr, CjwNewsletterUser::STATUS_PENDING, false, $context);
             $confirmationResultArray = array();
             $newNewsletterUser = CjwNewsletterUser::fetchByEmail($subscriptionDataArr['email']);
             $mailSendResult = $newNewsletterUser->sendSubcriptionConfirmationMail();
         }
     }
     $returnArray = array('subscription_data_array' => $subscriptionDataArr, 'subscription_data_result_array' => $subscriptionResultArray, 'existing_newsletter_user' => $existingNewsletterUserObject, 'mail_send_result' => $mailSendResult);
     // var_dump( $returnArray );
     return $returnArray;
 }
Пример #3
0
            $tpl->setVariable('user_email_already_exists', $subscriptionDataArr['email']);
            // $existingNewsletterUserObject->sendSubriptionInfoMail();
            $mailSendResult = $existingNewsletterUserObject->sendSubcriptionInformationMail();
            $tpl->setVariable('newsletter_user', $existingNewsletterUserObject);
            $tpl->setVariable('mail_send_result', $mailSendResult);
            $tpl->setVariable('subscription_result_array', false);
            $tpl->setVariable('back_url_input', $backUrl);
            if ($mailSendResult['send_result'] === true) {
                $templateFile = "design:newsletter/subscribe_success.tpl";
            } else {
                $templateFile = "design:newsletter/subscribe_success_not.tpl";
            }
        } else {
            if (count($warningArr) == 0) {
                // subscribe to all selected lists
                $subscriptionResultArray = CjwNewsletterSubscription::createSubscriptionByArray($subscriptionDataArr, CjwNewsletterUser::STATUS_PENDING, true, $context);
                $newNewsletterUser = CjwNewsletterUser::fetchByEmail($subscriptionDataArr['email']);
                $mailSendResult = $newNewsletterUser->sendSubcriptionConfirmationMail();
                $tpl->setVariable('user_email_already_exists', false);
                $tpl->setVariable('mail_send_result', $mailSendResult);
                $tpl->setVariable('newsletter_user', $newNewsletterUser);
                $tpl->setVariable('subscription_result_array', $subscriptionResultArray);
                $tpl->setVariable('back_url_input', $backUrl);
                $templateFile = 'design:newsletter/subscribe_success.tpl';
            }
        }
    }
}
if ($user) {
    $tpl->setVariable('user', $user);
}