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

» Хак Personal avatar (пользователь может закачивать аватар)

Автор: Aleks2002
Дата сообщения: 29.05.2002 05:29
Хак Personal avatar


Описание хака:


Цитата:

В register.cgi и profile.cgi появятся пункты:
- закачать аватар с вашего диска,
- указать ссылку на аватар с другого сайта,
- выбрать аватар из списка аватаров форума.

При установке хака можно установить максимальный размер закачиваемых аватаров в kb и px. По умолчанию в хаке прописаны размеры max=30 kb и 64x64 px.

В директории картинок ikonboard/avatars создаётся поддиректория personal.
И если юзер выберет персональный аватар (закачает с диска или укажет ссылку), то его аватар автоматически загрузится в папку avatars/personal и автоматически переименовывается в имяюзера.gif .
В будущем, если он захочет сменить аватар, то старый аватар автоматически заменяется на новый.



Хак можно скачать с сайта производителя или
из местного файлового архива
Автор: Fuchsia
Дата сообщения: 29.05.2002 05:58
Вот копирую то, что у меня сохранилось.
Ксати, классная штука Если надо паре-тройке человек такое сделать, то лучше не придумаешь

Ausw
Moderator
--------------------------------------------------------------------------------
Вобщем, сабж уже не один раз обсуждался, но оригинального решения не было. А именно - 2 предложенных ранее варианта - 1)Руками заюзать файл имяuserа.cgi - но при обновлении профайла затирается, и юзер остается без аватара. 2) Писать в topic.cgi - неактуально, ибо каждый раз туда лезть, если юзеров будет несколько, кроме того, в мемберлисте (и где либо еще) - будет байда с аватарами ..... Я тут нашел небольшой хак, сие и опубликую, ставится за 2 минуты:

profile.cgi

Код:
$cleanavatar = $_;
$cleanavatar =~ s/.gif//i;

# Skip, if it's an admin/moderator only avatar

if (($cleanavatar =~ /admin_/) && ($membercode eq "me")) { next; }


меняем на

Код:
$cleanavatar = $_;
$cleanavatar =~ s/.gif//i;

$inmemberspace = $inmembername;
$inmemberspace =~ s/ /\_/isg;

# Skip, if it's an admin / moderator / personal only avatar

if ( (($cleanavatar =~ /admin_/) && ($membercode eq "me")) || (($cleanavatar =~ /pers_/) && (pers_.$inmemberspace ne "$cleanavatar")) ) { next; }


register.cgi

Код:
if ($cleanavatar =~ /admin_/) { next; }

на

Код:
if ( ($cleanavatar =~ /admin_/) || (($cleanavatar =~ /pers_/) && (pers_.$inmembername ne "$cleanavatar")) ) { next; }



теперь, берем аватарчик юзера, и переименовываем его как pesr_имяusera.gif
и бросаем в общую папку..... этот аватар будет только у этого юзера, у других он отображаться не будет, т.е. никто не выберет его. Юзеру нужно будет самому зайти и выбрать свой аватар.
Автор: Aleks2002
Дата сообщения: 29.05.2002 06:05
Я вообще то про это
*****************************************************
На http://main.ibhackers.com есть хак PersonalAvatar. Я его скачал, поставил , перевёл на русский и всё прекрасно работает . Появились пункты в register.cgi и profile.cgi (Закачать аватар с вашего диска, указать ссылку на аватар с другого сайта или выбрать аватар из списка аватаров форума.)
При установке хака можно установить максимальный размер закачиваемых аватаров в kb и px. По умолчанию в хаке прописаны размеры max=30 kb и 64x64 px Я поменял размеры на 20kb и 32х32
В директории картинок ikonboard/avatars создаётся поддиректория personal И если юзер выберет персональный аватар (закачает с диска или укажет ссылку) то его аватар автоматически загрузится в папку avatars/personal и автоматически переименовывается в имяюзера.gif . В будущем , если он захочет сменить аватар , то старый аватар автоматически заменяется на новый

Добавлено
Если кому-то нужен этот хак , качайте

Цитата:

Personal Avatar v1.0

Nov. 13 2001

This Hack/Modification will add the possiblity to upload personal avatar attached to a user name (only one per member that will use the membername as filename)
2.1.9
*********************************************

качайте вот потерял

Добавлено
У меня проблема с закачкой avator с компа.

В интернете нашел, цитирую.

