Понедельников НЕТ!
Регистрация или вход Регистрация или вход Избранное на этом сайте | Главная | Анкета | Рекомендовать | Обратная связь | В избранное | Сделать домашней
Скачать SSDForums
Скачать SSDForums 1.0.1 Скачать SSDForums 1.0.1
Скачать SSDForums 1.0.1 SP1 Скачать SSDForums 1.0.1 SP1
Скачать SSDForums 1.0.1 SP2 Скачать SSDForums 1.0.1 SP2
SSD Forums 1.0.1 SP3 only Slaed 3.5 Pro SSD Forums 1.0.1 SP3 only Slaed 3.5 Pro
SSD Forums 1.0.1 SP4-beta only Slaed 4.1 Pro SSD Forums 1.0.1 SP4-beta only Slaed 4.1 Pro
Jewelry Сase Team
Скачать Ruby Chat 0.1.1 Скачать Ruby Chat 0.1.1
Меню
Главная
Форум
Магазин цифровых товаров

Новости
Подписка на новости
Темы новостей
Добавить новость

Каталог файлов
Карта файлового архива
Публикации

Опросы
Анкета пользователя
Чат

BestMaker
Викторина
Архив новостей
Карманный оракул
Поиск по сайту с помощью Яндекс
Поиск по сайту с помощью Google
Фото дня
Для души
Погода на 3 дня
IndexCat
IndexTop
Map_Pages
Форум -> О форуме на Понедельниках -> Для Сержа... Кнопка "Сказать Спасибо"
Для Сержа... Кнопка "Сказать Спасибо"
WhiteWolf Дата: 05.12.2007, в 18:20 | Сообщение №1
WhiteWolf
Пользователь
Пользователь №: 53
Сообщений: 35

Серж, привет. Попробовал написать кнопку Спасибо.
Глянь своим опытным глазом... Может упростить что-нибудь можно. В принципе, все работает...
Значит, так: добавил в таблицу forum_posts еще одно поле thank_count. Если была хоть одна благодарность - ставим 1. По умолчанию - 0. Это чтобы не делать лишние запросы если благодарностей небыло. Создал таблицу _forums_thanks с полями
Код
1
`id` int(11) NOT NULL auto_increment,
  `user_name` varchar(255) NOT NULL default '',
  `post_num` int(11) NOT NULL default '0',
`num_topic` int(11) NOT NULL default '0',
  `user_id` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)

Поле num_topic для удаления всех записей при удалении темы.
Функция самой кнопки
Код
1
function saidthank($mid, $muser) {
   global $prefix, $db, $user, $module_name, $id, $postspg, $numcount,$postcount;   

   if(!is_user($user)) {
      Header("Location: index.php?error=403");
      die();
   }
include("header.php");   
$result = $db->sql_query("SELECT id FROM ".$prefix."_forums_thanks  where (post_num='$mid') AND (user_name='$user[1]')");
while ($row = $db->sql_fetchrow($result)) $kol = intval($row['id']);
    if ($kol > 0){
menu();
OpenTable();
echo "<br><center><font class=\"option\">$user[1], Вы уже говорили `Спасибо` за этот пост!</font><br><br><a href=\"javascript:history.go(-1)\">[Назад]</a></center><br><br>";
CloseTable();
   } else {
   $result = $db->sql_query("SELECT tid FROM ".$prefix."_forums_posts WHERE id='$mid'");
   while ($row = $db->sql_fetchrow($result))
   $tid = intval($row['tid']);   
   list($postcount) = $db->sql_fetchrow($db->sql_query("SELECT Count(id) FROM ".$prefix."_forums_posts WHERE id<='$mid' AND tid='$tid'"));
   $numcount = ceil($postcount/$postspg);

$db->sql_query("INSERT INTO  ".$prefix."_forums_thanks SET user_name='$user[1]', post_num='$mid', num_topic='$tid', user_id = '$muser' ");   
$db->sql_query("UPDATE ".$prefix."_forums_posts SET thank_count= '1' WHERE id='$mid'");
menu();
   warning("Ваша благодарность принята!", "?name=$module_name&op=showtopic&id=$tid&pagenum=$numcount#$postcount", 3, 2);   
   }
   include("footer.php");   
}

