Posted 4 октября, 20213 yr comment_173186 Пока ищу, может кто сталкивался уже. Нужна функция которая может получить id категории в которой мы находимся В этих никакой инфы не нашел: \IPS\Request::i(); \IPS\Dispatcher::i(); \IPS\Output::i(); Edited 4 октября, 20213 yr by ZIKURIK
4 октября, 20213 yr Author comment_173187 Для CMS \IPS\cms\Databases\Dispatcher::i()->categoryId; а для других приложений есть подобное?
5 октября, 20213 yr Author comment_173192 6 часов назад, Respected сказал: Для какого урла например ? имеешь ввиду достать id из url адреса? я думал про это, но нужно обрабатывать id категории находясь в самой категории например в files/category/3-mycategory/ и так же вывести id категории когда я уже нахожусь в записи /files/file/2-myfile/ (2 это уже id записи). Должен быть метод достать данные такие глобально из обоих вариантов? Edited 5 октября, 20213 yr by ZIKURIK
5 октября, 20213 yr comment_173196 Это свойство container() для файла (итема). Что-то глобальное - сомневаюсь, судя по коду они стараются работать в пределах одной сущности, т.е. если конечный элемент - получают контейнер, если запрос по категории, то она есть в Request
5 октября, 20213 yr comment_173199 Сорри, не разглядел "виждета". Думаю, в виджете только анализом \IPS\Dispatcher::i()->* (appl, module, controller) и получением соотв. данных из Request или итема.
5 октября, 20213 yr Author comment_173204 1 час назад, Desti сказал: Сорри, не разглядел "виждета". Думаю, в виджете только анализом \IPS\Dispatcher::i()->* (appl, module, controller) и получением соотв. данных из Request или итема. Жесть папаша вот это они курят там явно что-то, я еле дошел до этого: $cat_furl = \IPS\Dispatcher::i()->dispatcherController->file->container()->url()->friendlyUrlComponent; обновили бы они внутренний код своих приложений, я так понял CMS новее их всех? Ибо там присутствует dispatcher внутри который тупо выводит нужные данные и в категории и в записи (писал выше)
5 октября, 20213 yr comment_173207 20 минут назад, ZIKURIK сказал: вот это они курят там явно что-то На коленках писанный код группой энтузиастов.
10 октября, 20213 yr 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; } } } Может проще как то получить экземпляр загруженных классов из виджета? Но что-то я не нашел такой возможности
10 октября, 20213 yr 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.