Хак "Эффекты на Аватаре"

Опубликовано:
Редактировалось: 3 раза — последний сегодня в 10:34
Просмотров: 2002
Настроение: Отличное
Играет: Филипп Киркоров - Обычная История
+4
Голосов: 4

Недавно пользователь с ником

Evanescence

попросил переделать плагин "Флеш эффекты на Аватаре" для движка Social Enigne под Instant CMS, что соответственно и было сделано, ниже прилагаю скриншоты и описание того как устанавливать к сожалению другого способа кроме как хака не нашлось.

Функционал:

Установка флеш эффекта на аватар;

Ограничение по карме для установки эффекта;

Взимание оплаты в рейтингах за установку эффекта;

Удаление эффекта со своего аватара;

Инструкция по установке:

1. Выполнить запрос из файла install.sql в БД исправив предварительно префикс cms на тот который у вас;

2. Залить содержимое папки /components/users/effects/ из архива в аналогичную папку на сервере;

3. В файле /components/users/frontend.php после строчек:

Код PHP:
  1. $plugins = $model->getPluginsOutput($usr);

вставьте строчку:

Код PHP:
  1. $effs = $model->getEffects();

чуть ниже после строчек:

Код PHP:
  1. $smarty->assign('plugins', $plugins);

вставьте строчку:

Код PHP:
  1. $smarty->assign('effs', $effs);

4.

В файле

/components/users/model.php

в самом низу (перед }) добавить функцию:

Код PHP:
  1. public function getEffects(){
  2. $result = $this->inDB->query("SELECT * FROM cms_effects");
  3. $items = array();
  4. while ($item = $this->inDB->fetch_assoc($result)){
  5. $items[] = $item;
  6. }
  7. return $items;
  8. }

5. В файле /components/users/includes/usercore.php в функции usrImageNOdb после строчек:

Код PHP:
  1. if ($usr_imageurl && @file_exists(PATH.'/images/users/avatars/'.$usr_imageurl)){

вставьте строчку:

Код PHP:
  1. if ($eff_ava = getUserEffect($user_id, $usr_imageurl, $small)){
  2. return $eff_ava;
  3. }

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

Код PHP:
  1. function getUserEffect($user_id, $usr_imageurl, $small){
  2. $inDB = cmsDatabase::getInstance();
  3. $inCore = cmsCore::getInstance();
  4. $cfg = $inCore->loadComponentConfig('users');
  5. if ($small=='small'){
  6. $usr_imageurl = '/images/users/avatars/small/'.$usr_imageurl;
  7. $w = $h = $cfg['smallw'].'px';
  8. }else{
  9. $usr_imageurl = '/images/users/avatars/'.$usr_imageurl;
  10. $w = $cfg['medw'].'px';
  11. $h = "100%";
  12. }
  13. if ($eff_arr = $inDB->get_fields("cms_effects_chels", "to_user='{$user_id}'", "*")){
  14. return '<div id=\'ava\' style=\'background: url('.$usr_imageurl.') no-repeat center center;\' align="center"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://pdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" id="lecteur" width="'.$w.'" height="'.$h.'"><param name="wmode" value="transparent"><param name="movie" value="/components/users/effects/'.$eff_arr['url'].'"><param name="allowScriptAccess" value="never"><embed allowscriptaccess="never" type="application/x-shockwave-flash" src="/components/users/effects/'.$eff_arr['url'].'" wmode="transparent" width="'.$w.'" height="'.$h.'"></object></div>';
  15. }
  16. }

{Не обязательно} 5.1 Кому нужно чтобы и при вызове функции usrImage выдавался аватар с флешанимацией в файле /components/users/includes/usercore.php

после строчки:

Код PHP:
  1. if ($usr['imageurl'] && @file_exists(PATH.'/images/users/avatars/'.$usr['imageurl'])){

вставить строчку:

Код PHP:
  1. if ($eff_ava = getUserEffect($user_id, $usr['imageurl'], $small)){
  2. return $eff_ava;
  3. }

6. Закинуть в папку /components/users/includes/ из аналогичного расположения в архиве файл addusreffects.php

7. В файле /templates/ВАШ_ШАБЛОН/components/com_users_profile.tpl после строчек:

Код PHP:
  1. <div class="usr_avatar">
  2. {$usr.avatar}
  3. </div>

вставьте строчки:

Код PHP:
  1. {if !$myprofile}
  2. {literal}
  3. <script>
  4. function show_eff_form(){
  5. document.getElementById('effects').style.display = document.getElementById('effects').style.display == "block" ? "none" : "block";
  6. }
  7. function establish_effect(effect_id){
  8. $.ajax({
  9. type: "POST",
  10. url: "/components/users/includes/addusreffects.php",
  11. data: "from_user={/literal}{$is_auth}{literal}&to_user={/literal}{$usr.id}{literal}&effect_id="+effect_id,
  12. success: function(msg){
  13. if (msg == 'OK'){
  14. location.reload();
  15. }else{
  16. alert(msg);
  17. }
  18. }
  19. });
  20. }
  21. </script>
  22. {/literal}
  23. <div class='func'>
  24. <a href="javascript:void(0)" onclick="show_eff_form();" >Установить/изменить эффект</a>
  25. </div>
  26. <div name="effects" id="effects" style="display: none; background-color:#cccccc;">
  27. <br />
  28. {foreach item=eff from=$effs}
  29. <b>{$eff.title}</b><br>
  30. <div class="avatar">
  31. <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://pdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" id="lecteur" width="100px" height="100px">
  32. <param name="wmode" value="transparent">
  33. <param name="movie" value="/components/users/effects/{$eff.url}">
  34. <param name="allowScriptAccess" value="never">
  35. <embed allowscriptaccess="never" type="application/x-shockwave-flash" src="/components/users/effects/{$eff.url}" wmode="transparent" width="100px" height="100px">
  36. </object>
  37. </div>
  38. <a href="javascript:void(0)" onclick="establish_effect({$eff.id});">Выбрать Эффект</a>
  39. <br />
  40. {/foreach}
  41. <br />
  42. </div>
  43. {else}
  44. {literal}
  45. <script>
  46. function delete_effect(){
  47. $.ajax({
  48. type: "POST",
  49. url: "/components/users/includes/addusreffects.php",
  50. data: "action=del_effect&user_id={/literal}{$usr.id}{literal}",
  51. success: function(msg){
  52. if (msg == 'OK'){
  53. location.reload();
  54. }else{
  55. alert(msg);
  56. }
  57. }
  58. });
  59. }
  60. </script>
  61. {/literal}
  62. <a href="javascript:void(0)" onclick="delete_effect();">Удалить эффект</a>
  63. {/if}

Кто не менял системные файлы из папки users и не менял шаблон профиля, могут просто залить папку components в корень сайта и выполнить 1 и 7 пункт из инструкции.

А вот и сам архив с хаком:

http://cmsinstant.ru/users/files/download222.html

Комментарии (0)

Нет комментариев. Ваш будет первым!

Голосуем

Самый нужный компонент