Орден за самое большое количество друзей

ЗАКРЫТО

Награды

#1 10 сентября 2010 в 01:17
Вот тут пришла мысль, (редко но бывает ) scratchнасколько было бы востребовано выдавать награды за
определенное или наибольшее количество друзей. Собственно интересуют все мнения по этому поводу.
#2 10 сентября 2010 в 15:10
Можно еще за самое большое количество записей на стене, личных сообщений — медаль, нет Орден выдавать...

Да что там — всем по ордену!
#3 10 сентября 2010 в 18:35


Можно еще за самое большое количество записей на стене, личных сообщений — медаль, нет Орден выдавать...

Да что там — всем по ордену!

Александр

Саш подскажи ему как вывести в награды количество друзей… пускай рисует орден в наградах)))
Я бы тоже эту фишку бы в нес в социалку к себе)) у меня орденов много)))))))))))
#4 10 сентября 2010 в 21:01

Саш подскажи… пускай рисует орден в наградах))) Я бы тоже эту фишку бы в нес


А не боишься что ручками много править придется???
А сложности при обновлении не пугают???
#5 10 сентября 2010 в 22:25

Да что там — всем по ордену!

Александр
Ниже ордена не бить 8))))))))

А сложности при обновлении не пугают???

Александр
Просто надоело, каждый раз вспоминать, че ж там накручено было…
#6 10 сентября 2010 в 22:33

Ниже ордена не бить 8))))))))


+1 😊))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
#7 10 сентября 2010 в 23:23

Для тех, кто много хочет, но не боится рисковать........

Претензии, предъявы не принимаются. У себя проверил. Работает.

1) Делаем запрос в базу.

  1. ALTER TABLE cms_user_autoawards ADD p_friends int(11) AFTER p_karma

2) Открываем файл admin\components\autoawards\backend.php

Где-то между скобками
  1. if ($opt == 'submit'){
  2. .........
  3. .........
  4. .........
  5. }
после строчки
  1. $p_privphoto = (int)$_REQUEST['p_privphoto'];
добавим
  1. $p_friends = (int)$_REQUEST['p_friends'];
И поправим запрос вместо

  1. $sql = "INSERT INTO cms_user_autoawards (title, description, imageurl, p_comment, p_blog, p_forum, p_photo, p_privphoto, p_content, p_karma, published)
  2. VALUES ('$title', '$description', '$imageurl', $p_comment, $p_blog, $p_forum, $p_photo, $p_privphoto, $p_content, $p_karma, $published)";
Напишем
  1.  
  2. $sql = "INSERT INTO cms_user_autoawards (title, description, imageurl, p_comment, p_blog, p_forum, p_photo, p_privphoto, p_content, p_karma, p_friends, published)
  3. VALUES ('$title', '$description', '$imageurl', $p_comment, $p_blog, $p_forum, $p_photo, $p_privphoto, $p_content, $p_karma, $p_friends, $published)";

Чуть ниже похожие маневры в разделе
  1.  
  2. if ($opt == 'update'){
  3. .........
  4. .........
  5. .........
  6. }
после
  1. $p_privphoto = (int)$_REQUEST['p_privphoto'];
напишем
  1. $p_friends = (int)$_REQUEST['p_friends'];
и вместо

  1. $sql = "UPDATE cms_user_autoawards
  2. SET title='$title',
  3. description='$description',
  4. imageurl='$imageurl',
  5. p_comment=$p_comment,
  6. p_blog=$p_blog,
  7. p_forum=$p_forum,
  8. p_photo=$p_photo,
  9. p_privphoto=$p_privphoto,
  10. p_content=$p_content,
  11. p_karma=$p_karma,
  12. published=$published
  13. WHERE id = $id";
Напишем

  1. $sql = "UPDATE cms_user_autoawards
  2. SET title='$title',
  3. description='$description',
  4. imageurl='$imageurl',
  5. p_comment=$p_comment,
  6. p_blog=$p_blog,
  7. p_forum=$p_forum,
  8. p_photo=$p_photo,
  9. p_privphoto=$p_privphoto,
  10. p_content=$p_content,
  11. p_karma=$p_karma,
  12. p_friends=$p_friends,
  13. published=$published
  14. WHERE id = $id";
Теперь спустимся еще чуть ниже и после строк

  1. if (!isset($mod['p_comment'])){ $mod['p_comment'] = 0; }
  2. if (!isset($mod['p_content'])){ $mod['p_content'] = 0; }
  3. if (!isset($mod['p_blog'])){ $mod['p_blog'] = 0; }
  4. if (!isset($mod['p_karma'])){ $mod['p_karma'] = 0; }
  5. if (!isset($mod['p_forum'])){ $mod['p_forum'] = 0; }
  6. if (!isset($mod['p_photo'])){ $mod['p_photo'] = 0; }
  7. if (!isset($mod['p_privphoto'])){ $mod['p_privphoto'] = 0; }
