当前位置: 首页>>代码示例>>PHP>>正文


PHP General::array_to_xml方法代码示例

本文整理汇总了PHP中General::array_to_xml方法的典型用法代码示例。如果您正苦于以下问题:PHP General::array_to_xml方法的具体用法?PHP General::array_to_xml怎么用?PHP General::array_to_xml使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在General的用法示例。


在下文中一共展示了General::array_to_xml方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: response

 public function response()
 {
     $result = new XMLElement($this->_event_name);
     $post_values = new XMLElement('post-values');
     $fields = $_POST['fields'];
     if (!empty($fields)) {
         General::array_to_xml($post_values, $fields, true);
     }
     if (!empty($this->_error_array)) {
         $result->appendChild($post_values);
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('message', __('Entry encountered errors when saving.')));
         foreach ($this->_error_array as $field => $message) {
             $type = $fields[$field] == '' ? 'missing' : 'invalid';
             $field = new XMLElement($field);
             $field->setAttribute('type', $type);
             $field->setAttribute('message', $message);
             $result->appendChild($field);
         }
     } else {
         $result->setAttribute('result', 'success');
         $result->appendChild(new XMLElement('message', __('Entry created successfully.')));
     }
     return $result;
 }
开发者ID:andrewminton,项目名称:validation,代码行数:25,代码来源:class.validation.php

示例2: action

 function action()
 {
     if ($this->_context[2] == 'saved') {
         $this->_context[2] = NULL;
     }
     $fields = new XMLElement('fields');
     General::array_to_xml($fields, (array) $_POST['fields']);
     $this->_XML->appendChild($fields);
     parent::action();
 }
开发者ID:jonmifsud,项目名称:email_newsletter_manager,代码行数:10,代码来源:content.senders.php

示例3: __doit

 /**
  * This function does the bulk of processing the Event, from running the delegates
  * to validating the data and eventually saving the data into Symphony. The result
  * of the Event is returned via the `$result` parameter.
  *
  * @param array $fields
  *  An array of $_POST data, to process and add/edit an entry.
  * @param XMLElement $result
  *  The XMLElement contains the result of the Event, it is passed by
  *  reference.
  * @param integer $position
  *  When the Expect Multiple filter is added, this event should expect
  *  to deal with adding (or editing) multiple entries at once.
  * @param integer $entry_id
  *  If this Event is editing an existing entry, that Entry ID will
  *  be passed to this function.
  * @return XMLElement
  *  The result of the Event
  */
 public function __doit($fields, XMLElement &$result, $position = null, $entry_id = null)
 {
     $post_values = new XMLElement('post-values');
     if (!is_array($this->eParamFILTERS)) {
         $this->eParamFILTERS = array();
     }
     // Check to see if the Section of this Event is valid.
     if (!($section = SectionManager::fetch($this->getSource()))) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('message', __('The Section, %s, could not be found.', array($this->getSource()))));
         return false;
     }
     // Create the post data element
     if (is_array($fields) && !empty($fields)) {
         General::array_to_xml($post_values, $fields, true);
     }
     // If the EventPreSaveFilter fails, return early
     if ($this->processPreSaveFilters($result, $fields, $post_values, $entry_id) === false) {
         return false;
     }
     // If the `$entry_id` is provided, check to see if it exists.
     // @todo If this was moved above PreSaveFilters, we can pass the
     // Entry object to the delegate meaning extensions don't have to
     // do that step.
     if (isset($entry_id)) {
         $entry = EntryManager::fetch($entry_id);
         $entry = $entry[0];
         if (!is_object($entry)) {
             $result->setAttribute('result', 'error');
             $result->appendChild(new XMLElement('message', __('The Entry, %s, could not be found.', array($entry_id))));
             return false;
         }
     } else {
         $entry = EntryManager::create();
         $entry->set('section_id', $this->getSource());
     }
     // Validate the data. `$entry->checkPostData` loops over all fields calling
     // checkPostFieldData function. If the return of the function is `__ENTRY_FIELD_ERROR__`
     // then abort the event, adding the error messages to the `$result`.
     if (__ENTRY_FIELD_ERROR__ == $entry->checkPostData($fields, $errors, $entry->get('id') ? true : false)) {
         $result = self::appendErrors($result, $fields, $errors, $post_values);
         return false;
     } else {
         if (__ENTRY_OK__ != $entry->setDataFromPost($fields, $errors, false, $entry->get('id') ? true : false)) {
             $result = self::appendErrors($result, $fields, $errors, $post_values);
             return false;
         } else {
             if ($entry->commit() === false) {
                 $result->setAttribute('result', 'error');
                 $result->appendChild(new XMLElement('message', __('Unknown errors where encountered when saving.')));
                 if (isset($post_values) && is_object($post_values)) {
                     $result->appendChild($post_values);
                 }
                 return false;
             } else {
                 $result->setAttributeArray(array('result' => 'success', 'type' => isset($entry_id) ? 'edited' : 'created', 'id' => $entry->get('id')));
                 $result->appendChild(new XMLElement('message', isset($entry_id) ? __('Entry edited successfully.') : __('Entry created successfully.')));
             }
         }
     }
     // PASSIVE FILTERS ONLY AT THIS STAGE. ENTRY HAS ALREADY BEEN CREATED.
     if (in_array('send-email', $this->eParamFILTERS) && !in_array('expect-multiple', $this->eParamFILTERS)) {
         $result = $this->processSendMailFilter($result, $_POST['send-email'], $fields, $section, $entry);
     }
     $result = $this->processPostSaveFilters($result, $fields, $entry);
     $result = $this->processFinalSaveFilters($result, $fields, $entry);
     if (isset($post_values) && is_object($post_values)) {
         $result->appendChild($post_values);
     }
     return true;
 }
开发者ID:nils-werner,项目名称:symphony-2,代码行数:90,代码来源:class.event.section.php

