Перенос наград пользователя из профиля - нужна помощь 1.X

 
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 738
В личном профиле во вкладке "награды" есть список наград которые получил пользователь.
При активации модуля доска почета, выводится обычная иконка в виде награды , а не те награды которые присутствуют у пользователя в профиле.
Иконка выводится столько раз, сколько наград у юзера.

Кто подскажет, как вывести награды юзера вместо этой иконки?
Наград может быть много, поэтому их можно показывать поочередно в доске почета.


В профиле награды выводятся этим кодом (если не ошибаюсь)

Код PHP:
  1.  
  2. <span class="user_avatar">
  3. <img src="/images/users/awards/{$aw.imageurl}" border="0" alt="{$aw.title|escape:'html'}"/>
  4. </span>
  5.  
  6.  
Как заставить его выводить награждения в доске почета?
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1147
Для начала в файле /modules/mod_respect/module.php поправить чтобы адрес иконки подгружался с базы вставить imageurl
т.е. вместо
Код PHP:
  1. $user['awards'] = $inDB->get_table('cms_user_awards', 'user_id='.$user['id'], 'id, title');
должно быть
Код PHP:
  1. $user['awards'] = $inDB->get_table('cms_user_awards', 'user_id='.$user['id'], 'id, title,imageurl');


и поправить файл шаблона /templates/ИМЯ_ШАБЛОНА/modules/mod_respect.tpl
заменив вывод
Код HTML:
  1. <img src="/templates/{template}/images/icons/award.png" title="{$award.title|escape:'html'}" alt="{$award.title|escape:'html'}"/>
строкой
Код HTML:
  1. <img src="/images/users/awards/{$award.imageurl|escape:'html'}" title="{$award.title|escape:'html'}" alt="{$award.title|escape:'html'}"/>
Что делать с размером иконок, решайте сами:
можно уменьшить в css или сделать дубли с уменьшенным размером в соседней папке
Реклама
cms
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 738
Sonat:
Здравствуйте, спасибо большое за помощь. Пока закрывать не буду, проверю сегодня и отпишусь)
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 738
Итоговое решение.

В стили - .
Код PHP:
  1.  
  2. .resfot{
  3. position: absolute;z-index: 3;left: 70%;
  4. }
  5.  
В файл mod_respect.tpl вывод награды оборачиваем в див
Код PHP:
  1.  
  2. <div align="center" id="serial_output">
  3. {if $cfg.show_awards}
  4. <div style="margin-top:6px">
  5. {foreach key=id item=award from=$user.awards}
  6. <img class="resfot"src="/images/users/awards/{$award.imageurl|escape:'html'}" title="{$award.title|escape:'html'}" alt="{$award.title|escape:'html'}"/>
  7. {/foreach}
  8. </div>
  9. {/if}
  10. </div>
  11.  
В самый низ вставляем это

Код PHP:
  1.  
  2. <style type="text/css">
  3. #serial_output { font-size: 0; }
  4. #serial_output img { display: none; }
  5. </style>
  6. <script type="text/javascript">
  7. $(document).ready(function(){
  8. $(document).ready(function(){
  9. delay=900;
  10. delay2=1500;
  11. timer=$('#serial_output img').length*(delay+delay2);
  12. $(function serial_output() {
  13. $('#serial_output img').each(function(n) {
  14. $(this).delay(n*delay).fadeTo(delay2, 1).delay(n*delay).fadeTo(delay2, 0); })
  15. })
  16. setTimeout(arguments.callee, timer)
  17. });
  18. });
  19. </script>
  20.  
В итоге получаем награды в верхнем углу аватара юзера. Награды автоматически меняются.Еще раз спасибо за подсказку.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: