To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

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? :P

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 :P

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 :P
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') )



Powered by phpBB modified by Przemo © 2003 phpBB Group