本文整理汇总了PHP中Context::post方法的典型用法代码示例。如果您正苦于以下问题:PHP Context::post方法的具体用法?PHP Context::post怎么用?PHP Context::post使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Context
的用法示例。
在下文中一共展示了Context::post方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: goNext
private static function goNext(Context $ctx)
{
if ($ctx->method('post')) {
foreach ($ctx->post('next', array()) as $k => $v) {
if (!empty($v) and null !== $ctx->post($k)) {
return new Redirect($v);
}
}
}
return $ctx->getRedirect();
}
示例2: on_post_search_form
/**
* Поиск (обработка).
*/
public static function on_post_search_form(Context $ctx)
{
$list = 'admin/content/list';
$term = $ctx->post('search_term');
if (null !== ($tmp = $ctx->post('search_class'))) {
$list = Node::create($tmp)->getListURL();
}
$url = new url($ctx->get('from', $list));
if (null !== ($tmp = $ctx->post('search_uid'))) {
$url->setarg('author', $tmp);
}
if (null !== ($tmp = $ctx->post('search_tag'))) {
$term .= ' tags:' . $tmp;
}
$url->setarg('search', trim($term));
$url->setarg('page', null);
$ctx->redirect($url->string());
}
示例3: on_post_detach
/**
* Открепление файлов от ноды.
*/
public static function on_post_detach(Context $ctx)
{
if (is_array($ids = $ctx->post('remove'))) {
$ctx->db->beginTransaction();
$params = array();
Node::load($ctx->get('id'), $ctx->db)->touch(ACL::UPDATE)->onSave('DELETE FROM `node__rel` WHERE `tid` = %ID% AND `key` IS NULL AND `nid` ' . sql::in($ids, $params), $params)->save();
$ctx->db->commit();
}
return $ctx->getRedirect();
}
示例4: rpc_post_add
public static function rpc_post_add(Context $ctx)
{
$ctx->user->checkAccess(ACL::CREATE, 'comment');
$node = Node::create('comment', array('published' => $ctx->user->hasAccess(ACL::PUBLISH, 'comment')));
$node->formProcess($ctx->post);
if ($ctx->post('anonymous')) {
$node->name = t('Комментарий анонимный');
$node->uid = null;
}
$node->save();
}
示例5: on_post_manage
public static function on_post_manage(Context $ctx)
{
if (!($nid = $ctx->get('id'))) {
throw new BadRequestException(t('Не указан идентификатор метки (GET-параметр id).'));
}
$params = array($nid);
$sql = "DELETE FROM `node__rel` WHERE `tid` = ? AND `nid` " . sql::notin($ctx->post('apply'), $params);
$ctx->db->beginTransaction();
$ctx->db->exec($sql, $params);
$ctx->db->commit();
return $ctx->getRedirect();
}
示例6: on_post_setup
/**
* Изменяет список разделов, разрешённых для ноды.
*/
public static function on_post_setup(Context $ctx)
{
if (!($node = $ctx->get('node'))) {
throw new BadRequestException();
}
$ctx->db->beginTransaction();
$ctx->db->exec("DELETE FROM `node__rel` WHERE `nid` = ? AND `tid` IN (SELECT `id` FROM `node` WHERE `class` = 'tag')", array($node));
$params = array($node);
$sql = "INSERT INTO `node__rel` (`tid`, `nid`) SELECT `id`, ? FROM `node` WHERE `id` " . sql::in($ctx->post('selected'), $params);
$ctx->db->exec($sql, $params);
$ctx->db->commit();
return $ctx->getRedirect();
}
示例7: hookRemoteCall
public static function hookRemoteCall(Context $ctx)
{
switch ($ctx->get('action')) {
case 'add':
$ctx->user->checkAccess(ACL::CREATE, 'todo');
$node = Node::create('todo', array('name' => $ctx->post('name'), 'uid' => $ctx->user->id, 'to' => $ctx->post('user', $ctx->user->id), 'published' => 1, 'rel' => $ctx->post('rel')));
if (empty($node->name)) {
$msg = t('не указан текст задачи.');
bebop_on_json(array('status' => 'error', 'message' => $msg));
throw new InvalidArgumentException($msg);
}
$node->save();
bebop_on_json(array('status' => 'created', 'id' => $node->id, 'html' => $node->render()));
break;
case 'toggle':
try {
$node = Node::load(array('class' => 'todo', 'id' => $ctx->get('id')));
} catch (ObjectNotFoundException $e) {
bebop_on_json(array('status' => 'error', 'message' => 'todo ' . $ctx->get('id') . ' not found'));
throw new PageNotFoundException();
}
if (empty($node->closed)) {
$node->closed = date('Y-m-d H:i:s', time() - date('Z', time()));
} else {
$node->closed = null;
}
$node->save();
if ($ctx->method('POST') and null !== ($comment = $ctx->post('comment'))) {
$tmp = Node::create('comment', array('uid' => $ctx->user->id, 'author' => $ctx->user->name, 'name' => t('Комментарий к напоминанию'), 'text' => $comment));
$tmp->save();
$tmp->linkAddParent($node->id);
}
$state = $node->closed ? 'closed' : 'open';
bebop_on_json(array('status' => 'ok', 'state' => $state));
break;
}
}
示例8: on_vote
public static function on_vote(Context $ctx)
{
if (!$ctx->get('id')) {
throw new InvalidArgumentException(t('Не указан номер опроса (GET-параметр nid).'));
}
$votes = $ctx->post('vote');
$ctx->db->beginTransaction();
if (is_array($votes)) {
foreach ($votes as $i => $vote) {
$ctx->db->exec("INSERT INTO `node__poll` (`nid`, `uid`, `ip`, `option`) VALUES (:nid, :uid, :ip, :option)", array(':nid' => $ctx->get('id'), ':uid' => $ctx->user->id, ':ip' => $_SERVER['REMOTE_ADDR'], ':option' => $vote));
}
} else {
$ctx->db->exec("INSERT INTO `node__poll` (`nid`, `uid`, `ip`, `option`) VALUES (:nid, :uid, :ip, :option)", array(':nid' => $ctx->get('id'), ':uid' => $ctx->user->id, ':ip' => $_SERVER['REMOTE_ADDR'], ':option' => $votes));
}
$ctx->db->commit();
return $ctx->getRedirect();
}
示例9: rpc_post_login
/**
* Обработка запросов на авторизацию. Переправляет в нужный модуль.
*
* @param Context $ctx
* @return Redirect
*/
public static function rpc_post_login(Context $ctx)
{
if (!($mode = $ctx->post('auth_type'))) {
throw new BadRequestException(t('Не указан тип авторизации.'));
}
$params = array();
foreach ($ctx->post as $k => $v) {
if (0 === strpos($k, $mode . '_')) {
$params[substr($k, strlen($mode) + 1)] = $v;
}
}
$result = $ctx->registry->unicast($message = 'ru.molinos.cms.auth.process.' . $mode, array($ctx, $params));
if (false === $result) {
Logger::log($message . ' not handled.', 'auth');
}
if (!$result instanceof Response) {
$result = $ctx->getRedirect();
}
return $result;
}
示例10: hookRemoteCall
public static function hookRemoteCall(Context $ctx, $className)
{
$default = 'default';
if ($ctx->method('post')) {
$default = $ctx->post('action', $default);
}
$action = $ctx->get('action', $default);
$call = array(array($className, 'rpc_' . strtolower($ctx->method()) . '_' . $action), array($className, 'rpc_' . $action));
foreach ($call as $args) {
if (method_exists($args[0], $args[1])) {
if (null === ($result = call_user_func(array($args[0], $args[1]), $ctx))) {
$result = $ctx->getRedirect();
}
return $result;
}
}
if (null !== ($next = $ctx->getRedirect())) {
return $next;
}
return false;
}
示例11: on_post_edit_field
/**
* Обрабатывает форму редактирования поля.
*/
public static function on_post_edit_field(Context $ctx)
{
$type = Node::load(array('class' => 'type', 'name' => $ctx->get('type'), 'deleted' => 0), $ctx->db);
$type->backportLinkedFields();
if (!array_key_exists($fieldName = $ctx->get('field'), $type->fields)) {
throw new PageNotFoundException();
}
$field = $type->fields[$fieldName];
// Удаление.
if ($ctx->post('delete')) {
$fields = $type->fields;
unset($fields[$fieldName]);
$type->fields = $fields;
} else {
$schema = self::getFieldSchema($field['type']);
$data = $schema->getFormData($ctx);
$data->type = $field['type'];
$data = $data->dump();
foreach ($data as $k => $v) {
if (empty($v)) {
unset($data[$k]);
}
}
$fields = $type->fields;
$fields[$data['name']] = $data;
unset($fields[$data['name']]['name']);
// Переименовали поле, удаляем старое.
if ($data['name'] != $fieldName) {
unset($fields[$fieldName]);
}
$type->fields = $fields;
}
$ctx->db->beginTransaction();
$type->save();
$ctx->db->commit();
return $ctx->getRedirect();
}
示例12: on_post_delete
public static function on_post_delete(Context $ctx)
{
if ($ctx->post('confirm')) {
$delete = (array) $ctx->post('delete');
$widgets = Widget::loadWidgets($ctx);
foreach ((array) $ctx->post('delete') as $k) {
if (array_key_exists($k, $widgets)) {
unset($widgets[$k]);
} else {
throw new PageNotFoundException();
}
}
Widget::save($widgets);
BaseRoute::save(self::remove_dead_widgets(BaseRoute::load($ctx), array_keys($widgets)));
}
return $ctx->getRedirect(self::listurl);
}
示例13: getNodes
/**
* Возвращает обрабатываемые ноды.
* Для запросов методом POST использует массив selected[],
* для запросов методом GET — параметр node.
*/
private static function getNodes(Context $ctx)
{
if ($ctx->method('post')) {
$ids = $ctx->post('selected', array());
} else {
$ids = explode(' ', $ctx->get('node'));
}
if (empty($ids)) {
throw new BadRequestException(t('Не указаны идентификаторы документов (POST-массив selected[] или GET-параметр node)'));
}
return Node::find(array('id' => $ids), $ctx->db);
}
示例14: rpc_post_remove
public static function rpc_post_remove(Context $ctx)
{
$status = array();
$remove = (array) $ctx->post('modules');
// Удаляем отключенные модули.
foreach (modman::getLocalModules() as $name => $info) {
if ('required' != @$info['priority'] and in_array($name, $remove)) {
// Отказываемся удалять локальные модули, которые нельзя вернуть.
if (!empty($info['url'])) {
if (modman::uninstall($name)) {
$status[$name] = 'removed';
}
}
}
}
/*
$ctx->config->modules = $enabled;
$ctx->config->write();
*/
$next = new url($ctx->get('destination', 'admin'));
$next->setarg('status', $status);
self::rpc_rebuild($ctx);
// Обновляем базу модулей, чтобы выбросить удалённые локальные.
modman::updateDB();
return new Redirect($next->string());
}
示例15: getFormData
/**
* Валидирует форму, возвращает данные.
*/
public function getFormData(Context $ctx, &$data = null)
{
if (null === $data) {
$data = Control::data(array());
}
foreach ($this as $name => $field) {
$value = $ctx->post($name);
$field->set($value, $data, $ctx->post);
}
return $data;
}