4images Forum & Community
4images Modifications / Modifikationen => Mods & Plugins (Releases & Support) => Topic started by: thunderstrike on November 26, 2007, 01:57:55 AM
-
I search in forum for user search for this - is BIG. 8O :)
- Check for active / no active MOD - include .
- Check for rate same user (is ignore) - include .
- Check for vote user before (1 vote only) - include .
- Only register user is vote - include .
- Use define rank value (e.g: x/10) - include .
- Use define number format value - include
- Additional user fields - include
- User delete vote can in private page - include
- User is see who vote - include
- User is see value post for post - include
- User is see total with mark value in private page - include
- Userpic - possible
- Avatar - possible
- PM Link - possible
- Test 4images v1.74 - is test
- Paging - No include
So here -
// Step 1
In member.php file,
find:
else {
$user_email = REPLACE_EMPTY;
$user_email_save = REPLACE_EMPTY;
$user_mailform_link = REPLACE_EMPTY;
$user_email_button = REPLACE_EMPTY;
}
add after:
if (defined('MEMBER_RATING_ACTIVE') && MEMBER_RATING_ACTIVE == 1) {
if (function_exists('member_rating_check_user') && member_rating_check_user($user_info['user_id'], $user_row[$user_table_fields['user_id']], $user_info['user_level'])) {
$already_rated = member_rating_check_user($user_info['user_id'], $user_row[$user_table_fields['user_id']], $user_info['user_level']);
} elseif (function_exists('member_rating_check_user') && !member_rating_check_user($user_info['user_id'], $user_row[$user_table_fields['user_id']], $user_info['user_level'])) {
$rating_content = "";
for ($i = MEMBER_RATING_MARK_VALUE; $i > 0; $i--) {
$site_template->register_vars("i", $i);
$rating_content .= $site_template->parse_template("member_rating_dropdown");
}
}
}
Find:
//-----------------------------------------------------
//--- Show Profile ------------------------------------
//-----------------------------------------------------
add before:
//-----------------------------------------------------
//--- Rate user ---------------------------------------
//-----------------------------------------------------
if ($action == "rate_user") {
if (isset($HTTP_POST_VARS[URL_USER_ID])) {
$user_id = (isset($HTTP_POST_VARS[URL_USER_ID])) ? intval(trim($HTTP_POST_VARS[URL_USER_ID])) : 0;
$user_id = preg_replace("/[^0-9]+/i", "", $user_id);
} else {
$user_id = 0;
}
if (isset($HTTP_POST_VARS['rate_user'])) {
$rate_user = (isset($HTTP_POST_VARS['rate_user'])) ? intval(trim($HTTP_POST_VARS['rate_user'])) : 0;
$rate_user = preg_replace("/[^0-9]+/i", "", $rate_user);
} else {
$rate_user = 0;
}
if (empty($user_id) || empty($rate_user)) {
redirect($url);
}
if (isset($user_id) && !empty($user_id) && $rate_user == "---") {
redirect("member.php?action=showprofile&" . URL_USER_ID . "=" . $user_id);
}
if (isset($user_id) && !empty($user_id) && isset($rate_user) && !empty($rate_user)) {
if (function_exists('member_rating_insert_rates')) {
member_rating_insert_rates($user_info['user_id'], $user_id, $user_info['user_level'], $rate_user);
redirect("member.php?action=showprofile&" . URL_USER_ID . "=" . $user_id);
}
} elseif (isset($user_id) && !empty($user_id)) {
redirect("member.php?action=showprofile&" . URL_USER_ID . "=" . $user_id);
} else {
redirect($url);
}
}
find:
"lang_profile_of" => $lang['profile_of'],
add after:
"lang_member_rating_user_rate" => $lang['member_rating_user_rate'],
"already_rated" => (isset($already_rated)) ? trim($already_rated) : "",
"rating_content" => (isset($rating_content) && $user_info['user_id'] != $user_row[$user_table_fields['user_id']]) ? trim($rating_content) : "",
// Step 2
In global.php file,
find:
$site_db = new Db($db_host, $db_user, $db_password, $db_name);
add after:
//-----------------------------------------------------
//--- Creates member rating table ---------------------
//-----------------------------------------------------
if (function_exists('member_rating_check_table')) {
member_rating_check_table();
}
// Step 3
In includes/page_header.php file,
find:
"url_lost_password" => (!empty($url_lost_password)) ? $site_sess->url($url_lost_password) : $site_sess->url(ROOT_PATH."member.php?action=lostpassword"),
"url_captcha_image" => $site_sess->url(ROOT_PATH."captcha.php"),
add after:
"url_member_rating" => $site_sess->url(ROOT_PATH . "member_rating.php"),
find:
"lang_last_upload_images" => $lang['last_upload_images'],
add after:
"lang_member_rating_title" => $lang['member_rating_title'],
// Step 4
In includes/constants.php file,
add in top ?>:
define('MEMBER_RATING_ACTIVE', 1); // Set for active (1) - set for no active (0) for value.
define('MEMBER_RATING_MARK_VALUE', 10); // Set on what value is set (e.g: x/10). '10' is mark value.
define('MEMBER_RATING_DECIMAL_VALUE', 2); // Set decimal after answer value for vote (e.g: 9,67/10). ',67' is 2 after value.
Note: This first after install MOD (and no edit mark value after user start rate) :!:
// Step 5
In includes/functions.php file,
add in top ?>:
if (!function_exists('member_rating_check_table')) {
function member_rating_check_table() {
global $site_db, $table_prefix;
if (defined('MEMBER_RATING_ACTIVE') && MEMBER_RATING_ACTIVE == 0) {
return;
}
if (!defined('USERS_RATING_TABLE')) {
define('USERS_RATING_TABLE', $table_prefix . 'users_rating');
}
$sql = "
CREATE TABLE IF NOT EXISTS " . USERS_RATING_TABLE . " (
field_id int(11) unsigned NOT NULL AUTO_INCREMENT,
user_id int(11) NOT NULL DEFAULT '0',
other_user_id int(11) NOT NULL DEFAULT '0',
rating_date int(11) NOT NULL DEFAULT '0',
rating_value int(2) NOT NULL DEFAULT '0',
rating_count int(11) NOT NULL DEFAULT '0',
PRIMARY KEY(field_id)
) TYPE=MyISAM;
";
$result = $site_db->query($sql);
}
}
if (!function_exists('member_rating_check_user')) {
function member_rating_check_user($user_id = 0, $other_user_id = 0, $user_level = GUEST) {
global $site_db, $table_prefix;
if (defined('MEMBER_RATING_ACTIVE') && MEMBER_RATING_ACTIVE == 0) {
return;
}
$user_id = preg_replace("/[^0-9]+/i", "", $user_id);
$other_user_id = preg_replace("/[^0-9]+/i", "", $other_user_id);
$user_level = preg_replace("/[^0-9]+/i", "", $user_level);
if (empty($user_id) || empty($other_user_id) || $user_level == GUEST || $user_level == USER_AWAITING) {
return;
}
if (!defined('USERS_RATING_TABLE')) {
define('USERS_RATING_TABLE', $table_prefix . 'users_rating');
}
$sql = "
SELECT SUM(ur.rating_value) AS total_rates
FROM " . USERS_RATING_TABLE . " ur
LEFT JOIN " . USERS_TABLE . " u ON (" . get_user_table_field("u.", "user_id") . " = ur.user_id)
WHERE " . get_user_table_field("u.", "user_id") . " = ur.user_id AND ur.user_id = " . $user_id . " AND ur.other_user_id = " . $other_user_id . " AND " . get_user_table_field("u.", "user_level") . " >= '" . USER . "'
";
$row = $site_db->query_firstrow($sql);
$total_rates = (isset($row['total_rates'])) ? number_format($row['total_rates'], MEMBER_RATING_DECIMAL_VALUE) : 0;
if (isset($total_rates) && $total_rates > 0) {
$sql = "
SELECT ur.rating_value
FROM " . USERS_RATING_TABLE . " ur
LEFT JOIN " . USERS_TABLE . " u ON (" . get_user_table_field("u.", "user_id") . " = ur.other_user_id)
WHERE " . get_user_table_field("u.", "user_id") . " = " . $other_user_id . " AND " . get_user_table_field("u.", "user_level") . " >= '" . USER . "'
";
$result = $site_db->query($sql);
$num_rows = $site_db->get_numrows($result);
if (isset($num_rows) && $num_rows > 0) {
$rating_value = "";
while ($rate_row = $site_db->fetch_array($result)) {
$rating_value += $rate_row['rating_value'];
}
$calc_total_rates = ($rating_value / $num_rows);
$answer_total_rates = (isset($calc_total_rates)) ? number_format($calc_total_rates, MEMBER_RATING_DECIMAL_VALUE) : "";
return $answer_total_rates . "/" . MEMBER_RATING_MARK_VALUE;
} else {
return false;
}
}
}
}
if (!function_exists('member_rating_insert_rates')) {
function member_rating_insert_rates($user_id = 0, $other_user_id = 0, $user_level = GUEST, $user_rates = 0) {
global $site_db, $table_prefix;
if (defined('MEMBER_RATING_ACTIVE') && MEMBER_RATING_ACTIVE == 0) {
return;
}
$user_id = preg_replace("/[^0-9]+/i", "", $user_id);
$other_user_id = preg_replace("/[^0-9]+/i", "", $other_user_id);
$user_level = preg_replace("/[^0-9]+/i", "", $user_level);
$user_rates = preg_replace("/[^0-9]+/i", "", $user_rates);
if (empty($user_id) || empty($other_user_id) || $user_level == GUEST || $user_level == USER_AWAITING || empty($user_rates)) {
return;
}
if (!defined('USERS_RATING_TABLE')) {
define('USERS_RATING_TABLE', $table_prefix . 'users_rating');
}
$sql = "
INSERT INTO " . USERS_RATING_TABLE . "
(field_id, user_id, other_user_id, rating_date, rating_value, rating_count)
VALUES(NULL, '" . $user_id . "', '" . $other_user_id . "', '" . time() . "', '" . $user_rates . "', '1')
";
if ($site_db->query($sql)) {
return true;
} else {
return false;
}
}
}
// Step 6
In lang/english/main.php file,
add in top ?>:
$lang['member_rating_user_rate'] = "User rate: ";
$lang['member_rating_no_content'] = "No one rated over your account yet.";
$lang['member_rating_title'] = "Who voted for me ?";
$lang['member_rating_user_name'] = "User name";
$lang['member_rating_date'] = "Date";
$lang['member_rating_value'] = "Gave you";
$lang['member_rating_total_rates_title'] = "Total rates";
$lang['member_rating_rated_value'] = "You have: <b>{answer_total_rates}</b>";
$lang['member_rating_delete'] = "Delete";
// Step 7
In ROOT_PATH - create file: member_rating.php .
Add:
<?php
$main_template = "member_rating";
define('ROOT_PATH', './');
include(ROOT_PATH . 'global.php');
require(ROOT_PATH . 'includes/sessions.php');
@include_once(ROOT_PATH . 'includes/page_header.php');
if ($user_info['user_level'] < USER) {
redirect($url);
}
if ($action == "") {
$action = "viewrating";
}
if ($action == "delete_rate") {
if (isset($HTTP_POST_VARS['delete_rate'])) {
$delete_rate = (isset($HTTP_POST_VARS['delete_rate'])) ? $HTTP_POST_VARS['delete_rate'] : $HTTP_GET_VARS['delete_rate'];
} else {
$delete_rate = "";
}
if (empty($delete_rate)) {
redirect("member_rating.php");
}
if (isset($delete_rate) && is_array($delete_rate) && !empty($delete_rate)) {
$field_id_implode = implode(", ", $delete_rate);
if (!defined('USERS_RATING_TABLE')) {
define('USERS_RATING_TABLE', $table_prefix . 'users_rating');
}
$result = $site_db->query("DELETE FROM " . USERS_RATING_TABLE . " WHERE field_id IN (" . $field_id_implode . ")");
if (isset($result) && $result) {
redirect("member_rating.php");
}
} else {
redirect("member_rating.php");
}
}
if ($action == "viewrating") {
if (!defined('USERS_RATING_TABLE')) {
define('USERS_RATING_TABLE', $table_prefix . 'users_rating');
}
if (isset($additional_user_fields) && is_array($additional_user_fields) && !empty($additional_user_fields)) {
$additional_sql = "";
foreach ($additional_user_fields as $key => $val) {
$additional_sql .= ", u." . $key;
}
}
$sql = "
SELECT ur.field_id, ur.user_id, ur.rating_date, ur.rating_value" . get_user_table_field(", u.", "user_name") . $additional_sql . "
FROM " . USERS_RATING_TABLE . " ur
LEFT JOIN " . USERS_TABLE . " u ON (" . get_user_table_field("u.", "user_id") . " = ur.user_id)
WHERE ur.other_user_id = " . $user_info['user_id'] . " AND " . get_user_table_field("u.", "user_level") . " >= '" . USER . "'
ORDER BY ur.rating_date DESC
";
$result = $site_db->query($sql);
$num_rows = $site_db->get_numrows($result);
if (isset($num_rows) && $num_rows <= 0) {
$msg = $lang['member_rating_no_content'];
} elseif (isset($num_rows) && $num_rows > 0) {
$member_rating_content = "";
$calc_rating_value = "";
$bgcounter = 0;
while ($rate_row = $site_db->fetch_array($result)) {
$row_bg_number = ($bgcounter++ % 2 == 0) ? 1 : 2;
$field_id = $rate_row['field_id'];
$user_id = $rate_row['user_id'];
$user_name = format_text(trim($rate_row[$user_table_fields['user_name']]), 2);
$user_url = $site_sess->url(ROOT_PATH . "member.php?action=showprofile&" . URL_USER_ID . "=" . $user_id);
$rating_date = format_date($config['date_format'] . ", " . $config['time_format'], $rate_row['rating_date']);
$rating_value = $rate_row['rating_value'];
$calc_rating_value += $rate_row['rating_value'];
$site_template->register_vars(array(
"field_id" => $field_id,
"user_id" => $user_id,
"user_name" => $user_name,
"user_url" => $user_url,
"rating_date" => $rating_date,
"rating_value" => $rating_value,
"counter" => $row_bg_number
));
if (isset($additional_user_fields) && is_array($additional_user_fields) && !empty($additional_user_fields)) {
$additional_field_array = array();
foreach ($additional_user_fields as $key => $val) {
$additional_field_array[$key] = (!empty($rate_row[$key])) ? format_text($rate_row[$key], 1) : REPLACE_EMPTY;
$additional_field_array['lang_'.$key] = $val[0];
}
if (!empty($additional_field_array)) {
$site_template->register_vars($additional_field_array);
}
}
$member_rating_content .= $site_template->parse_template("member_rating_content");
}
$calc_total_rates = (isset($calc_rating_value) && !empty($calc_rating_value)) ? ($calc_rating_value / $num_rows) : "";
$answer_total_rates = (isset($calc_total_rates)) ? number_format($calc_total_rates, MEMBER_RATING_DECIMAL_VALUE) : "";
}
}
$clickstream = "<a href=\"" . $site_sess->url(ROOT_PATH . "index.php") . "\">" . $lang['home'] . "</a>" . $config['category_separator'] . $lang['member_rating_title'];
$lang['delete'] = str_replace("[", "", $lang['delete']);
$lang['delete'] = str_replace("]", "", $lang['delete']);
$site_template->register_vars(array(
"clickstream" => trim($clickstream),
"msg" => trim($msg),
"lang_member_rating_title" => $lang['member_rating_title'],
"lang_member_rating_user_name" => $lang['member_rating_user_name'],
"lang_member_rating_date" => $lang['member_rating_date'],
"lang_member_rating_value" => $lang['member_rating_value'],
"lang_member_rating_total_rates" => $lang['member_rating_total_rates_title'],
"lang_member_rating_delete" => $lang['member_rating_delete'],
"lang_delete" => $lang['delete'],
"member_rating_content" => (isset($member_rating_content)) ? trim($member_rating_content) : "",
"rated_value" => (isset($answer_total_rates) && $answer_total_rates > 0 && defined('MEMBER_RATING_MARK_VALUE')) ? preg_replace("/" . $site_template->start . "answer_total_rates" . $site_template->end . "/siU", $answer_total_rates . "/" . MEMBER_RATING_MARK_VALUE, $lang['member_rating_rated_value']) : ""
));
$site_template->print_template($site_template->parse_template($main_template));
@include_once(ROOT_PATH . 'includes/page_footer.php');
?>
// Step 8
In templates/your_template/member_profile.html file,
find:
<tr>
<td class="row2"><b>{lang_icq}</b></td>
<td class="row2">{if user_icq}<a href="http://www.icq.com/people/about_me.php?uin={user_icq}" target="_blank">{user_icq}</a> (<b>{user_icq_status}</b>){endif user_icq}</td>
</tr>
add after:
{if user_loggedin}{if already_rated}
<tr>
<td class="row1"><b>{lang_member_rating_user_rate}</b></td>
<td class="row1">{already_rated}</td>
</tr>
{endif already_rated}
{if rating_content}
<tr>
<td class="row1"><b>{lang_member_rating_user_rate}</b></td>
<td class="row1"><form name="jumpbox" action="{url_member}" method="post" /><input type="hidden" name="action" value="rate_user"><input type="hidden" name="user_id" value="{user_id}"><select name="rate_user" onchange="if (this.options[this.selectedIndex].value != 0) { forms['jumpbox'].submit() }" class="select" /><option value="---">---</option>{rating_content}</select></form></td>
</tr>
{endif rating_content}{endif user_loggedin}
// Step 9
In templates/your_template - create new file: member_rating.html .
Add:
(Note: I use ULM).
{header}
{ste_layout_top}
{ste_layout_left}
{if is_admin}<! -- Who viewed my profile -- >{endif is_admin}
{if msg}{ifno member_rating_content}
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="head1">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="head1" valign="top">{lang_member_rating_title}</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="row2" align="center" /><br /><b>{msg}</b><br /><br /></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="head2"> </td>
</tr>
</table>
<br />
{endifno member_rating_content}{endif msg}
{if is_admin}<! -- End - Who viewed my profile -- >{endif is_admin}
{if is_admin}<! -- Who viewed my profile -- >{endif is_admin}
{ifno msg}{if member_rating_content}
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="head1">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="head1" valign="top">{lang_member_rating_title}</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="row2"> </td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="head1" valign="top">{lang_member_rating_total_rates}</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="row2" valign="top" align="center" />{if rated_value}<br />{rated_value}{endif rated_value}</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="row2"> </td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="head1"> </td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="row2"> </td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="25%" class="head1" align="center" valign="top">{lang_member_rating_user_name}</td>
<td width="25%" class="head1" align="center" valign="top">{lang_member_rating_date}</td>
<td width="25%" class="head1" align="center" valign="top">{lang_member_rating_value}</td>
<td width="25%" class="head1" align="center" valign="top">{lang_member_rating_delete}</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" border="1" cellspacing="0" cellpadding="0" class="tablebottom">
<form action="{url_member_rating}" method="post" />
<input type="hidden" name="action" value="delete_rate">
{member_rating_content}
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="25%" class="row2" valign="top" align="center" /> </td>
<td width="25%" class="row2" valign="top" align="center" /> </td>
<td width="25%" class="row2" valign="top" align="center" /> </td>
<td width="25%" class="row2" valign="top" align="center" /><input type="submit" name="submit" value="{lang_delete}" class="button" /></form></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="row2"> </td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="head2"> </td>
</tr>
</table>
<br />
{endif member_rating_content}{endifno msg}
{if is_admin}<! -- End - Who viewed my profile -- >{endif is_admin}
{ste_layout_below}
{footer}
// Step 10
In templates/your_template - create new file: member_rating_content.html .
Add:
<tr>
<td width="25%" class="row{counter}" align="center"><a href="{user_url}" class="link" />{user_name}</a></td>
<td width="25%" class="row{counter}" align="center">{rating_date}</td>
<td width="25%" class="row{counter}" align="center">{rating_value}</td>
<td width="25%" class="row{counter}" align="center"><input type="checkbox" name="delete_rate[]" value="{field_id}"></td>
</tr>
// Step 11
In templates/your_template/user_logininfo.html file,
find:
» <a href="{url_control_panel}">{lang_control_panel}</a><br />
add after:
» <a href="{url_member_rating}">{lang_member_rating_title}</a><br />
// Step 12
In templates/your_template - create file: member_rating_dropdown.html .
Add:
<option value="{i}">{i}</option>
Finish. ;)
-
I fix step 1 in first post.
I fix step 8 in first post.
I add step 11 in first post.
I add step 12 in first post.
I fix step 7 in first post.
I fix step 10 in first post.
-
moved sticked.
thank you!
-
Hi
I don´t understand this function?
I can vote for a user Profile?
greets,
Glitzer
-
hi, thank you for your work.
i miss the member_rating_dropdown.html file.
i'm correct?
-
hi, thank you for your work.
i miss the member_rating_dropdown.html file.
i'm correct?
Oh ... this is right ... thank for posting. :oops:
I add step 12 and I fix step 7 and step 10. ;)
Hi
I don´t understand this function?
I can vote for a user Profile?
greets,
Glitzer
Yes - this is right. ;)
-
hey man, your mod is SUPER SWEET but I need something
is it possible to do voting for EVERYONE(guests) not only for members
thanks
-
works fine, but it would be nice to have a page which shows the best /most rated users
that'd be awesome!
-
Two problems:
1. I can't find in In includes/page_header.php file:
"lang_last_upload_images" => $lang['last_upload_images'],
2. Error:
DB Error: Bad SQL Query: SELECT ur.field_id, ur.user_id, ur.rating_date, ur.rating_value, u.user_name FROM 4images_users_rating ur LEFT JOIN 4images_users u ON (u.user_id = ur.user_id) WHERE ur.other_user_id = 44 AND u.user_level >= '2' ORDER BY ur.rating_date DESC
Table 'sony25_ogk.4images_users_rating' doesn't exist
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/sony25/domains/testowa.cal.pl/public_html/includes/db_mysql.php on line 116
-
Changelog: 2009-29-08
- - {ste_layout_top}, {ste_layout_left} und {ste_layout_below} aus der member_rating.html gelöscht
- - {ste_layout_top}, {ste_layout_left} and {ste_layout_below} deleted in member_rating.html
Changelog: 2009-14-06
- - 4images 1.7.7 Kompatible
- - Javascript Popup hinzugefügt für das löschen von Bewertungen (Willst du wirklich die Bewertung löschen? Ja/Nein)
- - Javascript Popup added for deleate Rating (Really delte this Rate? Yes/No)
Step 1
Open / Öffne: member.php
Search / Suche:
else {
$user_email = REPLACE_EMPTY;
$user_email_save = REPLACE_EMPTY;
$user_mailform_link = REPLACE_EMPTY;
$user_email_button = REPLACE_EMPTY;
}
Add after / Danach einfügen:
if (defined('MEMBER_RATING_ACTIVE') && MEMBER_RATING_ACTIVE == 1) {
if (function_exists('member_rating_check_user') && member_rating_check_user($user_info['user_id'], $user_row[$user_table_fields['user_id']], $user_info['user_level'])) {
$already_rated = member_rating_check_user($user_info['user_id'], $user_row[$user_table_fields['user_id']], $user_info['user_level']);
} elseif (function_exists('member_rating_check_user') && !member_rating_check_user($user_info['user_id'], $user_row[$user_table_fields['user_id']], $user_info['user_level'])) {
$rating_content = "";
for ($i = MEMBER_RATING_MARK_VALUE; $i > 0; $i--) {
$site_template->register_vars("i", $i);
$rating_content .= $site_template->parse_template("member_rating_dropdown");
}
}
}
Find / Finde:
//-----------------------------------------------------
//--- Show Profile ------------------------------------
//-----------------------------------------------------
Add befor / Füge davor ein:
//-----------------------------------------------------
//--- Rate user ---------------------------------------
//-----------------------------------------------------
if ($action == "rate_user") {
if (isset($HTTP_POST_VARS[URL_USER_ID])) {
$user_id = (isset($HTTP_POST_VARS[URL_USER_ID])) ? intval(trim($HTTP_POST_VARS[URL_USER_ID])) : 0;
$user_id = preg_replace("/[^0-9]+/i", "", $user_id);
} else {
$user_id = 0;
}
if (isset($HTTP_POST_VARS['rate_user'])) {
$rate_user = (isset($HTTP_POST_VARS['rate_user'])) ? intval(trim($HTTP_POST_VARS['rate_user'])) : 0;
$rate_user = preg_replace("/[^0-9]+/i", "", $rate_user);
} else {
$rate_user = 0;
}
if (empty($user_id) || empty($rate_user)) {
redirect($url);
}
if (isset($user_id) && !empty($user_id) && $rate_user == "---") {
redirect("member.php?action=showprofile&" . URL_USER_ID . "=" . $user_id);
}
if (isset($user_id) && !empty($user_id) && isset($rate_user) && !empty($rate_user)) {
if (function_exists('member_rating_insert_rates')) {
member_rating_insert_rates($user_info['user_id'], $user_id, $user_info['user_level'], $rate_user);
redirect("member.php?action=showprofile&" . URL_USER_ID . "=" . $user_id);
}
} elseif (isset($user_id) && !empty($user_id)) {
redirect("member.php?action=showprofile&" . URL_USER_ID . "=" . $user_id);
} else {
redirect($url);
}
}
Find / Finde:
"lang_profile_of" => $lang['profile_of'],
Add after / Füge danach ein:
"lang_member_rating_user_rate" => $lang['member_rating_user_rate'],
"already_rated" => (isset($already_rated)) ? trim($already_rated) : "",
"rating_content" => (isset($rating_content) && $user_info['user_id'] != $user_row[$user_table_fields['user_id']]) ? trim($rating_content) : "",
Step 2
Open / öffne: global.php
Search / Suche:
$site_db = new Db($db_host, $db_user, $db_password, $db_name);
Add after / Füge danach ein:
//-----------------------------------------------------
//--- Creates member rating table ---------------------
//-----------------------------------------------------
if (function_exists('member_rating_check_table')) {
member_rating_check_table();
}
Step 3
Open / Öffne: includes/page_header.php
Search / Finde:
"url_lost_password" => (!empty($url_lost_password)) ? $site_sess->url($url_lost_password) : $site_sess->url(ROOT_PATH."member.php?action=lostpassword"),
"url_captcha_image" => $site_sess->url(ROOT_PATH."captcha.php"),
Add after / Füge danach ein:
"url_member_rating" => $site_sess->url(ROOT_PATH . "member_rating.php"),
Find / Finde:
$site_template->register_vars(array(
"lang_site_stats" => $lang['site_stats'],
or / oder
"lang_site_stats" => $lang['site_stats'],
Add after / Füge danach ein:
"lang_member_rating_title" => $lang['member_rating_title'],
Step 4
Open / Öffne: includes/constants.php
Search / Suche:
?>
Add befor / Füge davor ein:
define('MEMBER_RATING_ACTIVE', 1); // Set for active (1) - set for no active (0) for value.
define('MEMBER_RATING_MARK_VALUE', 10); // Set on what value is set (e.g: x/10). '10' is mark value.
define('MEMBER_RATING_DECIMAL_VALUE', 2); // Set decimal after answer value for vote (e.g: 9,67/10). ',67' is 2 after value.
Note / Wichtig: Ändere die Zahlen erst, wenn ein User schon jemanden bewertet hat! (Nicht ändern wenn kein User schon bewertet hat) / This first after install MOD (and no edit mark value after user start rate)
Step 5
Open / öffne: includes/functions.php
Search / Suche:
?>
Add befor / Füge davor ein:
if (!function_exists('member_rating_check_table')) {
function member_rating_check_table() {
global $site_db, $table_prefix;
if (defined('MEMBER_RATING_ACTIVE') && MEMBER_RATING_ACTIVE == 0) {
return;
}
if (!defined('USERS_RATING_TABLE')) {
define('USERS_RATING_TABLE', $table_prefix . 'users_rating');
}
$sql = "
CREATE TABLE IF NOT EXISTS " . USERS_RATING_TABLE . " (
field_id int(11) unsigned NOT NULL AUTO_INCREMENT,
user_id int(11) NOT NULL DEFAULT '0',
other_user_id int(11) NOT NULL DEFAULT '0',
rating_date int(11) NOT NULL DEFAULT '0',
rating_value int(2) NOT NULL DEFAULT '0',
rating_count int(11) NOT NULL DEFAULT '0',
PRIMARY KEY(field_id)
) TYPE=MyISAM;
";
$result = $site_db->query($sql);
}
}
if (!function_exists('member_rating_check_user')) {
function member_rating_check_user($user_id = 0, $other_user_id = 0, $user_level = GUEST) {
global $site_db, $table_prefix;
if (defined('MEMBER_RATING_ACTIVE') && MEMBER_RATING_ACTIVE == 0) {
return;
}
$user_id = preg_replace("/[^0-9]+/i", "", $user_id);
$other_user_id = preg_replace("/[^0-9]+/i", "", $other_user_id);
$user_level = preg_replace("/[^0-9]+/i", "", $user_level);
if (empty($user_id) || empty($other_user_id) || $user_level == GUEST || $user_level == USER_AWAITING) {
return;
}
if (!defined('USERS_RATING_TABLE')) {
define('USERS_RATING_TABLE', $table_prefix . 'users_rating');
}
$sql = "
SELECT SUM(ur.rating_value) AS total_rates
FROM " . USERS_RATING_TABLE . " ur
LEFT JOIN " . USERS_TABLE . " u ON (" . get_user_table_field("u.", "user_id") . " = ur.user_id)
WHERE " . get_user_table_field("u.", "user_id") . " = ur.user_id AND ur.user_id = " . $user_id . " AND ur.other_user_id = " . $other_user_id . " AND " . get_user_table_field("u.", "user_level") . " >= '" . USER . "'
";
$row = $site_db->query_firstrow($sql);
$total_rates = (isset($row['total_rates'])) ? number_format($row['total_rates'], MEMBER_RATING_DECIMAL_VALUE) : 0;
if (isset($total_rates) && $total_rates > 0) {
$sql = "
SELECT ur.rating_value
FROM " . USERS_RATING_TABLE . " ur
LEFT JOIN " . USERS_TABLE . " u ON (" . get_user_table_field("u.", "user_id") . " = ur.other_user_id)
WHERE " . get_user_table_field("u.", "user_id") . " = " . $other_user_id . " AND " . get_user_table_field("u.", "user_level") . " >= '" . USER . "'
";
$result = $site_db->query($sql);
$num_rows = $site_db->get_numrows($result);
if (isset($num_rows) && $num_rows > 0) {
$rating_value = "";
while ($rate_row = $site_db->fetch_array($result)) {
$rating_value += $rate_row['rating_value'];
}
$calc_total_rates = ($rating_value / $num_rows);
$answer_total_rates = (isset($calc_total_rates)) ? number_format($calc_total_rates, MEMBER_RATING_DECIMAL_VALUE) : "";
return $answer_total_rates . "/" . MEMBER_RATING_MARK_VALUE;
} else {
return false;
}
}
}
}
if (!function_exists('member_rating_insert_rates')) {
function member_rating_insert_rates($user_id = 0, $other_user_id = 0, $user_level = GUEST, $user_rates = 0) {
global $site_db, $table_prefix;
if (defined('MEMBER_RATING_ACTIVE') && MEMBER_RATING_ACTIVE == 0) {
return;
}
$user_id = preg_replace("/[^0-9]+/i", "", $user_id);
$other_user_id = preg_replace("/[^0-9]+/i", "", $other_user_id);
$user_level = preg_replace("/[^0-9]+/i", "", $user_level);
$user_rates = preg_replace("/[^0-9]+/i", "", $user_rates);
if (empty($user_id) || empty($other_user_id) || $user_level == GUEST || $user_level == USER_AWAITING || empty($user_rates)) {
return;
}
if (!defined('USERS_RATING_TABLE')) {
define('USERS_RATING_TABLE', $table_prefix . 'users_rating');
}
$sql = "
INSERT INTO " . USERS_RATING_TABLE . "
(field_id, user_id, other_user_id, rating_date, rating_value, rating_count)
VALUES(NULL, '" . $user_id . "', '" . $other_user_id . "', '" . time() . "', '" . $user_rates . "', '1')
";
if ($site_db->query($sql)) {
return true;
} else {
return false;
}
}
}
Step 6
:flag-en: Open lang/english/main.php
Search
?>
Add befor:
$lang['member_rating_user_rate'] = "User rate: ";
$lang['member_rating_no_content'] = "No one rated over your account yet.";
$lang['member_rating_title'] = "Who voted for me ?";
$lang['member_rating_user_name'] = "User name";
$lang['member_rating_date'] = "Date";
$lang['member_rating_value'] = "Gave you";
$lang['member_rating_total_rates_title'] = "Total rates";
$lang['member_rating_rated_value'] = "You have: <b>{answer_total_rates}</b>";
$lang['member_rating_delete'] = "Delete";
:flag-de: Öffne lang/deutsch/main.php
Suche
?>
Füge davor ein:
$lang['member_rating_user_rate'] = "User bewerten: ";
$lang['member_rating_no_content'] = "Niemand hat dein Profil bewertet!";
$lang['member_rating_title'] = "Wer hat mich bewertet?";
$lang['member_rating_user_name'] = "Username";
$lang['member_rating_date'] = "Datum";
$lang['member_rating_value'] = "Bewertet dich mit";
$lang['member_rating_total_rates_title'] = "Gesamte Bewertung";
$lang['member_rating_rated_value'] = "Du hast: <b>{answer_total_rates}</b>";
$lang['member_rating_delete'] = "Loeschen";
Step 7
In ROOT-PATH create a file with this code / Im ROOT_VERZEICHNIS erstelle eine Datei mit folgendem Inhalt
Filnename / Dateiname: member_rating.php
<?php
$main_template = "member_rating";
define('ROOT_PATH', './');
include(ROOT_PATH . 'global.php');
require(ROOT_PATH . 'includes/sessions.php');
@include_once(ROOT_PATH . 'includes/page_header.php');
if ($user_info['user_level'] < USER) {
redirect($url);
}
if ($action == "") {
$action = "viewrating";
}
if ($action == "delete_rate") {
if (isset($HTTP_POST_VARS['delete_rate'])) {
$delete_rate = (isset($HTTP_POST_VARS['delete_rate'])) ? $HTTP_POST_VARS['delete_rate'] : $HTTP_GET_VARS['delete_rate'];
} else {
$delete_rate = "";
}
if (empty($delete_rate)) {
redirect("member_rating.php");
}
if (isset($delete_rate) && is_array($delete_rate) && !empty($delete_rate)) {
$field_id_implode = implode(", ", $delete_rate);
if (!defined('USERS_RATING_TABLE')) {
define('USERS_RATING_TABLE', $table_prefix . 'users_rating');
}
$result = $site_db->query("DELETE FROM " . USERS_RATING_TABLE . " WHERE field_id IN (" . $field_id_implode . ")");
if (isset($result) && $result) {
redirect("member_rating.php");
}
} else {
redirect("member_rating.php");
}
}
if ($action == "viewrating") {
if (!defined('USERS_RATING_TABLE')) {
define('USERS_RATING_TABLE', $table_prefix . 'users_rating');
}
if (isset($additional_user_fields) && is_array($additional_user_fields) && !empty($additional_user_fields)) {
$additional_sql = "";
foreach ($additional_user_fields as $key => $val) {
$additional_sql .= ", u." . $key;
}
}
$sql = "
SELECT ur.field_id, ur.user_id, ur.rating_date, ur.rating_value" . get_user_table_field(", u.", "user_name") . $additional_sql . "
FROM " . USERS_RATING_TABLE . " ur
LEFT JOIN " . USERS_TABLE . " u ON (" . get_user_table_field("u.", "user_id") . " = ur.user_id)
WHERE ur.other_user_id = " . $user_info['user_id'] . " AND " . get_user_table_field("u.", "user_level") . " >= '" . USER . "'
ORDER BY ur.rating_date DESC
";
$result = $site_db->query($sql);
$num_rows = $site_db->get_numrows($result);
if (isset($num_rows) && $num_rows <= 0) {
$msg = $lang['member_rating_no_content'];
} elseif (isset($num_rows) && $num_rows > 0) {
$member_rating_content = "";
$calc_rating_value = "";
$bgcounter = 0;
while ($rate_row = $site_db->fetch_array($result)) {
$row_bg_number = ($bgcounter++ % 2 == 0) ? 1 : 2;
$field_id = $rate_row['field_id'];
$user_id = $rate_row['user_id'];
$user_name = format_text(trim($rate_row[$user_table_fields['user_name']]), 2);
$user_url = $site_sess->url(ROOT_PATH . "member.php?action=showprofile&" . URL_USER_ID . "=" . $user_id);
$rating_date = format_date($config['date_format'] . ", " . $config['time_format'], $rate_row['rating_date']);
$rating_value = $rate_row['rating_value'];
$calc_rating_value += $rate_row['rating_value'];
$site_template->register_vars(array(
"field_id" => $field_id,
"user_id" => $user_id,
"user_name" => $user_name,
"user_url" => $user_url,
"rating_date" => $rating_date,
"rating_value" => $rating_value,
"counter" => $row_bg_number
));
if (isset($additional_user_fields) && is_array($additional_user_fields) && !empty($additional_user_fields)) {
$additional_field_array = array();
foreach ($additional_user_fields as $key => $val) {
$additional_field_array[$key] = (!empty($rate_row[$key])) ? format_text($rate_row[$key], 1) : REPLACE_EMPTY;
$additional_field_array['lang_'.$key] = $val[0];
}
if (!empty($additional_field_array)) {
$site_template->register_vars($additional_field_array);
}
}
$member_rating_content .= $site_template->parse_template("member_rating_content");
}
$calc_total_rates = (isset($calc_rating_value) && !empty($calc_rating_value)) ? ($calc_rating_value / $num_rows) : "";
$answer_total_rates = (isset($calc_total_rates)) ? number_format($calc_total_rates, MEMBER_RATING_DECIMAL_VALUE) : "";
}
}
$clickstream = "<a href=\"" . $site_sess->url(ROOT_PATH . "index.php") . "\">" . $lang['home'] . "</a>" . $config['category_separator'] . $lang['member_rating_title'];
$lang['delete'] = str_replace("[", "", $lang['delete']);
$lang['delete'] = str_replace("]", "", $lang['delete']);
$site_template->register_vars(array(
"clickstream" => trim($clickstream),
"msg" => trim($msg),
"lang_member_rating_title" => $lang['member_rating_title'],
"lang_member_rating_user_name" => $lang['member_rating_user_name'],
"lang_member_rating_date" => $lang['member_rating_date'],
"lang_member_rating_value" => $lang['member_rating_value'],
"lang_member_rating_total_rates" => $lang['member_rating_total_rates_title'],
"lang_member_rating_delete" => $lang['member_rating_delete'],
"lang_delete" => $lang['delete'],
"member_rating_content" => (isset($member_rating_content)) ? trim($member_rating_content) : "",
"rated_value" => (isset($answer_total_rates) && $answer_total_rates > 0 && defined('MEMBER_RATING_MARK_VALUE')) ? preg_replace("/" . $site_template->start . "answer_total_rates" . $site_template->end . "/siU", $answer_total_rates . "/" . MEMBER_RATING_MARK_VALUE, $lang['member_rating_rated_value']) : ""
));
$site_template->print_template($site_template->parse_template($main_template));
@include_once(ROOT_PATH . 'includes/page_footer.php');
?>
Step 8
Open / Öffne: templates/your_template/member_profile.html
Find / Finde
<tr>
<td class="row2"><b>{lang_icq}</b></td>
<td class="row2">{if user_icq}<a href="http://www.icq.com/people/about_me.php?uin={user_icq}" target="_blank">{user_icq}</a> (<b>{user_icq_status}</b>){endif user_icq}</td>
</tr>
Add after / Füge danach ein:
{if user_loggedin}{if already_rated}
<tr>
<td class="row1"><b>{lang_member_rating_user_rate}</b></td>
<td class="row1">{already_rated}</td>
</tr>
{endif already_rated}
{if rating_content}
<tr>
<td class="row1"><b>{lang_member_rating_user_rate}</b></td>
<td class="row1"><form name="jumpbox" action="{url_member}" method="post" /><input type="hidden" name="action" value="rate_user"><input type="hidden" name="user_id" value="{user_id}"><select name="rate_user" onchange="if (this.options[this.selectedIndex].value != 0) { forms['jumpbox'].submit() }" class="select" /><option value="---">---</option>{rating_content}</select></form></td>
</tr>
{endif rating_content}{endif user_loggedin}
Step 9
In templates/your_template create a file with this code / Im templates/dein_template erstelle eine Datei mit folgendem Inhalt
Filename / Dateiname: member_rating.html
:flag-de:
{header}
{if is_admin}<! -- Who viewed my profile -- >{endif is_admin}
{if msg}{ifno member_rating_content}
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="head1">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="head1" valign="top">{lang_member_rating_title}</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="row2" align="center" /><br /><b>{msg}</b><br /><br /></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="head2"> </td>
</tr>
</table>
<br />
{endifno member_rating_content}{endif msg}
{if is_admin}<! -- End - Who viewed my profile -- >{endif is_admin}
{if is_admin}<! -- Who viewed my profile -- >{endif is_admin}
{ifno msg}{if member_rating_content}
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="head1">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="head1" valign="top">{lang_member_rating_title}</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="row2"> </td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="head1" valign="top">{lang_member_rating_total_rates}</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="row2" valign="top" align="center" />{if rated_value}<br />{rated_value}{endif rated_value}</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="row2"> </td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="head1"> </td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="row2"> </td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="25%" class="head1" align="center" valign="top">{lang_member_rating_user_name}</td>
<td width="25%" class="head1" align="center" valign="top">{lang_member_rating_date}</td>
<td width="25%" class="head1" align="center" valign="top">{lang_member_rating_value}</td>
<td width="25%" class="head1" align="center" valign="top">{lang_member_rating_delete}</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" border="1" cellspacing="0" cellpadding="0" class="tablebottom">
<form action="{url_member_rating}" method="post" />
<input type="hidden" name="action" value="delete_rate">
{member_rating_content}
</table>
<script language="JavaScript">
/* <![CDATA[ */
function del(){
if(confirm("Willst du die Bewertung von {user_name} mit {rating_value} Punkten wikrlich löschen?") == true)
document.form.submit();
}
/* ]]> */
</script>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="25%" class="row2" valign="top" align="center" /> </td>
<td width="25%" class="row2" valign="top" align="center" /> </td>
<td width="25%" class="row2" valign="top" align="center" /> </td>
<td width="25%" class="row2" valign="top" align="center" /><input type="submit" name="submit" value="{lang_delete}" class="button" /></form></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="row2"> </td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="head2"> </td>
</tr>
</table>
<br />
{endif member_rating_content}{endifno msg}
{if is_admin}<! -- End - Who viewed my profile -- >{endif is_admin}
{footer}
:flag-en:
{header}
{if is_admin}<! -- Who viewed my profile -- >{endif is_admin}
{if msg}{ifno member_rating_content}
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="head1">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="head1" valign="top">{lang_member_rating_title}</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="row2" align="center" /><br /><b>{msg}</b><br /><br /></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="head2"> </td>
</tr>
</table>
<br />
{endifno member_rating_content}{endif msg}
{if is_admin}<! -- End - Who viewed my profile -- >{endif is_admin}
{if is_admin}<! -- Who viewed my profile -- >{endif is_admin}
{ifno msg}{if member_rating_content}
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="head1">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="head1" valign="top">{lang_member_rating_title}</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="row2"> </td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="head1" valign="top">{lang_member_rating_total_rates}</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="row2" valign="top" align="center" />{if rated_value}<br />{rated_value}{endif rated_value}</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="row2"> </td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="head1"> </td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="row2"> </td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="25%" class="head1" align="center" valign="top">{lang_member_rating_user_name}</td>
<td width="25%" class="head1" align="center" valign="top">{lang_member_rating_date}</td>
<td width="25%" class="head1" align="center" valign="top">{lang_member_rating_value}</td>
<td width="25%" class="head1" align="center" valign="top">{lang_member_rating_delete}</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" border="1" cellspacing="0" cellpadding="0" class="tablebottom">
<form action="{url_member_rating}" method="post" />
<input type="hidden" name="action" value="delete_rate">
{member_rating_content}
</table>
<script language="JavaScript">
/* <![CDATA[ */
function del(){
if(confirm("If you want the Rate of {user_name} with {rating_value} points really delete?") == true)
document.form.submit();
}
/* ]]> */
</script>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="25%" class="row2" valign="top" align="center" /> </td>
<td width="25%" class="row2" valign="top" align="center" /> </td>
<td width="25%" class="row2" valign="top" align="center" /> </td>
<td width="25%" class="row2" valign="top" align="center" /><input type="submit" name="submit" value="{lang_delete}" class="button" /></form></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="row2"> </td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="head2"> </td>
</tr>
</table>
<br />
{endif member_rating_content}{endifno msg}
{if is_admin}<! -- End - Who viewed my profile -- >{endif is_admin}
{footer}
Step 10
In templates/your_template create a file with this code / Im templates/dein_template erstelle eine Datei mit folgendem Inhalt
Filename / Dateiname: member_rating_content.htmll
<tr>
<td width="25%" class="row{counter}" align="center"><a href="{user_url}" class="link" />{user_name}</a></td>
<td width="25%" class="row{counter}" align="center">{rating_date}</td>
<td width="25%" class="row{counter}" align="center">{rating_value}</td>
<td width="25%" class="row{counter}" align="center"><input type="checkbox" name="delete_rate[]" value="{field_id}" onClick="del()"></td>
</tr>
Step 11
Open / Öffne: templates/your_template/user_logininfo.html
Search / Suche:
» <a href="{url_control_panel}">{lang_control_panel}</a><br />
Add after / Füge danach ein:
» <a href="{url_member_rating}">{lang_member_rating_title}</a><br />
Step 12
In templates/your_template create a file with this code / Im templates/dein_template erstelle eine Datei mit folgendem Inhalt
Filename / Dateiname: member_rating_dropdown.htmll
<option value="{i}">{i}</option>
Step 13
Installation
Use you sql editor or phpmyadmin to insert this table into you database.
Benutze ein SQL Editor oder PhpMyAdmin um die Tabellen anzulegen
CREATE TABLE IF NOT EXISTS `4images_users_rating` (
`field_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL DEFAULT '0',
`other_user_id` int(11) NOT NULL DEFAULT '0',
`rating_date` int(11) NOT NULL DEFAULT '0',
`rating_value` int(2) NOT NULL DEFAULT '0',
`rating_count` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY(`field_id`)
) TYPE=MyISAM;
Finish / Fertig
Have Fun / Viel Spaß
-
So, i have written a little addition for this MOD.
Description: With this addition you will have a possible to show something like this "Most Popular Photographer" on your main page.
Files to edit:
page_header.php
member_rating.php
includes/functions.php
lang/.../mail.php
home.html
Installation:
1) If you haven`t installed this mod, skip this step and go to 2 step.
In your PhpMyAdmin select table 4images_users_rating and search for user_id field.
Rename:
user_id
to user_ids
2) In includes/functions.php search:
if (!function_exists('member_rating_check_table')) {
function member_rating_check_table() {
global $site_db, $table_prefix;
if (defined('MEMBER_RATING_ACTIVE') && MEMBER_RATING_ACTIVE == 0) {
return;
}
if (!defined('USERS_RATING_TABLE')) {
define('USERS_RATING_TABLE', $table_prefix . 'users_rating');
}
$sql = "
CREATE TABLE IF NOT EXISTS " . USERS_RATING_TABLE . " (
field_id int(11) unsigned NOT NULL AUTO_INCREMENT,
user_id int(11) NOT NULL DEFAULT '0',
other_user_id int(11) NOT NULL DEFAULT '0',
rating_date int(11) NOT NULL DEFAULT '0',
rating_value int(2) NOT NULL DEFAULT '0',
rating_count int(11) NOT NULL DEFAULT '0',
PRIMARY KEY(field_id)
) TYPE=MyISAM;
";
$result = $site_db->query($sql);
}
}
if (!function_exists('member_rating_check_user')) {
function member_rating_check_user($user_id = 0, $other_user_id = 0, $user_level = GUEST) {
global $site_db, $table_prefix;
if (defined('MEMBER_RATING_ACTIVE') && MEMBER_RATING_ACTIVE == 0) {
return;
}
$user_id = preg_replace("/[^0-9]+/i", "", $user_id);
$other_user_id = preg_replace("/[^0-9]+/i", "", $other_user_id);
$user_level = preg_replace("/[^0-9]+/i", "", $user_level);
if (empty($user_id) || empty($other_user_id) || $user_level == GUEST || $user_level == USER_AWAITING) {
return;
}
if (!defined('USERS_RATING_TABLE')) {
define('USERS_RATING_TABLE', $table_prefix . 'users_rating');
}
$sql = "
SELECT SUM(ur.rating_value) AS total_rates
FROM " . USERS_RATING_TABLE . " ur
LEFT JOIN " . USERS_TABLE . " u ON (" . get_user_table_field("u.", "user_id") . " = ur.user_id)
WHERE " . get_user_table_field("u.", "user_id") . " = ur.user_id AND ur.user_id = " . $user_id . " AND ur.other_user_id = " . $other_user_id . " AND " . get_user_table_field("u.", "user_level") . " >= '" . USER . "'
";
$row = $site_db->query_firstrow($sql);
$total_rates = (isset($row['total_rates'])) ? number_format($row['total_rates'], MEMBER_RATING_DECIMAL_VALUE) : 0;
if (isset($total_rates) && $total_rates > 0) {
$sql = "
SELECT ur.rating_value
FROM " . USERS_RATING_TABLE . " ur
LEFT JOIN " . USERS_TABLE . " u ON (" . get_user_table_field("u.", "user_id") . " = ur.other_user_id)
WHERE " . get_user_table_field("u.", "user_id") . " = " . $other_user_id . " AND " . get_user_table_field("u.", "user_level") . " >= '" . USER . "'
";
$result = $site_db->query($sql);
$num_rows = $site_db->get_numrows($result);
if (isset($num_rows) && $num_rows > 0) {
$rating_value = "";
while ($rate_row = $site_db->fetch_array($result)) {
$rating_value += $rate_row['rating_value'];
}
$calc_total_rates = ($rating_value / $num_rows);
$answer_total_rates = (isset($calc_total_rates)) ? number_format($calc_total_rates, MEMBER_RATING_DECIMAL_VALUE) : "";
return $answer_total_rates . "/" . MEMBER_RATING_MARK_VALUE;
} else {
return false;
}
}
}
}
if (!function_exists('member_rating_insert_rates')) {
function member_rating_insert_rates($user_id = 0, $other_user_id = 0, $user_level = GUEST, $user_rates = 0) {
global $site_db, $table_prefix;
if (defined('MEMBER_RATING_ACTIVE') && MEMBER_RATING_ACTIVE == 0) {
return;
}
$user_id = preg_replace("/[^0-9]+/i", "", $user_id);
$other_user_id = preg_replace("/[^0-9]+/i", "", $other_user_id);
$user_level = preg_replace("/[^0-9]+/i", "", $user_level);
$user_rates = preg_replace("/[^0-9]+/i", "", $user_rates);
if (empty($user_id) || empty($other_user_id) || $user_level == GUEST || $user_level == USER_AWAITING || empty($user_rates)) {
return;
}
if (!defined('USERS_RATING_TABLE')) {
define('USERS_RATING_TABLE', $table_prefix . 'users_rating');
}
$sql = "
INSERT INTO " . USERS_RATING_TABLE . "
(field_id, user_id, other_user_id, rating_date, rating_value, rating_count)
VALUES(NULL, '" . $user_id . "', '" . $other_user_id . "', '" . time() . "', '" . $user_rates . "', '1')
";
if ($site_db->query($sql)) {
return true;
} else {
return false;
}
}
}
Replace:
if (!function_exists('member_rating_check_table')) {
function member_rating_check_table() {
global $site_db, $table_prefix;
if (defined('MEMBER_RATING_ACTIVE') && MEMBER_RATING_ACTIVE == 0) {
return;
}
if (!defined('USERS_RATING_TABLE')) {
define('USERS_RATING_TABLE', $table_prefix . 'users_rating');
}
$sql = "
CREATE TABLE IF NOT EXISTS " . USERS_RATING_TABLE . " (
field_id int(11) unsigned NOT NULL AUTO_INCREMENT,
user_ids int(11) NOT NULL DEFAULT '0',
other_user_id int(11) NOT NULL DEFAULT '0',
rating_date int(11) NOT NULL DEFAULT '0',
rating_value int(2) NOT NULL DEFAULT '0',
rating_count int(11) NOT NULL DEFAULT '0',
PRIMARY KEY(field_id)
) TYPE=MyISAM;
";
$result = $site_db->query($sql);
}
}
if (!function_exists('member_rating_check_user')) {
function member_rating_check_user($user_id = 0, $other_user_id = 0, $user_level = GUEST) {
global $site_db, $table_prefix;
if (defined('MEMBER_RATING_ACTIVE') && MEMBER_RATING_ACTIVE == 0) {
return;
}
$user_id = preg_replace("/[^0-9]+/i", "", $user_id);
$other_user_id = preg_replace("/[^0-9]+/i", "", $other_user_id);
$user_level = preg_replace("/[^0-9]+/i", "", $user_level);
if (empty($user_id) || empty($other_user_id) || $user_level == GUEST || $user_level == USER_AWAITING) {
return;
}
if (!defined('USERS_RATING_TABLE')) {
define('USERS_RATING_TABLE', $table_prefix . 'users_rating');
}
$sql = "
SELECT SUM(ur.rating_value) AS total_rates
FROM " . USERS_RATING_TABLE . " ur
LEFT JOIN " . USERS_TABLE . " u ON (" . get_user_table_field("u.", "user_id") . " = ur.user_ids)
WHERE " . get_user_table_field("u.", "user_id") . " = ur.user_ids AND ur.user_ids = " . $user_id . " AND ur.other_user_id = " . $other_user_id . " AND " . get_user_table_field("u.", "user_level") . " >= '" . USER . "'
";
$row = $site_db->query_firstrow($sql);
$total_rates = (isset($row['total_rates'])) ? number_format($row['total_rates'], MEMBER_RATING_DECIMAL_VALUE) : 0;
if (isset($total_rates) && $total_rates > 0) {
$sql = "
SELECT ur.rating_value
FROM " . USERS_RATING_TABLE . " ur
LEFT JOIN " . USERS_TABLE . " u ON (" . get_user_table_field("u.", "user_id") . " = ur.other_user_id)
WHERE " . get_user_table_field("u.", "user_id") . " = " . $other_user_id . " AND " . get_user_table_field("u.", "user_level") . " >= '" . USER . "'
";
$result = $site_db->query($sql);
$num_rows = $site_db->get_numrows($result);
if (isset($num_rows) && $num_rows > 0) {
$rating_value = "";
while ($rate_row = $site_db->fetch_array($result)) {
$rating_value += $rate_row['rating_value'];
}
$calc_total_rates = ($rating_value / $num_rows);
$answer_total_rates = (isset($calc_total_rates)) ? number_format($calc_total_rates, MEMBER_RATING_DECIMAL_VALUE) : "";
return $answer_total_rates . "/" . MEMBER_RATING_MARK_VALUE;
} else {
return false;
}
}
}
}
if (!function_exists('member_rating_insert_rates')) {
function member_rating_insert_rates($user_id = 0, $other_user_id = 0, $user_level = GUEST, $user_rates = 0) {
global $site_db, $table_prefix;
if (defined('MEMBER_RATING_ACTIVE') && MEMBER_RATING_ACTIVE == 0) {
return;
}
$user_id = preg_replace("/[^0-9]+/i", "", $user_id);
$other_user_id = preg_replace("/[^0-9]+/i", "", $other_user_id);
$user_level = preg_replace("/[^0-9]+/i", "", $user_level);
$user_rates = preg_replace("/[^0-9]+/i", "", $user_rates);
if (empty($user_id) || empty($other_user_id) || $user_level == GUEST || $user_level == USER_AWAITING || empty($user_rates)) {
return;
}
if (!defined('USERS_RATING_TABLE')) {
define('USERS_RATING_TABLE', $table_prefix . 'users_rating');
}
$sql = "
INSERT INTO " . USERS_RATING_TABLE . "
(field_id, user_ids, other_user_id, rating_date, rating_value, rating_count)
VALUES(NULL, '" . $user_id . "', '" . $other_user_id . "', '" . time() . "', '" . $user_rates . "', '1')
";
if ($site_db->query($sql)) {
return true;
} else {
return false;
}
}
}
3) In member_rating.php replace all path by this code:
<?php
$main_template = "member_rating";
define('ROOT_PATH', './');
include(ROOT_PATH . 'global.php');
require(ROOT_PATH . 'includes/sessions.php');
@include_once(ROOT_PATH . 'includes/page_header.php');
if ($user_info['user_level'] < USER) {
redirect($url);
}
if ($action == "") {
$action = "viewrating";
}
if ($action == "delete_rate") {
if (isset($HTTP_POST_VARS['delete_rate'])) {
$delete_rate = (isset($HTTP_POST_VARS['delete_rate'])) ? $HTTP_POST_VARS['delete_rate'] : $HTTP_GET_VARS['delete_rate'];
} else {
$delete_rate = "";
}
if (empty($delete_rate)) {
redirect("member_rating.php");
}
if (isset($delete_rate) && is_array($delete_rate) && !empty($delete_rate)) {
$field_id_implode = implode(", ", $delete_rate);
if (!defined('USERS_RATING_TABLE')) {
define('USERS_RATING_TABLE', $table_prefix . 'users_rating');
}
$result = $site_db->query("DELETE FROM " . USERS_RATING_TABLE . " WHERE field_id IN (" . $field_id_implode . ")");
if (isset($result) && $result) {
redirect("member_rating.php");
}
} else {
redirect("member_rating.php");
}
}
if ($action == "viewrating") {
if (!defined('USERS_RATING_TABLE')) {
define('USERS_RATING_TABLE', $table_prefix . 'users_rating');
}
if (isset($additional_user_fields) && is_array($additional_user_fields) && !empty($additional_user_fields)) {
$additional_sql = "";
foreach ($additional_user_fields as $key => $val) {
$additional_sql .= ", u." . $key;
}
}
$sql = "
SELECT ur.field_id, ur.user_ids, ur.rating_date, ur.rating_value" . get_user_table_field(", u.", "user_name") . $additional_sql . "
FROM " . USERS_RATING_TABLE . " ur
LEFT JOIN " . USERS_TABLE . " u ON (" . get_user_table_field("u.", "user_id") . " = ur.user_ids)
WHERE ur.other_user_id = " . $user_info['user_id'] . " AND " . get_user_table_field("u.", "user_level") . " >= '" . USER . "'
ORDER BY ur.rating_date DESC
";
$result = $site_db->query($sql);
$num_rows = $site_db->get_numrows($result);
if (isset($num_rows) && $num_rows <= 0) {
$msg = $lang['member_rating_no_content'];
} elseif (isset($num_rows) && $num_rows > 0) {
$member_rating_content = "";
$calc_rating_value = "";
$bgcounter = 0;
while ($rate_row = $site_db->fetch_array($result)) {
$row_bg_number = ($bgcounter++ % 2 == 0) ? 1 : 2;
$field_id = $rate_row['field_id'];
$user_id = $rate_row['user_ids'];
$user_name = format_text(trim($rate_row[$user_table_fields['user_name']]), 2);
$user_url = $site_sess->url(ROOT_PATH . "member.php?action=showprofile&" . URL_USER_ID . "=" . $user_id);
$rating_date = format_date($config['date_format'] . ", " . $config['time_format'], $rate_row['rating_date']);
$rating_value = $rate_row['rating_value'];
$calc_rating_value += $rate_row['rating_value'];
$site_template->register_vars(array(
"field_id" => $field_id,
"user_id" => $user_id,
"user_name" => $user_name,
"user_url" => $user_url,
"rating_date" => $rating_date,
"rating_value" => $rating_value,
"counter" => $row_bg_number
));
if (isset($additional_user_fields) && is_array($additional_user_fields) && !empty($additional_user_fields)) {
$additional_field_array = array();
foreach ($additional_user_fields as $key => $val) {
$additional_field_array[$key] = (!empty($rate_row[$key])) ? format_text($rate_row[$key], 1) : REPLACE_EMPTY;
$additional_field_array['lang_'.$key] = $val[0];
}
if (!empty($additional_field_array)) {
$site_template->register_vars($additional_field_array);
}
}
$member_rating_content .= $site_template->parse_template("member_rating_content");
}
$calc_total_rates = (isset($calc_rating_value) && !empty($calc_rating_value)) ? ($calc_rating_value / $num_rows) : "";
$answer_total_rates = (isset($calc_total_rates)) ? number_format($calc_total_rates, MEMBER_RATING_DECIMAL_VALUE) : "";
}
}
$clickstream = "<a href=\"" . $site_sess->url(ROOT_PATH . "index.php") . "\">" . $lang['home'] . "</a>" . $config['category_separator'] . $lang['member_rating_title'];
$lang['delete'] = str_replace("[", "", $lang['delete']);
$lang['delete'] = str_replace("]", "", $lang['delete']);
$site_template->register_vars(array(
"clickstream" => trim($clickstream),
"msg" => trim($msg),
"lang_member_rating_title" => $lang['member_rating_title'],
"lang_member_rating_user_name" => $lang['member_rating_user_name'],
"lang_member_rating_date" => $lang['member_rating_date'],
"lang_member_rating_value" => $lang['member_rating_value'],
"lang_member_rating_total_rates" => $lang['member_rating_total_rates_title'],
"lang_member_rating_delete" => $lang['member_rating_delete'],
"lang_delete" => $lang['delete'],
"member_rating_content" => (isset($member_rating_content)) ? trim($member_rating_content) : "",
"rated_value" => (isset($answer_total_rates) && $answer_total_rates > 0 && defined('MEMBER_RATING_MARK_VALUE')) ? preg_replace("/" . $site_template->start . "answer_total_rates" . $site_template->end . "/siU", $answer_total_rates . "/" . MEMBER_RATING_MARK_VALUE, $lang['member_rating_rated_value']) : ""
));
$site_template->print_template($site_template->parse_template($main_template));
@include_once(ROOT_PATH . 'includes/page_footer.php');
?>
4) Open includes/page_header and before ?> add:
//-----------------------------------------------------
//--- MOST RATED USERS --------------------------------
//-----------------------------------------------------
$most_rated_user = "";
$sql = "SELECT `other_user_id`, SUM(`rating_value`) AS `vot_sum`, `user_name` AS `name`
FROM ".USERS_RATING_TABLE." AS `rating`, ".USERS_TABLE." AS `users`
WHERE `other_user_id` = `user_id`
GROUP BY `other_user_id` ORDER BY `vot_sum` DESC LIMIT 10";
$result = $site_db->query($sql);
$sum = (isset($row['vot_sum'])) ? $row['vot_sum'] : 0;
while ($row = $site_db->fetch_array($result)) {
$most_rated_user .= "<tr>";
$most_rated_user .= "<td width=\"180\" align=\"left\">";
$most_rated_user .= '<a href ="'.ROOT_PATH.'search.php?search_user='.$row['name'].'"><b>'.$row['name'].'</b></a>';
$most_rated_user .= "</td>";
$most_rated_user .= "<td width=\"70\" align=\"center\">";
$most_rated_user .= '<span class="smalltext"><b>'.$row['vot_sum'].'</b></span>';
$most_rated_user .= "</td>";
$most_rated_user .= "</tr>";
}
$site_template->register_vars(array(
"most_rated_user" => $most_rated_user,
));
unset($most_rated_user);
//-----------------------------------------------------
5) Open home.html and add where you want to show top
<TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="head1">
<TR>
<TD>
<TABLE border="0" cellpadding="2" cellspacing="1" width="100%">
<TR>
<TD bgcolor="#434242" ALIGN="center"><TABLE CELLPADDING="1" CELLSPACING="0" BORDER="0" WIDTH="100%"><TR><TD ALIGN="center"><FONT FACE="verdana" SIZE="2" COLOR="#f3f3f3"><b>- {lang_most_pop_spotter} -</FONT></TD></TR></TABLE></TD>
</TR>
<TR>
<TD BGCOLOR="#e2e0e0">
<TABLE BORDER="0" WIDTH="100%">
<TR>
<TD VALIGN="top" align="center" width="250">
<table border="0" cellspacing="1" cellpadding="1" background="{template_url}/images/cat.gif">
<tr>
<td class="row1" td width="180" align="left"><font color="black">{lang_spotter_name}</font></td>
<td class="row1" width="70" align="center"><span class="smalltext"><font color="black">{lang_total_rates}</font></span></td>
</tr>
<tr>
<td class="row1">{most_rated_user}</td>
</tr>
{if user_loggedin}
<tr>
<td class="row1" align="center" colspan="2"><a href="{url_member_rating}">{lang_member_rating_title}</a></td>
</tr>
{endif user_loggedin}
</table>
</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</TD>
</TR>
</table>
6) Open your lang/english/main.php and at the end of ?> add next:
$lang['most_pop_spotter'] = "Most Popular Spotters";
$lang['spotter_name'] = "Spotter name";
$lang['total_rates'] = "Total rates";
$lang['total_photos'] = "Total photos";
7) Upload all files to you site path, and enjoy you new TOPS!!!
-
great mod really love it ^-^ , but can i show user rates per profile visible for all,?
suggestion if we repalce numbers of rates with images , from 1 rate to 100 image 1 , and from 100 rates to 150 other pic shows on profile is it possible ?
& thanks