Еще нужно не забывать подключать пространство для использования фильтров. Без него критических ошибок не будет, но и фильтры работать не будут.
use Bitrix\Main\Engine\ActionFilter;
use Bitrix\Main\Engine\ActionFilter;
|
Разобрался, если указано пространство имен, то создаваемые объекты в методах тоже пытаются подключиться через подпространство, чтобы решить эту задачу нужно перед объявлением класса добавить слэш \ т.е.
Вот пара вариантов решения:[CODE]namespace Mmit\Sfca\Googles; class GoogleData{ public static function GetTestData(){ require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/mmit.sfca/vendor/autoload.php"); $client = new \Google_Client(); return $client; } } [/CODE]или[CODE]namespace Mmit\Sfca\Googles; use Google_Client; class GoogleData{ public static function GetTestData(){ require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/mmit.sfca/vendor/autoload.php"); $client = new Google_Client(); return $client; } }[/CODE] |
|
|
|
|
|
Может быть сделать раздельные шаблоны, один для клиентов которые могут только галочки ставить, а другой для разработчиков, с упрощенной отрисовкой JS.
Конечно каждый разработчик и сам может своять свой компонент оформления заказов, но таким образом количество вопросов в этой теме не уменьшится ). |
|
|
|
|
|
Помогите пожалуйста разобраться.
Собрал простой модуль и настроил. Сам по себе модуль работает как надо, но по какой то причине в нужном мне классе модуля не получается подключить нужные мне библиотеки собранные через composer. Залил в папку с модулем файл vendor, который собрал мне composer. Создал класс в котором необходимо использовать данные из этой библиотеки. Вот пример класса который должен отрабатывать. расположение файла с классом /bitrix/modules/mmit.sfca/lib/googles/googledata.php расположение файла библиотеки vendor /bitrix/modules/mmit.sfca/vendor/autoload.php [CODE]namespace Mmit\Sfca\Googles; class GoogleData{ public static function GetTestData(){ require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/mmit.sfca/vendor/autoload.php"); $client = new Google_Client(); return $client; } }[/CODE]но по какой то причине он мне выдает вот такую ошибку. [CODE][Error] Class 'Mmit\Sfca\Googles\Google_Client' not found (0) /var/www/u1111111/data/www/SITE_NAME/bitrix/modules/mmit.sfca/lib/googles/googledata.php:10 #0: Mmit\Sfca\Googles\GoogleData::GetTestData() /var/www/u1111111/data/www/SITE_NAME/bitrix/components/mmit/ #1: SfcaContext->executeComponent() /var/www/u1111111/data/www/SITE_NAME/bitrix/modules/main/cla #2: CBitrixComponent->includeComponent(string, array, NULL) /var/www/u1111111/data/www/SITE_NAME/bitrix/modules/main/cla #3: CAllMain->IncludeComponent(string, string, array) /var/www/u1111111/data/www/SITE_NAME/servis/index.php:338 [/CODE] Без использования $client = new Google_Client(); все нормально отрабатывает. Примечание: Данная конструкция класса нормально отрабатывает если ее вызывать непосредственно в самом компоненте или на любой странице сайта. Так же не получается подключить библиотеку через файл include.php в папке модуля, но даже если бы и получилось, такой вариант мня не устраивает, так как подключать библиотеку нужно только в определенных случаях. Сама библиотека очень большая с большим количеством зависимостей, разделить ее не получится. Предположительная проблема заключается в сборщике классов битрикса, потому как Mmit\Sfca\Googles\Google_Client непонятно как он это получает. |
|
|
|
|
|
Спасибо за ответ, но очень хотелось бы избежать подобного метода. Меня интересует вот что, может ли данный метод или какой то еще выполнить эту задачу? т.е. зная id файла в этом массиве удалить только его, или добавить к существующим еще.
Почему ваш метод мне не нравится, при его использовании придется удалять и перезаписывать все файлы, как по мне это неправильно. Кстати с добавлением файла к уже имеющимся у меня тоже возникли сложности, по какой то причине значения в этом массиве становятся равны 0. Для PERSONAL_PHOTO загрузка и удаление работает нормально. |
|
|
|
|
|
Добрый день, не могу найти верный способ решения моей задачи, нужно в профиль пользователя добавить поле drag and adrop с файлами и возможностью их загрузки и удаления. Сделал подобную штуку для элементов инфоблока там вроде разобрался как работать с подобными свойствами, а к пользователю эти же методы не подходят.
Сейчас пытаюсь сделать удаление выбранного файла, но при использовании CUser::Update очищается все свойство. так выглядит массив с id фалов [CODE]["UF_SERT"]=> array(3) { [0]=> string(4) "6613" [1]=> string(4) "6614" [2]=> string(4) "6615" }[/CODE]метод CUser::Update удаляет их всех. |
|
|
|
|