Авторизация и регистрация через Facebook в Битрикс

Invalid Scopes: user_friends. This message is only shown to developers. Users of your app will ignore these permissions if present. Please read the documentation for valid permissions at: https://developers.facebook.com/docs/facebook-login/permissions

Знакомо? А все вроде правильно?

По состоянию на 30.11.2018, Битрикс не выпустил соответствующего обновления модуля социальных сервисов.

Facebook опять что-то поменял, и теперь нужно изменить 1 строку в файле /bitrix/modules/socialservices/classes/general/facebook.php:

Было:

protected $scope = array(
«email»,
«user_friends»,
);

Стало:

protected $scope = array(
«email»,
«public_profile»,
);

Отображение изображений в умном фильтре для свойства «Привязка к элементам» в Битрикс

Копируем компонент в свое пространство имен

Передаем параметром массив тех свойств, что будут подменяться:

$arCustomProps = $arParams[«CUSTOM_PICTURE_PROPERTIES»];

if (!empty($arCustomProps) && !is_array($arCustomProps)) {
$arCustomProps = array($arCustomProps);
}

У меня в компонент передаются следующий массив:  «SMART_FILTER_CUSTOM_PICTURE_PROPERTTIES» => array(«TSVET_IMAGES»),

Вставляем в код компонента перед «if ($arParams[«XML_EXPORT»] === «Y») {» следующие строки:

if (!empty($arCustomProps)) {

$arPropsValsToLoad = array();
foreach ($arResult[«ITEMS»] as $PID => $arItem) {

if (in_array($arItem[«CODE»], $arCustomProps)) {
$arResult[«ITEMS»][$PID][«DISPLAY_TYPE»] = «G»;//подменяем тип отображения
$arPropsValsToLoad = array_keys($arItem[«VALUES»]);
}
}
$arPictures = array();
$query = CIBlockElement::GetList(array(), array(«ID» => $arPropsValsToLoad), false, false, array(«ID», «PREVIEW_PICTURE»));
while ($res = $query->GetNext()) {
$arPictures[$res[«ID»]] = CFile::GetFileArray($res[‘PREVIEW_PICTURE’]);//берем картинки
}
foreach ($arResult[«ITEMS»] as $PID => $arItem) {

if (in_array($arItem[«CODE»], $arCustomProps)) {
foreach ($arItem[«VALUES»] as $valID => $arValue) {
if ($arPictures[$valID] != «») {
$arResult[«ITEMS»][$PID][«VALUES»][$valID][«FILE»] = $arPictures[$valID];
}
}
}
}
}

 

Результат:

Вычисление собственных свойств в SEO шаблонах инфоблока Битрикс

<? //Подключаем модуль инфоблоков
if (\Bitrix\Main\Loader::includeModule(‘iblock’))
{
//регистрируем обработчик события
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
«iblock»,
«OnTemplateGetFunctionClass»,
array(«FunctionMyPriceFormat», «eventHandler»)
);
//подключаем файл с определением класса FunctionBase
//это пока требуется т.к. класс не описан в правилах автозагрузки
include_once($_SERVER[«DOCUMENT_ROOT»].»/bitrix/modules/iblock/lib/template/functions/fabric.php»);
class FunctionMyPriceFormat extends \Bitrix\Iblock\Template\Functions\FunctionBase
{
//Обработчик события на вход получает имя требуемой функции
//парсер её нашел в строке SEO

public static function eventHandler($event)
{
$parameters = $event->getParameters();
$functionName = $parameters[0];
if ($functionName === «my_price_format»)
{
//обработчик должен вернуть SUCCESS и имя класса
//который будет отвечать за вычисления
return new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::SUCCESS,
«\\FunctionMyPriceFormat»
);
}
}
//собственно функция выполняющая «магию»
public function calculate($price)// эта функция лежит в fabric.php, она пустая, и всякие toUpper и toLower ее переопределяют
{
$price = $this->parametersToString($price);
$price = str_replace(«,»,».»,$price);
return round( $price, 2);
}
}
}
?>