Вывод информации об авторе на странице материала

Вывод информации об авторе на странице материала

32015-07-09616011Денис Абдуллин

Стандартные шаблоны uCoz позволяют выводить скудную информацию об авторах материалов на страницах с описанием и комментариями, а именно логин и ссылку на персональную страницу автора. Вывести больше информации нам поможет API, но, по правде говоря, информацию можно получать с персональной страницы, но API это меньшая нагрузка.

Наш скрипт сначала генерирует ссылку на API с помощью стандартных операторов. Затем получает нужные данные и выводит их в заданные места. Обратите внимание, что в сценарии есть ссылка на изображение «Нет аватара», замените ссылку на свое изображение.

Так выглядит информация о пользователе под материалом, но вы можете поставить как над материалом так в любое другое место:

Информация об авторе на странице материала для uCoz

Установка

1. В "Общих настройках" включите использование API.

2. Вставьте следующий код на "Странице материала и комментариев к нему" в том месте, где хотите увидеть вывод информации:

Код
<div id="author_info">
<div class="author_block">
<div class="author_avatar"></div>
<div class="author_name"></div>
</div>
</div>

<script type="text/javascript">
var xml = $.ajax({  
type: 'GET',  
url: '/api/index/8-<?substr($PROFILE_URL$, strrpos($PROFILE_URL$,"8-")+2)?>',  
dataType: 'xml',  
async: false  
}).responseText;  
var userAvatar = $(xml).find('struct:first member:contains("USER_AVATAR")').find('string').text();  
var userName = $(xml).find('struct:first member:contains("USER_NAME")').find('string').text();  
var userGroup = $(xml).find('struct:first member:contains("USER_GROUPNAME")').find('string').text();  
if(userAvatar=='') {userAvatar='https://yraaa.ru/images/noavatar.gif'}
$('.author_avatar').html('<a href="$PROFILE_URL$"><img src="'+userAvatar+'" alt="" /></a>');
$('.author_name').html('<a href="$PROFILE_URL$">'+userName+'</a><span>'+userGroup+'</span>');
</script>

<style type="text/css">
.author_block {display:table;margin:20px 0px}
.author_avatar, .author_name {display:table-cell;vertical-align:top}
.author_avatar {width:84px}
.author_avatar img {width:64px;height:64px;object-fit:cover}
.author_name a {font-weight:bold}
.author_name span {display:block;font-size:13px;padding-top:7px;}
</style>

API позволяет получать разную информацию о пользователе, в нашем случае мы получили ссылу на аватар (USER_AVATAR), полное имя (USER_NAME) и полное название группы пользователя (USER_GROUPNAME).

Рекомендуем по-своему оформить данный блок и перенести все стили в "Таблицу стилей (CSS)".

Зная, какой ажиотаж вызывает скрипт вывода аватара на страницу материала, не можем не подсказать. Чтобы оставить здесь только аватар, достаточно будет удалить из кода строчку
<div class="author_name"></div>

Найдена причина ваших бед. Помимо включенного API, для работы скрипта необходима чтобы страница пользователей открывалась в текущем окне. Настройте этот момент в настройках модуля "Пользователи".


Создать сайт в uKit Нужен классный сайт для бизнеса?
Воспользуйтесь сервисом uKit. Никакого кода!
Комментарии (11)
watceric 2016-02-19 в 00:37 / МатериалСпам
Я использую много скрипт на моем сайте, но это API не будет работать, код не будет отображен пользовательский аватар, вместо этого он не показывает аватар. Этот сценарий не работают. http://prntscr.com/a51oqr
0
Private Person 2015-07-15 в 08:15 / МатериалСпам
работает только если пользователь себе установил аватар..
Вот только у меня не локальные пользователи, вот зарег. типела с вк и все, нужно чтобы эта фотка которая в комментах у него с вк появляется также она же та самая аватарка и была там же в материале который он добавил.

Сделайте пацаны скрипт
0
David 2015-07-09 в 14:39 / МатериалСпам
В общий настройке убери галочку (Использовать API key:)
0
Рашид Тугушев 2015-07-09 в 12:16 / МатериалСпам
Все работает как по маслу! Не обращайте внимания! Спасибо вам!
1
Денис Абдуллин 2015-07-09 в 10:53 / Материал
Не буду... Вы сами себе ответили.
0
watceric 2015-07-09 в 10:36 / МатериалСпам
я не знаю, почему, для меня это не работает. это показывает Нет аватара. я включил API. не говори мне, что я что-то неправильно, потому что я скопировать и вставить этот код на моем сайте.
-5
David 2015-07-09 в 14:07 / МатериалСпам
А можно выводить иконка группы автора ?
-3
Виктор Кампаль 2015-07-09 в 13:43 / МатериалСпам
работает норм спасибо
0
David 2015-07-09 в 22:30 / МатериалСпам
Можно код ?
-2
Сергей Александрович 2015-07-09 в 19:47 / Материал
Можно. Допише еще одни блок который будет вытягивать для вас иконку.
0
Essence 2016-11-10 в 18:57 / МатериалСпам
<script type="text/javascript">
var xml = $.ajax({  
type: 'GET',  
url: '/api/index/8-$USER_ID$',
dataType: 'xml',  
async: false  
}).responseText;  
var userAvatar = $(xml).find('struct:first member:contains("USER_AVATAR")').find('string').text();  
var userName = $(xml).find('struct:first member:contains("USER_NAME")').find('string').text();  
var userGroup = $(xml).find('struct:first member:contains("USER_GROUPNAME")').find('string').text();  
if(userAvatar=='') {userAvatar='/noavatar.gif'}
$('.author_avatar').html('<a href="$PROFILE_URL$"><img src="'+userAvatar+'" alt="" /></a>');
$('.author_name').html('<a href="$PROFILE_URL$">'+userName+'</a><span>'+userGroup+'</span>');
</script>

Вставляю данный код в информер вывода пользователей, благодаря api/index/8-$USER_ID$ вывожу данные с api. Все хорошо,  но у каждого пользователя в информере выводятся данные только админа
0
Чтобы оставить комментарий или отзыв под этой публикацией, войдите или зарегистрируйтесь.