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