本文整理汇总了PHP中Context::getRedirect方法的典型用法代码示例。如果您正苦于以下问题:PHP Context::getRedirect方法的具体用法?PHP Context::getRedirect怎么用?PHP Context::getRedirect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Context
的用法示例。
在下文中一共展示了Context::getRedirect方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: on_rpc
/**
* Запуск периодических задач.
*
* Проверяется время последнего запуска, чаще установленного администратором
* времени запуск производиться не будет (по умолчанию 15 минут).
*/
public static function on_rpc(Context $ctx)
{
$status = "DELAYED";
$lastrun = $ctx->config->get('modules/cron/lastrun');
$delay = $ctx->config->get('modules/cron/delay', 15) * 60;
if (time() >= $lastrun + $delay) {
$ctx->config->set('modules/cron/lastrun', time());
$ctx->config->save();
@set_time_limit(0);
ob_start();
try {
$ctx->registry->broadcast('ru.molinos.cms.cron', array($ctx));
$status = "OK";
} catch (Exception $e) {
Logger::trace($e);
$status = "ERROR: " . get_class($e) . '; ' . trim($e->getMessage(), '.') . '.';
}
ob_end_clean();
}
if ($ctx->get('destination')) {
return $ctx->getRedirect();
}
if (!MCMS_CONSOLE) {
header('Content-Type: text/plain; charset=utf-8');
die($status);
}
die;
}
示例2: on_get_login_form
/**
* Вывод формы авторизации.
* @route GET//login
*/
public static function on_get_login_form(Context $ctx)
{
if ($ctx->user->id and !$ctx->get('stay')) {
return $ctx->getRedirect();
}
if (class_exists('APIStream')) {
APIStream::init($ctx);
}
$handler = array('theme' => $ctx->config->get('modules/auth/login_theme'));
$content = '';
foreach ((array) $ctx->registry->poll('ru.molinos.cms.page.head', array($ctx, $handler, null), true) as $block) {
if (!empty($block['result'])) {
$content .= $block['result'];
}
}
$content .= self::getXML($ctx);
$xml = html::em('page', array('status' => 401, 'base' => $ctx->url()->getBase($ctx), 'host' => MCMS_HOST_NAME, 'prefix' => os::webpath(MCMS_SITE_FOLDER, 'themes'), 'back' => urlencode(MCMS_REQUEST_URI), 'next' => $ctx->get('destination'), 'api' => APIStream::getPrefix(), 'query' => $ctx->query()), $content);
if (file_exists($xsl = os::path(MCMS_SITE_FOLDER, 'themes', $handler['theme'], 'templates', 'login.xsl'))) {
try {
return xslt::transform($xml, $xsl);
} catch (Exception $e) {
}
}
return xslt::transform($xml, 'lib/modules/auth/xsl/login.xsl');
}
示例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: 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();
}
示例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: rpc_get_reload
/**
* Сброс кэша.
*/
public static function rpc_get_reload(Context $ctx)
{
$tmpdir = $ctx->config->getPath('main/tmpdir');
$files = glob(os::path($tmpdir, 'mcms-fetch.*'));
if (!empty($files)) {
foreach ($files as $tmp) {
unlink($tmp);
}
}
$ctx->registry->broadcast('ru.molinos.cms.reload', array($ctx));
$ctx->registry->rebuild();
unset(cache::getInstance()->route);
return $ctx->getRedirect();
}
示例8: rpc_get_remove
protected static function rpc_get_remove(Context $ctx)
{
$name = $ctx->get('name');
try {
$node = Node::load(array('class' => 'subscription', 'name' => $name, 'deleted' => 0, 'published' => 1));
if (empty($node) or $node->id != $ctx->get('id')) {
throw new PageNotFoundException();
}
$ctx->db->beginTransaction();
$node->delete();
$ctx->db->commit();
} catch (ObjectNotFoundException $e) {
}
return $ctx->getRedirect('?unsubscribed=' . urlencode($name));
}
示例9: on_move_to_s3
/**
* Перемещает файл в S3.
*/
public static function on_move_to_s3(Context $ctx)
{
$node = Node::load($ctx->get('node'), $ctx->db);
if (file_exists($fileName = $node->getRealURL())) {
if ($url = self::moveFileToS3($fileName, null, $node->id . '/' . $node->filename)) {
$ctx->db->beginTransaction();
$node->remoteurl = $url;
$node->save();
$ctx->db->commit();
unlink($fileName);
}
} else {
Logger::log('file not found: ' . $fileName, 's3');
}
return $ctx->getRedirect();
}
示例10: 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();
}
示例11: on_post_sendto
public static function on_post_sendto(Context $ctx)
{
if ($pick = $ctx->post('selected')) {
if (false === strpos($ctx->post('sendto'), '.')) {
list($nid, $fieldName) = array($ctx->post('sendto'), null);
} else {
list($nid, $fieldName) = explode('.', $ctx->post('sendto'));
}
$params = array($fieldName);
$sql = "REPLACE INTO `node__rel` (`tid`, `nid`, `key`) SELECT %ID%, `id`, ? FROM `node` WHERE `deleted` = 0 AND `id` " . sql::in($pick, $params);
$ctx->db->beginTransaction();
$node = Node::load($nid)->knock(ACL::UPDATE);
if (isset($node->{$fieldName})) {
unset($node->{$fieldName});
}
$node->onSave("DELETE FROM `node__rel` WHERE `tid` = %ID% AND `key` = ?", array($fieldName))->onSave($sql, $params)->save();
$ctx->db->commit();
// destiantion сейчас указывает на список, а нам надо
// вернуться на уровень выше.
$url = new url($ctx->get('destination'));
if ($next = $url->arg('destination')) {
$ctx->redirect($next);
}
}
return $ctx->getRedirect();
}
示例12: on_reload
public static function on_reload(Context $ctx)
{
modman::updateDB();
return $ctx->getRedirect();
}
示例13: rpc_get_logout
/**
* Выход, завершение сеанса.
*
* @param Context $ctx
* @return Response
*/
public static function rpc_get_logout(Context $ctx)
{
$uid = null;
$stack = (array) mcms::session('uidstack');
$uid = array_pop($stack);
mcms::session('uidstack', $stack);
if (empty($uid)) {
$ctx->user->logout();
} else {
self::login($uid);
}
$next = $uid ? $ctx->get('from', '') : '';
return $ctx->getRedirect($next);
}
示例14: on_unlink_from_node
/**
* Открепляет файл от документа.
*/
public static function on_unlink_from_node(Context $ctx)
{
$ctx->db->beginTransaction();
$ctx->db->exec("DELETE FROM `node__rel` WHERE `tid` = ? AND `nid` = ? AND `key` = ?", array($ctx->get('node'), $ctx->get('file'), $ctx->get('field')));
// Пересохраняем ноду, чтобы сработали обработчики изменения, вроде индексатора.
Node::load($ctx->get('node'), $ctx->db)->touch()->save();
$ctx->db->commit();
return $ctx->getRedirect();
}
示例15: on_post_access
/**
* Изменение прав на разделы.
* @route POST//api/taxonomy/access.rpc
*/
public static function on_post_access(Context $ctx)
{
$ctx->user->checkAccess(ACL::UPDATE, 'tag');
if ($sections = (array) $ctx->post('sections')) {
$publishers = $ctx->post('publishers');
$owners = $ctx->post('owners');
$ctx->db->beginTransaction();
ACL::resetNode($sections);
foreach ($sections as $nid) {
if ($publishers == $owners) {
ACL::set($nid, $owners, ACL::CREATE | ACL::READ | ACL::UPDATE | ACL::DELETE | ACL::PUBLISH);
} else {
ACL::set($nid, $publishers, ACL::PUBLISH);
ACL::set($nid, $owners, ACL::CREATE | ACL::READ | ACL::UPDATE | ACL::DELETE);
}
}
$ctx->db->commit();
}
return $ctx->getRedirect('admin/access/taxonomy');
}