Как указать ссылку на редирект при создании новой записи в CMS? - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

Как указать ссылку на редирект при создании новой записи в CMS?

#1 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 133
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 11 Июль 2018 - 11:44

Здравствуйте!

По умолчанию при создании новой записи в любой базе данных, после отправки формы происходит редирект на страницу только что созданной, новой записи.

Вопрос, как изменить ссылку по которой будет редирект после отправки формы?
0

#2 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 348
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 340
  • IPB version:I have no IPB
 

Отправлено 11 Июль 2018 - 12:24

Просмотреть сообщениеvinegredz сказал(а):

По умолчанию при создании новой записи в любой базе данных, после отправки формы происходит редирект на страницу только что созданной, новой записи.


Не только для записей, но и для тем, лс и т.п.

\system\Content\Item.php
				if ( !\IPS\Member::loggedIn()->member_id and $obj->hidden() )
				{
					\IPS\Output::i()->redirect( $obj->container()->url(), 'mod_queue_message' );
				}
				else if ( $obj->hidden() == 1 )
				{
					\IPS\Output::i()->redirect( $obj->url(), 'mod_queue_message' );
				}
				else
				{
					\IPS\Output::i()->redirect( $obj->url() );
				}

Проверяйте, что это статья и перенаправляйте по новому адресу

Либо \applications\cms\sources\Records\Records.php
	public function url( $action=NULL )
	{

Проверяйте параметры и перенаправляйте по новому адресу. Что-то вроде
	public function url( $action=NULL )
	{
		if (\IPS\Request::i()->do == 'form' and isset(\IPS\Request::i()->d))
		{
			return \IPS\Http\Url::internal(''); // перенаправляем на главную страницу
		}

0

#3 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 133
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 11 Июль 2018 - 13:29

Спасибо за ответ.

Открыл файл \applications\cms\sources\Records\Records.php

Сделал такой код:

public function url( $action=NULL )
	{
		if (\IPS\Request::i()->do == 'form' and isset(\IPS\Request::i()->d))
		{
            return \IPS\Http\Url::internal(''); // перенаправляем на главную страницу
        }

        if ( ! $this->recordPage )
        {
        	/* If we're coming through the database controller embedded in a page, $currentPage will be set. If we're coming in via elsewhere, we need to fetch the page */
        	try
        	{
        		$this->recordPage = \IPS\cms\Pages\Page::loadByDatabaseId( static::$customDatabaseId );
        	}
        	catch( \OutOfRangeException $ex )
        	{
        		if ( \IPS\cms\Pages\Page::$currentPage )
        		{
        			$this->recordPage = \IPS\cms\Pages\Page::$currentPage;
        		}
        		else
        		{
        			throw new \LogicException;
        		}
        	}
        }

        if ( $this->recordPage )
        {
        	$pagePath   = $this->recordPage->full_path;
        	$class		= '\IPS\cms\Categories' . static::$customDatabaseId;
        	$catPath    = $class::load( $this->category_id )->full_path;
        	$recordSlug = ! $this->record_static_furl ? $this->record_dynamic_furl . '-r' . $this->primary_id_field : $this->record_static_furl;

        	if ( static::database()->use_categories )
        	{
        		$url = \IPS\Http\Url::internal( "app=cms&module=pages&controller=page&path=" . $pagePath . '/' . $catPath . '/' . $recordSlug, 'front', 'content_page_path', $recordSlug );
        	}
        	else
        	{
        		$url = \IPS\Http\Url::internal( "app=cms&module=pages&controller=page&path=" . $pagePath . '/' . $recordSlug, 'front', 'content_page_path', $recordSlug );
        	}
        }

        if ( $action )
        {
        	$url = $url->setQueryString( 'do', $action );
        	$url = $url->setQueryString( 'd' , static::database()->id );
        	$url = $url->setQueryString( 'id', $this->primary_id_field );
        }

        return $url;
    }


К сожалению, не перенаправляет на главную.
0

#4 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 348
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 340
  • IPB version:I have no IPB
 

Отправлено 11 Июль 2018 - 13:46

Оставьте
if (\IPS\Request::i()->do == 'form')

Я когда смотрел, заходил из категории. А там добавляется параметр d
0

#5 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 133
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 11 Июль 2018 - 14:32

Работает! Большое спасибо!
0

Сообщить об этой теме:


Страница 1 из 1
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2018 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна