coppermine-gallery.com/forum

Support => Deutsch (German) => Language Specific Support => cpg1.4.x Deutsch (German) => Topic started by: snoopy1972fc on December 01, 2007, 12:31:27 AM

Title: Bewertete Bilder markieren?
Post by: snoopy1972fc on December 01, 2007, 12:31:27 AM
Ist es möglich bei bereits bewerteten Bildern nicht mehr die Möglichkeit zu geben zu bewerten?
Stattdessen würde ich einen Hinweis oder eine andere Grafik anzeigen lassen, das das Bild bereits bewertet wurde.
Meine Mitglieder und ich finden, das das einer der größten Nachteile von Coppermine ist, weil man, wenn man ein bereits bewertetes Bild nochmal bewertet nur einen Fehler mit dem Hinweis, das bereits bewertet wurde angezeigt wird.
Würde das aber sofort angezeigt würde man sich das hin und her ersparen.
Title: Re: Bewertete Bilder markieren?
Post by: lamama on December 02, 2007, 03:17:23 PM
1. nicht drängeln (hab deinen selfquote-only post gelöscht)

2. Ich hab spontan keine Lösung für dein Problem parat, da meine PHP-Kenntnisse begrenzt sind. Es sollte aber möglich sein. Es wird ja bereits irgendwo abgefragt, ob User X das Bild bereits bewertet hat...

3. Der Sinn der Bewertungsfunktion ist, das jeder User jedes Bild einmal bewerten kann. Und aus den Wertungen aller User ein Durchschnitt berechnet wird. Sonst würde ja die Bewertung eines Bildes davon abhängen, ob der erste "Bewerter" das Bild mag oder nicht.
Title: Re: Bewertete Bilder markieren?
Post by: snoopy1972fc on December 02, 2007, 04:13:20 PM
Sorry, wollte nicht drängeln. War ein Versehen.
Ich glaube da wurde eine Kleinigkeit falsch verstanden. Wenn ein und der selbe Benutzer ein Bild bewertet hat wird bei ihm immernoch die Möglichkeit zum Bewerten angezeigt. Das wollte ich weg haben. Für die Anderen Benutzer soll natürlich die Möglichkeit zu bewerten weiterhin bestehen.

Das es möglich ist glaube ich auch, doch auch mit meinen PHP-Kenntnissen schaffe ich das nicht alleine.
Title: Re: Bewertete Bilder markieren?
Post by: lamama on December 04, 2007, 03:28:44 AM
hmmm... welche CPG-Version benutzt du? ich meine, das war mal bei einer ziemlich alten Version möglich (dass ein User ein Bild mehrmals bewertet), sollte es aber mittlerweile nicht mehr sein.
Title: Re: Bewertete Bilder markieren?
Post by: Joachim Müller on December 04, 2007, 08:06:56 AM
Ich glaube, dass Snoopy sich daran stört, dass die Rating-Icons auch für Bilder angezeigt werden, die der Benutzer schon bewertet hat. Wenn er dann noch mal draufklickt bekommt er eine Watsche. Das ist in der Tat nicht so Benutzerfreundliche, mir fällt aber kein einfacher Hack ein.
Title: Re: Bewertete Bilder markieren?
Post by: snoopy1972fc on December 04, 2007, 11:58:13 PM
Quote from: GauGau on December 04, 2007, 08:06:56 AM
Ich glaube, dass Snoopy sich daran stört, dass die Rating-Icons auch für Bilder angezeigt werden, die der Benutzer schon bewertet hat. Wenn er dann noch mal draufklickt bekommt er eine Watsche. Das ist in der Tat nicht so Benutzerfreundliche, mir fällt aber kein einfacher Hack ein.
Ja, genau so ist es.

in themes.inc.php ist folgende Abfrage:
if (!(USER_CAN_RATE_PICTURES && $CURRENT_ALBUM_DATA['votes'] == 'YES')) return '';

Kann man da nicht was einfügen, was aus der Tabelle cpg****_vote eine pid und  user_md5_id abfragt?
Title: Re: Bewertete Bilder markieren?
Post by: snoopy1972fc on December 06, 2007, 09:49:47 PM
Ich denke ich habe die Abfrage gefunden, die ich brauche:
if (!function_exists('theme_html_rating_box')) {  //{THEMES}
function theme_html_rating_box()
{
    global $CONFIG, $CURRENT_PIC_DATA, $CURRENT_ALBUM_DATA, $THEME_DIR;
    global $template_image_rating, $lang_rate_pic;

    if (!(USER_CAN_RATE_PICTURES && $CURRENT_ALBUM_DATA['votes'] == 'YES')) return '';

    $votes = $CURRENT_PIC_DATA['votes'] ? sprintf($lang_rate_pic['rating'], round($CURRENT_PIC_DATA['pic_rating'] / 2000, 1), $CURRENT_PIC_DATA['votes']) : $lang_rate_pic['no_votes'];
    $pid = $CURRENT_PIC_DATA['pid'];

    if (defined('THEME_HAS_RATING_GRAPHICS')) {
        $location= $THEME_DIR;
    } else {
        $location= '';
    }

    $params = array('{TITLE}' => $lang_rate_pic['rate_this_pic'],
        '{VOTES}' => $votes,
        '{RATE0}' => "ratepic.php?pic=$pid&rate=0",
        '{RATE1}' => "ratepic.php?pic=$pid&rate=1",
        '{RATE2}' => "ratepic.php?pic=$pid&rate=2",
        '{RATE3}' => "ratepic.php?pic=$pid&rate=3",
        '{RATE4}' => "ratepic.php?pic=$pid&rate=4",
        '{RATE5}' => "ratepic.php?pic=$pid&rate=5",
        '{RUBBISH}' => $lang_rate_pic['rubbish'],
        '{POOR}' => $lang_rate_pic['poor'],
        '{FAIR}' => $lang_rate_pic['fair'],
        '{GOOD}' => $lang_rate_pic['good'],
        '{EXCELLENT}' => $lang_rate_pic['excellent'],
        '{GREAT}' => $lang_rate_pic['great'],
        '{WIDTH}' => $CONFIG['picture_table_width'],
        '{LOCATION}' => $location,        //theme dir or default images directory
        );

Jetzt muss ich nur noch wissen, wie ich folgendes da rein bringe damit die Bewertungsbox nicht angezeigt wird
$sql = "SELECT a.votes as votes_allowed, p.votes as votes, pic_rating, owner_id " . "FROM {$CONFIG['TABLE_PICTURES']} AS p, {$CONFIG['TABLE_ALBUMS']} AS a " . "WHERE p.aid = a.aid AND pid = '$pic' LIMIT 1";
$result = cpg_db_query($sql);
if (!mysql_num_rows($result))  return '';

Kann mir da jemand helfen?
Title: Re: Bewertete Bilder markieren?
Post by: snoopy1972fc on December 28, 2007, 11:42:22 PM
Ich glaube das hier muss da oben rein um die Box nicht anzeigen zu lassen:
// Check if user already rated this picture
$user_md5_id = USER_ID ? md5(USER_ID) : $USER['ID'];
$sql = "SELECT * " . "FROM {$CONFIG['TABLE_VOTES']} " . "WHERE pic_id = '$pic' AND user_md5_id = '$user_md5_id'";
$result = cpg_db_query($sql);

Aber wie?