"Я сталкивался с чем-то подобным, у меня хостинг пытался GIF-файл перекодировать из Win-1251 в KOI-8 или наоборот. Проблема решилась прописыванием в каталог со скриптами файла .htaccess, в котором было что-то типа NoRecodeMultipartForms (точно не помню, а локальная копия не сохранилась)."

Кто нибудь сталкивался с этим еще?

Добавлено
Да еще выскакивает, такая ошибка
"The personal avatar you specified for upload must be in GIF format."

хотя это именно GIF файл

как с этим бороться?
Автор: MVY
Дата сообщения: 29.05.2002 09:12
Aleks2002
А как это ты моё соощение скопировал, а ссылку потерял ?
Качать этот хак здесь http://main.ibhackers.com/ikonboard.cgi?s=3cf480480dacffff;act=Attach;ID=146;f=1;t=53;p=53
Всем сооветую . Прекрасный хак.
Автор: Aleks2002
Дата сообщения: 29.05.2002 09:30
Через буфер скопировал.

MVY
Ну ты хоть помоги.
Короче такие дела.
Пытаюсь в профиле через Personal
поменять avator.

1. через Windows 2000
выскакивает ошибка
"The personal avatar you specified for upload must be in GIF format."

2. через Windows 98SE
проходит на ура.

но в топике вместо аватора пустое место.

что то с загрузкой

пока грузился что то в файле GIF поменялось.

что?
Автор: Aleks2002
Дата сообщения: 30.05.2002 04:28
Сравнил два одинаковых файла GIF.
С локала и закачанный.

Во многих ячейках вместо 0 - 20.

Кто с этим сталкивался и как решал?
Автор: Aleks2002
Дата сообщения: 31.05.2002 05:40
Все нашел решение.
Помощь не нужна.
Автор: Grey2002
Дата сообщения: 31.05.2002 05:53
Fuchsia

Цитата:
Вот копирую то, что у меня сохранилось.

а что, оно здесь куда-то делось ? : http://forum.ru-board.com/topic.cgi?forum=21&topic=0982
Автор: 123qaz74
Дата сообщения: 31.05.2002 07:29

Цитата:
Все нашел решение.
И какое?
Автор: Aleks2002
Дата сообщения: 31.05.2002 07:45
.htaccess
Автор: lynx
Дата сообщения: 05.06.2002 22:05
А как-то можно этот хак юзать так, чтобы нельзя было юзерам аватар аплоадить на сервер? Только чтобы при выборе аватара он становился персональным? Т.е., чтобы его никто уже больше юзать не мог?
Автор: Novator
Дата сообщения: 26.08.2003 07:17
у меня Ib219rus_3
попытался поставить хак по ссылке вверху топика, но в файле setmembers.cgi не нашёл строку:
$banresult = "$membername was banned successfully";

нашёл только:
$banresult = "$membername $ibtxt{'2217'}";

после неё и поставил необходимый код... дальше по коду и во всех остальных файлах всё полностью совпадало...

в конечном итеге, не работает возможность закачки аватара с диска - выдаётся одна и та же ошибка, с той лишь разницей, что в кажом файле своя линия.

например, для файла register.cgi:
Software error:
Can't use an undefined value as a HASH reference at register.cgi line 306.

для profile.cgi - то же самое, только линия 622.

Во всех этих файлах по данным адресам - один и тот же код:
unless (($newpersonal =~ /\.gif$/) && ($query->uploadInfo($newpersonal)->{'Content-Type'} eq "image/gif")) {
&error("Modifying Profile&The personal avatar you specified for upload must be in GIF format.");

=====

При выборе External и указании url картинки - работает, но в папку personal копия аватара не помещается (как говорится здесь). Права расставил правильно...

Подскажите решение с закачкой с диска, плиз.
Автор: lynx
Дата сообщения: 27.08.2003 03:05
Novator


Цитата:
в файле setmembers.cgi не нашёл строку:
$banresult = "$membername was banned successfully";

нашёл только:
$banresult = "$membername $ibtxt{'2217'}";


Это одно и то же.


Цитата:
в кажом файле своя линия.


лол, не линия, а строка.


Цитата:
unless (($newpersonal =~ /\.gif$/) && ($query->uploadInfo($newpersonal)->{'Content-Type'} eq "image/gif")) {
&error("Modifying Profile&The personal avatar you specified for upload must be in GIF format.");



А закачиваешь в gif формате файл?
Автор: Novator
Дата сообщения: 27.08.2003 16:38
какой "лол"?
я говорю про "line 306" - это я называю линией... в редакторе буде строка 306 - так, нет?

1) линия;
2) ряд;
3) строка;
4) область (деятельности).
(это всё из словаря)

