forum.coppermine-gallery.net
Support => Русский (Russian) => Language Specific Support => cpg1.4.x FAQ (Russian) => Topic started by: D.Kalessky on December 04, 2009, 09:01:21 am
-
Всем привет!
Прошу помощи в изменении встроенной системы голосования. Готовое решение найти не смог.
Для проведения фотоконкурсов всем участникам хотелось бы:
1. Возможность выставления оценки только одной фотке в указанном альбоме\категории.
2. Ограничение самих оценок только одной: "голосовать" (сейчас с 0 до 5)
Кто возьмется помочь? Заранее спасибо!
-
упс... что-то с кодировочкой глюк.
повторно прошу помощи в изменении системы голосования за фотки. хотелось бы сделать по принципу- только один голос за одну фотку в альбоме.
CPG 1.4.18
-
Про кодировку - не используйте на этом форуме Internet Explorer.
http://forum.coppermine-gallery.net/index.php/topic,37805.0.html
По теме.
Открыть файл:
ratepic.php
Найти строку:
if (!empty($user) && $user==$owner && !USER_IS_ADMIN) cpg_die(ERROR, $lang_rate_pic_php['forbidden'], __FILE__, __LINE__);
После встаить код:
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__);
}
}
В коде выше ошибка
$lang_rate_pic_php['already_rated']
означает, что в данном альбоме вы уже голосовали.
Поэтому её можно изменить на свою через языковый файл.
-
Makc666, спасибо!
На сколько я понял, эти изменения позволяют голосовать только за одну фотку в альбоме. А каким образом ограничить количество выставляемых оценок и вывод результатов голосования?
чуть подробнее поясню чего я хочу добиться:
1. возможность проголосовать только за одну фотку. -выполнено.
2. выставляется только одна оценка. сейчас с 0 до 5.
3. поскольку оценка одна, то в результатах голосования хотелось бы видеть не общий балл, а просто количество голосов. возможно этого можно добиться оставлением одной оценки в 1 балл. тогда и получится, что кол-во баллов будет соответсвовать кол-ву проголосовавших. но как этого добиться?
4. возможно ли скрыть результаты голосования для определенной группы участников, но оставив при этом возможность голосовать?
-
2. выставляется только одна оценка. сейчас с 0 до 5.
В версии 1.5.2+ можно выбирать количество выставляемых звёзд для голосования.
3. поскольку оценка одна, то в результатах голосования хотелось бы видеть не общий балл, а просто количество голосов. возможно этого можно добиться оставлением одной оценки в 1 балл. тогда и получится, что кол-во баллов будет соответсвовать кол-ву проголосовавших. но как этого добиться?
Наверное переходить в будещем на 1.5.2+
4. возможно ли скрыть результаты голосования для определенной группы участников, но оставив при этом возможность голосовать?
D.Kalessky, я уже много раз писал, что на php можно сделать что угодно.
-
подскажите, пожалуйста, какая часть кода в CPG 1.4.18 отвечает за оценки, которыми можно оценить фотографии?
спасибо
-
подскажите, пожалуйста, какая часть кода в CPG 1.4.18 отвечает за оценки, которыми можно оценить фотографии?
спасибо
Отвечает целый файл ratepic.php
Уточните вопрос.
-
уточняю свой вопрос, хотя он был задан мной несколькими сообщениями выше.
пользователи галереи убедительно просят сделать так, чтоб можно было выставлять только одну оценку фотографии, а не по градации от 0 до 5 баллов, т.е. мне нужна только одна оценка в 1 балл.
-
уточняю свой вопрос, хотя он был задан мной несколькими сообщениями выше.
пользователи галереи убедительно просят сделать так, чтоб можно было выставлять только одну оценку фотографии, а не по градации от 0 до 5 баллов, т.е. мне нужна только одна оценка в 1 балл.
1. Открыть:
ratepic.php
2. Найти:
$rate = min($rate, 5);
$rate = max($rate, 0);
3. Заменить на:
$rate = min($rate, 1);
$rate = max($rate, 1);
4. Открыть:
themes.inc.php
5. В свою тему скопировать функцию:
$template_image_rating = <<<EOT
6. В скопированном коде удалить или закомментировать срочки отвечающие за звезды 0, 2, 3, 4, 5.
Т.е должна остаться только срока, начинающаяся на:
<td class="tableb_compact" width="17%" align="center"><a href="{RATE1}" title="{POOR}" rel="nofollow"><img src="{LOCATION}images/rating1.gif
7. В данной строке можно подправить перевод для фрагмента:
title="{POOR}"
К примеру, заменить на:
title="{TITLE}"
8. Можно заменить изображение /images/rating1.gif на какое-нибудь другое.
-
Makc666, спасибо!
После внесенных изменений все более менее стало похоже на то, что хотел.
Но еще вопросик есть. Сейчас в альбоме показывается рейтинг фоток так: текущий рейтинг: 1 / 5 - Голосов: 1) Как оставить только количество проголосовавших? т.е. убрать 1 / 5 и оставить только Голосов: 1 ?
В очередной раз спасибо!
-
с предыдущим вопросом разобрался сам. спс
-
с предыдущим вопросом разобрался сам. спс
Если напишите, как разобрались, что нужно делать всегда, то мы будем благодарны!