示例4: appendLoginStatusToEventXML

 public function appendLoginStatusToEventXML(array $context = null)
 {
     $result = new XMLElement('member-login-info');
     if ($this->isLoggedIn()) {
         $result->setAttributearray(array('logged-in' => 'yes', 'id' => $this->getMemberID(), 'result' => 'success'));
     } else {
         $result->setAttribute('logged-in', 'no');
         // Append error messages
         if (is_array(extension_Members::$_errors) && !empty(extension_Members::$_errors)) {
             foreach (extension_Members::$_errors as $type => $error) {
                 $result->appendChild(new XMLElement($type, null, array('type' => $error['type'], 'message' => $error['message'], 'label' => General::sanitize($error['label']))));
             }
         }
         // Append post values to simulate a real Symphony event
         if (extension_Members::$_failed_login_attempt) {
             $result->setAttribute('result', 'error');
             $post_values = new XMLElement('post-values');
             $post = General::getPostData();
             // Create the post data cookie element
             if (is_array($post['fields']) && !empty($post['fields'])) {
                 General::array_to_xml($post_values, $post['fields'], true);
                 $result->appendChild($post_values);
             }
         }
     }
     $context['wrapper']->appendChild($result);
 }
开发者ID:brendo,项目名称:members,代码行数:27,代码来源:class.members.php

