Вернуться на главную страницу форума
  FAQFAQ  Поиск-SuchenПоиск-Suchen  ПользователиПользователи  ГруппыГруппы  Фото АльбомФото Альбом  Регистрация-RegistrierenРегистрация-Registrieren 
  Профиль-Profil Профиль-Profil  Войти и проверить личные сообщения Войти и проверить личные сообщения  Вход-login Вход-login

[MOD] usercp_avatar.php::Модификация файла usercp_avatar.php
На страницу 1, 2  След.
 
   Вернуться на главную страницу форума -> Тех. раздел
Предыдущая тема :: Следующая тема  
Автор Сообщение
AlexanderOffline
Модератор
Модератор
Аватара


Регистр.: 09.09.2003
Сообщений: 227
Живу  : Deutschland
Возраст: 41
Кто Я?Он
СообщениеДобавлено: Пн, 26 Янв 2004, 13:45    Заголовок сообщения: [MOD] usercp_avatar.php::Модификация файла usercp_avatar.php Ответить с цитированием

Для пользователей форума типа этого phpBB2 скрипт позволяющий закачивать аватары с удаленного компьютера и удаленного URL сервера.


    This eliminates problems with
    1. remote URL avatars width height dimension problem. (Many users can upload big image in avatar profile).
    2. upload from remote URL or Customer mashine not worked correctly. Problem with safe mode.

    Current version tested with phpBB v.2.0.15 - 2.0.16

    06.07.2005 added many code for correct work of the image-width, image-height Definitions.


Код:

##-----------------------------------------------------------------
## Script allow uploading avatar from user's computer and remote URL.
## Created by Alexander Nowikow http://www.derus.net
## <polkana@hotmail.com>
##-----------------------------------------------------------------
##
## File to EDIT:  includes/usercp_avatar.php
##
## Version 0.0.1.

#----[ OPEN ]---------------------------------
includes/usercp_avatar.php

#---------------------------------------------
#----[ FIND ]---------------------------------
#---------------------------------------------
function check_image_type(&$type, &$error, &$error_msg)
{
   global $lang;

   switch( $type )
   {
      case 'jpeg':
      case 'pjpeg':
      case 'jpg':
         return '.jpg';
         break;
      case 'gif':
         return '.gif';
         break;
      case 'png':
         return '.png';
         break;
      default:
         $error = true;
         $error_msg = (!empty($error_msg)) ? $error_msg . '<br />' . $lang['Avatar_filetype'] : $lang['Avatar_filetype'];
         break;
   }

   return false;
}

#-------------------------------------------
#-----[ REMOVE THIS ]------------------
#-------------------------------------------

#---------------------------------------------
#----[ FIND ]---------------------------------
#---------------------------------------------
function user_avatar_url($mode, &$error, &$error_msg, $avatar_filename)
{
   if ( !preg_match('#^(http)|(ftp):\/\/#i', $avatar_filename) )
   {
      $avatar_filename = 'http://' . $avatar_filename;
   }

   if ( !preg_match("#^((ht|f)tp://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png))$)#is", $avatar_filename) )
   {
      $error = true;
      $error_msg = ( !empty($error_msg) ) ? $error_msg . '<br />' . $lang['Wrong_remote_avatar_format'] : $lang['Wrong_remote_avatar_format'];
      return;
   }

   return ( $mode == 'editprofile' ) ? ", user_avatar = '" . str_replace("\'", "''", $avatar_filename) . "', user_avatar_type = " . USER_AVATAR_REMOTE : '';

}
#----------------------------------------------
#------[ REPLACE WITH ]-------------------
#----------------------------------------------
function user_avatar_url($mode, &$error, &$error_msg, $avatar_filename)
{
   if ( !preg_match('#^(http)|(ftp):\/\/#i', $avatar_filename) )
   {
      $avatar_filename = 'http://' . $avatar_filename;
   }

   if ( !preg_match("#^((ht|f)tp://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png))$)#is", $avatar_filename) )
   {
      $error = true;
      $error_msg = ( !empty($error_msg) ) ? $error_msg . '<br />' . $lang['Wrong_remote_avatar_format'] : $lang['Wrong_remote_avatar_format'];
      return;
   }
   list($width, $height) = @getimagesize($avatar_filename);

   if ( ($width > $board_config['avatar_max_width']) || ($height > $board_config['avatar_max_height']) )
   {
   $l_avatar_size = sprintf($lang['Avatar_imagesize'], $board_config['avatar_max_width'], $board_config['avatar_max_height']);

   $error = true;
   $error_msg = ( !empty($error_msg) ) ? $error_msg . '<br />' . $l_avatar_size : $l_avatar_size;
   return;
   }
   return ( $mode == 'editprofile' ) ? ", user_avatar = '" . str_replace("\'", "''", $avatar_filename) . "', user_avatar_type = " . USER_AVATAR_REMOTE : '';
}


