Ru-Board.club
← Вернуться в раздел «Ikonboard v.2»

» Правка голосования. Хак. Готовое решение.

Автор: Alexander Ipp
Дата сообщения: 02.02.2002 22:25
Среди массы недостатков стандартного poll_hack'а есть и такой, как невозможность исправить голосование иначе, нежели вручную, посредством FTP-клиента и текстового редактора. А если самому заниматься неохота, а модерам давать пароль на ФТП не хочется? Да и просто неудобно...
Что же, вот этот хак призван исправить сию несправедливость.
Что он может? Вниз страницы с темой, в меню администрирования, добавляется новый пунктик - "Редактировать голосование". Кликаем на него - и, если тема содержит голосование, то выводится форма с полями для пароля/логина и парами "вариант номер такой-то" и "голосов за него". Можем править. Потом жмём "Изменить" - и готово.
Если же тема не содержит голосование или темы с таким номером нет, то выводится соответствующая надпись.
Анрегов и не админов/модеров к форме не пускаем. Вроде это всё.
Собственно, хак:
Открываем postings.cgi
Ищем:

Код: for ('forum','topic','membername','password','action','postno',
'notify','deletepost','previewfirst','intopictitle','intopicdescription',
'inpost','inshowemoticons','inshowsignature'
Автор: pechalny
Дата сообщения: 03.02.2002 11:29
Alexander Ipp
Я бы лучше так: жмешь редактировать на первой мессаге и голосование редактируется.
Однако это я
Автор: crashin
Дата сообщения: 03.02.2002 17:20
Alexander Ipp, проделал все, как ты описал, но работает не совсем корректно.
Было у меня голосование (см. тут: http://www.cgf.ru/cgi-bin/ikonboard/topic.cgi?forum=26&topic=7). Автор голосования попросил меня добавить два варианта (сейчас два последних). Я зашел и добавил, но у двух других вариантов в столбце "Голоса" добавилось неизвестно что (смотри сам)! Я решил подправить голоса, но ничего не менялось Ставлю вместо того, что там написано 0, но остается все по-прежнему...
В чем тут проблема?
Автор: Alexander Ipp
Дата сообщения: 03.02.2002 18:03
pechalny
Структура IB не совсем подходяща. Неохота возиться было. Хотя и можно.
crashin Выложи свой post.cgi
Я погляжу. Скорее всего в самом начале напутал.
У меня всё чётко.

Добавлено
Фу ты, ошибся, не post.cgi, а postings.cgi
Должно быть типа:

Код:
for ('forum','topic','membername','password','action','postno',
'notify','deletepost','previewfirst','intopictitle','intopicdescription',
'inpost','inshowemoticons','inshowsignature','checked','movetoid',
'leavemessage','posticon','inpollvariantone','inpollvariantoneres',
'inpollvarianttwo','inpollvarianttwores','inpollvariantthree',
'inpollvariantthreeres','inpollvariantfour','inpollvariantfourres',
'inpollvariantfive','inpollvariantfiveres','inpollvariantsix',
'inpollvariantsixres','inpollvariantseven','inpollvariantsevenres',
'inpollvarianteight','inpollvarianteightres','inpollvariantnine',
'inpollvariantnineres','inpollvariantten','inpollvarianttenres') {

Автор: iggy
Дата сообщения: 03.02.2002 19:36
Alexander Ipp огромное спасибо тебе, хак этот у меня заработал,а спрашивал про него я прошлый раз *8)
Автор: Alexander Ipp
Дата сообщения: 04.02.2002 08:41
iggy Ну вот видишь.
Автор: crashin
Дата сообщения: 04.02.2002 16:49
Alexander Ipp, скопировал код прям отсюда, но все по-старому Посмотри внимательно... на той странице, которую я тебе дал выше..
Автор: Vasya Pupkin
Дата сообщения: 04.02.2002 17:44
Сейчас попробовал поставить. Вроде вышло.
Автор: Alexander Ipp
Дата сообщения: 05.02.2002 09:36
crashin
Видел я, видел...
Говорю же, давай свой postings.cgi, я тебе всё в лучшем виде оформлю.
PS Да не бойся, не стырю я оттуда твои фишки.
Vasya Pupkin Ето хорошо.
Автор: crashin
Дата сообщения: 05.02.2002 10:12
Alexander Ipp, вот, держи: www.crashin.pisem.net/postings.txt
Автор: Alexander Ipp
Дата сообщения: 06.02.2002 10:20
crashin
Нашёл я твой баг.
Ищи в sub editpoll строку, которая начинается:

Код:
print FILE "$inpollvariantone|$inpollvariantoneres|$inpollvarianttwo
Автор: crashin
Дата сообщения: 06.02.2002 14:25
Alexander Ipp, спасибо!
Автор: Alexander Ipp
Дата сообщения: 07.02.2002 09:35
crashin
Не за что.
Автор: lynx
Дата сообщения: 30.06.2002 21:07
Все хорошо работает, еслм проголосовал хотя бы один человек. Если никто не проголосовал начинаются траблы.

Пример 1. Создаем голосование из 5 пунктов. Нажимаем "Редактировать голосование", убираем один пункт. Видим страницу "Редактирование голосования выполнено", пытаемся перейти в тему и получаем ошибку:

Content-type: text/html
Software error:
Illegal division by zero at f:\data\WWWASP~1\cgi-bin\ib\topic.cgi line 319.

Вот она 319


Код:
if ($poll1 ne "") {
$polloption = $poll1;
$pollvotes = $poll1v;
if ($pollvotes ne "0") { $pollpercent = int(($pollvotes / $totalvotes) * 100); #319
$pollwidth = int($pollpercent * 3); }

else { $pollpercent = 0; }
if ($pollpercent eq "0") { $pollb = "" }
else {
$pollb = qq~<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0"><TR><TD BGCOLOR="$pollbar"><IMG SRC="$imagesurl/images/spacer.gif" HEIGHT="10" WIDTH="$pollwidth"></TD></TR></TABLE>~;
}
Автор: Arkan
Дата сообщения: 07.01.2003 13:06
Чтобы добавить голосование в тему, где его нет, заменить

Код: &error("редактирование голосования&Тема с таким номером не существует или не содержит голосование");
Автор: lynx
Дата сообщения: 07.01.2003 23:40

Цитата:
Кто-нибудь может сделать примочку, чтобы голосования можно было удалять?


Это очень просто и надежно делать руками и не понимаю, зачем мудрить то?

Удаляем файл IDфроума.IDтопика.poll

и все - тема есть, голосования нет...
Автор: Alexander Ipp
Дата сообщения: 02.02.2002 22:25
Среди массы недостатков стандартного poll_hack'а есть и такой, как невозможность исправить голосование иначе, нежели вручную, посредством FTP-клиента и текстового редактора. А если самому заниматься неохота, а модерам давать пароль на ФТП не хочется? Да и просто неудобно...
Что же, вот этот хак призван исправить сию несправедливость.
Что он может? Вниз страницы с темой, в меню администрирования, добавляется новый пунктик - "Редактировать голосование". Кликаем на него - и, если тема содержит голосование, то выводится форма с полями для пароля/логина и парами "вариант номер такой-то" и "голосов за него". Можем править. Потом жмём "Изменить" - и готово.
Если же тема не содержит голосование или темы с таким номером нет, то выводится соответствующая надпись.
Анрегов и не админов/модеров к форме не пускаем. Вроде это всё.
Собственно, хак:
Открываем postings.cgi
Ищем:

Код: for ('forum','topic','membername','password','action','postno',
'notify','deletepost','previewfirst','intopictitle','intopicdescription',
'inpost','inshowemoticons','inshowsignature'
Автор: pechalny
Дата сообщения: 03.02.2002 11:29
Alexander Ipp
Я бы лучше так: жмешь редактировать на первой мессаге и голосование редактируется.
Однако это я
Автор: crashin
Дата сообщения: 03.02.2002 17:20
Alexander Ipp, проделал все, как ты описал, но работает не совсем корректно.
Было у меня голосование (см. тут: http://www.cgf.ru/cgi-bin/ikonboard/topic.cgi?forum=26&topic=7). Автор голосования попросил меня добавить два варианта (сейчас два последних). Я зашел и добавил, но у двух других вариантов в столбце "Голоса" добавилось неизвестно что (смотри сам)! Я решил подправить голоса, но ничего не менялось Ставлю вместо того, что там написано 0, но остается все по-прежнему...
В чем тут проблема?
Автор: Alexander Ipp
Дата сообщения: 03.02.2002 18:03
pechalny
Структура IB не совсем подходяща. Неохота возиться было. Хотя и можно.
crashin Выложи свой post.cgi
Я погляжу. Скорее всего в самом начале напутал.
У меня всё чётко.

Добавлено
Фу ты, ошибся, не post.cgi, а postings.cgi
Должно быть типа:

Код:
for ('forum','topic','membername','password','action','postno',
'notify','deletepost','previewfirst','intopictitle','intopicdescription',
'inpost','inshowemoticons','inshowsignature','checked','movetoid',
'leavemessage','posticon','inpollvariantone','inpollvariantoneres',
'inpollvarianttwo','inpollvarianttwores','inpollvariantthree',
'inpollvariantthreeres','inpollvariantfour','inpollvariantfourres',
'inpollvariantfive','inpollvariantfiveres','inpollvariantsix',
'inpollvariantsixres','inpollvariantseven','inpollvariantsevenres',
'inpollvarianteight','inpollvarianteightres','inpollvariantnine',
'inpollvariantnineres','inpollvariantten','inpollvarianttenres') {

Автор: iggy
Дата сообщения: 03.02.2002 19:36
Alexander Ipp огромное спасибо тебе, хак этот у меня заработал,а спрашивал про него я прошлый раз *8)
Автор: Alexander Ipp
Дата сообщения: 04.02.2002 08:41
iggy Ну вот видишь.
Автор: crashin
Дата сообщения: 04.02.2002 16:49
Alexander Ipp, скопировал код прям отсюда, но все по-старому Посмотри внимательно... на той странице, которую я тебе дал выше..
Автор: Vasya Pupkin
Дата сообщения: 04.02.2002 17:44
Сейчас попробовал поставить. Вроде вышло.
Автор: Alexander Ipp
Дата сообщения: 05.02.2002 09:36
crashin
Видел я, видел...
Говорю же, давай свой postings.cgi, я тебе всё в лучшем виде оформлю.
PS Да не бойся, не стырю я оттуда твои фишки.
Vasya Pupkin Ето хорошо.
Автор: crashin
Дата сообщения: 05.02.2002 10:12
Alexander Ipp, вот, держи: www.crashin.pisem.net/postings.txt
Автор: Alexander Ipp
Дата сообщения: 06.02.2002 10:20
crashin
Нашёл я твой баг.
Ищи в sub editpoll строку, которая начинается:

Код:
print FILE "$inpollvariantone|$inpollvariantoneres|$inpollvarianttwo
Автор: crashin
Дата сообщения: 06.02.2002 14:25
Alexander Ipp, спасибо!
Автор: Alexander Ipp
Дата сообщения: 07.02.2002 09:35
crashin
Не за что.
Автор: lynx
Дата сообщения: 30.06.2002 21:07
Все хорошо работает, еслм проголосовал хотя бы один человек. Если никто не проголосовал начинаются траблы.

Пример 1. Создаем голосование из 5 пунктов. Нажимаем "Редактировать голосование", убираем один пункт. Видим страницу "Редактирование голосования выполнено", пытаемся перейти в тему и получаем ошибку:

Content-type: text/html
Software error:
Illegal division by zero at f:\data\WWWASP~1\cgi-bin\ib\topic.cgi line 319.

Вот она 319


Код:
if ($poll1 ne "") {
$polloption = $poll1;
$pollvotes = $poll1v;
if ($pollvotes ne "0") { $pollpercent = int(($pollvotes / $totalvotes) * 100); #319
$pollwidth = int($pollpercent * 3); }

else { $pollpercent = 0; }
if ($pollpercent eq "0") { $pollb = "" }
else {
$pollb = qq~<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0"><TR><TD BGCOLOR="$pollbar"><IMG SRC="$imagesurl/images/spacer.gif" HEIGHT="10" WIDTH="$pollwidth"></TD></TR></TABLE>~;
}

Страницы: 12

Предыдущая тема: Поисковый фильтр


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.