ну пусть будет "строка"...

закачиваю, конечно, в бинаре gif...

вообще, конкретно для руского боарда Ib219rus_3 кто-нибудь реально ставил этот хак?
Автор: lynx
Дата сообщения: 28.08.2003 00:00
Забавно. Когда я попробовала картинку в jpg закачать, то все нормально сработал скрипт без ошибки, только он определил, что картинка то не гиф и выдал страницу - типа нельзя, ошибка регистрации и все такое

Дай весь код register.cgi и что та там еще курочил под этот хак, может ikon.lib, выложи файлы в txt формате, без кода все равно ничего не скажешь.
Автор: Shurik
Дата сообщения: 28.08.2003 00:59
ребят, а это что?
$CGI::DISABLE_UPLOADS = 1; # Disable uploads
есть в каждом скрипте. гыгы.
Автор: Novator
Дата сообщения: 28.08.2003 08:52
lynx

я послал мылом архив... там 4 файла... я же не могу их выложить здесь...

# Files to edit (Ikonboard 2.1.9 Beta)
# - register.cgi
# - profile.cgi
# - topic.cgi
# - setmembers.cgi

а что получалось при попытке закачать гиф?


Shurik
да... эта строка есть в каждом из 4-х оригинальных файлов, но заменить её предлагается в доке только в двух...
заменил строки во всех файлах, но пока ничего не изменилось...
Автор: lynx
Дата сообщения: 31.08.2003 23:28
Novator


Цитата:
я послал мылом архив... там 4 файла... я же не могу их выложить здесь...

# Files to edit (Ikonboard 2.1.9 Beta)
# - register.cgi
# - profile.cgi
# - topic.cgi
# - setmembers.cgi


Я прикрутила твои файлы к дефолтной конфе, ни символа не изменила и у меня все прекрасно заработало - в лучшем виде. Надо было только папочку personal создать в директории с аватарами.

Автор: Novator
Дата сообщения: 01.09.2003 16:01
нет... у меня не работает...
пишет следующее:
========
Content-type: text/html
Software error:
Can't use an undefined value as a HASH reference at profile.cgi line 622.
========