示例5: __doit

 function __doit($source, $fields, &$result, &$obj, &$event, $filters, $position = NULL, $entry_id = NULL)
 {
     $post_values = new XMLElement('post-values');
     $post = General::getPostData();
     $filter_results = array();
     ## Create the post data cookie element
     if (is_array($post) && !empty($post)) {
         General::array_to_xml($post_values, $fields, true);
     }
     ###
     # Delegate: EventPreSaveFilter
     # Description: Prior to saving entry from the front-end. This delegate will force the Event to terminate if it populates the error
     #              array reference. Provided with references to this object, the POST data and also the error array
     $obj->ExtensionManager->notifyMembers('EventPreSaveFilter', '/frontend/', array('fields' => $fields, 'event' => &$event, 'messages' => &$filter_results, 'post_values' => &$post_values));
     if (is_array($filter_results) && !empty($filter_results)) {
         foreach ($filter_results as $fr) {
             list($type, $status, $message) = $fr;
             $result->appendChild(buildFilterElement($type, $status ? 'passed' : 'failed', $message));
             if (!$status) {
                 $result->appendChild($post_values);
                 $result->setAttribute('result', 'error');
                 $result->appendChild(new XMLElement('message', __('Entry encountered errors when saving.')));
                 return false;
             }
         }
     }
     include_once TOOLKIT . '/class.sectionmanager.php';
     include_once TOOLKIT . '/class.entrymanager.php';
     $sectionManager = new SectionManager($obj);
     if (!($section = $sectionManager->fetch($source))) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('message', __('Section is invalid')));
         return false;
     }
     $entryManager = new EntryManager($obj);
     if (isset($entry_id) && $entry_id != NULL) {
         $entry =& $entryManager->fetch($entry_id);
         $entry = $entry[0];
         if (!is_object($entry)) {
             $result->setAttribute('result', 'error');
             $result->appendChild(new XMLElement('message', __('Invalid Entry ID specified. Could not create Entry object.')));
             return false;
         }
     } else {
         $entry =& $entryManager->create();
         $entry->set('section_id', $source);
     }
     $filter_errors = array();
     if (__ENTRY_FIELD_ERROR__ == $entry->checkPostData($fields, $errors, $entry->get('id') ? true : false)) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('message', __('Entry encountered errors when saving.')));
         foreach ($errors as $field_id => $message) {
             $field = $entryManager->fieldManager->fetch($field_id);
             $result->appendChild(new XMLElement($field->get('element_name'), NULL, array('type' => $fields[$field->get('element_name')] == '' ? 'missing' : 'invalid', 'message' => General::sanitize($message))));
         }
         if (isset($post_values) && is_object($post_values)) {
             $result->appendChild($post_values);
         }
         return false;
     } elseif (__ENTRY_OK__ != $entry->setDataFromPost($fields, $errors, false, $entry->get('id') ? true : false)) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('message', __('Entry encountered errors when saving.')));
         if (isset($errors['field_id'])) {
             $errors = array($errors);
         }
         foreach ($errors as $err) {
             $field = $entryManager->fieldManager->fetch($err['field_id']);
             $result->appendChild(new XMLElement($field->get('element_name'), NULL, array('type' => 'invalid')));
         }
         if (isset($post_values) && is_object($post_values)) {
             $result->appendChild($post_values);
         }
         return false;
     } else {
         if (!$entry->commit()) {
             $result->setAttribute('result', 'error');
             $result->appendChild(new XMLElement('message', __('Unknown errors where encountered when saving.')));
             if (isset($post_values) && is_object($post_values)) {
                 $result->appendChild($post_values);
             }
             return false;
         }
         $result->setAttribute('id', $entry->get('id'));
     }
     ## PASSIVE FILTERS ONLY AT THIS STAGE. ENTRY HAS ALREADY BEEN CREATED.
     if (@in_array('send-email', $filters) && !@in_array('expect-multiple', $filters)) {
         if (!function_exists('__sendEmailFindFormValue')) {
             function __sendEmailFindFormValue($needle, $haystack, $discard_field_name = true, $default = NULL, $collapse = true)
             {
                 if (preg_match('/^(fields\\[[^\\]]+\\],?)+$/i', $needle)) {
                     $parts = preg_split('/\\,/i', $needle, -1, PREG_SPLIT_NO_EMPTY);
                     $parts = array_map('trim', $parts);
                     $stack = array();
                     foreach ($parts as $p) {
                         $field = str_replace(array('fields[', ']'), '', $p);
                         $discard_field_name ? $stack[] = $haystack[$field] : ($stack[$field] = $haystack[$field]);
                     }
                     if (is_array($stack) && !empty($stack)) {
                         return $collapse ? implode(' ', $stack) : $stack;
                     } else {
//.........这里部分代码省略.........
开发者ID:bauhouse,项目名称:sym-calendar,代码行数:101,代码来源:event.section.php

示例6: __trigger

 protected function __trigger()
 {
     $result = new XMLElement(self::ROOTELEMENT);
     $fields = $_REQUEST['fields'];
     $this->driver = Symphony::ExtensionManager()->create('members');
     $requested_identity = $fields[extension_Members::getFieldHandle('identity')];
     // Add POST values to the Event XML
     $post_values = new XMLElement('post-values');
     // Create the post data cookie element
     if (is_array($fields) && !empty($fields)) {
         General::array_to_xml($post_values, $fields, true);
     }
     // Set the section ID
     $result = $this->setMembersSection($result, $_REQUEST['members-section-id']);
     if ($result->getAttribute('result') === 'error') {
         // We are not calling notifyMembersPasswordResetFailure here,
         // because this is not an authentication error
         $result->appendChild($post_values);
         return $result;
     }
     // Trigger the EventPreSaveFilter delegate. We are using this to make
     // use of the XSS Filter extension that will ensure our data is ok to use
     $this->notifyEventPreSaveFilter($result, $fields, $post_values);
     if ($result->getAttribute('result') == 'error') {
         // We are not calling notifyMembersPasswordResetFailure here,
         // because this is not an authentication error
         return $result;
     }
     // Add any Email Templates for this event
     $this->addEmailTemplates('reset-password-template');
     // Check that there is a row with this recovery code and that they
     // request a password reset
     $auth = $this->driver->getMemberDriver()->section->getField('authentication');
     if (!$auth instanceof fieldMemberPassword) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('message', __('No Authentication field found.'), array('message-id' => MemberEventMessages::MEMBER_ERRORS)));
         $this->notifyMembersPasswordResetFailure($requested_identity);
         $result->appendChild($post_values);
         return $result;
     }
     // Check that either a Member: Username or Member: Email field
     // has been detected
     $identity = $this->driver->getMemberDriver()->setIdentityField($fields, false);
     if (!$identity instanceof Identity) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('message', __('No Identity field found.'), array('message-id' => MemberEventMessages::MEMBER_ERRORS)));
         $this->notifyMembersPasswordResetFailure($requested_identity);
         $result->appendChild($post_values);
         return $result;
     }
     if (!isset($fields[$this->driver->getMemberDriver()->section->getFieldHandle('authentication')]['recovery-code']) or empty($fields[$this->driver->getMemberDriver()->section->getFieldHandle('authentication')]['recovery-code'])) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('message', __('Member event encountered errors when processing.'), array('message-id' => MemberEventMessages::MEMBER_ERRORS)));
         $result->appendChild(new XMLElement($auth->get('element_name'), null, array('label' => $auth->get('label'), 'type' => 'missing', 'message-id' => EventMessages::FIELD_MISSING, 'message' => __('Recovery code is a required field.'))));
         $this->notifyMembersPasswordResetFailure($requested_identity);
         $result->appendChild($post_values);
         return $result;
     }
     $row = Symphony::Database()->fetchRow(0, sprintf("\n\t\t\t\t\tSELECT `entry_id`, `recovery-code`\n\t\t\t\t\tFROM tbl_entries_data_%d\n\t\t\t\t\tWHERE reset = 'yes'\n\t\t\t\t\tAND `recovery-code` = '%s'\n\t\t\t\t", $auth->get('id'), Symphony::Database()->cleanValue($fields[$this->driver->getMemberDriver()->section->getFieldHandle('authentication')]['recovery-code'])));
     if (empty($row)) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('message', __('Member encountered errors.'), array('message-id' => MemberEventMessages::MEMBER_ERRORS)));
         $result->appendChild(new XMLElement($auth->get('element_name'), null, array('label' => $auth->get('label'), 'type' => 'invalid', 'message-id' => EventMessages::FIELD_INVALID, 'message' => __('No recovery code found.'))));
         $this->notifyMembersPasswordResetFailure($requested_identity);
     } else {
         // Retrieve Member Entry record
         $entry = $this->driver->getMemberDriver()->fetchMemberFromID($row['entry_id']);
         // Check that the given Identity data matches the Member that the
         // recovery code is for
         $member_id = $identity->fetchMemberIDBy($fields[$identity->get('element_name')]);
         if (!$entry instanceof Entry || $member_id != $row['entry_id']) {
             $result->setAttribute('result', 'error');
             $result->appendChild(new XMLElement('message', __('Member event encountered errors when processing.'), array('message-id' => MemberEventMessages::MEMBER_ERRORS)));
             $result->appendChild(new XMLElement($identity->get('element_name'), null, extension_Members::$_errors[$identity->get('element_name')]));
             $this->notifyMembersPasswordResetFailure($requested_identity);
             $result->appendChild($post_values);
             return $result;
         }
         // Check that the recovery code is still valid and has not expired
         if (is_null(Symphony::Database()->fetchVar('entry_id', 0, sprintf("\n\t\t\t\t\t\tSELECT `entry_id`\n\t\t\t\t\t\tFROM `tbl_entries_data_%d`\n\t\t\t\t\t\tWHERE `entry_id` = %d\n\t\t\t\t\t\tAND DATE_FORMAT(expires, '%%Y-%%m-%%d %%H:%%i:%%s') > '%s'\n\t\t\t\t\t\tLIMIT 1\n\t\t\t\t\t", $auth->get('id'), $member_id, DateTimeObj::get('Y-m-d H:i:s', strtotime('now - ' . $auth->get('code_expiry'))))))) {
             $result->setAttribute('result', 'error');
             $result->appendChild(new XMLElement('message', __('Member event encountered errors when processing.'), array('message-id' => MemberEventMessages::MEMBER_ERRORS)));
             $result->appendChild(new XMLElement($auth->get('element_name'), null, array('label' => $auth->get('label'), 'type' => 'invalid', 'message-id' => MemberEventMessages::RECOVERY_CODE_INVALID, 'message' => __('Recovery code has expired.'))));
             $this->notifyMembersPasswordResetFailure($requested_identity);
             $result->appendChild($post_values);
             return $result;
         }
         // Create new password using the auth field so simulate the checkPostFieldData
         // and processRawFieldData functions.
         $message = '';
         // For the purposes of this event, the auth field should ALWAYS be required
         // as we have to set a password (ie. handle the case where this field is
         // actually optional) RE: #193
         $auth->set('required', 'yes');
         $status = $auth->checkPostFieldData($fields[$auth->get('element_name')], $message, $member_id);
         if (Field::__OK__ != $status) {
             $result->setAttribute('result', 'error');
             $result->appendChild(new XMLElement('message', __('Member event encountered errors when processing.'), array('message-id' => MemberEventMessages::MEMBER_ERRORS)));
             $result->appendChild(new XMLElement($auth->get('element_name'), null, array('type' => $status == Field::__MISSING_FIELDS__ ? 'missing' : 'invalid', 'message' => $message, 'message-id' => $status == Field::__MISSING_FIELDS__ ? EventMessages::FIELD_MISSING : EventMessages::FIELD_INVALID, 'label' => $auth->get('label'))));
             $this->notifyMembersPasswordResetFailure($requested_identity);
//.........这里部分代码省略.........
开发者ID:andrewminton,项目名称:members,代码行数:101,代码来源:event.members_reset_password.php

示例7: getXML

 private function getXML($position = 0, $entry_id = NULL)
 {
     // Cache stuff that can be reused between filter fields and entries
     static $post;
     static $postValues;
     // Remember if $post contains multiple entries or not
     static $expectMultiple;
     $xml = new XMLElement('data');
     // Get post values
     if (empty($postValues) || $position > 0) {
         // TODO: handle post of multiple entries at the same time
         if (empty($post)) {
             $post = General::getPostData();
             // Check if post contains multiple entries or not
             // TODO: make some hidden field required for post, so we can check for sure
             //       if $post['fields'][0]['conditionalizer'] exists?
             $expectMultiple = is_array($post['fields']) && is_array($post['fields'][0]) ? true : false;
         }
         if (!empty($post['fields']) && is_array($post['fields'])) {
             $postValues = new XMLElement('post');
             if ($expectMultiple == true) {
                 if (!empty($entry_id) && isset($post['id'])) {
                     // $entry_id overrides $position
                     foreach ($post['id'] as $pos => $id) {
                         if ($id == $entry_id) {
                             $position = $pos;
                             break;
                         }
                     }
                 } else {
                     if (isset($post['id'][$position]) && is_numeric($post['id'][$position])) {
                         $entry_id = $post['id'][$position];
                     }
                 }
                 $postValues->setAttribute('position', $position);
                 General::array_to_xml($postValues, $post['fields'][$position], false);
             } else {
                 if ($position < 1) {
                     if (empty($entry_id) && isset($post['id']) && is_numeric($post['id'])) {
                         $entry_id = $post['id'];
                     }
                     General::array_to_xml($postValues, $post['fields'], false);
                 } else {
                     // TODO: add error element?
                 }
             }
         }
     }
     if (!empty($postValues)) {
         $xml->appendChild($postValues);
     }
     // Get old entry
     $entry = NULL;
     if (!class_exists('EntryManager')) {
         include_once TOOLKIT . '/class.entrymanager.php';
     }
     if (!empty($entry_id)) {
         $entry = EntryManager::fetch($entry_id);
         $entry = $entry[0];
         if (is_object($entry)) {
             $entry_xml = new XMLElement('old-entry');
             $entry_xml->setAttribute('position', $position);
             $this->appendEntryXML($entry_xml, $entry);
             $xml->appendChild($entry_xml);
         } else {
             $entry = NULL;
         }
     } else {
         $entry = EntryManager::create();
         $entry->set('section_id', $this->get('parent_section'));
     }
     // Set new entry data. Code found in event.section.php:
     // https://github.com/symphonycms/symphony-2/blob/29244318e4de294df780513ee027edda767dd75a/symphony/lib/toolkit/events/event.section.php#L99
     if (is_object($entry)) {
         self::$recursion = true;
         if (__ENTRY_FIELD_ERROR__ == $entry->checkPostData($expectMultiple ? $post['fields'][$position] : $post['fields'], $errors, $entry->get('id') ? true : false)) {
             // Return early - other fields will mark their errors
             self::$recursion = false;
             return self::__OK__;
         } else {
             if (__ENTRY_OK__ != $entry->setDataFromPost($expectMultiple ? $post['fields'][$position] : $post['fields'], $errors, true, $entry->get('id') ? true : false)) {
                 // Return early - other fields will mark their errors.
                 self::$recursion = false;
                 return self::__OK__;
             }
         }
         self::$recursion = false;
         $entry_xml = new XMLElement('entry');
         $entry_xml->setAttribute('position', $position);
         $this->appendEntryXML($entry_xml, $entry);
         $xml->appendChild($entry_xml);
     }
     // Get author
     if ($temp = Symphony::Engine()->Author) {
         $author = new XMLElement('author');
         $author->setAttribute('id', $temp->get('id'));
         $author->setAttribute('user_type', $temp->get('user_type'));
         $author->setAttribute('primary', $temp->get('primary'));
         $author->setAttribute('username', $temp->get('username'));
         $author->setAttribute('first_name', $temp->get('first_name'));
//.........这里部分代码省略.........
开发者ID:ahwayakchih,项目名称:conditionalizer,代码行数:101,代码来源:field.conditionalizer.php

示例8: __trigger

 protected function __trigger()
 {
     $result = new XMLElement(self::ROOTELEMENT);
     $fields = $_POST['fields'];
     $this->driver = Symphony::ExtensionManager()->create('members');
     // Add POST values to the Event XML
     $post_values = new XMLElement('post-values');
     // Create the post data cookie element
     if (is_array($fields) && !empty($fields)) {
         General::array_to_xml($post_values, $fields, true);
     }
     // Set the section ID
     $result = $this->setMembersSection($result, $_REQUEST['members-section-id']);
     if ($result->getAttribute('result') === 'error') {
         $result->appendChild($post_values);
         return $result;
     }
     // Trigger the EventPreSaveFilter delegate. We are using this to make
     // use of the XSS Filter extension that will ensure our data is ok to use
     $this->notifyEventPreSaveFilter($result, $fields, $post_values);
     if ($result->getAttribute('result') == 'error') {
         return $result;
     }
     // Add any Email Templates for this event
     $this->addEmailTemplates('regenerate-activation-code-template');
     $activation = $this->driver->getMemberDriver()->section->getField('activation');
     if (!$activation instanceof fieldMemberActivation) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('message', __('No Activation field found.'), array('message-id' => MemberEventMessages::MEMBER_ERRORS)));
         $result->appendChild($post_values);
         return $result;
     }
     // Check that either a Member: Username or Member: Password field
     // has been detected
     $identity = $this->driver->getMemberDriver()->setIdentityField($fields, false);
     if (!$identity instanceof Identity) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('message', __('No Identity field found.'), array('message-id' => MemberEventMessages::MEMBER_ERRORS)));
         $result->appendChild($post_values);
         return $result;
     }
     if (!isset($fields[$identity->get('element_name')]) or empty($fields[$identity->get('element_name')])) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('message', __('Member event encountered errors when processing.'), array('message-id' => MemberEventMessages::MEMBER_ERRORS)));
         $result->appendChild(new XMLElement($identity->get('element_name'), null, array('label' => $identity->get('label'), 'type' => 'missing', 'message-id' => EventMessages::FIELD_MISSING, 'message' => __('%s is a required field.', array($identity->get('label'))))));
         $result->appendChild($post_values);
         return $result;
     }
     // Make sure we dont accidently use an expired code
     $activation->purgeCodes();
     // Check that a member exists first before proceeding.
     $member_id = $identity->fetchMemberIDBy($fields[$identity->get('element_name')]);
     if (is_null($member_id)) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('message', __('Member event encountered errors when processing.'), array('message-id' => MemberEventMessages::MEMBER_ERRORS)));
         $result->appendChild(new XMLElement($identity->get('element_name'), null, extension_Members::$_errors[$identity->get('element_name')]));
         $result->appendChild($post_values);
         return $result;
     }
     // Check that the current member isn't already activated. If they
     // are, no point in regenerating the code.
     $entry = $this->driver->getMemberDriver()->fetchMemberFromID($member_id);
     if ($entry->getData($activation->get('id'), true)->activated == 'yes') {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('message', __('Member event encountered errors when processing.'), array('message-id' => MemberEventMessages::MEMBER_ERRORS)));
         $result->appendChild(new XMLElement($activation->get('element_name'), null, array('label' => $activation->get('label'), 'type' => 'invalid', 'message-id' => MemberEventMessages::ACTIVATION_PRE_COMPLETED, 'message' => __('Member is already activated.'))));
         $result->appendChild($post_values);
         return $result;
     }
     // Regenerate the code
     $status = Field::__OK__;
     $data = $activation->processRawFieldData(array('activated' => 'no'), $status);
     // If the Member has entry data for the Activation field, update it to yes
     if (array_key_exists((int) $activation->get('id'), $entry->getData())) {
         Symphony::Database()->update($data, 'tbl_entries_data_' . $activation->get('id'), ' `entry_id` = ' . $member_id);
     } else {
         $data['entry_id'] = $member_id;
         Symphony::Database()->insert($data, 'tbl_entries_data_' . $activation->get('id'));
     }
     /**
      * Fired just after a Member has regenerated their activation code
      * for their account.
      *
      * @delegate MembersPostRegenerateActivationCode
      * @param string $context
      *  '/frontend/'
      * @param integer $member_id
      *  The Member ID of the member who just requested a new activation code
      * @param string $activation_code
      *  The new activation code for this Member
      */
     Symphony::ExtensionManager()->notifyMembers('MembersPostRegenerateActivationCode', '/frontend/', array('member_id' => $member_id, 'activation_code' => $data['code']));
     // Trigger the EventFinalSaveFilter delegate. The Email Template Filter
     // and Email Template Manager extensions use this delegate to send any
     // emails attached to this event
     $this->notifyEventFinalSaveFilter($result, $fields, $post_values, $entry);
     // If a redirect is set, redirect, the page won't be able to receive
     // the Event XML anyway
     if (isset($_REQUEST['redirect'])) {
         redirect($_REQUEST['redirect']);
//.........这里部分代码省略.........
开发者ID:andrewminton,项目名称:members,代码行数:101,代码来源:event.members_regenerate_activation_code.php

示例9: __trigger

 protected function __trigger()
 {
     $api = new MailChimp($this->_driver->getKey());
     $result = new XMLElement("mailchimp");
     $email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
     $list = isset($_POST['list']) ? $_POST['list'] : $this->_driver->getList();
     // For post values
     $fields = $_POST;
     unset($fields['action']);
     // Valid email?
     if (!$email) {
         $error = new XMLElement('error', 'E-mail is invalid.');
         $error->setAttribute("handle", 'email');
         $result->appendChild($error);
         $result->setAttribute("result", "error");
         return $result;
     }
     // Default subscribe parameters
     $params = array('email' => array('email' => $email), 'id' => $list, 'merge_vars' => array(), 'email_type' => $fields['email_type'] ? $fields['email_type'] : 'html', 'double_optin' => $fields['double_optin'] ? $fields['double_optin'] == 'yes' : true, 'update_existing' => $fields['update_existing'] ? $fields['update_existing'] == 'yes' : false, 'replace_interests' => $fields['replace_interests'] ? $fields['replace_interests'] == 'yes' : true, 'send_welcome' => $fields['send_welcome'] ? $fields['send_welcome'] == 'yes' : false);
     // Are we merging?
     try {
         $mergeVars = $api->call('lists/merge-vars', array('id' => array($list)));
         $mergeVars = $mergeVars['success_count'] ? $mergeVars['data'][0]['merge_vars'] : array();
         if (count($mergeVars) > 1 && isset($fields['merge'])) {
             $merge = $fields['merge'];
             foreach ($merge as $key => $val) {
                 if (!empty($val)) {
                     $params['merge_vars'][$key] = $val;
                 } else {
                     unset($fields['merge'][$key]);
                 }
             }
         }
         // Subscribe the user
         $api_result = $api->call('lists/subscribe', $params);
         if ($api_result['status'] == 'error') {
             $result->setAttribute("result", "error");
             // try to match mergeVars with error
             if (count($mergeVars) > 1) {
                 // replace
                 foreach ($mergeVars as $var) {
                     $errorMessage = str_replace($var['tag'], $var['name'], $api_result['error'], $count);
                     if ($count == 1) {
                         $error = new XMLElement("message", $errorMessage);
                         break;
                     }
                 }
             }
             // no error message found with merge vars in it
             if ($error == null) {
                 $msg = General::sanitize($api_result['error']);
                 $error = new XMLElement("message", strlen($msg) > 0 ? $msg : 'Unknown error', array('code' => $api_result['code'], 'name' => $api_result['name']));
             }
             $result->appendChild($error);
         } else {
             if (isset($_REQUEST['redirect'])) {
                 redirect($_REQUEST['redirect']);
             } else {
                 $result->setAttribute("result", "success");
                 $result->appendChild(new XMLElement('message', __('Subscriber added to list successfully')));
             }
         }
         // Set the post values
         $post_values = new XMLElement("post-values");
         General::array_to_xml($post_values, $fields);
         $result->appendChild($post_values);
     } catch (Exception $ex) {
         $error = new XMLElement('error', General::wrapInCDATA($ex->getMessage()));
         $result->appendChild($error);
     }
     return $result;
 }
开发者ID:saydulk,项目名称:mailchimp,代码行数:72,代码来源:event.mailchimp.php

示例10: __trigger

 protected function __trigger()
 {
     $result = new XMLElement(self::ROOTELEMENT);
     $fields = $_POST['fields'];
     $driver = Symphony::ExtensionManager()->create('members');
     // Add POST values to the Event XML
     $post_values = new XMLElement('post-values');
     // Create the post data cookie element
     if (is_array($fields) && !empty($fields)) {
         General::array_to_xml($post_values, $fields, true);
     }
     // If a member is logged in, return early with an error
     if ($driver->getMemberDriver()->isLoggedIn()) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('error', null, array('type' => 'invalid', 'message' => __('You cannot generate a recovery code while being logged in.'))));
         $result->appendChild($post_values);
         return $result;
     }
     // Trigger the EventPreSaveFilter delegate. We are using this to make
     // use of the XSS Filter extension that will ensure our data is ok to use
     $this->notifyEventPreSaveFilter($result, $fields, $post_values);
     if ($result->getAttribute('result') == 'error') {
         return $result;
     }
     // Add any Email Templates for this event
     $this->addEmailTemplates('generate-recovery-code-template');
     // Check that either a Member: Username or Member: Password field
     // has been detected
     $identity = SymphonyMember::setIdentityField($fields, false);
     if (!$identity instanceof Identity) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('error', null, array('type' => 'invalid', 'message' => __('No Identity field found.'))));
         $result->appendChild($post_values);
         return $result;
     }
     // Check that a member exists first before proceeding.
     if (!isset($fields[$identity->get('element_name')]) or empty($fields[$identity->get('element_name')])) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement($identity->get('element_name'), null, array('type' => 'missing', 'message' => __('%s is a required field.', array($identity->get('label'))), 'label' => $identity->get('label'))));
         $result->appendChild($post_values);
         return $result;
     }
     $member_id = $identity->fetchMemberIDBy($fields[$identity->get('element_name')]);
     if (is_null($member_id)) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement($identity->get('element_name'), null, array('type' => 'invalid', 'message' => __('Member not found.'), 'label' => $identity->get('label'))));
         $result->appendChild($post_values);
         return $result;
     }
     // Generate new password
     $newPassword = General::generatePassword();
     // Set the Entry password to be reset and the current timestamp
     $auth = extension_Members::getField('authentication');
     $status = Field::__OK__;
     $entry = $driver->getMemberDriver()->fetchMemberFromID($member_id);
     $entry_data = $entry->getData();
     // Generate a Recovery Code with the same logic as a normal password
     $data = $auth->processRawFieldData(array('password' => General::hash($newPassword . $member_id, 'sha1')), $status);
     $data['recovery-code'] = $data['password'];
     $data['reset'] = 'yes';
     $data['expires'] = DateTimeObj::get('Y-m-d H:i:s', time());
     // Overwrite the password with the old password data. This prevents
     // a users account from being locked out if it it just reset by a random
     // member of the public
     $data['password'] = $entry_data[$auth->get('id')]['password'];
     $data['length'] = $entry_data[$auth->get('id')]['length'];
     $data['strength'] = $entry_data[$auth->get('id')]['strength'];
     Symphony::Database()->update($data, 'tbl_entries_data_' . $auth->get('id'), ' `entry_id` = ' . $member_id);
     // Trigger the EventFinalSaveFilter delegate. The Email Template Filter
     // and Email Template Manager extensions use this delegate to send any
     // emails attached to this event
     $this->notifyEventFinalSaveFilter($result, $fields, $post_values, $entry);
     // If a redirect is set, redirect, the page won't be able to receive
     // the Event XML anyway
     if (isset($_REQUEST['redirect'])) {
         redirect($_REQUEST['redirect']);
     }
     $result->setAttribute('result', 'success');
     $result->appendChild(new XMLElement('recovery-code', $data['recovery-code']));
     $result->appendChild($post_values);
     return $result;
 }
