Добрый день! Хотел сделать уведомления не на почту, а в любую другую систему (телеграм, мобильное приложение). Главный вопрос, конечно, как "подписаться" на добавление любых уведомлений для битрикса, с указанием получателя, отправителя (если есть) и темы. Пока мой выход таков: периодически мониторить таблицу b_event и оттуда доставать эту информацию. В целом всё кажется логичным и простым, но заметил, что в БД битрикса поля типа C_FIELDS из этой таблицы являются невалидным json, хотя по идее, когда событие создаётся, там именно массив [URL=https://disk.yandex.ru/i/TowJkRBkntzDAw]https://disk.yandex.ru/i/TowJkRBkntzDAw[/URL] Как распарсить такое поле?
Может немного не по теме отвечу, я в какой-то момент плюнул на битриксовские заморочки и получил вот такое решение для прямого (без авторизации) доступа к файлам. Рассмотрим на примере социальной сети. В прикреплении есть файл с вот такой битриксовской ссылкой [URL=https://mybitrix.ru/bitrix/tools/disk/uf.php?attachedId=247755&action=download&ncc=1]https://mybitrix.ru/bitrix/tools/disk/uf.php?attachedId=247755&action=download&a...[/URL] берём этот attachedId $id=247755 и получаем прямую ссылку с информацией о файле
[CODE]$zap = $DB->Query("SEL ECT OBJECT_ID fr om b_disk_attached_object where id=".$id.";", false, $err_mess.__LINE__); while($res = $zap->Fetch()) { $id=$res["OBJECT_ID"]; } $file = \Bitrix\Disk\File::loadById($id); // получим объект файла $fileid=$file->getFileId(); $fileinfo=CFile::GetByID($fileid)->arResult[0]; $r=array(); $r["href"]="https://mybitrix.ru".CFile::GetPath($file->getFileId()); $r["name"]=$fileinfo["ORIGINAL_NAME"]; $r["size"]=$fileinfo["FILE_SIZE"]; $attacharray[]=$r; [/CODE] На выходе получим массив $attacharray, где есть имя, размер и полный путь вида [URL=https://mybitrix.ru/upload/disk/acab/t9ylbv1a3q721fr3qyiplw3z012h7wod.pdf]https://mybitrix.ru/upload/disk/acab/t9ylbv1a3q721fr3qyiplw3z012h7wod.pdf[/URL]
Как видно из изначальной ссылки там где есть uf.php этот способ подойдёт
Добрый день! Подскажите пожалуйста, как вывести данные из компонента в json безо всякого html? Задача заключается в том, что есть компонент, например Социальная сеть (socialnetwork) и я бы хотел получить все данные от него в json (обращаясь POST'ом к какому то скрипту). Стандартный rest_api не предлагать, ибо там много чего нет, а как туда что-то дополнить непонятно. В частности тут нет доступа к комментариям, лайкам и т.п. + доступ к файлам как получить без url? Пока лучший способ, который приходит на ум - парсинг html, но это, конечно, ужас. Второй способ - писать sql запросы напрямую в БД. В целом, я почти разобрался в структуре базы, осталось лишь понять как доступ к тем же файлам получить и где хранятся прикрепления (в какой таблице), а также работа с лайками. Но вроде как у Битрикса есть куча функционала, но он либо плохо описан, либо я не умею читать. Третий способ это какая-то комбинация прямых запросов в БД и битриксовского функционала, но вопрос с прикреплением файлов и лайками остаётся открытым
Пропадает доступ пользователя к меню, при изменении
Пользователь назначен некой группе, у который есть доступ к пункту меню. Он его видит, всё нормально. После небольшого изменения компонента (в данном случае добавление нового вопроса в веб-форму), пользователь перестаёт его видеть. Чтобы он его увидел нужно снять и установить ещё раз галочку вхождения данного пользователя в группу
Скажите пожалуйста, как можно заставить работать ajax на абсолютно другом сайте. 1) Есть сайт на битриксе. Создаём там страничку 2) Отображаем там содержимое другого сайта, который содержит ajax 3) Осуществляем работу ajax (например поиск) 4) У меня битрикс перенаправляет на "родной" для ajax'a сайт А задача, чтобы сайт полностью работал из окна битрикса. "Другой сайт" скорее всего будет написан на полном ajax, т.е. формально находиться на одном url