/** * if an attribute has a placeholdervalue fetch value from parent list * @see attribute() method * but if it is called from storeObject use the placeholder values */ function attributeContentToStore($attr, $noFunction = false) { return parent::attribute($attr); }
/** * Returns available outputformats as array * array( id => name ) * zb. array['0'] = 'html' * * @return array */ function getOutputFormatArray() { $availableOutputFormatArray = CjwNewsletterList::getAvailableOutputFormatArray(); $outputFormatArray = $this->stringToArray(eZPersistentObject::attribute('output_format_array_string')); $newOutputFormatArrayWithNames = array(); foreach ($outputFormatArray as $outputFormatId) { if (array_key_exists($outputFormatId, $availableOutputFormatArray)) { $newOutputFormatArrayWithNames[$outputFormatId] = $availableOutputFormatArray[$outputFormatId]; } } return $newOutputFormatArrayWithNames; }
/** * Validates input on content object level * * (non-PHPdoc) * @see kernel/classes/eZDataType#validateObjectAttributeHTTPInput($http, $base, $objectAttribute) * @return EZ_INPUT_VALIDATOR_STATE */ function validateObjectAttributeHTTPInput($http, $base, $contentObjectAttribute) { $contentclassAttribute = $contentObjectAttribute->attribute('contentclass_attribute'); $inputValidationCheck = true; $validationErrorMesssageArray = array(); $prefix = $base . '_CjwNewsletterList_'; $postfix = '_' . $contentObjectAttribute->attribute('id'); // ContentObjectAttribute_CjwNewsletterList_MainSiteaccess_123 $postListData = array(); // set placeholders to detect if we should get the values from statick list $postListData['main_siteaccess'] = CjwNewsletterListVirtual::PARENT_LIST_VALUE_PLACEHOLDER_STRING; //$postListData['siteaccess_array'] = CjwNewsletterListVirtual::PARENT_LIST_VALUE_PLACEHOLDER_STRING; $postListData['output_format_array'] = CjwNewsletterListVirtual::PARENT_LIST_VALUE_PLACEHOLDER_STRING; $postListData['email_sender'] = CjwNewsletterListVirtual::PARENT_LIST_VALUE_PLACEHOLDER_STRING; $postListData['email_reply_to'] = CjwNewsletterListVirtual::PARENT_LIST_VALUE_PLACEHOLDER_STRING; $postListData['email_return_path'] = CjwNewsletterListVirtual::PARENT_LIST_VALUE_PLACEHOLDER_STRING; $postListData['email_sender_name'] = CjwNewsletterListVirtual::PARENT_LIST_VALUE_PLACEHOLDER_STRING; $postListData['email_receiver_test'] = CjwNewsletterListVirtual::PARENT_LIST_VALUE_PLACEHOLDER_STRING; $postListData['auto_approve_registered_user'] = CjwNewsletterListVirtual::PARENT_LIST_VALUE_PLACEHOLDER_NUMERIC; $postListData['skin_name'] = CjwNewsletterListVirtual::PARENT_LIST_VALUE_PLACEHOLDER_STRING; $postListData['personalize_content'] = CjwNewsletterListVirtual::PARENT_LIST_VALUE_PLACEHOLDER_NUMERIC; // try to fetch post /* $postListData['main_siteaccess'] = $http->postVariable( $prefix . 'MainSiteaccess' . $postfix ); $postListData['siteaccess_array'] = $http->hasPostVariable( $prefix . 'SiteaccessArray' . $postfix ) ? $http->postVariable( $prefix . 'SiteaccessArray' . $postfix ) : array(); $postListData['output_format_array'] = $http->hasPostVariable( $prefix . 'OutputFormatArray' . $postfix ) ? $http->postVariable( $prefix . 'OutputFormatArray' . $postfix ) : array(); $postListData['email_sender'] = $http->postVariable( $prefix . 'EmailSender' . $postfix ); $postListData['email_reply_to'] = $http->postVariable( $prefix . 'EmailReplyTo' . $postfix ); $postListData['email_return_path'] = $http->postVariable( $prefix . 'EmailReturnPath' . $postfix ); $postListData['email_sender_name'] = $http->postVariable( $prefix . 'EmailSenderName' . $postfix ); $postListData['email_receiver_test'] = $http->postVariable( $prefix . 'EmailReceiverTest' . $postfix ); $postListData['auto_approve_registered_user'] = $http->postVariable( $prefix . 'AutoApproveRegisterdUser' . $postfix ); */ $postListData['skin_name'] = $http->hasPostVariable($prefix . 'SkinName' . $postfix) ? $http->postVariable($prefix . 'SkinName' . $postfix) : ''; //$postListData['personalize_content'] = (int) $http->postVariable( $prefix . 'PersonalizeContent' . $postfix ); //$requireFieldArray = array( 'main_siteaccess', 'siteaccess_array', 'output_format_array', 'email_sender' ); $requireFieldArray = array(); foreach ($postListData as $varName => $varValue) { if ($varValue == CjwNewsletterListVirtual::PARENT_LIST_VALUE_PLACEHOLDER_STRING || $varValue == CjwNewsletterListVirtual::PARENT_LIST_VALUE_PLACEHOLDER_NUMERIC) { continue; } else { switch ($varName) { case 'main_siteaccess': if ($postListData['main_siteaccess'] == '') { $validationErrorMesssageArray[] = ezi18n('cjw_newsletter/datatype/cjwnewsletterlist', "Main Siteaccess must be set", null, array()); } else { // array_push( $postListData['siteaccess_array'], $postListData['main_siteaccess'] ); // $postListData['siteaccess_array'] = array_unique( $postListData['siteaccess_array'] ); } break; /* case 'siteaccess_array': if ( count( $postListData['siteaccess_array'] ) == 0 ) { $validationErrorMesssageArray[] = ezi18n( 'cjw_newsletter/datatype/cjwnewsletterlist', "You have to choose a siteaccess for the list", null , array( ) ); } break; */ /* case 'siteaccess_array': if ( count( $postListData['siteaccess_array'] ) == 0 ) { $validationErrorMesssageArray[] = ezi18n( 'cjw_newsletter/datatype/cjwnewsletterlist', "You have to choose a siteaccess for the list", null , array( ) ); } break; */ case 'output_format_array': if (count($postListData['output_format_array']) == 0) { $validationErrorMesssageArray[] = ezi18n('cjw_newsletter/datatype/cjwnewsletterlist', "You have to choose an output format", null, array()); } break; case 'email_sender': if ($postListData['email_sender'] == '' or !eZMail::validate($postListData['email_sender'])) { $validationErrorMesssageArray[] = ezi18n('cjw_newsletter/datatype/cjwnewsletterlist', "You have to set a valid email adress", null, array()); } break; case 'email_receiver_test': if ($postListData['email_receiver_test'] == '') { $validationErrorMesssageArray[] = ezi18n('cjw_newsletter/datatype/cjwnewsletterlist', "You have to set a valid semder email", null, array()); } else { $explodeRecieverArr = explode(';', $postListData['email_receiver_test']); foreach ($explodeRecieverArr as $index => $reciever) { // check if email if (eZMail::validate($reciever) == false) { $validationErrorMesssageArray[] = ezi18n('cjw_newsletter/datatype/cjwnewsletterlist', "You have to set a valid semder email adress >> {$reciever}", null, array()); } } } break; default: break; } } } if ($postListData['output_format_array'] == CjwNewsletterListVirtual::PARENT_LIST_VALUE_PLACEHOLDER_STRING) { $outputFormatArrayString = CjwNewsletterListVirtual::PARENT_LIST_VALUE_PLACEHOLDER_STRING; } else { $outputFormatArrayString = CjwNewsletterList::arrayToString($postListData['output_format_array']); } $listObject = new CjwNewsletterListVirtual(array('is_virtual' => 1, 'contentobject_attribute_id' => $contentObjectAttribute->attribute('id'), 'contentobject_attribute_version' => $contentObjectAttribute->attribute('version'), 'contentobject_id' => $contentObjectAttribute->attribute('contentobject_id'), 'contentclass_id' => $contentclassAttribute->attribute('contentclass_id'), 'main_siteaccess' => $postListData['main_siteaccess'], 'siteaccess_array_string' => CjwNewsletterListVirtual::PARENT_LIST_VALUE_PLACEHOLDER_STRING, 'email_sender_name' => $postListData['email_sender_name'], 'email_sender' => $postListData['email_sender'], 'email_reply_to' => $postListData['email_reply_to'], 'email_return_path' => $postListData['email_return_path'], 'email_receiver_test' => $postListData['email_receiver_test'], 'output_format_array_string' => $outputFormatArrayString, 'auto_approve_registered_user' => $postListData['auto_approve_registered_user'], 'skin_name' => $postListData['skin_name'], 'personalize_content' => $postListData['personalize_content'])); $listObject->decodePostVariable('F'); $contentObjectAttribute->Content = $listObject; // $listObject->store(); // $listObject->sync(); if (count($validationErrorMesssageArray) > 0) { $inputValidationCheck = false; } if ($inputValidationCheck == true) { // 3.x/ return EZ_INPUT_VALIDATOR_STATE_ACCEPTED; return eZInputValidator::STATE_ACCEPTED; } else { $validationErrorMessage = implode('<br \\>', $validationErrorMesssageArray); $error = $contentObjectAttribute->setValidationError($validationErrorMessage); // 3.x/ return EZ_INPUT_VALIDATOR_STATE_INVALID; return eZInputValidator::STATE_INVALID; } }
/** * Count all user who subscripe to list * * @param CjwNewsletterList $listObject * @param mixed int|array $statusIds * @return integer */ static function fetchSubscriptionListByListIdCount($listObject, $statusId = false) { $listContentObjectId = $listObject->attribute('contentobject_id'); $condArr = array('list_contentobject_id' => (int) $listContentObjectId); if ($statusId !== false) { if (is_array($statusId)) { $condArr['status'] = array($statusId); } else { $condArr['status'] = $statusId; } } $count = eZPersistentObject::count(self::definition(), $condArr, 'id'); return $count; }
/** * * @param integer $listContentobjectId * @return array */ static function fetchSubscriptionListCount($listContentObjectId, $listContentObjectVersion, $status) { $statusId = false; switch ($status) { case 'pending': $statusId = CjwNewsletterSubscription::STATUS_PENDING; break; case 'confirmed': $statusId = CjwNewsletterSubscription::STATUS_CONFIRMED; break; case 'approved': $statusId = CjwNewsletterSubscription::STATUS_APPROVED; break; case 'removed': $statusId = array(CjwNewsletterSubscription::STATUS_REMOVED_ADMIN, CjwNewsletterSubscription::STATUS_REMOVED_SELF); break; case 'bounced': $statusId = array(CjwNewsletterSubscription::STATUS_BOUNCED_SOFT, CjwNewsletterSubscription::STATUS_BOUNCED_HARD); break; case 'blacklisted': $statusId = CjwNewsletterSubscription::STATUS_BLACKLISTED; break; default: // default is approved $statusId = CjwNewsletterSubscription::STATUS_APPROVED; break; } $objectCount = 0; $listObject = CjwNewsletterList::fetchByListObjectVersion($listContentObjectId, $listContentObjectVersion); if (is_object($listObject)) { //$objectCount = CjwNewsletterSubscription::fetchSubscriptionListByListIdCount( $listContentobjectId, $statusId ); $objectCount = $listObject->getSubscriptionObjectCount($statusId); } else { eZDebug::writeError("CjwNewsletterFunctinCollection::fetchSubscriptionListCount - no object found for ObjectId: {$listContentObjectId} {$Version}: {$listContentObjectVersion}"); } return array('result' => $objectCount); }
/** * (non-PHPdoc) * @see kernel/classes/eZDataType#deleteStoredObjectAttribute($objectAttribute, $version) */ function deleteStoredObjectAttribute($contentObjectAttribute, $version = null) { $object = CjwNewsletterList::fetch($contentObjectAttribute->attribute("id"), $contentObjectAttribute->attribute("version")); if (is_object($object)) { $object->remove(); } }
/** * @see in cronjob create * * should handle the correct fetch of subscripers static + virtual * */ function getSubscriptionObjectArray($subscriptionStatus = CjwNewsletterSubscription::STATUS_APPROVED, $limit = 0, $offset = 0) { $listContentObjectId = $this->attribute('list_contentobject_id'); $listContentObjectVersion = $this->attribute('list_contentobject_version'); $listIsVirtual = $this->attribute('list_is_virtual'); $subscriptionObjectList = false; // static list (CjwNewsletterList) or virtual (CjwNewsletterListVirtual) $listObject = CjwNewsletterList::fetchByListObjectVersion($listContentObjectId, $listContentObjectVersion); if (is_object($listObject)) { $subscriptionObjectList = $listObject->getSubscriptionObjectArray($subscriptionStatus, $limit, $offset); } return $subscriptionObjectList; }