开发者ID:brendo,项目名称:members,代码行数:82,代码来源:event.members_generate_recovery_code.php

示例11: __trigger

 protected function __trigger()
 {
     $result = new XMLElement(self::ROOTELEMENT);
     $fields = $_POST['fields'];
     $this->driver = Symphony::ExtensionManager()->create('members');
     // Add POST values to the Event XML
     $post_values = new XMLElement('post-values');
     // Create the post data cookie element
     if (is_array($fields) && !empty($fields)) {
         General::array_to_xml($post_values, $fields, true);
     }
     // Set the section ID
     $result = $this->setMembersSection($result, $_REQUEST['members-section-id']);
     if ($result->getAttribute('result') === 'error') {
         $result->appendChild($post_values);
         return $result;
     }
     // If a member is logged in, return early with an error
     if ($this->driver->getMemberDriver()->isLoggedIn()) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('message', __('You cannot generate a recovery code while being logged in.'), array('message-id' => MemberEventMessages::ALREADY_LOGGED_IN)));
         $result->appendChild($post_values);
         return $result;
     }
     // Trigger the EventPreSaveFilter delegate. We are using this to make
     // use of the XSS Filter extension that will ensure our data is ok to use
     $this->notifyEventPreSaveFilter($result, $fields, $post_values);
     if ($result->getAttribute('result') == 'error') {
         return $result;
     }
     // Add any Email Templates for this event
     $this->addEmailTemplates('generate-recovery-code-template');
     // Check that either a Member: Username or Member: Password field
     // has been detected
     $identity = $this->driver->getMemberDriver()->setIdentityField($fields, false);
     if (!$identity instanceof Identity) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('message', __('No Identity field found.'), array('message-id' => MemberEventMessages::MEMBER_ERRORS)));
         $result->appendChild($post_values);
         return $result;
     }
     // Check that a member exists first before proceeding.
     if (!isset($fields[$identity->get('element_name')]) or empty($fields[$identity->get('element_name')])) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('message', __('Member event encountered errors when processing.'), array('message-id' => MemberEventMessages::MEMBER_ERRORS)));
         $result->appendChild(new XMLElement($identity->get('element_name'), null, array('label' => $identity->get('label'), 'type' => 'missing', 'message-id' => EventMessages::FIELD_MISSING, 'message' => __('%s is a required field.', array($identity->get('label'))))));
         $result->appendChild($post_values);
         return $result;
     }
     $member_id = $identity->fetchMemberIDBy($fields[$identity->get('element_name')]);
     if (is_null($member_id)) {
         $result->setAttribute('result', 'error');
         $result->appendChild(new XMLElement('message', __('Member event encountered errors when processing.'), array('message-id' => MemberEventMessages::MEMBER_ERRORS)));
         $result->appendChild(new XMLElement($identity->get('element_name'), null, extension_Members::$_errors[$identity->get('element_name')]));
         $result->appendChild($post_values);
         return $result;
     }
     // Find the Authentication fiedl
     $auth = $this->driver->getMemberDriver()->section->getField('authentication');
     $status = Field::__OK__;
     // Generate new password
     $newPassword = $auth->generatePassword();
     $entry = $this->driver->getMemberDriver()->fetchMemberFromID($member_id);
     $entry_data = $entry->getData();
     // Generate a Recovery Code with the same logic as a normal password
     $data = $auth->processRawFieldData(array('password' => $auth->encodePassword($newPassword . $member_id)), $status);
     // Set the Entry password to be reset and the current timestamp
     $data['recovery-code'] = SHA1::hash($newPassword . $member_id);
     $data['reset'] = 'yes';
     $data['expires'] = DateTimeObj::get('Y-m-d H:i:s', time());
     // If the Member has entry data for the Authentication field, update it
     if (array_key_exists((int) $auth->get('id'), $entry_data)) {
         // Overwrite the password with the old password data. This prevents
         // a users account from being locked out if it it just reset by a random
         // member of the public
         $data['password'] = $entry_data[$auth->get('id')]['password'];
         $data['length'] = $entry_data[$auth->get('id')]['length'];
         $data['strength'] = $entry_data[$auth->get('id')]['strength'];
         Symphony::Database()->update($data, 'tbl_entries_data_' . $auth->get('id'), ' `entry_id` = ' . $member_id);
     } else {
         $data['entry_id'] = $member_id;
         Symphony::Database()->insert($data, 'tbl_entries_data_' . $auth->get('id'));
     }
     /**
      * Fired just after a Member has requested a recovery code so they
      * can reset their password.
      *
      * @delegate MembersPostForgotPassword
      * @param string $context
      *  '/frontend/'
      * @param integer $member_id
      *  The Member ID of the member who just requested a recovery
      *  code.
      * @param string $recovery_code
      *  The recovery code that was generated for this Member
      */
     Symphony::ExtensionManager()->notifyMembers('MembersPostForgotPassword', '/frontend/', array('member_id' => $member_id, 'recovery_code' => $data['recovery-code']));
     // Trigger the EventFinalSaveFilter delegate. The Email Template Filter
     // and Email Template Manager extensions use this delegate to send any
     // emails attached to this event
