Проблемы с отображением в виде материалов аватара пользователя, добавившего материал

голоса: 0
Здравствуйте. У меня такая проблема: для вывода аватара пользователя, добавившего материал, я использую след. код в виде материалов:

<?if($AVATAR_URL$)?><img src="$AVATAR_URL$" alt="$USERNAME$" class="avatar"/><?else?><div class="author_avatar"></div>
<script type="text/javascript">
var xml = $.ajax({
type: 'GET',
url: '/api/index/8-$UID$',
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_GROUP")').find('string').text();
if(userAvatar=='') {userAvatar='/img/noavatar.png'}
$('.author_avatar').html('<a href="$PROFILE_URL$"><img src="'+userAvatar+'" alt="" /></a>');
$('.author_name').html(''+userName+'</a><a href="$PROFILE_URL$"><span>$USERNAME$</a></span>');
</script>
<?endif?>

Использую его с включенным API. В модуле Новости сайта все работает отлично, выводится аватар пользователя, добавившего материал. Но в Каталоге статей всегда выводится мой аватар какой бы пользователь материал не добавил. Не могу понять в чем проблема?

Помогите разобраться, пожалуйста.
Адрес сайта http://test-4.ucoz.net/publ/
| Автор: | Категория: JavaScript
Редактирование | | Автор: Melana
Откуда этот код? в нём работать будет только это <?if($AVATAR_URL$)?><img src="$AVATAR_URL$" alt="$USERNAME$" class="avatar"/> и только в новостях...
Этот код мне писали за деньги, обещали, что будет работать во всех модулях.

Ответов: 1

голоса: +2
 
Лучший ответ

<div id="author_avatar"></div>
 <script type="text/javascript">
 var xml = $.ajax({
 type: 'GET',
 url: '/api/index/8-$UID$',
 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_GROUP")').find('string').text();
 if(userAvatar=='') {userAvatar='/img/noavatar.png'}
 $('#author_avatar').html('<a href="$PROFILE_URL$"><img src="'+userAvatar+'" alt="" /></a>');
 $('.author_name').html(''+userName+'</a><a href="$PROFILE_URL$"><span>$USERNAME$</a></span>');
 </script>

| Автор:
Выбор ответа лучшим | | Автор: Yuri_Geruk
Благодарю, но если вставить Ваш код, пропадают все аватарки в виде материалов :(

Не помогло.
Melana,

а так: 

<div id="author_avatar$UID$"></div>
 <script type="text/javascript">
 var xml = $.ajax({
 type: 'GET',
 url: '/api/index/8-$UID$',
 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_GROUP")').find('string').text();
 if(userAvatar=='') {userAvatar='/img/noavatar.png'}
 $('#author_avatar$UID$').html('<a href="$PROFILE_URL$"><img src="'+userAvatar+'" alt="" /></a>');
 $('.author_name').html(''+userName+'</a><a href="$PROFILE_URL$"><span>$USERNAME$</a></span>');
 </script>

Так пропал аватар на моих публикациях, а аватар на публикации другого пользователя остался и отображается правильно.
Melana,

<div class="author_avatar$ID$"></div>
 <script type="text/javascript">
 var xml = $.ajax({
 type: 'GET',
 url: '/api/index/8-$UID$',
 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_GROUP")').find('string').text();
 if(userAvatar=='') {userAvatar='/img/noavatar.png'}
 $('.author_avatar$ID$').html('<a href="$PROFILE_URL$"><img src="'+userAvatar+'" alt="" /></a>');
 $('.author_name').html(''+userName+'</a><a href="$PROFILE_URL$"><span>$USERNAME$</a></span>');
 </script>

Огромное спасибо Вам :) Помогло, все заработало!
...