по этому адресу в файле находится следующее:
========
unless (($newpersonal =~ /\.gif$/) && ($query->uploadInfo($newpersonal)->{'Content-Type'} eq "image/gif")) {
&error("Modifying Profile&The personal avatar you specified for upload must be in GIF format.");
========


может быть, дело в правах доступа на папку personal?
я уже ставил и 777 и 755 - один результат - ошибка в файле profile.cgi в строке 622.

дело в том, что на хосте fatal.ru нет папки WWW, а есть папка cgi-bin и папка site.
полный путь к папке personal на сервере выглядит так:
/site/ikonboard/avatars/personal/

может с адресами заморочка получается?

больше уже не знаю на что думать - либо права доступа к папке, либо адрес к ней...
Автор: lynx
Дата сообщения: 01.09.2003 17:43
Novator


Цитата:
нет... у меня не работает...
пишет следующее:
========
Content-type: text/html
Software error:
Can't use an undefined value as a HASH reference at profile.cgi line 622.
========

по этому адресу в файле находится следующее:
========
unless (($newpersonal =~ /\.gif$/) && ($query->uploadInfo($newpersonal)->{'Content-Type'} eq "image/gif")) {
&error("Modifying Profile&The personal avatar you specified for upload must be in GIF format.");
========


может быть, дело в правах доступа на папку personal?
я уже ставил и 777 и 755 - один результат - ошибка в файле profile.cgi в строке 622.


Давай сначала. Кроме этого хака, какие ты еще хаки ставил? Ты где-то код других файлов повредил, ikon.lib, например, ну, у меня же с дефолтной конфой твои файлы заработали.

Можешь взять нулевую конфу, прикрутить к ней твои файлы и убедиться.
Автор: Novator
Дата сообщения: 07.09.2003 20:09
Ну, в общем, ситуация такая с аватарами...

lynx оказалась права - дело в файле icon.lib, а именно, в том, что я, в своё время, вносил в него дополнительно строку для отображения всех страниц в правильной кодировке "Кириллица windows"...
как только я заменил изменённый файл на родной - всё заработало...

второй косяк - мой русский ник администратора - файл в папку пересылается, но отображаться не хочет... под другие зарегиные ники на английском, картинки переименовываются, независимо от исходного названия на диске, под ник пользователя и отображаются... причём, даже если картинка больше дефолтных 64x64 - всё равно она отображается, но уже с этим размером...

короче говоря, буду пытаться рашить проблему с кодировкой страниц каким-либо другим образом, а не простым добавлением строки после копирайтов:

charset( 'windows-1251' );

ну и, параллельно, хочу закинуть просьбу в форум хостера о том, чтобы они задали кодировку вин у себя по умолчанию... тогда было бы совсем просто...

в самом крайнем случае придётся пожертвовать аватарами, поскольку, каждый раз менять кодировку каждому пользователю - весьма проблематично...

p.s. отдельное спасибо lynx!!
Автор: lynx
Дата сообщения: 08.09.2003 19:45
Novator


Цитата:
короче говоря, буду пытаться рашить проблему с кодировкой страниц каким-либо другим образом, а не простым добавлением строки после копирайтов:

charset( 'windows-1251' );


Вот смотри:

FAQ по IkonBoard v.2 » Проблема с кодировкой: все решения в этой теме

Тебе нужен способ 2:


Цитата:

Способ 2.
В каждом скрипте находим строку:


Код:
print header();


и меняем её на:


Код:
print header('text/html; charset=windows-1251');




Цитата:
хочу закинуть просьбу в форум хостера о том, чтобы они задали кодировку вин у себя по умолчанию.


Я сама себе хостер, на серваке прописано, что надо, и тем ни менее, прописала себе в каждом скрипте ^^
Автор: Novator
Дата сообщения: 08.09.2003 21:57
Ну что... в целом - получилось... однако, как и всегда со мной бывает - не без проблем...

не во всех файлах пришлось заменить строки и после того, как я это сделал в тех, где это было нужно - сталкнулся со следующей проблемой - не могу выйти из форума, чтобы войти потом в него с гостя как любой другой пользователь(хоть тот же самый)...

файл, отвечающий за это - loginout.cgi
там пришлось перетирать в двух местах строки:

print header(-cookie=>[$namecookie, $passcookie]); (line 117)

и

print header(-cookie=>[$namecookie, $passcookie, $trashcookie]); (line 171)


я просто земенял их на:
print header('text/html; charset=windows-1251');

потом пробовал дополнить:
print header('text/html; charset=windows-1251'); (-cookie=>[$namecookie, $passcookie]);


результат один и тот же - при внесении изменений не могу выйти из форума...
словом, пока пришлось оставить исходный вариант и на промежуточных страницах(например, Вы сейчас не находитесь в форуме) выскакивает неверная кодировка, но за-то получается выйти из форума до гостя...

Так вот, практически во всех скриптах, в которых пришлось вносить изменения - я именно заменял строки, а не дополнял... не повлияет ли это в дальнейшем на корректность работы? если я делал не правильно, то как тогда правильно и как быть с этим loginout.cgi?

Аватары - работают...


Автор: Shurik
Дата сообщения: 12.09.2003 11:41
Novator
если у тебя косяки с русским на всём форуме, так это надо трясти хостера, чтобы в CGI.pm меняли строку:
$self->charset('ISO-8859-1');

на

$self->charset('win-1251');

и всё будет супер.
Автор: lynx
Дата сообщения: 12.09.2003 18:30
Shurik

Цитата:
косяки с русским на всём форуме, так это надо трясти хостера, чтобы в CGI.pm меняли строку:
$self->charset('ISO-8859-1');

на

$self->charset('win-1251');


Кодировка в этом модуле только на Винде (убогой) задается, в никсах нет ее и не надо.
Автор: trew
Дата сообщения: 26.12.2003 23:57
lynx Так все таки достаточно хака, который лежит в архиве или его надо доработать?
Автор: lynx
Дата сообщения: 27.12.2003 06:39
trew

Вполне достаточно. Никто особо на него не жаловался.
Автор: trew
Дата сообщения: 27.12.2003 14:40
lynx Тут в постах разные дороботки, и не очень ясно...
Автор: lynx
Дата сообщения: 28.12.2003 00:59
trew


Цитата:
Тут в постах разные дороботки, и не очень ясно...


Ну, а попробуй сначала сам хоть что-то сделать, а? Хак прекрасно пригоден без доработок.

Автор: trew
Дата сообщения: 28.12.2003 01:42
lynx Попробывал. Хак я поставил , но добавление аватаров не происходит( правда я повторно еще проверяю)...external работает, а personal ругается , что не видет файла , который я выбираю , т.е. ему как-бы нечего добавить.
К сожалению , что искать знаю,...но найти не могу

Страницы: 123

Предыдущая тема: Оптимизация кода IB (увеличение скорости работы)


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