//.........这里部分代码省略.........
开发者ID:andrewminton,项目名称:members,代码行数:101,代码来源:event.members_generate_recovery_code.php

示例12: appendEventXML

    public function appendEventXML(array $context = null)
    {
        $result = new XMLElement('paypal');
        $cookie = new Cookie('paypal', TWO_WEEKS, __SYM_COOKIE_PATH__, null, true);
        $accessToken = $cookie->get('token');
        //$accessToken->getRefreshToken()
        // var_dump($accessToken);die;
        if (!empty($accessToken)) {
            $user = $cookie->get('user');
            $result->appendChild(General::array_to_xml($result, $user));
        } else {
            $baseUrl = SYMPHONY_URL . '/extension/paypal/consent';
            // ### Get User Consent URL
            // The clientId is stored in the bootstrap file
            //Get Authorization URL returns the redirect URL that could be used to get user's consent
            $redirectUrl = OpenIdSession::getAuthorizationUrl($baseUrl, array('openid', 'profile', 'address', 'email', 'phone', 'https://uri.paypal.com/services/paypalattributes', 'https://uri.paypal.com/services/expresscheckout'), null, null, null, $this->apiContext);
            $authend = $this->mode == 'sandbox' ? '"authend": "sandbox",' : '';
            $scriptInclude = '<span id="lippButton"></span>
					<script src="https://www.paypalobjects.com/js/external/api.js"></script>
					<script>
					paypal.use( ["login"], function(login) {
					  login.render ({
						"appid": "' . $this->clientId . '",' . $authend . '"scopes": "openid profile email address phone https://uri.paypal.com/services/paypalattributes https://uri.paypal.com/services/expresscheckout",
						"containerid": "lippButton",
						"locale": "en-us",
						"returnurl": "' . $baseUrl . '"
					  });
					});
					</script>';
            $result->appendChild(new XMLElement('authorize', $this->repairEntities($scriptInclude), array('url' => $this->repairEntities($redirectUrl))));
            // var_dump($redirectUrl);die;
        }
        $context['wrapper']->appendChild($result);
    }
