Jump to content

id категории из под виджета

Featured Replies

Posted
comment_173186

Пока ищу, может кто сталкивался уже. Нужна функция которая может получить id категории в которой мы находимся
В этих никакой инфы не нашел:

\IPS\Request::i();
\IPS\Dispatcher::i();
\IPS\Output::i();

 

Edited by ZIKURIK

  • Author
comment_173192
6 часов назад, Respected сказал:

Для какого урла например ?

имеешь ввиду достать id из url адреса? я думал про это, но нужно обрабатывать id категории находясь в самой категории например в files/category/3-mycategory/ и так же вывести id категории когда я уже нахожусь в записи /files/file/2-myfile/ (2 это уже id записи). Должен быть метод достать данные такие глобально из обоих вариантов?

Edited by ZIKURIK

comment_173196

Это свойство container() для файла (итема).  Что-то глобальное - сомневаюсь, судя по коду они стараются работать в пределах одной сущности, т.е. если конечный элемент - получают контейнер, если запрос по категории, то она есть в Request

comment_173199

Сорри, не разглядел "виждета".

Думаю, в виджете только анализом \IPS\Dispatcher::i()->* (appl, module, controller) и получением соотв. данных из Request или итема.

  • Author
comment_173204
1 час назад, Desti сказал:

Сорри, не разглядел "виждета".

Думаю, в виджете только анализом \IPS\Dispatcher::i()->* (appl, module, controller) и получением соотв. данных из Request или итема.

Жесть папаша вот это они курят там явно что-то, я еле дошел до этого:

$cat_furl = \IPS\Dispatcher::i()->dispatcherController->file->container()->url()->friendlyUrlComponent;

обновили бы они внутренний код своих приложений, я так понял CMS новее их всех? Ибо там присутствует dispatcher внутри который тупо выводит нужные данные и в категории и в записи (писал выше)

comment_173207
20 минут назад, ZIKURIK сказал:

вот это они курят там явно что-то

На коленках писанный код группой энтузиастов.

  • Author
comment_173340
		if ( isset( \IPS\Request::i()->id ) )
		{
			if ( \IPS\Dispatcher::i()->application->directory == 'downloads' )
			{
				if ( \IPS\Dispatcher::i()->controller == 'browse' )
				{
					$load = \IPS\downloads\Category::load( \IPS\Request::i()->id );
					$myvar = $load->myvar;
				}
				elseif ( \IPS\Dispatcher::i()->controller == 'view' )
				{
					$file = \IPS\downloads\File::load( \IPS\Request::i()->id );
					$load = \IPS\downloads\Category::load( $file->cat );
					$myvar = $load->myvar;
				}
			}
		}

Может проще как то получить экземпляр загруженных классов из виджета? Но что-то я не нашел такой возможности

comment_173344
34 минуты назад, ZIKURIK сказал:

Может проще как то

А что вас смущает? Хотите побыстрее - обращайтесь напрямую к БД, а вообще код вполне себе. 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.