Перейти к содержанию

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


Рекомендуемые сообщения

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

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

 

Изменено пользователем ZIKURIK
Ссылка на комментарий
Поделиться на другие сайты

Для CMS

\IPS\cms\Databases\Dispatcher::i()->categoryId;

а для других приложений есть подобное?

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Изменено пользователем ZIKURIK
Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Ну в итоге все равно вышли на item->container()

 

Ссылка на комментарий
Поделиться на другие сайты

		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;
				}
			}
		}

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...