Ocenianie dla go?ci - rozwiazanie!
|
horus |
Dodany dnia 13.09.2006 16:52:46
|

Przedszkolak

Postów: 5
Data rejestracji: 13.09.2006 16:46
|
Heja.
Wydaje mi si?, ?e wcze?niej mia?em mo?liwo?? oceniania artyku?ów dla gos?i. Teraz mam tekst, ze ocenianie mo?liwe tylko dla zarejestrowanych uzytkowników. Gdzie to si? w??cza/wy??cza? Komentowane dziala dla gosci bez problemu. Fusion v6.01.5.
Pozdrawiam
Edytowane przez Pieka dnia 13.09.2006 20:27:36
|
|
|
|
W?cibski Go?? |
Dodany dnia 10.09.2025 17:16:30
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
IP: localhost |
|
|
Pieka |
Dodany dnia 13.09.2006 19:01:57
|


Postów: 19887 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
horus napisa?/a:
Heja.
Wydaje mi si?, ?e wcze?niej mia?em mo?liwo?? oceniania artyku?ów dla gos?i.
Masz racje, wydawalo Ci sie
Edytowane przez Pieka dnia 08.11.2007 19:26:32
Jestem jaki jestem 
|
|
|
|
slawekneo |
Dodany dnia 13.09.2006 19:12:45
|

