Žinučių ir narių reitingai AJAX
- Spausdinti
- 2009-12-09
- Nekategorizuota
- 9740 Peržiūros
- 9 komentarai
Šiame straipsnyje pamokinsiu pasidaryti šaukyklos, forumo žinučių, komentarų ir narių AJAX reitingus (+1 arba -1). Šiuos reitingus galima naudoti ir siuntiniuose, naujienose, straipsniuose ir kitur kur tik norite.
Pradėkime darbą.
1. DB lentelės sukūrimas
Susikurkite reitingų lentelę. Tai galite padaryti į pridėtinius puslapius įrašydami šį kodą ir spausdami peržiūrėti.
$result = dbquery("
CREATE TABLE IF NOT EXISTS ".$db_prefix."reitingai (
reitingas_id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
reitingas_daikto_id mediumint(8) unsigned NOT NULL,
reitingas_tipas char(2) COLLATE utf8_lithuanian_ci NOT NULL,
reitingas_narys mediumint(8) unsigned NOT NULL,
reitingas_balsas varchar(2) COLLATE utf8_lithuanian_ci NOT NULL,
reitingas_data int(10) unsigned NOT NULL,
reitingas_nariui mediumint(8) unsigned NOT NULL,
PRIMARY KEY (reitingas_id), KEY (reitingas_tipas), KEY (reitingas_daikto_id)
) ENGINE=MyISAM
");
/*
reitingas_id - unikalus reitingo ID
reitingas_daikto_id - zinutes, komentaro, nario ar dar ko ID kas gavo reitinga
reitingas_tipas - reitingo daikto tipas, pvz S = saukykla, K = komentarai ir t.t.
reitingas_narys - narys, kuris dave reitinga
reitingas_balsas - reitingas 1 arba -1
reitingas_data - reitingo davimo data
reitingas_nariui - zinutes, komentaro ar pan. autorius, reikalinga, kad butu patogiau suskaiciuoti nario gautus reitingus, ju vidurki, jei to nereikia, sio laukelio galite nerasyti
*/
?>
2. JS failo kūrimas
Dabar jums reikia sukurti JS funkcija, kuri bus iškviečiama reitinguojant. Aplankale includes sukurkite fail� reitingas.js ir � j� �ra?ykite (tik pasikeiskite savo tinklapio adres�, ten kur pary?kinau):
var xmlhttp;
function reit(balsas, daiktas, tipas)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
{
alert ('Nar?ykl� nepalaiko HTTP Request');
return;
}
var reit = document.getElementById('txt'+tipas+daiktas);
var vertint = document.getElementById('vertint'+tipas+daiktas);
if (balsas == 1) {
reit.innerHTML = (parseInt(reit.innerHTML) +1);
} else if (balsas == 0) {
reit.innerHTML = (parseInt(reit.innerHTML) -1);
}
if (reit.innerHTML > 0) {
reit.style.color = '#009900';
} else if (reit.innerHTML < 0) {
reit.style.color = '#990000';
} else {
reit.style.color = '#555';
}
vertint.style.display = 'none';
xmlhttp.open('get', 'http://www.jusutinklapis.lt/includes/reitingas.php?balsas='+balsas+'&daiktas='+daiktas+'&tipas='+tipas);
xmlhttp.send(null);
}
function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
{
//Kodas normalioms narsyklems
return new XMLHttpRequest();
}
if (window.ActiveXObject)
{
//Kodas seniems IE
return new ActiveXObject('Microsoft.XMLHTTP');
}
return null;
}
Dabar atsidarykite fail� themes/templates/header.php ir prie? echo "\n\n"; �terpkite:
echo "\n";
3. Reitingo stilius
Atsidarykite fail� themes/jusu_tema/styles.css ir prie? a.side �terpkite (spalvas galite pasiderinti pagal save, kad tikt� prie dizaino):
a.plius {
font-size: 10px;
color: #009900;
text-decoration: none;
}
a:hover.plius {
font-size: 10px;
color: #00cc00;
text-decoration: none;
}
a.minus {
font-size: 10px;
color: #990000;
text-decoration: none;
}
a:hover.minus {
font-size: 10px;
color: #cc0000;
text-decoration: none;
}
4. PHP failo, kuris �terps reiting� � DB k�rimas
Dabar jau turite pagalvoti kur naudosite reitingus. Atsidarykite includes aplankal� ir jame sukurkite fail� reitingas.php:
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (C) 2002 - 2008 Nick Jones
| http://www.php-fu...
+--------------------------------------------------------+
| AJAX zinuciu, komentaru, nariu ir kt. reitingai
| Filename: reitingas.php
| Author: Rinas
| WEB: http://rinas.cesa...
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licen... Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
header("Cache-Control: no-cache");
header("Pragma: nocache");
require_once "../maincore.php";
header("Content-Type: text/html; charset=".$locale['charset']."");
if (iMEMBER) {
if (isset($_GET['balsas']) && isNum($_GET['balsas']) && isset($_GET['tipas']) && isset($_GET['daiktas']) && isNum($_GET['daiktas'])) {
$balsas = ($_GET['balsas'] == 1 ? "1" : "-1");
$tipas = stripinput($_GET['tipas']);
$daiktas = $_GET['daiktas'];
$url = (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : BASEDIR."index.php");
$result = dbquery("
SELECT
reitingas_id
FROM
".$db_prefix."reitingai
WHERE
reitingas_narys='".$userdata['user_id']."'
AND
reitingas_tipas='".$tipas."' AND reitingas_daikto_id='".$daiktas."'
");
if ($tipas == "K") { //Komentarai
$result10 = dbquery("SELECT comment_id FROM ".$db_prefix."comments WHERE comment_name='".$userdata['user_id']."' AND comment_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 1;
} else {
$leidimas = 0;
}
$result10 = dbquery("SELECT comment_name FROM ".$db_prefix."comments WHERE comment_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 0;
} else {
$data = dbarray($result10);
$nariui = $data['comment_name'];
}
} elseif ($tipas == "F") { //Forumas
$result10 = dbquery("SELECT post_id FROM ".$db_prefix."posts WHERE post_author='".$userdata['user_id']."' AND post_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 1;
} else {
$leidimas = 0;
}
$result10 = dbquery("SELECT post_author FROM ".$db_prefix."posts WHERE post_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 0;
} else {
$data = dbarray($result10);
$nariui = $data['post_author'];
}
} elseif ($tipas == "S") { //Saukykla
$result10 = dbquery("SELECT shout_id FROM ".$db_prefix."shoutbox WHERE shout_name='".$userdata['user_id']."' AND shout_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 1;
} else {
$leidimas = 0;
}
$result10 = dbquery("SELECT shout_name FROM ".$db_prefix."shoutbox WHERE shout_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 0;
} else {
$data = dbarray($result10);
$nariui = $data['shout_name'];
}
} elseif ($tipas == "N") { //Nariai
if ($userdata['user_id'] != $daiktas) {
$leidimas = 1;
} else {
$leidimas = 0;
}
$nariui = $daiktas;
}
if ((dbrows($result) == 0) && ($leidimas == 1)) {
$addresult = dbquery("
INSERT INTO
".$db_prefix."reitingai
(reitingas_narys, reitingas_tipas, reitingas_daikto_id, reitingas_balsas, reitingas_data, reitingas_nariui)
VALUES
('".$userdata['user_id']."', '".$tipas."', '".$daiktas."', '".$balsas."', '".time()."', '".$nariui."')
");
}
}
}
redirect($url);
?>
Jeigu nusprend�te ?iuos reitingus naudoti ne tik nariams, ?inut�ms ir komentarams, bet ir siuntiniams, straipsniams, naujienoms po:
} elseif ($tipas == "N") { //Nariai
if ($userdata['user_id'] != $daiktas) {
$leidimas = 1;
} else {
$leidimas = 0;
}
$nariui = $daiktas;
}
Prid�kite (tik nepamir?kite nustatyti $ds = 1; jei naudojate Download System mSF For PHP-fusion v7.xx):
elseif ($tipas == "D") { //Siuntiniai
$ds = 0; //Nustatykite 1, jei naudojate Download System mSF For PHP-fusion v7.xx, kitaip 0
if ($ds == 1) {
$result10 = dbquery("SELECT download_id FROM ".DB_DOWNLOADS." WHERE download_user='".$userdata['user_id']."' AND download_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 1;
} else {
$leidimas = 0;
}
$result10 = dbquery("SELECT download_user FROM ".DB_DOWNLOADS." WHERE download_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 0;
} else {
$data = dbarray($result10);
$nariui = $data['download_user'];
}
} else {
$result = dbquery("SELECT download_id FROM ".DB_DOWNLOADS." WHERE download_id='".$daiktas."'");
if (dbrows($result)) {
$leidimas = 1;
$nariui = 0;
} else {
$leidimas = 0;
}
}
} elseif ($tipas == "E") { //Naujienos
$result10 = dbquery("SELECT news_id FROM ".DB_NEWS." WHERE news_name='".$userdata['user_id']."' AND news_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 1;
} else {
$leidimas = 0;
}
$result10 = dbquery("SELECT news_name FROM ".DB_NEWS." WHERE news_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 0;
} else {
$data = dbarray($result10);
$nariui = $data['news_name'];
}
} elseif ($tipas == "A") { //Straipsniai
$result10 = dbquery("SELECT article_id FROM ".DB_ARTICLES." WHERE article_name='".$userdata['user_id']."' AND article_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 1;
} else {
$leidimas = 0;
}
$result10 = dbquery("SELECT article_name FROM ".DB_ARTICLES." WHERE article_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 0;
} else {
$data = dbarray($result10);
$nariui = $data['article_name'];
}
} else {
$leidimas = 0;
}
Jei j�s turite kok� nors mod�, kuriam irgi norite pritaikyti ?iuos reitingus, bet nemokate, ra?ykite man forume arba PM ir a? pritaikysiu.
5. Reitingo funkcijos k�rimas
Dabar atsidarykite maincore.php ir pa�ioje pabaigoje, bet prie? ?> �terpkite:
function reitingas($daiktas, $tipas, $leidimas, $tags1 = "", $tags2 = "") {
global $db_prefix, $userdata;
$reitingas = dbresult(dbquery("SELECT SUM(reitingas_balsas) FROM ".$db_prefix."reitingai WHERE reitingas_daikto_id='".$daiktas."' && reitingas_tipas='".$tipas."'"), 0);
$reitingas == "" ? $reitingas = 0 : "";
if ($reitingas > 0) {
$spalva = "009900";
} elseif ($reitingas < 0) {
$spalva = "990000";
} else {
$spalva = 0;
}
$return = $tags1.($spalva != 0 ? "" : "").$reitingas."".$tags2."\n";
if ($leidimas == 1 && !dbcount("(reitingas_id)", $db_prefix."reitingai", "reitingas_daikto_id='".$daiktas."' AND reitingas_narys='".$userdata['user_id']."' AND reitingas_tipas='".$tipas."'")) {
$return .= ">+ >-\n";
}
return $return;
}
6. Komentar� reitingai
Dabar prasideda man labiausiai nepatinkantis darbas. Prad�kite nuo komentar�. Atsidarykite savo komentar� fail�, jei nenaudojate jokio modo jis yra includes/comments_include.php. � viet�, kurioje norite, kad b�t� rodomas reitingas ra?ykite, a? si�lau d�ti prie datos, taigi susiraskite ka?k� pana?aus �
echo "".$locale['global_071'].showdate("longdate", $data['comment_datestamp'])."\n";
ir po ta eilute �terpkite:
if (iMEMBER && $userdata['user_id'] != $data['comment_name']) {
$leidimas = 1;
} else {
$leidimas = 0;
}
echo reitingas($data['comment_id'], "K", $leidimas, "[", "]");
7. Forumo ?inu�i� reitingai
Jeigu naudojate forum� be joki� mod� atsidarykite fail� forum/viewthread.php, jei naudojate fusionboard4 (d�l kit� versij� neesu tikras) failas bus infusions/fusionboard4/includes/views/jusu_forumo_dizainas.php (vietoj jusu_forumo_dizainas turi b�ti toks pavadinimas, kok� dizain� esate pasirink�.
Jei naudojate forum� be mod�, susiraskite (arba ka?k� pana?aus):
echo "\n";
Ir keiskite �:
echo "
Jei naudojate fusionboard4, susiraskite:
if ($data['post_edittime'] != "0") {
$r = dbquery("select * from ".$db_prefix."fb_posts where post_id='".$data['post_id']."'");
if(dbrows($r)){ $d = dbarray($r); $edit_reason = $d['post_editreason'];
} else { $edit_reason = ""; }
echo " if(isset($edit_reason) && $edit_reason !== ""){ echo " title='header=[".$locale['fb502']."] body=[$edit_reason]'"; }
echo "> | ".$locale['508']."
".$data['edit_name']." ".timePassed($data['post_edittime'], false);
echo "\n";
}
Ir po juo �terpkite:
if (iMEMBER && $userdata['user_id'] != $data['post_author']) {
$leidimas = 1;
} else {
$leidimas = 0;
}
echo reitingas($data['post_id'], "F", $leidimas, "[", "]")."\n";
8. ?aukyklos ?inu�i� reitingai
Atsiidarykite fail� infusions/shoutbox_panel/shoutbox_panel.php ir susiraskite:
echo "
Pakeiskite �:
echo "
Tada atsidarykite shoutbox_archive.php ir susiraskite:
echo "".showdate("longdate", $data['shout_datestamp'])."";
ir po juo �terpkite:
if (iMEMBER && $userdata['user_id'] != $data['shout_name']) {
$leidimas = 1;
} else {
$leidimas = 0;
}
echo reitingas($data['shout_id'], "S", $leidimas, "[", "]")."\n";
9. Nari� reitingai
Jei norite padaryti, kad b�t� galima reitinguoti ir narius atsidarykite profile.php ir susiraskite:
echo "\n";
echo "".getuserlevel($user_data['user_level'])."\n";
echo "\n";
Po apa�ia �terpkite:
if (iMEMBER && $userdata['user_id'] != $user_data['user_id']) {
$leidimas = 1;
} else {
$leidimas = 0;
}
echo "\n\n";
echo "".reitingas($user_data['user_id'], "N", $leidimas, "", "")."\n";
echo "\n";
10. Siuntiniai, straipsniai, naujienos
Jei norite �prastu siuntini�, straipnsi� ir naujien� reitingus pakeist � AJAX +1/-1, skaitykite toliau.
Pradedam nuo siuntini�
Jei naudojate siuntinius be joki� mod�, atsidarykite fail� downloads.php ir susiraskite:
echo "\n".$data['download_title']." $new\n\n";
Ir pakeiskite �:
echo "\n".$data['download_title']." $new ".reitingas($data['download_id'], "D", 1, "[", "]")."\n\n";
Jei naudojate Download System mSF For PHP-fusion v7.xx atsidarykite downloads.php ir susiraskite (ar ka?k� pana?aus):
if ($data['download_allow_ratings']) {
echo "".$locale['DS112']."
\n";
}
Pakeiskite �:
if (iMEMBER && $userdata['user_id'] != $data['download_user']) {
$leidimas = 1;
} else {
$leidimas = 0;
}
if ($data['download_allow_ratings']) {
echo "".$locale['DS112']." ".reitingas($data['download_id'], "D", $leidimas)."\n";
}";
Toliau susiraskite:
echo "".$data['download_title']."\n\n";
Ir pakeiskite �:
if (IMEMBER && $userdata['user_id'] != $data['download_user']) {
$leidimas = 1;
} else {
$leidimas = 0;
}
echo "".$data['download_title']." ".reitingas($data['download_id'], "D", $leidimas, "[", "]")."\n\n";
Straipsniai
Atsidarykite articles.php ir susiraskite:
render_article($article_subject, $article[$_GET['rowstart']], $article_info);
Ir pakeiskite �:
render_article($subject, $article[$_GET['rowstart']], $article_info, $data['article_id'], $data['article_name']);
Dabar jei bandysite �eiti � straipsnius mes klaid�, bet nieko baisaus.
Atsidarykite fail� themes/jusu_tema/theme.php ir susiraskite:
function render_article($subject, $article, $info) {
Pakeiskite �:
function render_article($subject, $article, $info, $id, $user) {
global $userdata;
Toliau susiraskite (ar k� nors pan., �ia priklauso nuo temos, bus truputi ?emiau nei render_article):
echo "\n";
Prie? j� �terpkite:
if ($userdata['user_id'] != $user) {
$leidimas = 1;
} else {
$leidimas = 0;
}
echo "Reitingas: ".reitingas($id, "A", $leidimas, "", "")."\n\n\n";
Naujienos
Su naujienomis viskas labai pan?u kaip ir su straipsniais. Atsidarykite news.php ir susiraskite (2 vietose):
render_news($news_subject, $news_news, $news_info);
Ir pakeiskite � (2 vietose):
render_news($news_subject, $news_news, $news_info, $data['news_id'], $data['news_name']);
Kaip ir su straipsniais dabar gali mesti klaid�.
V�l atsidarykite themes/jusu_tema/theme.php ir dabar susiraskite:
function render_news($subject, $news, $info) {
Keiskite �:
function render_news($subject, $news, $info, $id, $user) {
global $userdata;
Truput� ?emiau susiraskite ka?k� pana?aus �:
echo "\n";
Ir prie? j� �terpkite:
if ($userdata['user_id'] != $user) {
$leidimas = 1;
} else {
$leidimas = 0;
}
echo "Reitingas: ".reitingas($id, "E", $leidimas, "", "")."\n\n\n";
Dabar jei norite, kad siuntiniuose (jei naudojate DSmSF), straipsniuose ir naujienose nelikt� sen� reiting�, atsidarykite failus downloads.php (jei naudojate DSmSF), articles.php ir news.php, ie?kokite eilu�i�, kuriose yra showratings (kiekvienam faile bus po vien�) ir jas i?trinkite arba u?komentuokite (jei ne?inote kaip u?komentuoti, tai tos eilut�s prad?ioje para?ykite //).
11. Gaut� reiting� vidurkio rodymas profilyje
�domu ?inoti kaip vertinami kokio nors nario komentarai, ?inut�s ir kita, kam naudojate ?iuos reitingus? Galime � nario profil� prid�ti gaut� reiting� vidurk�. Atsidarykite aplankal� includes/user_fields/ ir sukurkite du failus: user_reitingas_include.php ir user_reitingas_include_var.php. � user_reitingas_include.php �ra?ykite:
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright � 2002 - 2008 Nick Jones
| http://www.php-fu...
+--------------------------------------------------------+
| Filename: user_reitingas_include.php
| Author: Rinas
| http://rinas.cesa...
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licen... Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
if (!defined("IN_FUSION")) { die("Access Denied"); }
if ($profile_method == "input") {
//Tuscia
} elseif ($profile_method == "display") {
$reitingai = dbresult(dbquery("SELECT SUM(reitingas_balsas) FROM ".$db_prefix."reitingai WHERE reitingas_nariui='".$user_data['user_id']."'"), 0);
$reitingai == "" ? $reitingai = 0 : "";
if ($reitingai > 0) {
$stilius = "color: #009900;";
} elseif ($reitingai < 0) {
$stilius = "color: #990000;";
} else {
$stilius = "";
}
echo "\n";
echo "Gaut� reiting� vidurkis\n";
echo "".$reitingai."\n";
echo "\n";
} elseif ($profile_method == "validate_insert") {
//Tuscia
} elseif ($profile_method == "validate_update") {
//Tuscia
}
?>
� user_reitingas_include_var.php �ra?ykite:
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright � 2002 - 2008 Nick Jones
| http://www.php-fu...
+--------------------------------------------------------+
| Filename: user_reitingas_include_var.php
| Author: Rinas
| http://rinas.cesa...
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licen... Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
if (!defined("IN_FUSION")) { die("Access Denied"); }
$user_field_name = "Reitingai";
$user_field_desc = "Gaut� reiting� vidurkis";
$user_field_dbname = "user_reitingas";
$user_field_group = 4;
$user_field_dbinfo = "";
?>
Dabar eiki � admin panel�>Vartotoj� administravim�>Vartotoj� laukelius ir prid�kite laukel� pavadinimu �Reitingai�.
12. Panel� �TOP nariai�
Dar galite susikurti panel�, kurioje bus rodomi TOP nariai pagal gautus reitingus ir pagal nario reiting�. Per admin panel� prid�kite ?onin� panel� su tokiu turiniu:
$reitingas = 1; //1 - rodomas nariu TOP pagal reitinga, 0 - nerodomas nariu TOP pagal reitinga
openside("TOP nariai");
if ($reitingas == 1) {
echo "
$result = dbquery("SELECT user_id, user_name FROM ".$db_prefix."reitingai
LEFT JOIN ".DB_USERS." ON reitingas_nariui=user_id
WHERE reitingas_tipas='N'
GROUP BY user_id ORDER BY SUM(reitingas_balsas) DESC LIMIT 0,5");
if (dbrows($result)) {
while ($data = dbarray($result)) {
$reitingas = dbresult(dbquery("SELECT SUM(reitingas_balsas) FROM ".$db_prefix."reitingai WHERE reitingas_nariui='".$data['user_id']."' && reitingas_tipas='N'"), 0);
$reitingas == "" ? $reitingas = 0 : "";
echo "
}
}
$limit = "0,5";
} else {
$limit = "0,10";
}
echo "
$result = dbquery("SELECT user_id, user_name FROM ".$db_prefix."reitingai
LEFT JOIN ".DB_USERS." ON reitingas_nariui=user_id
GROUP BY user_id ORDER BY SUM(reitingas_balsas) DESC LIMIT ".$limit);
if (dbrows($result)) {
while ($data = dbarray($result)) {
$reitingas = dbresult(dbquery("SELECT SUM(reitingas_balsas) FROM ".$db_prefix."reitingai WHERE reitingas_nariui='".$data['user_id']."'"), 0);
$reitingas == "" ? $reitingas = 0 : "";
echo "
}
}
closeside();
Na va straipsniukas baigtas, jei kyla problem� klauskite :)
Pradėkime darbą.
1. DB lentelės sukūrimas
Susikurkite reitingų lentelę. Tai galite padaryti į pridėtinius puslapius įrašydami šį kodą ir spausdami peržiūrėti.
$result = dbquery("
CREATE TABLE IF NOT EXISTS ".$db_prefix."reitingai (
reitingas_id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
reitingas_daikto_id mediumint(8) unsigned NOT NULL,
reitingas_tipas char(2) COLLATE utf8_lithuanian_ci NOT NULL,
reitingas_narys mediumint(8) unsigned NOT NULL,
reitingas_balsas varchar(2) COLLATE utf8_lithuanian_ci NOT NULL,
reitingas_data int(10) unsigned NOT NULL,
reitingas_nariui mediumint(8) unsigned NOT NULL,
PRIMARY KEY (reitingas_id), KEY (reitingas_tipas), KEY (reitingas_daikto_id)
) ENGINE=MyISAM
");
/*
reitingas_id - unikalus reitingo ID
reitingas_daikto_id - zinutes, komentaro, nario ar dar ko ID kas gavo reitinga
reitingas_tipas - reitingo daikto tipas, pvz S = saukykla, K = komentarai ir t.t.
reitingas_narys - narys, kuris dave reitinga
reitingas_balsas - reitingas 1 arba -1
reitingas_data - reitingo davimo data
reitingas_nariui - zinutes, komentaro ar pan. autorius, reikalinga, kad butu patogiau suskaiciuoti nario gautus reitingus, ju vidurki, jei to nereikia, sio laukelio galite nerasyti
*/
?>
2. JS failo kūrimas
Dabar jums reikia sukurti JS funkcija, kuri bus iškviečiama reitinguojant. Aplankale includes sukurkite fail� reitingas.js ir � j� �ra?ykite (tik pasikeiskite savo tinklapio adres�, ten kur pary?kinau):
var xmlhttp;
function reit(balsas, daiktas, tipas)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
{
alert ('Nar?ykl� nepalaiko HTTP Request');
return;
}
var reit = document.getElementById('txt'+tipas+daiktas);
var vertint = document.getElementById('vertint'+tipas+daiktas);
if (balsas == 1) {
reit.innerHTML = (parseInt(reit.innerHTML) +1);
} else if (balsas == 0) {
reit.innerHTML = (parseInt(reit.innerHTML) -1);
}
if (reit.innerHTML > 0) {
reit.style.color = '#009900';
} else if (reit.innerHTML < 0) {
reit.style.color = '#990000';
} else {
reit.style.color = '#555';
}
vertint.style.display = 'none';
xmlhttp.open('get', 'http://www.jusutinklapis.lt/includes/reitingas.php?balsas='+balsas+'&daiktas='+daiktas+'&tipas='+tipas);
xmlhttp.send(null);
}
function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
{
//Kodas normalioms narsyklems
return new XMLHttpRequest();
}
if (window.ActiveXObject)
{
//Kodas seniems IE
return new ActiveXObject('Microsoft.XMLHTTP');
}
return null;
}
Dabar atsidarykite fail� themes/templates/header.php ir prie? echo "\n\n"; �terpkite:
echo "\n";
3. Reitingo stilius
Atsidarykite fail� themes/jusu_tema/styles.css ir prie? a.side �terpkite (spalvas galite pasiderinti pagal save, kad tikt� prie dizaino):
a.plius {
font-size: 10px;
color: #009900;
text-decoration: none;
}
a:hover.plius {
font-size: 10px;
color: #00cc00;
text-decoration: none;
}
a.minus {
font-size: 10px;
color: #990000;
text-decoration: none;
}
a:hover.minus {
font-size: 10px;
color: #cc0000;
text-decoration: none;
}
4. PHP failo, kuris �terps reiting� � DB k�rimas
Dabar jau turite pagalvoti kur naudosite reitingus. Atsidarykite includes aplankal� ir jame sukurkite fail� reitingas.php:
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (C) 2002 - 2008 Nick Jones
| http://www.php-fu...
+--------------------------------------------------------+
| AJAX zinuciu, komentaru, nariu ir kt. reitingai
| Filename: reitingas.php
| Author: Rinas
| WEB: http://rinas.cesa...
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licen... Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
header("Cache-Control: no-cache");
header("Pragma: nocache");
require_once "../maincore.php";
header("Content-Type: text/html; charset=".$locale['charset']."");
if (iMEMBER) {
if (isset($_GET['balsas']) && isNum($_GET['balsas']) && isset($_GET['tipas']) && isset($_GET['daiktas']) && isNum($_GET['daiktas'])) {
$balsas = ($_GET['balsas'] == 1 ? "1" : "-1");
$tipas = stripinput($_GET['tipas']);
$daiktas = $_GET['daiktas'];
$url = (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : BASEDIR."index.php");
$result = dbquery("
SELECT
reitingas_id
FROM
".$db_prefix."reitingai
WHERE
reitingas_narys='".$userdata['user_id']."'
AND
reitingas_tipas='".$tipas."' AND reitingas_daikto_id='".$daiktas."'
");
if ($tipas == "K") { //Komentarai
$result10 = dbquery("SELECT comment_id FROM ".$db_prefix."comments WHERE comment_name='".$userdata['user_id']."' AND comment_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 1;
} else {
$leidimas = 0;
}
$result10 = dbquery("SELECT comment_name FROM ".$db_prefix."comments WHERE comment_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 0;
} else {
$data = dbarray($result10);
$nariui = $data['comment_name'];
}
} elseif ($tipas == "F") { //Forumas
$result10 = dbquery("SELECT post_id FROM ".$db_prefix."posts WHERE post_author='".$userdata['user_id']."' AND post_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 1;
} else {
$leidimas = 0;
}
$result10 = dbquery("SELECT post_author FROM ".$db_prefix."posts WHERE post_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 0;
} else {
$data = dbarray($result10);
$nariui = $data['post_author'];
}
} elseif ($tipas == "S") { //Saukykla
$result10 = dbquery("SELECT shout_id FROM ".$db_prefix."shoutbox WHERE shout_name='".$userdata['user_id']."' AND shout_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 1;
} else {
$leidimas = 0;
}
$result10 = dbquery("SELECT shout_name FROM ".$db_prefix."shoutbox WHERE shout_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 0;
} else {
$data = dbarray($result10);
$nariui = $data['shout_name'];
}
} elseif ($tipas == "N") { //Nariai
if ($userdata['user_id'] != $daiktas) {
$leidimas = 1;
} else {
$leidimas = 0;
}
$nariui = $daiktas;
}
if ((dbrows($result) == 0) && ($leidimas == 1)) {
$addresult = dbquery("
INSERT INTO
".$db_prefix."reitingai
(reitingas_narys, reitingas_tipas, reitingas_daikto_id, reitingas_balsas, reitingas_data, reitingas_nariui)
VALUES
('".$userdata['user_id']."', '".$tipas."', '".$daiktas."', '".$balsas."', '".time()."', '".$nariui."')
");
}
}
}
redirect($url);
?>
Jeigu nusprend�te ?iuos reitingus naudoti ne tik nariams, ?inut�ms ir komentarams, bet ir siuntiniams, straipsniams, naujienoms po:
} elseif ($tipas == "N") { //Nariai
if ($userdata['user_id'] != $daiktas) {
$leidimas = 1;
} else {
$leidimas = 0;
}
$nariui = $daiktas;
}
Prid�kite (tik nepamir?kite nustatyti $ds = 1; jei naudojate Download System mSF For PHP-fusion v7.xx):
elseif ($tipas == "D") { //Siuntiniai
$ds = 0; //Nustatykite 1, jei naudojate Download System mSF For PHP-fusion v7.xx, kitaip 0
if ($ds == 1) {
$result10 = dbquery("SELECT download_id FROM ".DB_DOWNLOADS." WHERE download_user='".$userdata['user_id']."' AND download_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 1;
} else {
$leidimas = 0;
}
$result10 = dbquery("SELECT download_user FROM ".DB_DOWNLOADS." WHERE download_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 0;
} else {
$data = dbarray($result10);
$nariui = $data['download_user'];
}
} else {
$result = dbquery("SELECT download_id FROM ".DB_DOWNLOADS." WHERE download_id='".$daiktas."'");
if (dbrows($result)) {
$leidimas = 1;
$nariui = 0;
} else {
$leidimas = 0;
}
}
} elseif ($tipas == "E") { //Naujienos
$result10 = dbquery("SELECT news_id FROM ".DB_NEWS." WHERE news_name='".$userdata['user_id']."' AND news_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 1;
} else {
$leidimas = 0;
}
$result10 = dbquery("SELECT news_name FROM ".DB_NEWS." WHERE news_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 0;
} else {
$data = dbarray($result10);
$nariui = $data['news_name'];
}
} elseif ($tipas == "A") { //Straipsniai
$result10 = dbquery("SELECT article_id FROM ".DB_ARTICLES." WHERE article_name='".$userdata['user_id']."' AND article_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 1;
} else {
$leidimas = 0;
}
$result10 = dbquery("SELECT article_name FROM ".DB_ARTICLES." WHERE article_id='".$daiktas."'");
if (dbrows($result10) == 0) {
$leidimas = 0;
} else {
$data = dbarray($result10);
$nariui = $data['article_name'];
}
} else {
$leidimas = 0;
}
Jei j�s turite kok� nors mod�, kuriam irgi norite pritaikyti ?iuos reitingus, bet nemokate, ra?ykite man forume arba PM ir a? pritaikysiu.
5. Reitingo funkcijos k�rimas
Dabar atsidarykite maincore.php ir pa�ioje pabaigoje, bet prie? ?> �terpkite:
function reitingas($daiktas, $tipas, $leidimas, $tags1 = "", $tags2 = "") {
global $db_prefix, $userdata;
$reitingas = dbresult(dbquery("SELECT SUM(reitingas_balsas) FROM ".$db_prefix."reitingai WHERE reitingas_daikto_id='".$daiktas."' && reitingas_tipas='".$tipas."'"), 0);
$reitingas == "" ? $reitingas = 0 : "";
if ($reitingas > 0) {
$spalva = "009900";
} elseif ($reitingas < 0) {
$spalva = "990000";
} else {
$spalva = 0;
}
$return = $tags1.($spalva != 0 ? "" : "").$reitingas."".$tags2."\n";
if ($leidimas == 1 && !dbcount("(reitingas_id)", $db_prefix."reitingai", "reitingas_daikto_id='".$daiktas."' AND reitingas_narys='".$userdata['user_id']."' AND reitingas_tipas='".$tipas."'")) {
$return .= ">+ >-\n";
}
return $return;
}
6. Komentar� reitingai
Dabar prasideda man labiausiai nepatinkantis darbas. Prad�kite nuo komentar�. Atsidarykite savo komentar� fail�, jei nenaudojate jokio modo jis yra includes/comments_include.php. � viet�, kurioje norite, kad b�t� rodomas reitingas ra?ykite, a? si�lau d�ti prie datos, taigi susiraskite ka?k� pana?aus �
echo "".$locale['global_071'].showdate("longdate", $data['comment_datestamp'])."\n";
ir po ta eilute �terpkite:
if (iMEMBER && $userdata['user_id'] != $data['comment_name']) {
$leidimas = 1;
} else {
$leidimas = 0;
}
echo reitingas($data['comment_id'], "K", $leidimas, "[", "]");
7. Forumo ?inu�i� reitingai
Jeigu naudojate forum� be joki� mod� atsidarykite fail� forum/viewthread.php, jei naudojate fusionboard4 (d�l kit� versij� neesu tikras) failas bus infusions/fusionboard4/includes/views/jusu_forumo_dizainas.php (vietoj jusu_forumo_dizainas turi b�ti toks pavadinimas, kok� dizain� esate pasirink�.
Jei naudojate forum� be mod�, susiraskite (arba ka?k� pana?aus):
echo "\n";
Ir keiskite �:
echo "
#".($current_row+$_GET['rowstart'])."";
echo "
\n";
if (iMEMBER && $userdata['user_id'] != $data['post_author']) {
$leidimas = 1;
} else {
$leidimas = 0;
}
echo " ".reitingas($data['post_id'], "F", $leidimas, "[", "]")."
\n";echo "
if (iMEMBER && $userdata['user_id'] != $data['post_author']) {
$leidimas = 1;
} else {
$leidimas = 0;
}
echo " ".reitingas($data['post_id'], "F", $leidimas, "[", "]")."
Jei naudojate fusionboard4, susiraskite:
if ($data['post_edittime'] != "0") {
$r = dbquery("select * from ".$db_prefix."fb_posts where post_id='".$data['post_id']."'");
if(dbrows($r)){ $d = dbarray($r); $edit_reason = $d['post_editreason'];
} else { $edit_reason = ""; }
echo " if(isset($edit_reason) && $edit_reason !== ""){ echo " title='header=[".$locale['fb502']."] body=[$edit_reason]'"; }
echo "> | ".$locale['508']."
".$data['edit_name']." ".timePassed($data['post_edittime'], false);
echo "\n";
}
Ir po juo �terpkite:
if (iMEMBER && $userdata['user_id'] != $data['post_author']) {
$leidimas = 1;
} else {
$leidimas = 0;
}
echo reitingas($data['post_id'], "F", $leidimas, "[", "]")."\n";
8. ?aukyklos ?inu�i� reitingai
Atsiidarykite fail� infusions/shoutbox_panel/shoutbox_panel.php ir susiraskite:
echo "
".showdate("shortdate", $data['shout_datestamp'])."
";Pakeiskite �:
echo "
".showdate("shortdate", $data['shout_datestamp']);
if (iMEMBER && $userdata['user_id'] != $data['shout_name']) {
$leidimas = 1;
} else {
$leidimas = 0;
}
echo reitingas($data['shout_id'], "S", $leidimas, "[", "]")."\n";
echo "
";if (iMEMBER && $userdata['user_id'] != $data['shout_name']) {
$leidimas = 1;
} else {
$leidimas = 0;
}
echo reitingas($data['shout_id'], "S", $leidimas, "[", "]")."\n";
echo "
Tada atsidarykite shoutbox_archive.php ir susiraskite:
echo "".showdate("longdate", $data['shout_datestamp'])."";
ir po juo �terpkite:
if (iMEMBER && $userdata['user_id'] != $data['shout_name']) {
$leidimas = 1;
} else {
$leidimas = 0;
}
echo reitingas($data['shout_id'], "S", $leidimas, "[", "]")."\n";
9. Nari� reitingai
Jei norite padaryti, kad b�t� galima reitinguoti ir narius atsidarykite profile.php ir susiraskite:
echo "\n";
echo "".getuserlevel($user_data['user_level'])."\n";
echo "\n";
Po apa�ia �terpkite:
if (iMEMBER && $userdata['user_id'] != $user_data['user_id']) {
$leidimas = 1;
} else {
$leidimas = 0;
}
echo "\n\n";
echo "".reitingas($user_data['user_id'], "N", $leidimas, "", "")."\n";
echo "\n";
10. Siuntiniai, straipsniai, naujienos
Jei norite �prastu siuntini�, straipnsi� ir naujien� reitingus pakeist � AJAX +1/-1, skaitykite toliau.
Pradedam nuo siuntini�
Jei naudojate siuntinius be joki� mod�, atsidarykite fail� downloads.php ir susiraskite:
echo "\n".$data['download_title']." $new\n\n";
Ir pakeiskite �:
echo "\n".$data['download_title']." $new ".reitingas($data['download_id'], "D", 1, "[", "]")."\n\n";
Jei naudojate Download System mSF For PHP-fusion v7.xx atsidarykite downloads.php ir susiraskite (ar ka?k� pana?aus):
if ($data['download_allow_ratings']) {
echo "".$locale['DS112']."
.".gif)
}
Pakeiskite �:
if (iMEMBER && $userdata['user_id'] != $data['download_user']) {
$leidimas = 1;
} else {
$leidimas = 0;
}
if ($data['download_allow_ratings']) {
echo "".$locale['DS112']." ".reitingas($data['download_id'], "D", $leidimas)."\n";
}";
Toliau susiraskite:
echo "".$data['download_title']."\n\n";
Ir pakeiskite �:
if (IMEMBER && $userdata['user_id'] != $data['download_user']) {
$leidimas = 1;
} else {
$leidimas = 0;
}
echo "".$data['download_title']." ".reitingas($data['download_id'], "D", $leidimas, "[", "]")."\n\n";
Straipsniai
Atsidarykite articles.php ir susiraskite:
render_article($article_subject, $article[$_GET['rowstart']], $article_info);
Ir pakeiskite �:
render_article($subject, $article[$_GET['rowstart']], $article_info, $data['article_id'], $data['article_name']);
Dabar jei bandysite �eiti � straipsnius mes klaid�, bet nieko baisaus.
Atsidarykite fail� themes/jusu_tema/theme.php ir susiraskite:
function render_article($subject, $article, $info) {
Pakeiskite �:
function render_article($subject, $article, $info, $id, $user) {
global $userdata;
Toliau susiraskite (ar k� nors pan., �ia priklauso nuo temos, bus truputi ?emiau nei render_article):
echo "\n";
Prie? j� �terpkite:
if ($userdata['user_id'] != $user) {
$leidimas = 1;
} else {
$leidimas = 0;
}
echo "Reitingas: ".reitingas($id, "A", $leidimas, "", "")."\n\n\n";
Naujienos
Su naujienomis viskas labai pan?u kaip ir su straipsniais. Atsidarykite news.php ir susiraskite (2 vietose):
render_news($news_subject, $news_news, $news_info);
Ir pakeiskite � (2 vietose):
render_news($news_subject, $news_news, $news_info, $data['news_id'], $data['news_name']);
Kaip ir su straipsniais dabar gali mesti klaid�.
V�l atsidarykite themes/jusu_tema/theme.php ir dabar susiraskite:
function render_news($subject, $news, $info) {
Keiskite �:
function render_news($subject, $news, $info, $id, $user) {
global $userdata;
Truput� ?emiau susiraskite ka?k� pana?aus �:
echo "\n";
Ir prie? j� �terpkite:
if ($userdata['user_id'] != $user) {
$leidimas = 1;
} else {
$leidimas = 0;
}
echo "Reitingas: ".reitingas($id, "E", $leidimas, "", "")."\n\n\n";
Dabar jei norite, kad siuntiniuose (jei naudojate DSmSF), straipsniuose ir naujienose nelikt� sen� reiting�, atsidarykite failus downloads.php (jei naudojate DSmSF), articles.php ir news.php, ie?kokite eilu�i�, kuriose yra showratings (kiekvienam faile bus po vien�) ir jas i?trinkite arba u?komentuokite (jei ne?inote kaip u?komentuoti, tai tos eilut�s prad?ioje para?ykite //).
11. Gaut� reiting� vidurkio rodymas profilyje
�domu ?inoti kaip vertinami kokio nors nario komentarai, ?inut�s ir kita, kam naudojate ?iuos reitingus? Galime � nario profil� prid�ti gaut� reiting� vidurk�. Atsidarykite aplankal� includes/user_fields/ ir sukurkite du failus: user_reitingas_include.php ir user_reitingas_include_var.php. � user_reitingas_include.php �ra?ykite:
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright � 2002 - 2008 Nick Jones
| http://www.php-fu...
+--------------------------------------------------------+
| Filename: user_reitingas_include.php
| Author: Rinas
| http://rinas.cesa...
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licen... Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
if (!defined("IN_FUSION")) { die("Access Denied"); }
if ($profile_method == "input") {
//Tuscia
} elseif ($profile_method == "display") {
$reitingai = dbresult(dbquery("SELECT SUM(reitingas_balsas) FROM ".$db_prefix."reitingai WHERE reitingas_nariui='".$user_data['user_id']."'"), 0);
$reitingai == "" ? $reitingai = 0 : "";
if ($reitingai > 0) {
$stilius = "color: #009900;";
} elseif ($reitingai < 0) {
$stilius = "color: #990000;";
} else {
$stilius = "";
}
echo "\n";
echo "Gaut� reiting� vidurkis\n";
echo "".$reitingai."\n";
echo "\n";
} elseif ($profile_method == "validate_insert") {
//Tuscia
} elseif ($profile_method == "validate_update") {
//Tuscia
}
?>
� user_reitingas_include_var.php �ra?ykite:
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright � 2002 - 2008 Nick Jones
| http://www.php-fu...
+--------------------------------------------------------+
| Filename: user_reitingas_include_var.php
| Author: Rinas
| http://rinas.cesa...
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licen... Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
if (!defined("IN_FUSION")) { die("Access Denied"); }
$user_field_name = "Reitingai";
$user_field_desc = "Gaut� reiting� vidurkis";
$user_field_dbname = "user_reitingas";
$user_field_group = 4;
$user_field_dbinfo = "";
?>
Dabar eiki � admin panel�>Vartotoj� administravim�>Vartotoj� laukelius ir prid�kite laukel� pavadinimu �Reitingai�.
12. Panel� �TOP nariai�
Dar galite susikurti panel�, kurioje bus rodomi TOP nariai pagal gautus reitingus ir pagal nario reiting�. Per admin panel� prid�kite ?onin� panel� su tokiu turiniu:
$reitingas = 1; //1 - rodomas nariu TOP pagal reitinga, 0 - nerodomas nariu TOP pagal reitinga
openside("TOP nariai");
if ($reitingas == 1) {
echo "
Pagal reiting�
\n";$result = dbquery("SELECT user_id, user_name FROM ".$db_prefix."reitingai
LEFT JOIN ".DB_USERS." ON reitingas_nariui=user_id
WHERE reitingas_tipas='N'
GROUP BY user_id ORDER BY SUM(reitingas_balsas) DESC LIMIT 0,5");
if (dbrows($result)) {
while ($data = dbarray($result)) {
$reitingas = dbresult(dbquery("SELECT SUM(reitingas_balsas) FROM ".$db_prefix."reitingai WHERE reitingas_nariui='".$data['user_id']."' && reitingas_tipas='N'"), 0);
$reitingas == "" ? $reitingas = 0 : "";
echo "
".trimlink($data['user_name'], 25)." [".$reitingas."]
\n";}
}
$limit = "0,5";
} else {
$limit = "0,10";
}
echo "
Pagal gaut� reiting� vidurk�
\n";$result = dbquery("SELECT user_id, user_name FROM ".$db_prefix."reitingai
LEFT JOIN ".DB_USERS." ON reitingas_nariui=user_id
GROUP BY user_id ORDER BY SUM(reitingas_balsas) DESC LIMIT ".$limit);
if (dbrows($result)) {
while ($data = dbarray($result)) {
$reitingas = dbresult(dbquery("SELECT SUM(reitingas_balsas) FROM ".$db_prefix."reitingai WHERE reitingas_nariui='".$data['user_id']."'"), 0);
$reitingas == "" ? $reitingas = 0 : "";
echo "
".trimlink($data['user_name'], 25)." [".$reitingas."]
\n";}
}
closeside();
Na va straipsniukas baigtas, jei kyla problem� klauskite :)
Rašyti komentarą
Turite prisijungti, norėdami parašyti komentarą.
B) 8-) geras darbas...
Jo tikrai ;D
Čia tik atrodo, kad daug darbo. Ištikrųjų jei viskas be problemų einas per kokias 15-20min ir gali pasidaryt tą sistemą ;)
cia per 5 min surasai surasai vsio dar su tokiu tiksliu aprasymu :D
Man meta: Warning: Missing argument 2 for dbresult(), called in
Man �domu, kaip padaryt, kad matytum kas reitingavo.
nei profilio nei forumo neveik� nors dariau visk� kaip para?yta...
Kas gali b�ti duodu prane?imui + bet padarau refres weba jis dinksta ?
nebloga sistema :)