本文整理汇总了PHP中Entry::setFieldDataFromFormArray方法的典型用法代码示例。如果您正苦于以下问题:PHP Entry::setFieldDataFromFormArray方法的具体用法?PHP Entry::setFieldDataFromFormArray怎么用?PHP Entry::setFieldDataFromFormArray使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Entry
的用法示例。
在下文中一共展示了Entry::setFieldDataFromFormArray方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: trigger
public function trigger(Register $ParameterOutput, array $postdata)
{
$result = new XMLDocument();
$result->appendChild($result->createElement($this->parameters()->{'root-element'}));
$root = $result->documentElement;
// Apply default values:
foreach ($this->parameters()->{'defaults'} as $name => $value) {
if (!isset($postdata['fields'][$name])) {
$postdata['fields'][$name] = $value;
} else {
if (is_string($postdata['fields'][$name]) and $postdata['fields'][$name] == '') {
$postdata['fields'][$name] = $value;
} else {
if (is_array($postdata['fields'][$name]) and empty($postdata['fields'][$name])) {
$postdata['fields'][$name] = array($value);
}
}
}
}
// Apply override values:
foreach ($this->parameters()->{'overrides'} as $name => $value) {
if (is_array($postdata['fields'][$name])) {
$postdata['fields'][$name] = array($value);
} else {
$postdata['fields'][$name] = $value;
}
}
if (isset($postdata['id'])) {
$entry = Entry::loadFromID($postdata['id']);
$type = 'edit';
} else {
$entry = new Entry();
$entry->section = $this->parameters()->{'section'};
if (isset(Frontend::instance()->User) && Frontend::instance()->User instanceof User) {
$entry->user_id = Frontend::instance()->User->id;
} else {
$entry->user_id = (int) Symphony::Database()->query("SELECT `id` FROM `tbl_users` ORDER BY `id` ASC LIMIT 1")->current()->id;
}
$type = 'create';
}
if (isset($postdata['fields']) && is_array($postdata['fields']) && !empty($postdata['fields'])) {
$entry->setFieldDataFromFormArray($postdata['fields']);
}
$root->setAttribute('type', $type);
###
# Delegate: EntryPreCreate
# Description: Just prior to creation of an Entry. Entry object provided
Extension::notify('EntryPreCreate', '/frontend/', array('entry' => &$entry));
$errors = new MessageStack();
$status = Entry::save($entry, $errors);
if ($status == Entry::STATUS_OK) {
###
# Delegate: EntryPostCreate
# Description: Creation of an Entry. New Entry object is provided.
Extension::notify('EntryPostCreate', '/frontend/', array('entry' => $entry));
if ($this->parameters()->{'output-id-on-save'} == true) {
$ParameterOutput->{sprintf('event-%s-id', $this->parameters()->{'root-element'})} = $entry->id;
}
$root->setAttribute('result', 'success');
$root->setAttribute('id', $entry->id);
$root->appendChild($result->createElement('message', __("Entry %s successfully.", array($type == 'edit' ? __('edited') : __('created')))));
} else {
$root->setAttribute('result', 'error');
$root->appendChild($result->createElement('message', __('Entry encountered errors when saving.')));
if (!isset($postdata['fields']) || !is_array($postdata['fields'])) {
$postdata['fields'] = array();
}
$element = $result->createElement('errors');
$this->appendMessages($element, $errors);
$root->appendChild($element);
}
$messages = new MessageStack();
###
# Delegate: EventPostSaveFilter
# Description: After saving entry from the front-end. This delegate will not force the Events to terminate if it populates the error
# array reference. Provided with the event, message stack, postdata and entry object.
Extension::notify('EventPostSaveFilter', '/frontend/', array('event' => $this, 'messages' => $messages, 'fields' => $postdata, 'entry' => $entry));
if ($messages->valid()) {
$filter = $result->createElement('filters');
$this->appendMessages($filter, $messages);
$root->appendChild($filter);
}
$element = $result->createElement('values');
$this->appendValues($element, is_array($postdata['fields']) ? $postdata['fields'] : array());
$root->appendChild($element);
return $result;
}
示例2: __actionNew
public function __actionNew()
{
$callback = Administration::instance()->getPageCallback();
if (array_key_exists('save', $_POST['action']) || array_key_exists("done", $_POST['action'])) {
$entry = new Entry();
$entry->section = $callback['context']['section_handle'];
$entry->user_id = Administration::instance()->User->id;
$post = General::getPostData();
if (isset($post['fields']) && is_array($post['fields']) && !empty($post['fields'])) {
$entry->setFieldDataFromFormArray($post['fields']);
}
$errors = new MessageStack();
###
# Delegate: EntryPreCreate
# Description: Just prior to creation of an Entry. Entry object provided
Extension::notify('EntryPreCreate', '/publish/new/', array('entry' => &$entry));
$this->errors->flush();
$status = Entry::save($entry, $this->errors);
if ($status == Entry::STATUS_OK) {
// Check if there is a field to prepopulate
if (isset($_REQUEST['prepopulate']) && strlen(trim($_REQUEST['prepopulate'])) > 0) {
$field_handle = key($_REQUEST['prepopulate']);
$value = stripslashes(rawurldecode($_REQUEST['prepopulate'][$field_handle]));
$prepopulate_filter = "?prepopulate[{$field_handle}]=" . rawurlencode($value);
} else {
$prepopulate_filter = null;
}
###
# Delegate: EntryPostCreate
# Description: Creation of an Entry. New Entry object is provided.
Extension::notify('EntryPostCreate', '/publish/new/', array('entry' => $entry));
## WOOT
redirect(sprintf('%s/symphony/publish/%s/edit/%d/:created/%s', URL, $entry->section, $entry->id, $prepopulate_filter));
}
// Oh dear
$this->entry = $entry;
$this->alerts()->append(__('An error occurred while processing this form. <a href="#error">See below for details.</a> <a class="more">Show a list of errors.</a>'), AlertStack::ERROR, $this->errors);
return;
}
}
示例3: trigger
public function trigger(Register $ParameterOutput, array $postdata)
{
$result = new XMLDocument();
$result->appendChild($result->createElement($this->parameters()->{'root-element'}));
$root = $result->documentElement;
if (isset($postdata['id'])) {
$entry = Entry::loadFromID($postdata['id']);
$type = 'edit';
} else {
$entry = new Entry();
$entry->section = $this->parameters()->{'section'};
if (isset(Frontend::instance()->User) && Frontend::instance()->User instanceof User) {
$entry->user_id = Frontend::instance()->User->id;
} else {
$entry->user_id = (int) Symphony::Database()->query("SELECT `id` FROM `tbl_users` ORDER BY `id` ASC LIMIT 1")->current()->id;
}
$type = 'create';
}
if (isset($postdata['fields']) && is_array($postdata['fields']) && !empty($postdata['fields'])) {
$entry->setFieldDataFromFormArray($postdata['fields']);
}
$root->setAttribute('type', $type);
###
# Delegate: EntryPreCreate
# Description: Just prior to creation of an Entry. Entry object provided
Extension::notify('EntryPreCreate', '/frontend/', array('entry' => &$entry));
$errors = new MessageStack();
$status = Entry::save($entry, $errors);
if ($status == Entry::STATUS_OK) {
###
# Delegate: EntryPostCreate
# Description: Creation of an Entry. New Entry object is provided.
Extension::notify('EntryPostCreate', '/frontend/', array('entry' => $entry));
if ($this->parameters()->{'output-id-on-save'} == true) {
$ParameterOutput->{sprintf('event-%s-id', $this->parameters()->{'root-element'})} = $entry->id;
}
$root->setAttribute('result', 'success');
$root->appendChild($result->createElement('message', __("Entry %s successfully.", array($type == 'edit' ? __('edited') : __('created')))));
} else {
$root->setAttribute('result', 'error');
$root->appendChild($result->createElement('message', __('Entry encountered errors when saving.')));
if (!isset($postdata['fields']) || !is_array($postdata['fields'])) {
$postdata['fields'] = array();
}
$element = $result->createElement('values');
$this->appendValues($element, $postdata['fields']);
$root->appendChild($element);
$element = $result->createElement('errors');
$this->appendMessages($element, $errors);
$root->appendChild($element);
}
return $result;
}