Bywalec

Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
wejdz w includes/ratings_include.php
odnajdz
if (!iMEMBER) {
echo "<div align='center'>".$locale['r104']."</div>\n";
} elseif (isset($d_rating['rating_vote'])) {
i zamien na to
$result = dbquery("SELECT * FROM ".DB_PREFIX."ratings WHERE rating_item_id='".$rating_item_id."' AND rating_type='".$rating_type."' ORDER BY rating_ip");
$pierwsze = "";
$wynik = "";
$ip = "".USER_IP."";
while ($ipp = dbarray($result)) {
$pierwsze .= " ".$ipp['rating_ip']." ";
}
$wynik .= substr_count(strtolower($pierwsze), strtolower($ip));
if ($wynik != 0) {
echo "<div align='center'>Nie mozesz wiecej nadawac ocen !</div>\n";
} elseif ($d_rating['rating_vote']>0) {
Pozdro!!
Przyklejam i przenosze./Pieka
Edytowane przez Pieka dnia 08.11.2007 19:26:57
|
|
|
|
horus |
Dodany dnia 22.09.2006 10:43:09
|

Przedszkolak

Postów: 5
Data rejestracji: 13.09.2006 16:46
|
Dzi?kuj?.
Ale dziwnie si? u mnie zachowuje - pod FF dodaje g?osy, natomiast pod IE nie.
Jak zag?osowa?em pod ff (pojawia si? blokada ip i jest ok) to pod ie nie pojawila mi sie blokada i moglem dalej g?osowa? ale bez ?adnego efektu - jakby nie pobieral/wysy?a?
danych z/do bazy. (php 5.1.6; apache 2.2.3; mysql 5.0.24a). To tylko u mnie czy u was te??
Pozdrawiam |
|
|
|
slawekneo |
Dodany dnia 22.09.2006 13:14:10
|

Bywalec

Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
Hee to nie wina Twojego serwa tylko wersji fusiona :D
Oto kod do najnowszej wersji 6.01.5 B) (dodalem tez opcje zapisu i odczytu IP z cookie ).
W maincore.php, gdzies nad ta linia:
if (isset($_POST['login'])) {
Wklej to:
if (empty($_COOKIE['fusion_user_ip'])) {
setcookie("fusion_user_ip", "".USER_IP."", time() + 18000, "/", "", "0");
}
Zapisz i wyjdz.
Plik w includes/ratings_include.php (calosc pliku):
<?php
/*---------------------------------------------------+
| PHP-Fusion 6 Content Management System
+----------------------------------------------------+
| Copyright © 2002 - 2006 Nick Jones
| http://www.php-fusion.co.uk/
+----------------------------------------------------+
| Released under the terms & conditions of v2 of the
| GNU General Public License. For details refer to
| the included gpl.txt file or visit http://gnu.org
+----------------------------------------------------+
| Ratings system developed by CrappoMan
| email:
+----------------------------------------------------*/
if (!defined("IN_FUSION")) { header("Location: ../index.php"); exit; }
include LOCALE.LOCALESET."ratings.php";
function showratings($rating_type,$rating_item_id,$rating_link) {
global $locale,$userdata,$_COOKIE;
$result2 = dbquery("SELECT * FROM ".DB_PREFIX."ratings WHERE rating_item_id='".$rating_item_id."' AND rating_type='".$rating_type."' ORDER BY rating_ip");
$pierwsze = "";
$wynik = "";
$ip = "".USER_IP."";
$ip1 = $_COOKIE['fusion_user_ip'];
while ($ipp = dbarray($result2)) {
$pierwsze .= " ".$ipp['rating_ip']." ";
}
$wynik .= substr_count(strtolower($pierwsze), strtolower($ip));
$wynik .= substr_count(strtolower($pierwsze), strtolower($ip1));
$d_rating = dbarray(dbquery("SELECT rating_vote,rating_datestamp FROM ".DB_PREFIX."ratings WHERE rating_item_id='".$rating_item_id."' AND rating_type='".$rating_type."' AND rating_user='".$userdata['user_id']."'"));
if(iMEMBER){
if (isset($_POST['post_rating'])) {
if (isNum($_POST['rating']) && $_POST['rating'] > 0 && $_POST['rating'] < 6 && !isset($d_rating['rating_vote'])) {
$result = dbquery("INSERT INTO ".DB_PREFIX."ratings (rating_item_id, rating_type, rating_user, rating_vote, rating_datestamp, rating_ip) VALUES ('$rating_item_id', '$rating_type', '".$userdata['user_id']."', '".$_POST['rating']."', '".time()."', '".USER_IP."')");
}
redirect($rating_link);
} elseif (iMEMBER && isset($_POST['remove_rating'])) {
$result = dbquery("DELETE FROM ".DB_PREFIX."ratings WHERE rating_item_id='$rating_item_id' AND rating_type='$rating_type' AND rating_user='".$userdata['user_id']."'");
redirect($rating_link);
}
} else {
if (isset($_POST['post_rating'])) {
if ($wynik == 0) {
$result = dbquery("INSERT INTO ".DB_PREFIX."ratings (rating_item_id, rating_type, rating_user, rating_vote, rating_datestamp, rating_ip) VALUES ('$rating_item_id', '$rating_type', '".$userdata['user_id']."', '".$_POST['rating']."', '".time()."', '".USER_IP."')");
}
}
}
$ratings = array(5 => $locale['r120'], 4 => $locale['r121'], 3 => $locale['r122'], 2 => $locale['r123'], 1 => $locale['r124']);
tablebreak();
opentable($locale['r100']);
if ($wynik != 0) {
echo "<div align='center'>Nie mozesz wiecej dodawac ocen!</div>\n";
} elseif (iMEMBER && $d_rating['rating_vote']>0) {
echo "<form name='removerating' method='post' action='".$rating_link."'>
<div align='center'>".sprintf($locale['r105'], $ratings[$d_rating['rating_vote']], showdate("longdate", $d_rating['rating_datestamp']))."<br><br>
<input type='submit' name='remove_rating' value='".$locale['r102']."' class='button'></div>
</form>";
} else {
echo "<form name='postrating' method='post' action='".$rating_link."'>
<div align='center'>".$locale['r106'].": <select name='rating' class='textbox'>
<option value='0'>".$locale['r107']."</option>\n";
foreach($ratings as $rating=>$rating_info) {
echo "<option value='".$rating."'>$rating_info</option>\n";
}
echo "</select>\n";
echo "<input type='submit' name='post_rating' value='".$locale['r103']."' class='button'>
</form>\n";
}
echo "<hr>";
$tot_votes = dbcount("(rating_item_id)", "ratings", "rating_item_id='".$rating_item_id."' AND rating_type='".$rating_type."'");
if($tot_votes){
echo "<table align='center' cellpadding='0' cellspacing='1' class='tbl-border'>
<tr>
<td>
<table align='center' cellpadding='0' cellspacing='0'>\n";
foreach($ratings as $rating=>$rating_info) {
$num_votes = dbcount("(rating_item_id)", "ratings", "rating_item_id='".$rating_item_id."' AND rating_type='".$rating_type."' AND rating_vote='".$rating."'");
$pct_rating = number_format(100 / $tot_votes * $num_votes);
if ($num_votes == 0) {
$votecount = "[".$locale['r108']."]";
} elseif ($num_votes == 1) {
$votecount = "[1 ".$locale['r109']."]";
} else {
$votecount = "[".$num_votes." ".$locale['r110']."]";
}
$class = ($rating % 2==0?"tbl1":"tbl2");
echo "<tr>
<td class='$class'>$rating_info</td>
<td width='250' class='$class'><img src='".THEME."images/pollbar.gif' alt='$rating_info' height='12' width='".$pct_rating."%' class='poll'></td>
<td class='$class'>".$pct_rating."%</td>
<td class='$class'>$votecount</td>
</tr>\n";
}
echo "</td>\n</table>\n</td>\n</tr>\n</table>";
}else{
echo "<div align='center'>".$locale['r101']."</div>\n";
}
closetable();
}
?>
Zapisz i wyjdz.
Ta i to tyle :D Mozesz sie cieszyc ocenami :D
Edytowane przez Pieka dnia 30.12.2007 20:24:28
|
|
|
|
horus |
Dodany dnia 22.09.2006 15:09:32
|

Przedszkolak

Postów: 5
Data rejestracji: 13.09.2006 16:46
|
Dzia?a w FF i w IE. Sprawdza?em w lanie z innych compów!
Dzi?kuj? )))) |
|
|
|
crasch |
Dodany dnia 22.09.2006 16:51:15
|

Zaawansowany

Postów: 1473
Data rejestracji: 02.01.2005 01:21
|
Dobra robota s?awek.
..i to by by?o na tyle.
28 listopada 2006
|
|
|
|
ICEK |
Dodany dnia 30.12.2007 19:59:03
|