开发者ID:mazedigital,项目名称:paypal,代码行数:34,代码来源:extension.driver.php

示例13: eventPreSaveFilter

 public function eventPreSaveFilter($context)
 {
     if ($context['fields'] === null && (RestEngine::getHTTPMethod() === 'put' || 'post')) {
         $parsedData = RestEngine::parseBodyContent();
         if ($context['entry_id'] === null && RestEngine::getHTTPMethod() === 'put') {
             $pageID = RestEngine::getPageID();
             $urlParams = $this::getPageURLParams();
             //use the page ID to look up the format and uid param settings
             $settings = RestResourceManager::getByPageID($pageID);
             if (array_key_exists($settings['uid_parameter'], $urlParams)) {
                 $entryIDValue = $urlParams[$settings['uid_parameter']];
                 if ($settings['field_id'] == 0) {
                     // 0 stands for using the Entry ID number directly so just
                     // check to see if that entry number exists in the correct section
                     $entrySection = EntryManager::fetchEntrySectionID($entryIDValue);
                     if ($entrySection == $settings['section_id']) {
                         //good to go
                         $entryID = $entryIDValue;
                     }
                 } else {
                     $fieldType = FieldManager::fetchFieldTypeFromID($settings['field_id']);
                     //TODO: Eventually add in a more robust field type management to distinguish between value and handle based fields if necessary, or do it by array searching?
                     if ($fieldType != 'memberemail') {
                         $query = "SELECT `entry_id` FROM `tbl_entries_data_" . $settings['field_id'] . "` WHERE `handle` = '" . $entryIDValue . "' LIMIT 1";
                     } else {
                         $query = "SELECT `entry_id` FROM `tbl_entries_data_" . $settings['field_id'] . "` WHERE `value` = '" . $entryIDValue . "' LIMIT 1";
                     }
                     $entryID = Symphony::Database()->fetchVar('entry_id', 0, $query);
                 }
                 if (is_null($entryID)) {
                     //no matching entry
                     $context['messages'][] = array('restengine:invalid-id', FALSE, __('The specified resource "%1$s" does not exist.', array($entryIDValue)));
                 } else {
                     //good to go
                     $context['entry_id'] = $entryID;
                 }
             } else {
                 $context['messages'][] = array('restengine:settings-error', FALSE, __('Invalid Rest Resource unique ID URL parameter: %1$s.', array($settings['uid_parameter'])));
                 //probably some kind of error needs returning here
             }
         }
         if (is_array($parsedData) && !empty($parsedData['data']) && $parsedData['errors'] === null) {
             //Create the post data cookie element.
             General::array_to_xml($context['post_values'], $parsedData, true);
             //TODO: check for field mapping
             //TODO: Do we need to error when message body contains properties that we don't have fields for in the assigned section?
             $context['fields'] = $parsedData['data'];
         }
     }
 }
