4images Forum & Community
4images Modifications / Modifikationen => Mods & Plugins (Requests & Discussions) => Topic started by: magic on October 15, 2002, 11:09:49 PM
-
Hallo!
Ist es auf einfache Weise möglich, das Template rate_form.html nach abgegebener Bewertung für das jeweilige dieses Bild auszublenden?
Wäre schön, wenn mal jemand antworten könnte.
Auch wenn die Antwort negativ ausfällt.
Vielen Dank.
Beste Grüsse,
Magic
-
Probiere mal das:
Öffne "includes/functions.php" und ersetze:
$rate_form = "";
if (check_permission("auth_vote", $image_row['cat_id'])) {
mit:
$rated_imgs = $site_sess->get_session_var("rated_imgs");
$split_list = explode(" ", $rated_imgs);
$rate_form = "";
if (check_permission("auth_vote", $image_row['cat_id']) && !in_array($image_row['image_id'], $split_list)) {
Jan
-
Juchu ...
Vielen Dank, Jan.
Hat geklappt, super. :D
Beste Gruesse,
Magic
-
Hallo zusammen,
das Ausblenden klappt. Wenn der User sich aber ab und wieder neu anmeldet, kommt es wieder.
Kann man irgendwo einstellen, das es immer ausgeblendet bleibt, wenn ein User ein Bild bewertet hat?
Danke im voraus
-
Die IP Sperre würde auch nicht gewünschten Erfolg bringen.
Ich habe in der Datenbank eine neue Tabelle angelegt, dort wird gespeichert, welcher User für welches Bild votet.
Wenn er erneut voten will, wird die Tabelle ausgelesen und es kommt die Meldung:
Du hast dieses Bild schon bewertet.
Somit ist eine Mehrfachbewertung ausgeschlossen.
Gruß Uwe
-
wo muß man etwas ändern, damit der user anstelle des rate_form eine nachricht sieht, z.b. "Du hast dieses Bild schon bewertet, und zwar eine 5 (1 schlecht - 5 super)" ?
-
Also das asublenden funktioniert wie oben erwähnt...
Aber es mus zumindest bei der Version 1.7 noch eine andere Möglichkeit geben!
Da, wenn ich ein zweites Mal meine Bewertung abgeben will, folgende Meldung erscheint:
31 neu
--------------------------------------------------------------------------------
Sie haben dieses Bild bereits bewertet!
Aber ich finde die Stelle nicht, wo das überprüft wird...
Ich habe die Galerie erst seit ein paar Tagen und finde mich noch nicht so recht zu recht...
Auch wenn es sehr gut gecodet wurde!
Lob an die Programmierer!
Hat jemand eine Idee, wo und wie diese Meldung entsteht... Ich komme nicht weiter...
Mike
-
Hallo zusammen,
die oben, von mir genannte, Möglichkeit hat sich leider nicht bewährt.
Die Tabelle wurde immer größer und die Zeit für die Abfragen immer länger.
Hier versuche ich zu zeigen, wie man das Mehrfachbewerten verhindern kann, indem das Formular ausgeblendet wird.
Benötigt wird auf jeden Fall ein neues Feld in der Datenbank bei 4images_images.
Legt zunächst ein neues Feld am Ende der Tabelle 4images_images an.
Nennt dieses Feld z.B. :
voters
TYP Text
In dieses Feld werden wir eintragen, wenn jemand ein Bild bewertet.
Wenn später ein Bild aufgerufen wird, wird diese Spalte ausgelesen und das rate_formular verschwindet, wenn der User schon bewertet hat.
im Ordner includes findet Ihr die Datei:
page_header.php
In Zeile 245 steht:
update_image_rating($id, $rating);
Bitte ändern in:
update_image_rating($id, $rating, $user_info['user_name']);
in der functions.php Zeile 525 steht:
function update_image_rating($image_id, $rating) {
Bitte ändern in:
function update_image_rating($image_id, $rating, $user) {
Zeile 527:
$sql = "SELECT cat_id, image_votes, image_rating
Bitte ändern in:
$sql = "SELECT cat_id, image_votes, image_rating, voters
Unter Zeile 535 $old_rating einfügen:
$old_voters = $image_row['voters'];
$new_voters = $old_voters.",".$user;
Zeile 539:
SET image_votes = ($old_votes + 1), image_rating = '$new_rating'
Bitte ändern in:
SET image_votes = ($old_votes + 1), image_rating = '$new_rating', voters = '$new_voters'
Ab jetzt sollte in der Datenbank bei jedem Bild stehen, wer schon bewertet hat.
Fehlt noch das Auslesen.
Öffne die details.php
in Zeile 46 steht:
$sql = "SELECT i.image_id, i.cat_id, i.us..................
Füge i.voters hinzu:
$sql = "SELECT i.voters, i.image_id, i.cat_id, i.us..........
Füge nach Zeile 485, unmittelbar vor Clickstream folgendes ein:
if (strpos($image_row['voters'], $user_info['user_name'])) $site_template->register_vars("rate_form", "");
Fertig. Ich hoffe es klappt alles. Habe es gerade nochmal so geteset, es dürften keine Fehler auftauchen. Garantie übernehme ich aber trotzdem nicht. ;)
Immer wenn ein User ein Bild schon bewertet hat, wird das Formular ausgeblendet. Egal ob er die Cookies löscht oder nicht.
-
Was mich etwas verwirrt, das 4images 1.7 es schon irgendwie sich merkt, wer bei welchen Bild eine Bewertung abgegeben hat und das hält länger als eine Session...
Aber ich finde es nicht...
Weder im Code noch in der DB...
Hat das jemand schon gefunden?
Mike
-
Hi Mike,
im Cookie.
Lösche mal die Temporary Internet Files und die Cookies.
Danach kannst Du wieder bewerten.
Geschrieben wird das wohl in der page_header.php (im Ordner includes)
Ab Zeile 226 unter Save Rating.
-
Hi @teddy,
habe es mal eingebaut und geht alles "Danke"
Bany
-
Also Danke für all die Unterstützung!
Es klappt alles wunderbar!
Mike
-
Ich habe den Code-Schnippsel auch eingebaut, aber wo sehe ich jetzt, wer gevotet hat.
Grüsse PetraK
Ausserdem wird das Formular nicht ausgeblendet, wenn ich ein zweites Mal vote.
Noch eine Frage, und zwar, an welcher Stelle in der details.php wird der Code:
if (strpos($image_row['voters'], $user_info['user_name'])) $site_template->register_vars("rate_form", "");
eingefügt???
-
also ich verwende die 1.7.1 version und da ist es nicht mehr notwendig so umständlich das mehrfachbewerten abzustellen. da geht es nämlich von grund auf schon nicht und das ist dann auch unabhängig von ip oder cache. denke mal dass da die user ID gespeichert wird und sobald diese dann nochmal versucht das bild zu bewerten kommt die meldung "nix da" ... oder so ähnlich :D
-
leider kann ich die neueste Version 1.7.1 nicht installieren, weil ich viele Module nachträglich installiert habe.
Ich werde mir mal heute abend die details.php, functions.php und page_header.php von der Version 1.7.1 genau anschauen und ggf. die Codes, die noch fehlen, einfügen.
-
Beispiel wenn ich mich als Admin anmelde und die Cookies lösche, dann kann ich wirklich nicht mehr bewerten. Als Gast kann ich aber wieder voten, also besteht die Möglichkeit immer noch - auch wenn die Cookies gelöscht sind - dass ich als Gast frisch, frei, weg voten kann und darf.