#---------------------------------------------
#----[ FIND ]---------------------------------
#---------------------------------------------

   if ( !($imgtype = check_image_type($avatar_filetype, $error, $error_msg)) )
   {
      return;
   }

#---------------------------------------------
#----[ REPLACE WITH ]-------------------------
#---------------------------------------------
   if ( !preg_match("/(gif|jpg|jpeg|png)/i", trim(array_pop(explode("/", array_pop(getimagesize($avatar_filename))))), $imgtype) )
        {
   $error = true;
   $error_msg = (!empty($error_msg)) ? $error_msg . '<br />' . $lang['Avatar_filetype'] : $lang['Avatar_filetype'];
   return;
   }
   $imgtype = '.'.$imgtype[1];
# !!! > NOW CALL FTP MANAGER TO YOUR SITE AND CREATE DIRECTORY IN
# THE ../images/avatars/ THE FOLDER "tmp".
# NOW SET CHMOD 777 -> images/avatars, -> images/avatars/tmp
#

#----[ SAVE/CLOSE ALL FILES ]

_________________
Нас всегда не хватает там, где мы уже были...и будут ждать там, где нас еще небыло!


Последний раз редактировалось: Alexander (Воскресенье, 16 Окт 2005, 8:52), всего редактировалось 11 раз(а)
Вернуться к началу
Посмотреть профиль Посетить сайт автора 
AlexanderOffline
Модератор
Модератор
Аватара


Регистр.: 09.09.2003
Сообщений: 227
Живу  : Deutschland
Возраст: 41
Кто Я?Он
СообщениеДобавлено: Вт, 01 Мар 2005, 8:21    Заголовок сообщения: Ответить с цитированием

The modified file You can download from here:


usercp_avatar.zip
 Описание:
Modified file. Unpack, move old file, and upload this.

Скачать
 Имя файла:  usercp_avatar.zip
 Размер файла:  3.57 KB
 Скачено:  1017 раз


_________________
Нас всегда не хватает там, где мы уже были...и будут ждать там, где нас еще небыло!


Последний раз редактировалось: Alexander (Ср, 06 Июл 2005, 11:15), всего редактировалось 3 раз(а)
Вернуться к началу
Посмотреть профиль Посетить сайт автора 
AlexanderOffline
Модератор
Модератор
Аватара


Регистр.: 09.09.2003
Сообщений: 227
Живу  : Deutschland
Возраст: 41
Кто Я?Он
СообщениеДобавлено: Ср, 09 Мар 2005, 18:26    Заголовок сообщения: Ответить с цитированием

Так как функция более не используется, ее можно смело удалить.
Находится она в самом верху файла.

This can be removed! Smile
Код:

function check_image_type(&$type, &$error, &$error_msg)
{
   global $lang;

   switch( $type )
   {
      case 'jpeg':
      case 'pjpeg':
      case 'jpg':
         return '.jpg';
         break;
      case 'gif':
         return '.gif';
         break;
      case 'png':
         return '.png';
         break;
      default:
         $error = true;
         $error_msg = (!empty($error_msg)) ? $error_msg . '<br />' . $lang['Avatar_filetype'] : $lang['Avatar_filetype'];
         break;
   }

   return false;
}

_________________
Нас всегда не хватает там, где мы уже были...и будут ждать там, где нас еще небыло!
Вернуться к началу
Посмотреть профиль Посетить сайт автора 
Гость
СообщениеДобавлено: Чт, 14 Апр 2005, 15:07    Заголовок сообщения: Ответить с цитированием