Функция Показать все благодарности
Код
1
function show_thank($user_id) {
   global $prefix, $db, $user, $module_name, $user_id;
   if(!is_user($user)) {
      Header("Location: index.php?error=403");
      die();
   }
include("header.php");   
menu();
OpenTable();
echo "<table class=\"bgcolor12\" border=0 cellpadding=0 cellspacing=1 width=100%>
<tr><td class=\"bgcolor13\" align=\"center\"><font class=\"option2\">Юзер</font></td>
<td class=\"bgcolor13\" align=\"center\"><font class=\"option2\">Пост</font></td>
<td class=\"bgcolor13\" align=\"center\"><font class=\"option2\">Дата</font></td>
<td class=\"bgcolor13\" align=\"center\"><font class=\"option2\">Текст</font></td>
<td class=\"bgcolor13\" align=\"center\"><font class=\"option2\">...</font><td></tr>";
$result = $db->sql_query("SELECT user_name, post_num FROM ".$prefix."_forums_thanks  where user_id='$user_id'");
while ($row = $db->sql_fetchrow($result)) {
    $user_name = $row['user_name'];
    $post_num = intval($row['post_num']);
    $uuname=urlencode($user_name);
    echo "<tr>
<td class=\"bgcolor1\" align=\"center\"  nowrap=\"nowrap\"><a href=\"index.php?name=Account&op=userinfo&user_name=$uuname\" target=\"_blank\">$user_name</a></td>
<td class=\"bgcolor1\" align=\"center\">№ <a href=\"index.php?name=Forums&op=show_post&post=$post_num\" title=\"Показать полный текст \">$post_num</a></td>";
$result2 = $db->sql_query("SELECT date, message FROM ".$prefix."_forums_posts  where id='$post_num'");   
while ($row2 = $db->sql_fetchrow($result2)) {
$message = stripslashes($row2['message']);
   $message = cutstr(bb_decode($message), 120);
$date = stripslashes($row2['date']);
echo"<td class=\"bgcolor1\" align=\"center\">$date</td>
<td class=\"bgcolor1\">$message</td>
<td class=\"bgcolor1\" align=\"center\"><a href=\"index.php?name=Forums&op=show_post&post=$post_num\"><img src=\"images/right.gif\" border=\"0\" alt=\"\" title=\"Показать полный текст \"><td>
</tr>";
}}
echo "</table>";
CloseTable();
   include("footer.php");   
}

А это показ полного текста поста
Код
1
function show_post($post) {
   global $prefix, $db, $user, $module_name, $user_id;
   if(!is_user($user)) {
      Header("Location: index.php?error=403");
      die();
   }
include("header.php");   
menu();
OpenTable();
echo "<center><font class=\"option2\">Сообщение № $post</font></center><br>";
echo "<table class=\"bgcolor12\" border=0 cellpadding=0 cellspacing=1 width=100%><tr>";
$result = $db->sql_query("SELECT message FROM ".$prefix."_forums_posts  where id='$post'");
while ($row = $db->sql_fetchrow($result)) {
$message = stripslashes($row['message']);
$message=bb_decode($message);
echo"<td class=\"bgcolor1\">$message</td></tr></table><br>
<a href=\"javascript:history.go(-1)\"><center>[Назад]</a></a>";
}
CloseTable();
   include("footer.php");   
}

Ну, и разумеется вставил в код... если это не юзер, то кнопку не показывать, если это ты сам тоже, чтобы сам себе Спасибо не говорил и т.п.
Напиши, что не так.
Да..., у меня не получилось без дополнительных запросов проверять, мол, если запись < count, то ставить запяту. Т.е., Спасибо сказали: первый, второй. Как к тебя "Эту тему читают"

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно WhiteWolf 05.12.2007 г. в 18:22:00
leo Дата: 05.12.2007, в 18:46 | Сообщение №2
leo
Старожил
Пользователь №: 47
Сообщений: 321

может лучше сделать 2 кнопки: Одобряю и Не одобряю? Так по моему более правильно будет
Sunvas Дата: 05.12.2007, в 19:09 | Сообщение №3
Sunvas
Профи
Пользователь №: 181
Сообщений: 554

Я вообще не понимаю, нах это "Спасибо" вообще надо. Хэрня ненужная, если честно. Лучше сделать репутацию, или оценку постов..
Serg_pnz Дата: 05.12.2007, в 19:26 | Сообщение №4
Serg_pnz
Администратор
Пользователь №: 1
Сообщений: 2243

