1.12.7 i starsze - Rate Users
Gracek - 19-05-2006, 17:47 Temat postu: Rate Users
Kod: | ##############################################################
## MOD Title: Rate Users
## MOD Author: Malicious Rabbit ( Dr DLP )
## phpBB -> phpBB by Przemo + poprawki by Gracek
## < http://gr4cek.be | gr4cek@gmail.com >
##
## MOD Description: Dodaje możliwość oceniania użytkowników przez innych
## użytkowników.
##
## MOD Version: 1.3
##
## Installation Level: Moderate
## Installation Time: 25 Minutes
############################################################## |
Dodaje możliwość oceniania użytkowników przez innych użytkowników w skali od 0 do 5 (co można sobie zmienić). Początkowa wartość dla każdego użytkownika to 2,5 (co również można zmienić). Każdy może oddać po jednym głosie na każdego użytkownika. Możliwość wyboru wyświetlania paska graficznego (tak jak w ostrzeżeniach) lub tekstu.
Pytania pisać tutaj, w razie czego coś się poprawi
Daję paczkę, wystarczy je wrzucić na serwer i dograć zawartość katalogu "paczka" z archiwum (pliki styli tylko dla subSilver) oraz wykonać zapytanie SQL.
Można też pliki, których nie edytowaliśmy, podmienić, a te, które były poddane edycji, edytować ręcznie.
Enjoy!
BlueMan - 19-05-2006, 18:15
Podaj jakieś screeyny jak to wygląda, lub jakis przykład żywego forum
Gracek - 19-05-2006, 18:33
Lista użytkowników:
Temat:
Profil:
(można ustawić wyświetlanie liczby zamiast obrazka i oczywiscie pokazuje reputacje ulamkowe, np. 4,76; 2,38 )
z PA też chcesz?
warna - 19-05-2006, 19:57
A czy user może głosować do woli, czy only one?
Gracek - 19-05-2006, 20:03
kazdy moze glosowac na kazdego tylko jeden raz
np. daje Tobie +5, wiecej juz nie moge, potem daje +5 BlueManowi, to i jemu juz nie moge itd
Mariuszaraj - 19-05-2006, 21:23
tzn. jak np. ustawie max 5 , to user moze innemu dać 5 razy po 1 pkt ?
Gracek - 19-05-2006, 21:25
jasne, że nie
każdy może dać każdemu TYLKO PO JEDNEJ OCENIE i z tych ocen wyliczana jest średnia, która widnieje w profilu, w widoku tematu (w postaci obrazka lub liczby) oraz w spisie użytkowników (tylko liczba)
Mariuszaraj - 19-05-2006, 21:40
pisałem o tym przemowi...jest taki mod w vbulletin,reputacja, polega na tym,ze user moze dac innemu pkt reputacji za cos tam(np. post,temat) i podobnie jak w twoim modzie,widac te reputacje pod avi.Fajnie ,jakby moznabyło w twoim modzie zmienic jedna rzecz-pkt mozna przyznawac userowi raz dziennie. W modzie z vbulletin można w pa decydować o przywilejach lub ograniczeniach w uzytkowaniu forum( poniewaz w tym modzie można wybrać ,czy daje sie pkt DODATNIE czy UJEMNE)
stachoo0 - 19-05-2006, 23:34
mi nie działa
Cytat: |
Could not insert rating informations
DEBUG MODE
SQL Error : 1064 Something is wrong in your syntax obok ')' w linii 1
INSERT INTO phpbb_rate_users (rate_id,rated_id,rater_id,rate) VALUES (1,3,2,)
Line : 2753
File : functions.php
Jeśli nie potrafisz znaleźć rozwiązania tego problemu,
możesz spróbować poszukać, lub zadać pytanie na forum: http://www.przemo.org/phpBB2/ |
co jest nie tak ?
Gracek - 19-05-2006, 23:44
jak dostosowywalem moda, tez mialem z tym problem, teoretycznie $rate powinno sie samo przeslac przez post i mialem to samo co Ty teraz, musialem zdefiniowac $rate = $_POST['rate'] i zaczelo dzialac.
sprawdz w pliku functions.php, czy masz Kod: | $rate = $_POST['rate']; | pod koniec pliku
stachoo0 - 19-05-2006, 23:44
a w ogóle nie pokazuje mi dostępnych ocen tylko puste pole, zobaczcie sami
[ Dodano: 20-05-2006, 00:46 ]
mam to na początku funkji
Kod: | }
return false;
}
function rate_user($userdata, $profiledata, $rate)
{
global $db, $userdata, $profiledata, $phpEx, $phpbb_root_path;
$rate = $_POST['rate'];
$sql = "SELECT MAX(rate_id) AS total
FROM " . RATE_USERS_TABLE;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain next rate_id information', '', __LINE__, __FILE__, $sql);
}
if ( !($row = $db->sql_fetchrow($result)) )
{
message_die(GENERAL_ERROR, 'Could not obtain next rate_id information', '', __LINE__, __FILE__, $sql);
}
$rate_id = $row['total'] + 1;
$sql = "INSERT INTO " . RATE_USERS_TABLE ." (rate_id,rated_id,rater_id,rate) VALUES (".$rate_id.",".$profiledata['user_id'].",".$userdata['user_id'].",$rate) ";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not insert rating informations', '', __LINE__, __FILE__, $sql);
}
$sql = "SELECT rate FROM " . RATE_USERS_TABLE ."
WHERE rated_id = ".$profiledata['user_id'];
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not insert rating informations', '', __LINE__, __FILE__, $sql);
}
$raterow = $db->sql_fetchrowset($result);
$total_rate = 0;
for($i = 0; $i < count($raterow); $i++)
{
$total_rate = $total_rate + $raterow[$i]['rate'];
}
$new_average = round(( $total_rate / count($raterow))*100);
$sql = "UPDATE " . USERS_TABLE ."
SET user_average_rate = ".$new_average."
WHERE user_id = ".$profiledata['user_id'];
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not insert rating informations', '', __LINE__, __FILE__, $sql);
}
$temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=".$profiledata['user_id']."");
redirect($temp_url);
}
?>
|
Gracek - 19-05-2006, 23:48
stachoo0, precyzuj! gdzie nie pokazuje?
SCREENSHOT
stachoo0 - 19-05-2006, 23:51
a no tu w profilu
jak chcę na kogoś zagłosować
Gracek - 19-05-2006, 23:53
nie wyedytowales /includes/usercp_viewprofile.php
najlepiej te pliki, ktore masz niemodyfikowane, wrzuc z paczki
stachoo0 - 19-05-2006, 23:55
wyedytowałem
Kod: | $submit = isset($HTTP_POST_VARS['submit']);
if ( $submit )
{
$template->assign_vars(array(
/* RATE USERS MOD */
'L_RATE' => $lang['rate_users_rate'],
'RATE' => $average_rate,
'L_RATERS' => $lang['rate_users_number'],
'RATERS' => $raters,
'RATE_PERCENT_WIDTH' => $user_rate_percent_width,
'RATE_PERCENT_EMPTY' => $user_rate_percent_empty,
'L_RATING' => $lang['rate_users_rating'],
'L_SUBMIT' => $lang['Submit'],
'S_RATE_SELECT' => $filename_list,
/* RATE USERS MOD */
'S_RATE_ACTION' => rate_user($userdata['user_id'], $profiledata['user_id'], $rate)
));
}
}
/* RATE USERS MOD */
// Generate page
$page_title = $lang['Viewing_profile'];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
if ( defined('ATTACHMENTS_ON') ) |
|
|
|