Thanl a lot!
То что нужно.
Помогло. Smile
Вернуться к началу
redLight
СообщениеДобавлено: Вт, 05 Июл 2005, 16:20    Заголовок сообщения: Ответить с цитированием

wowww great, it works now but users can post big pictures than i set. i set 150x150 but they can send 500x500 etc. how to change this ?
Вернуться к началу
AlexanderOffline
Модератор
Модератор
Аватара


Регистр.: 09.09.2003
Сообщений: 227
Живу  : Deutschland
Возраст: 41
Кто Я?Он
СообщениеДобавлено: Вт, 05 Июл 2005, 20:11    Заголовок сообщения: Ответить с цитированием

Ok. i make this but later... Please register here as Customer and Check the box in reply of this topic with "Send me message if this topic updated"
_________________
Нас всегда не хватает там, где мы уже были...и будут ждать там, где нас еще небыло!
Вернуться к началу
Посмотреть профиль Посетить сайт автора 
Гость
СообщениеДобавлено: Ср, 06 Июл 2005, 9:07    Заголовок сообщения: Ответить с цитированием

ok,i am registered now.
@Alexander

why dont u post this in phpbb.com or phpbb2.de many peopLe searching something Like this. i found here by googLe.i am very very grateful to you.You soLved my forum's probLem.As i said above (redLight) the Limit for dimension dont work,but the limit for kb is working.

ExampLe:
a user can post 640x480 44kb image to my forum (max 150x150 and 50 kb is set)
a user cant post 640x480 51 kb image.

I also see that this image 640x480 is automatically converted to 150 pixeL in viewtopic.php but when u caLL the same image copying the Link into an expLorer window,it is originaL size is 640x480.
Вернуться к началу
AlexanderOffline
Модератор
Модератор
Аватара


Регистр.: 09.09.2003
Сообщений: 227
Живу  : Deutschland
Возраст: 41
Кто Я?Он
СообщениеДобавлено: Ср, 06 Июл 2005, 11:14    Заголовок сообщения: Ответить с цитированием

Ok. I hope that this will help You.
Now i have updated this mod and current mod-version is only tested with phpBB v.2.0.15 - 2.0.16 (probably have any code...)


Regards Alexander

_________________
Нас всегда не хватает там, где мы уже были...и будут ждать там, где нас еще небыло!
Вернуться к началу
Посмотреть профиль Посетить сайт автора 
toLGaOffline
Собеседник
Собеседник
Аватара


Регистр.: 06.07.2005
Сообщений: 3
Живу  : Turkey
Возраст: 34
Кто Я?Он
СообщениеДобавлено: Чт, 07 Июл 2005, 12:19    Заголовок сообщения: Ответить с цитированием

@Alexander

i upLoaded this updated mod.Now we are at the beginning,it gives an error ".. dimensions must be smaLLer than 150x150" (i set) ,aLtough the avatar size is 110x150".So i upLoaded the first one i found here again.Hope you wiLL improve the codes.How can i heLp you about this ? and thanks for your corcern.

Running Version : pLus 1.52 phpbb 2.0.16
Вернуться к началу
Посмотреть профиль 
AlexanderOffline
Модератор
Модератор
Аватара


Регистр.: 09.09.2003
Сообщений: 227
Живу  : Deutschland
Возраст: 41
Кто Я?Он
СообщениеДобавлено: Чт, 07 Июл 2005, 12:24    Заголовок сообщения: Ответить с цитированием

In what way you added avatars? From computer, from remote URL, or "show from other server"?
_________________
Нас всегда не хватает там, где мы уже были...и будут ждать там, где нас еще небыло!
Вернуться к началу
Посмотреть профиль Посетить сайт автора 
Показать сообщения:   
Начать новую тему   Продолжить эту тему    Вернуться на главную страницу форума -> Тех. раздел Часовой пояс: GMT + 1
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять файлы на этом форуме
Вы можете добавлять файлы


Powered by phpBB © 2001, 2005 phpBB Group


Rambler's Top100