Bywalec

Postów: 658 Pomógł: 27
Data rejestracji: 22.09.2007 08:29
|
Witam :)
Po zastosowaniu si? do powy?szych wskazówek gdy dodaje ocen? pojawia si? taki b??d:
Warning: substr_count() [function.substr-count]: Empty substring. in /includes/ratings_include.php on line 31
Wydaje mi si?, ?e mo?e to by? spowodowane tym, ?e kod w po?cie S?awka jest do wersji 6.01.5 a przy 13 co? jest nie tak. Móg?by kto? zobaczy? co jest nie tak w tym kodzie i ewentualnie go "podrasowa?" ;)
Pozdrawiam :)
|
|
|
|
Pieka |
Dodany dnia 30.12.2007 20:17:34
|


Postów: 19887 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
ICEK napisa?/a:
..Wydaje mi si?, ?e mo?e to by? spowodowane tym, ?e kod w po?cie S?awka jest do wersji 6.01.5 a przy 13 co? jest nie tak. Móg?by kto? zobaczy? co jest nie tak w tym kodzie i ewentualnie go "podrasowa?"
Pozdrawiam
Pozwolilem sobie sprawdzic te modyfikacje na v6.01.13 i wszystko dziala poprawnie.
Prosze, sam ocen, czy mam racje: http://pieka.ugu....readmore=1
Jak zwykle diabel tkwi w szczegolach, wiec wykonaj wszystko jak zaleca autor.
Jestem jaki jestem 
|
|
|
|
ICEK |
Dodany dnia 30.12.2007 20:22:27
|

Bywalec

Postów: 658 Pomógł: 27
Data rejestracji: 22.09.2007 08:29
|
Wchodz? i od razu jest b??d:
|
|
|
|
Pieka |
Dodany dnia 30.12.2007 20:39:17
|


Postów: 19887 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
Tak sie dzieje, tylko przy bezposrednim wejsciu do komentarzy, kliknij F5 ;)
Jednak zapytalem Grzesia, co o tym mysli i prosze:
Znajdz:
$ip1 = $_COOKIE['fusion_user_ip'];
Zamien na:
if (isset($_COOKIE['fusion_user_ip'])) { $ip1 = $_COOKIE['fusion_user_ip']; }
else { $ip1 = "999.999.999.999"; }
Edytowane przez Pieka dnia 30.12.2007 20:52:26
Jestem jaki jestem 
|
|
|
|
ICEK |
Dodany dnia 30.12.2007 20:50:19
|

Bywalec

Postów: 658 Pomógł: 27
Data rejestracji: 22.09.2007 08:29
|
Czyli wszystko jest OK i mog? zostawi? juz ocenianie w spokoju ? A mi w?a?nie ca?y czas o ten b??d chodzi?o co Ci w?a?nie pokaza?em wy?ej.
|
|
|
|
Pieka |
Dodany dnia 30.12.2007 21:00:38
|


Postów: 19887 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
ICEK napisa?/a:
Czyli wszystko jest OK i mog? zostawi? juz ocenianie w spokoju ? A mi w?a?nie ca?y czas o ten b??d chodzi?o co Ci w?a?nie pokaza?em wy?ej.
Tak, spokojnie mozesz zostawic, poniewaz cookies jest tworzone podczas wejscia na strone, a przeciez nikt nie bedzie wchodzil bezposrednio do komentarzy.
Jednak mozesz zastosowac w/w poprawke i bedzie ok nawet jesli tak sie stanie.
Jestem jaki jestem 
|
|
|
|
ICEK |
Dodany dnia 30.12.2007 21:05:16
|

Bywalec

Postów: 658 Pomógł: 27
Data rejestracji: 22.09.2007 08:29
|
OK. To jeszcze ma?e pytanko Teraz to co dopisa?e? ta poprawka to j? zrobi? jeszcze do tego co pisa? S?awek? Tzn. Wszystko co S?awek + to co Ty dopisa?e? tak?
|
|
|
|
Pieka |
Dodany dnia 30.12.2007 21:06:18
|


Postów: 19887 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
ICEK napisa?/a:
OK. To jeszcze ma?e pytanko  Teraz to co dopisa?e? ta poprawka to j? zrobi? jeszcze do tego co pisa? S?awek? Tzn. Wszystko co S?awek + to co Ty dopisa?e? tak?
Po prostu zamien te linie kodu Slawka na to, co podalem.
Jednak nie jest to wymagane, poniewaz przy standardowym wchodzeniu na strone blad nie wystepuje.
Edytowane przez Pieka dnia 30.12.2007 21:07:13
Jestem jaki jestem 
|
|
|
|
ICEK |
Dodany dnia 30.12.2007 21:12:29
|

Bywalec

Postów: 658 Pomógł: 27
Data rejestracji: 22.09.2007 08:29
|
?miga jak Bolka trampki - Dzi?kuj? Niech Ci Pan Bóg to wszystko w dzieciach wynagrodzi (albo w nowym sprz?cie do kompa )
Pzdr
Edytowane przez ICEK dnia 30.12.2007 21:12:48
|
|
|