Ну тогда пойдем обеими путями, буду внедрять:
1. Спасибо (просто, что бы отметить пост человека)
2. Карма (плюс и минус к репутации, с обоснованием за что)

Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот
Sunvas Дата: 05.12.2007, в 19:28 | Сообщение №5
Sunvas
Профи
Пользователь №: 181
Сообщений: 554

Serg_pnz, дело, конечно твое, но я бы сделал оценку постов - смотрится не только лучше, но и круче.
Serg_pnz Дата: 05.12.2007, в 19:46 | Сообщение №6
Serg_pnz
Администратор
Пользователь №: 1
Сообщений: 2243

ок. будет третим пунктом. но тогда вопрос: оценка конкретного поста или темы?

Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот
Sunvas Дата: 05.12.2007, в 20:06 | Сообщение №7
Sunvas
Профи
Пользователь №: 181
Сообщений: 554

Оценка конкретного поста.. Тему, имхо глупо оценивать.
А если еще на AJAXe это замутить, то вообще сказка будет.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно Sunvas 05.12.2007 г. в 20:07:05
leo Дата: 06.12.2007, в 00:12 | Сообщение №8
leo
Старожил
Пользователь №: 47
Сообщений: 321

ну сделать как на сёрче - что не нравится-то?
Serg_pnz Дата: 06.12.2007, в 00:45 | Сообщение №9
Serg_pnz
Администратор
Пользователь №: 1
Сообщений: 2243

leo, куда смотреть?

Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот
omvitamin Дата: 06.12.2007, в 01:33 | Сообщение №10
omvitamin
Активный участник
Пользователь №: 157
Сообщений: 188

Serg_pnz, я думаю leo говорит про воблу которая на searchengines.ru

Там по аватарой кнопочка- нажал- выползла (как и всё в вобле) менюшка и там:
Добавить отзыв: НикЮзверя

Дальше типа что Вы думаете об этом сообщении НикЮзверя

Ниже выбираешь одобряю или нет и коментарий. за одобрение кажется репутация растёт.


В любом топе посмотри: иконка весов под аватарой.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно omvitamin 06.12.2007 г. в 01:34:39
leo Дата: 06.12.2007, в 01:37 | Сообщение №11
leo
Старожил
Пользователь №: 47
Сообщений: 321

ага
omvitamin Дата: 06.12.2007, в 01:41 | Сообщение №12
omvitamin
Активный участник
Пользователь №: 157
Сообщений: 188

Ну вобще я думаю если это включать в форум, что нужна ещё опция в админке в любом случае. Потому, что далеко не каждому проекту это нужно на форуме. Поэтому конечно добавлю пунктик на всякий случай:

Возможность выключения через админ-панель.
Serg_pnz Дата: 06.12.2007, в 02:34 | Сообщение №13
Serg_pnz
Администратор
Пользователь №: 1
Сообщений: 2243

Давайте это на попозже отложим. У меня всё голова о почте болит, об уведомлениях.

Сюжет в следующем. Когда я написал свой скрипт рассылки, то к майлу попал в бан очень быстро, поскольку скрипт генерил штук по 30 писем в секунду.
Потом поставил таймер - всё нормализовалось.
Таймер стоит сейчас на 1 секунду. В принципе мне при рассылке не напряг кнопочку понажимать (хак уже есть, только как всегда в сырцах, т.е. не прикручен к модулю. Впрочем я отвлекся.)

Внимание вопрос: сколько милисекунд надо выставить между двумя письмами, что бы не попасть к почтовику с пометкой спам или, что еще хуже, в бан?

Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот
suntrade Дата: 13.08.2009, в 10:13 | Сообщение №14
suntrade
Участник
Пользователь №: 348
Сообщений: 67

Люди подскажите, куда этот код вставлять?

Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!


Главная | Форум | Новости | Подписка на новости | Темы новостей | Добавить новость | Каталог файлов | Карта файлового архива | Публикации | Опросы | Анкета пользователя | Чат | BestMaker | Викторина | Архив новостей | Карманный оракул | Поиск по сайту с помощью Яндекс | Поиск по сайту с помощью Google | Фото дня | Для души | Погода на 3 дня | IndexCat | IndexTop | Map_Pages | Весь Оракул


Генерация страницы: 0.055 сек. и 17 запросов к базе данных за 0.025 сек.
Web site engine code is Copyright © 2006 by SLAED CMS. All rights reserved.