Advanced search  

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Pages: [1]   Go Down

Author Topic: Bewertete Bilder markieren?  (Read 4732 times)

0 Members and 1 Guest are viewing this topic.

snoopy1972fc

  • Coppermine newbie
  • Offline Offline
  • Posts: 8
Bewertete Bilder markieren?
« 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.
Logged

lamama

  • Moderator
  • Coppermine frequent poster
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 404
Re: Bewertete Bilder markieren?
« Reply #1 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.
Logged

snoopy1972fc

  • Coppermine newbie
  • Offline Offline
  • Posts: 8
Re: Bewertete Bilder markieren?
« Reply #2 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.
Logged

lamama

  • Moderator
  • Coppermine frequent poster
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 404
Re: Bewertete Bilder markieren?
« Reply #3 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.
Logged

Joachim Müller

  • Dev Team member
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 47843
  • aka "GauGau"
    • gaugau.de
Re: Bewertete Bilder markieren?
« Reply #4 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.
Logged

snoopy1972fc

  • Coppermine newbie
  • Offline Offline
  • Posts: 8
Re: Bewertete Bilder markieren?
« Reply #5 on: December 04, 2007, 11:58:13 pm »

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:
Code: [Select]
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?
Logged

snoopy1972fc

  • Coppermine newbie
  • Offline Offline
  • Posts: 8
Re: Bewertete Bilder markieren?
« Reply #6 on: December 06, 2007, 09:49:47 pm »

Ich denke ich habe die Abfrage gefunden, die ich brauche:
Code: [Select]
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
Code: [Select]
$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?
Logged

snoopy1972fc

  • Coppermine newbie
  • Offline Offline
  • Posts: 8
Re: Bewertete Bilder markieren?
« Reply #7 on: December 28, 2007, 11:42:22 pm »

Ich glaube das hier muss da oben rein um die Box nicht anzeigen zu lassen:
Code: [Select]
// 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?
Logged
Pages: [1]   Go Up
 

Page created in 0.027 seconds with 20 queries.