Добавим

  1. if (!isset($mod['p_friends'])){ $mod['p_friends'] = 0; }
А после
  1. <tr>
  2. <td><img src="/admin/components/autoawards/images/p_privphoto.gif" width="16" height="16" /></td>
  3. <td><input name="p_privphoto" type="text" id="p_input" size="5" value="<?php echo @$mod['p_privphoto'];?>" /></td>
  4. <td>фотографий в личном альбоме </td>
  5. </tr>
Добавим

  1. <tr>
  2. <td><img src="/admin/components/autoawards/images/p_friends.gif" width="16" height="16" /></td>
  3. <td><input name="p_friends" type="text" id="p_input" size="5" value="<?php echo @$mod['p_friends'];?>" /></td>
  4. <td>друзей на сайте </td>
  5. </tr>
А в папку admin\components\autoawards\images забросим картинку размером 16*16 с изображением человечка(ов) — не обязательно, конечно,
это на аэродинамику полета не влияет :)

Все. С Админкой закончили...

3)Теперь правим файл core\classes\user.class.php а именно функцию checkAwards

после строки
  1. $p_karma = dbGetField('cms_user_profiles', "user_id=$user_id", 'karma');
допишем

  1. $p_friends = dbRowsCount('cms_user_friends', "(from_id=$user_id OR to_id=$user_id) AND is_accepted=1");
после
  1. ($award['p_forum'] <= $p_forum) &&
  2. ($award['p_photo'] <= $p_photo) &&
  3. ($award['p_privphoto'] <= $p_privphoto) &&

допишем


  1. ($award['p_friends'] <= $p_friends) &&

Все. Тут тоже закончили...

4)И напоследок открываем components\users\frontend.php

в разделе
  1. ///////////////////// ADD FRIEND ///////
  2. if ($do=='addfriend'){
  3. .......
  4. .......
  5. .....
после строк
  1. if ($model->isNewFriends($inUser->id, $id)){
  2. $sql = "UPDATE cms_user_friends SET is_accepted = 1 WHERE to_id = ".$inUser->id." AND from_id = $id";
  3. $inDB->query($sql);
Вставим такую

  1. cmsUser::checkAwards($inUser->id);
  2. cmsUser::checkAwards($id);

Уххххххх. Вот теперь вроде КоНеЦ.

#8 11 сентября 2010 в 00:53
супер… ещё один орден привязал danceты теперь не Гений ты Теперь Советник по государевым наградам))) +5
#9 11 сентября 2010 в 01:39

qwest

Ты хотел орден для друзей. Пропиши ручками примера

Александра

Вот смотри как выглядит внедрёнка от Александра



теперь штампуй награды))))))))))))
#10 11 сентября 2010 в 02:03
Саш нашел не дочёт))))

Как получить награду? не выводит)))
#11 11 сентября 2010 в 09:37
Даже как то не ожидал, думал слегка обсудить а тут уже все в коде.
Кодерам респект, будем пробовать. v
#12 11 сентября 2010 в 14:35

Саш нашел не дочёт))))


Да. Есть место данный недочет. Промолгал...

Как исправить(добавить):

В файле components\users\frontend.php в разделе

  1. /////////////// VIEW AWARDS LIST /////
  2. if ($do=='awardslist'){
  3. ..........
  4. ........
  5. ......

После строк
  1. if ($aw['p_privphoto']>0){
  2. echo '<tr>'."\n";
  3. echo '<td><img src="/admin/components/autoawards/images/p_privphoto.gif" width="16" height="16" /></td>'."\n";
  4. echo '<td>'."\n";
  5. echo $aw['p_privphoto']."\n";
  6. echo ' '.$_LANG['PHOTOS_IN_PRIVATE_ALBUM'].'</td>'."\n";
  7. echo '</tr>'."\n";
  8. }
Надо добавить
  1.  
  2. if ($aw['p_friends']>0){
  3. echo '<tr>'."\n";
  4. echo '<td><img src="/admin/components/autoawards/images/p_friends.gif" width="16" height="16" /></td>'."\n";
  5. echo '<td>'."\n";
  6. echo $aw['p_friends']."\n";
  7. echo ' друзей на сайте</td>'."\n";
  8. echo '</tr>'."\n";
  9. }
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.