Вывод профилей пользователя на других сайтах
Встала задача вывести вот такой блок ссылок пользователя (каждая иконка - профиль пользователя на внешнем сайте). Тут я опишу простой процесс как это сделать. Основная сложность, как вы понимаете, у каждого сайта своя уникальная favicon.
1. Для начала заведем пользовательское свойство, назовем его как-то и выведем в стандартном компоненте редактирования профиля

Немного кастомизируем согласно дизайну

Собственно, тут много ума не надо. Надо теперь вывести.
2. Допустим, у нас уже есть страница пользователя на вашем сайте. Это может быть профиль соцсети или карточка форума, или карточка блога, или может самописный компонент. В этом шаблоне в нужном месте пишем примерно такой вод код:
<?if (!empty($arResult['UF_WEB_PROFILES'])):?>
<div class="user-detail-property">
<div class="user-detail-property-h">Профили:</div>
<div class="user-detail-property-val">
<ul class="content-social-list">
<?foreach ($arResult['UF_WEB_PROFILES'] as $url):
$arUrl = parse_url($url);
if (!strlen($arUrl['host'])) {
continue;
}
?>
<li><a href="<?= $url?>" title="<?= $url?>" target="_blank" rel="nofollow"><img src="//s2.googleusercontent.com/s2/favicons?alt=p&domain=<?= $arUrl['host']?>" alt="<?= $url?>"></a></li>
<?endforeach;?>
</ul>
</div>
</div>
<?endif;?> |
Если отбросить html, то ключевой код здесь:
$arUrl = parse_url($url);//парсим ссылку стандартной php-функцией
if (!strlen($arUrl['host'])) {// если она пуста, не обрабатываем ссылку
....
//пользуемся магической ссылкой от Гугла, которая вернет favicon сайта в виде обычной картинки, а если такой иконки (или сайта) нет, то вернет картинку-заглушку
<img src="//s2.googleusercontent.com/s2/favicons?alt=p&domain=<?= $arUrl['host']?>"> |
Результат вы уже видели
Назад в раздел