Support > cpg1.4.x FAQ (Russian)

Изменение системы голосования

(1/3) > >>

D.Kalessky:
Всем привет!
Прошу помощи в изменении встроенной системы голосования. Готовое решение найти не смог.

Для проведения фотоконкурсов всем участникам хотелось бы:
1. Возможность выставления оценки только одной фотке в указанном альбоме\категории.
2. Ограничение самих оценок только одной: "голосовать" (сейчас с 0 до 5)

Кто возьмется помочь? Заранее спасибо!

D.Kalessky:
упс... что-то с кодировочкой глюк.
повторно прошу помощи в изменении системы голосования за фотки. хотелось бы сделать по принципу- только один голос за одну фотку в альбоме.
CPG 1.4.18

Makc666:
Про кодировку - не используйте на этом форуме Internet Explorer.
http://forum.coppermine-gallery.net/index.php/topic,37805.0.html

По теме.

Открыть файл:
ratepic.php

Найти строку:

--- Code: ---if (!empty($user) && $user==$owner && !USER_IS_ADMIN) cpg_die(ERROR, $lang_rate_pic_php['forbidden'], __FILE__, __LINE__);
--- End code ---

После встаить код:

--- Code: ---if (!(mysql_num_rows($result))){
    $sql = "SELECT aid " . "FROM {$CONFIG['TABLE_PICTURES']} " . "WHERE pid = '$pic'";
    $result = cpg_db_query($sql);
    if (mysql_num_rows($result)){
        $row = mysql_fetch_array($result);
        $sql = "SELECT pid " . "FROM {$CONFIG['TABLE_PICTURES']} " . "WHERE aid = '$row[aid]'";
        $result = cpg_db_query($sql);
        if (mysql_num_rows($result)){
            while($row = mysql_fetch_array($result)){
                $pic_array[] = $row[pid];
            }
        }
    }else{
        cpg_die(ERROR, $lang_rate_pic_php['non_exist_ap'], __FILE__, __LINE__);
    }
    $sql = "SELECT pic_id " . "FROM {$CONFIG['TABLE_VOTES']} " . "WHERE user_md5_id = '$user_md5_id'";
    $result = cpg_db_query($sql);
        if (mysql_num_rows($result)){
            while($row = mysql_fetch_array($result)){
                $pic_array_votes[] = $row[pic_id];
            }
        }
}
foreach ($pic_array_votes as $k=>$v){
    if (array_search($v, $pic_array)){
        cpg_die(ERROR, $lang_rate_pic_php['already_rated'], __FILE__, __LINE__);
    }
}
--- End code ---

В коде выше ошибка

--- Code: ---$lang_rate_pic_php['already_rated']
--- End code ---
означает, что в данном альбоме вы уже голосовали.
Поэтому её можно изменить на свою через языковый файл.





D.Kalessky:
Makc666, спасибо!
На сколько я понял, эти изменения позволяют голосовать только за одну фотку в альбоме. А каким образом ограничить количество выставляемых оценок и вывод результатов голосования?

чуть подробнее поясню чего я хочу добиться:
1. возможность проголосовать только за одну фотку. -выполнено.
2. выставляется только одна оценка. сейчас с 0 до 5.
3. поскольку оценка одна, то в результатах голосования хотелось бы видеть не общий балл, а просто количество голосов. возможно этого можно добиться оставлением одной оценки в 1 балл. тогда и получится, что кол-во баллов будет соответсвовать кол-ву проголосовавших. но как этого добиться?
4. возможно ли скрыть результаты голосования для определенной группы участников, но оставив при этом возможность голосовать?

Makc666:

--- Quote from: D.Kalessky on February 02, 2010, 07:36:25 am ---2. выставляется только одна оценка. сейчас с 0 до 5.
--- End quote ---
В версии 1.5.2+ можно выбирать количество выставляемых звёзд для голосования.


--- Quote from: D.Kalessky on February 02, 2010, 07:36:25 am ---3. поскольку оценка одна, то в результатах голосования хотелось бы видеть не общий балл, а просто количество голосов. возможно этого можно добиться оставлением одной оценки в 1 балл. тогда и получится, что кол-во баллов будет соответсвовать кол-ву проголосовавших. но как этого добиться?
--- End quote ---
Наверное переходить в будещем на 1.5.2+


--- Quote from: D.Kalessky on February 02, 2010, 07:36:25 am ---4. возможно ли скрыть результаты голосования для определенной группы участников, но оставив при этом возможность голосовать?
--- End quote ---

D.Kalessky, я уже много раз писал, что на php можно сделать что угодно.

Navigation

[0] Message Index

[#] Next page

Go to full version