Jump to content

Можно ли расширить контроллер?


TemKa_SD
 Share

Recommended Posts

Здравствуйте. Я хочу добавить функционал cropPhoto для мероприятия в календаре. Но так как этот функционал работает в контроллере, расширять нужно его а не форму. Можно как-то хуком расширить контроллер в приложении calendar?

Link to comment
Share on other sites
В 29.08.2022 в 04:09, Кирилл сказал:

Скорее всего вам придётся писать собственную функцию кропа и применять её.

Да, я понимаю, тут вопрос немного в другом. Я уже написал такое для своего приложения, там у меня форма работает в контроллере а не классе, поэтому там нет никаких проблем, а здесь столкнулся со следующим:

После отправки формы, я делаю редирект на метод с cropPhoto (где кропим фото), после этого редиректа, у меня методы формы дальше не выполняются.

Блин, так сложно будет понять мой вопрос, я скорей всего, завтра сделаю видео где всё покажу.

Но вообще, невозможно ведь хуком расширить контроллер? Например, я хочу расширить это: /calendar/modules/front/calendar/submit.php метод manage()

Link to comment
Share on other sites

@Кирилл Вот смотрите, проблема вот в чем: я создал приложение для календаря, позволяющее, реализовать функционал cropPhoto.

1. Создал хук \IPS\calendar\Event

public function processForm( $values )
	{
		parent::processForm( $values );

		if ( $values['event_cover_photo'] && \strpos($values['event_cover_photo']->filename, 'cropped') === false ){
			$this->save();
			\IPS\Output::i()->redirect( \IPS\Http\Url::internal('app=calendarphotocrop&module=crop&controller=crop')->setQueryString( 'event', $this->id ) );
		}
	}

Здесь я делаю редирект на контроллер в своем приложении, который, будет кропить фото. После этого редиректа parent методы формы прекращают работать, вот тут \IPS\Content\Item::createFromForm() https://prnt.sc/91xr1LLfSxHE после $obj->processForm( $values ); код уже не выполняется, потому что я в хуке сделал редирект на контроллер.

Думаю, нет смысла выкладывать сюда код в контроллере, выложу скрином: https://prnt.sc/TioXTJu8Uxco

Как продолжить выполнение методов формы после редиректа в контроллер моего приложения?

Edited by TemKa_SD
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

Messenger

    ×
    ×
    • Create New...

    Important Information

    By using our site you agree to our Privacy Policy