开发者ID:rheingolden,项目名称:restengine,代码行数:50,代码来源:extension.driver.php

示例14: buildOutput

 /**
  * Dumps sections to XMLElement.
  *
  * @param $sections
  *
  * @return XMLElement
  */
 private function buildOutput($sections)
 {
     $result = new XMLElement('sections');
     foreach ($sections as $handle => $section) {
         foreach ($section['entries'] as $entry) {
             $post_values = new XMLElement('post-values');
             General::array_to_xml($post_values, $entry['orig_fields'], true);
             $rep_post_values = new XMLElement('rep-post-values');
             General::array_to_xml($rep_post_values, $entry['fields'], true);
             $entry['result']->appendChild($post_values);
             $entry['result']->appendChild($rep_post_values);
             $entry['result']->appendChild($entry['res_entry']);
             $entry['result']->appendChild($entry['res_fields']);
             $entry['result']->appendChild($entry['res_filters']);
             $section['result']->appendChild($entry['result']);
         }
         $result->appendChild($section['result']);
     }
     return $result;
 }
开发者ID:andrewminton,项目名称:sections_event,代码行数:27,代码来源:event.sections.php

示例15: appendFormattedElement

 /**
  * Append element to datasource output
  */
 public function appendFormattedElement(&$wrapper, $data, $encode = false)
 {
     $node = new XMLElement($this->get('element_name'));
     $newsletter = EmailNewsletterManager::create($data['newsletter_id']);
     $properties = $newsletter->getStats();
     $node->setAttribute('newsletter-id', $data['newsletter_id']);
     $node->setAttribute('started-on', $properties['started_on']);
     $node->setAttribute('started-by', $properties['started_by']);
     $node->setAttribute('completed-on', $properties['completed_on']);
     $node->setAttribute('status', $properties['status']);
     $node->setAttribute('total', $properties['total']);
     $node->setAttribute('sent', $properties['sent']);
     $node->setAttribute('failed', $properties['failed']);
     $node->appendChild(new XMLElement('subject', $newsletter->getTemplate()->subject));
     // load configuration;
     // use saved (entry) config XML if available (i.e.: if the email newsletter has been sent);
     // fallback: the field's configuration XML
     // sender
     $sender = new XMLElement('sender');
     $about = is_object($newsletter->getSender()) ? $newsletter->getSender()->about() : array();
     General::array_to_xml($sender, $about);
     $sender_name = $about['name'];
     $sender_handle = is_object($newsletter->getSender()) ? $newsletter->getSender()->getHandle() : NULL;
     $el = new XMLElement('name');
     $el->setAttribute('id', $sender_handle);
     $el->setValue($sender_name);
     $sender->replaceChildAt(0, $el);
     $node->appendChild($sender);
     // recipients
     $recipients = new XMLElement('recipient-groups');
     foreach ($newsletter->getRecipientGroups() as $group) {
         $rgroup = new XMLElement('group');
         $about = (array) $group->about();
         General::array_to_xml($rgroup, $about);
         $rgroup_name = $about['name'];
         $rgroup_handle = $group->getHandle();
         $el = new XMLElement('name');
         $el->setAttribute('id', $rgroup_handle);
         $el->setValue($rgroup_name);
         $rgroup->replaceChildAt(0, $el);
         $rgroup_count = RecipientgroupManager::create($rgroup_handle)->getCount();
         $rgroup->setAttribute('count', $rgroup_count);
         $recipients->appendChild($rgroup);
     }
     $node->appendChild($recipients);
     // template
     $template = new XMLElement('template');
     $about = (array) $newsletter->getTemplate()->about;
     General::array_to_xml($template, $about);
     $template_name = $about['name'];
     $template_handle = EmailTemplateManager::getHandleFromName($template_name);
     $el = new XMLElement('name');
     $el->setAttribute('id', $template_handle);
     $el->setValue($template_name);
     $template->replaceChildAt(0, $el);
     $node->appendChild($template);
     $wrapper->appendChild($node);
 }
开发者ID:jonmifsud,项目名称:email_newsletter_manager,代码行数:61,代码来源:field.email_newsletter_manager.php


注:本文中的General::array_to_xml方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。