Загрузка Аватара при Регистрации (Случайный Аватар) ХАК (Бесплатно)
|
|
Автор: DagStudent
Опубликовано: 241 день назад (24 сентября 2011)
Рубрика: Без рубрики
Редактировалось: 6 раз — последний 25 сентября 2011
Настроение: Отличное
Играет: Шум Холодильника
|
+42↑ Голосов: 44 |
Наверное многим как и мне надоели одноликие пользователи которым лень после регистрации закачать аватар.
Тогда то я и захотел, сделать загрузку аватара при регистрации, в блогах уже была такая реализация, но она была платная, а покупать мне не хотелось
в один прекрасный момент я наконец то понял как это сделать, но тогда встала другая проблема, а что делать если пользователь не выбрал аватар, надо либо делать выбор аватара обязательным либо сделать возможность установки случайного аватара, вот как раз таки как сделать второе я и расскажу:
1. Скачиваем архив rand_ava.zip, без страха распаковываем в корень сайта, в архиве 100 мужских и 100 женских аватаров и больше ничего;
2. В файле ВАШ_ШАБЛОН/components/com_registration.tpl вставьте в любое удобное для вас место ставите это:
Там же это:
4. В том же файле components/registration/frontend.php находим это:
5. В том же файле если не включена активация по email находим это:
После распаковки архива у вас в папке /images/users/avatars/ появиться папка rand_ava а в ней папка для Мужчин m для Женщин f, вот в эти папки и можете лить свои наборы аватаров, названия аватаров может быть любым количество тоже любое, на ваше желание и вкус.
И так вроде все, ах да вот ДЕМО регистрируемся не загружая аватар и смотрим каким вас аватаром адарил сайт, кстати не забываем выбирать пол.
Точно работает на Instant 1.8, на других не проверял.
PS. С удовольствием приму благодарности
реквизиты на стене.
Тогда то я и захотел, сделать загрузку аватара при регистрации, в блогах уже была такая реализация, но она была платная, а покупать мне не хотелось
в один прекрасный момент я наконец то понял как это сделать, но тогда встала другая проблема, а что делать если пользователь не выбрал аватар, надо либо делать выбор аватара обязательным либо сделать возможность установки случайного аватара, вот как раз таки как сделать второе я и расскажу:1. Скачиваем архив rand_ava.zip, без страха распаковываем в корень сайта, в архиве 100 мужских и 100 женских аватаров и больше ничего;
2. В файле ВАШ_ШАБЛОН/components/com_registration.tpl вставьте в любое удобное для вас место ставите это:
Код PHP:
Многие из вас скажут, а для чего здесь выбор пола, потерпите скоро все поймете :);<tr> <td valign="top" class=""> <div><strong>Аватар:</strong></div> <div><small>Если вы не загрузите Аватар, вам будет установлен случайный Аватар</small></div> </td> <td> <input name="picture" type="file" id="picture" size="30" /> </td> </tr> <tr> <td valign="top" class=""><strong>Пол:</strong></td> <td valign="top"> <select name="gender" id="gender" style="width:190px"> <option value="">Выберите Пол</option> <option value="m">Мужской</option> <option value="f">Женский</option> </select> <span class="regstar">*</span> </td> </tr>
Там же это:
Код PHP:
меняем на это:<form id="regform" name="regform" method="post" action="/registration">
Код PHP:
3. В файле components/registration/frontend.php находим строчку:<form id="regform" name="regform" method="post" action="/registration" enctype="multipart/form-data">
Код PHP:
и после нее вставляем это:// Если есть опция показывать icq при регистрации, то проверяем
if ($cfg['ask_icq']){
$icq = $inCore->request('icq', 'str', '');
$icq = preg_replace('/([^0-9])/i', '', $icq);
} else {
$icq = '';
}Код PHP:
;// Проверяем Пол
$gender = $inCore->request('gender', 'str');
if(!$gender) {
$msg .= 'Вы не указали свой <b>Пол</b>!';
}
$uploaddir = PATH.'/images/users/avatars/';
$realfile = $_FILES['picture']['name'];
$path_parts = pathinfo($realfile);
$ext = strtolower($path_parts['extension']);
$inCore->includeGraphics();
//Проверяем аватар
if ($realfile) {
if ($ext != 'jpg' and $ext != 'jpeg' and $ext != 'gif' and $ext != 'bmp' and $ext != 'png'){
$msg .= 'Ошибка! Разрещенные расширения для Аватара: <b>.jpg</b> <b>.jpeg</b> <b>.gif</b> <b>.bmp</b> <b>.png</b>
';
}
}4. В том же файле components/registration/frontend.php находим это:
Код PHP:
и меняем на это://create advanced user profile
if ($new_user_id){
$usr = $inDB->fetch_assoc($result);
$sql = "INSERT INTO cms_user_profiles (user_id, city, description, showmail, showbirth, showicq, karma, imageurl, allow_who)
VALUES (".$new_user_id.", '', '', '0', '0', '1', '0', '', 'all')";
$inDB->query($sql) ;
$user_array['id'] = $new_user_id;
cmsCore::callEvent('USER_REGISTER', $user_array);
}Код PHP:
Кто ставил выбор города при регистрации не забываем вставить ".$new_user_id.", '$city', вместо "$new_user_id.", '';//create advanced user profile
if ($new_user_id){
$usr = $inDB->fetch_assoc($result);
$sql = "INSERT INTO cms_user_profiles (user_id, city, description, showmail, showbirth, showicq, karma, imageurl, allow_who, gender)
VALUES (".$new_user_id.", '', '', '0', '0', '1', '0', '', 'all', '$gender')";
$inDB->query($sql) ;
$user_array['id'] = $new_user_id;
cmsCore::callEvent('USER_REGISTER', $user_array);
}5. В том же файле если не включена активация по email находим это:
Код PHP:
а если включена активация по email то это:// Регистрируем событие
cmsActions::log('add_user', array(
'object' => '',
'user_id' => $new_user_id,
'object_url' => '',
'object_id' => $new_user_id,
'target' => '',
'target_url' => '',
'target_id' => 0,
'description' => ''
));
$inPage->includeTemplateFile('special/regcomplete.php');
if ($cfg['send_greetmsg']){ $model->sendGreetsMessage($new_user_id, $cfg['greetmsg']); }Код PHP:
и сразу после него вставляем это:if ($is_locked){
sendActivationNotice($send_pass, $new_user_id);
$inPage->includeTemplateFile('special/regactivate.php');Код PHP:
Теперь вы поняли зачем нужен выбор пола??? Чтобы для Мужчин и Женщин выбирать из разных наборов аватаров.if ($realfile) {
if ($ext == 'jpg' or $ext == 'jpeg' or $ext == 'gif' or $ext == 'bmp' or $ext == 'png')
{
$filename = md5($realfile . '-' . $new_user_id . '-' . time()).'.jpg';
$uploadfile = $uploaddir . $realfile;
$uploadavatar = $uploaddir . $filename;
$uploadthumb = $uploaddir . 'small/' . $filename;
$source = $_FILES['picture']['tmp_name'];
$errorCode = $_FILES['picture']['error'];
if ($inCore->moveUploadedFile($source, $uploadfile, $errorCode)) {
$cfg = $inCore->loadComponentConfig('users');
//CREATE THUMBNAIL
if (isset($cfg['smallw'])) { $smallw = $cfg['smallw']; } else { $smallw = 64; }
if (isset($cfg['medw'])) { $medw = $cfg['medw']; } else { $medw = 200; }
if (isset($cfg['medh'])) { $medh = $cfg['medh']; } else { $medh = 200; }
@img_resize($uploadfile, $uploadavatar, $medw, $medh);
@img_resize($uploadfile, $uploadthumb, $smallw, $smallw);
//DELETE ORIGINAL
@unlink($uploadfile);
//MODIFY PROFILE
$sql = "UPDATE cms_user_profiles
SET imageurl = '$filename'
WHERE user_id = '$new_user_id'
LIMIT 1";
$inDB->query($sql);
}
}
} else
{
if ($gender == 'm')
{
$avatars_dir = PATH."/images/users/avatars/rand_ava/m";
$avatars_dir_rel = "/images/users/avatars/rand_ava/m";
} else
{
$avatars_dir = PATH."/images/users/avatars/rand_ava/f";
$avatars_dir_rel = "/images/users/avatars/rand_ava/f";
}
$avatars_dir_handle = opendir($avatars_dir);
$avatars = array();
while ($nextfile = readdir($avatars_dir_handle))
{
if(($nextfile!='.')&&($nextfile!='..')&&( strstr($nextfile, '.gif') || strstr($nextfile, '.jpg') || strstr($nextfile, '.jpeg') || strstr($nextfile, '.png') ) )
{
$avatars[] = $nextfile;
}
}
closedir($avatars_dir_handle);
$avatar_id = array_rand($avatars);
$file = $avatars[$avatar_id];
$uploaddir = $_SERVER['DOCUMENT_ROOT'].'/images/users/avatars/';
$realfile = $file;
$filename = md5($realfile . '-' . $new_user_id . '-' . time()).'.jpg';
$uploadfile = $avatars_dir . '/' . $realfile;
$uploadavatar = $uploaddir . $filename;
$uploadthumb = $uploaddir . 'small/' . $filename;
$sql = "SELECT imageurl FROM cms_user_profiles WHERE user_id = $new_user_id";
$result = $inDB->query($sql) ;
if ($inDB->num_rows($result))
{
$old = $inDB->fetch_assoc($result);
if ($old['imageurl'] && $old['imageurl']!='nopic.jpg')
{
@unlink($_SERVER['DOCUMENT_ROOT'].'/images/users/avatars/'.$old['imageurl']);
@unlink($_SERVER['DOCUMENT_ROOT'].'/images/users/avatars/small/'.$old['imageurl']);
}
}
//CREATE THUMBNAIL
$cfg = $inCore->loadComponentConfig('users');
if (isset($cfg['smallw'])) { $smallw = $cfg['smallw']; } else { $smallw = 64; }
if (isset($cfg['medw'])) { $medw = $cfg['medw']; } else { $medw = 200; }
copy($uploadfile, $uploadavatar);
@img_resize($uploadfile, $uploadthumb, $smallw, $smallw);
//MODIFY PROFILE
$sql = "UPDATE cms_user_profiles
SET imageurl = '$filename'
WHERE user_id = '$new_user_id'
LIMIT 1";
$inDB->query($sql);
}После распаковки архива у вас в папке /images/users/avatars/ появиться папка rand_ava а в ней папка для Мужчин m для Женщин f, вот в эти папки и можете лить свои наборы аватаров, названия аватаров может быть любым количество тоже любое, на ваше желание и вкус.
И так вроде все, ах да вот ДЕМО регистрируемся не загружая аватар и смотрим каким вас аватаром адарил сайт, кстати не забываем выбирать пол.
Точно работает на Instant 1.8, на других не проверял.
PS. С удовольствием приму благодарности
реквизиты на стене.← Кнопки Добавить в друзья и Отправить сообщение в Списке Пользователей - Хак | Компонент Музыкальный Альбом v1.0 (FREE) →
| # 24 сентября 2011 в 17:58 0 | ||
|
| # 24 сентября 2011 в 18:10 0 |
| # 24 сентября 2011 в 18:18 0 |
| # 24 сентября 2011 в 18:25 0 | ||
|
| # 24 сентября 2011 в 22:41 0 | ||
|
| # 24 сентября 2011 в 18:19 0 | ||
|
| # 24 сентября 2011 в 18:25 0 | ||
|
| # 24 сентября 2011 в 18:27 0 | ||
|
| # 25 сентября 2011 в 00:29 0 | ||
|
| # 25 сентября 2011 в 09:05 0 | ||
|
| # 24 сентября 2011 в 23:50 0 |
| # 25 сентября 2011 в 00:30 0 | ||
|
| # 25 сентября 2011 в 00:21 0 |
| # 25 сентября 2011 в 00:25 0 | ||
|
| # 25 сентября 2011 в 00:28 -1 | ||
|
| # 25 сентября 2011 в 00:37 0 |
| # 25 сентября 2011 в 09:10 0 |
| # 25 сентября 2011 в 09:14 0 |
| # 25 сентября 2011 в 09:03 0 | ||
|
| # 25 сентября 2011 в 02:53 +1 | ||
|
| # 25 сентября 2011 в 03:21 0 | ||
|
| # 25 сентября 2011 в 09:17 0 | ||
|
| # 25 сентября 2011 в 10:23 0 | ||
|
| # 25 сентября 2011 в 11:14 0 | ||
|
| # 25 сентября 2011 в 11:23 0 | ||
|
| # 25 сентября 2011 в 11:35 0 |
| # 25 сентября 2011 в 12:12 0 | ||
|
| # 25 сентября 2011 в 12:21 0 | ||
|
| # 25 сентября 2011 в 12:30 0 | ||
|
| # 25 сентября 2011 в 12:35 0 | ||
|
| # 25 сентября 2011 в 12:38 0 | ||
|
| # 25 сентября 2011 в 13:53 +1 |
| # 25 сентября 2011 в 13:02 0 | ||
|
| # 26 сентября 2011 в 13:38 0 | ||
|
| # 26 сентября 2011 в 16:12 0 | ||
|
| # 11 октября 2011 в 15:48 0 | ||
|
| # 7 декабря 2011 в 08:24 0 | ||
|
| # 24 января 2012 в 23:57 -1 | ||
|
| # 25 января 2012 в 00:24 0 | ||
|
| # 25 января 2012 в 00:36 0 | ||
|
| # 25 января 2012 в 01:08 -1 | ||
|
| # 25 января 2012 в 01:17 -1 |
| # 25 января 2012 в 01:18 -1 | ||
|
| # 2 февраля 2012 в 23:34 0 | ||
|
| # 4 февраля 2012 в 10:31 0 |
| # 5 февраля 2012 в 21:08 0 |
| # 18 февраля 2012 в 21:52 0 | ||
|
| # 21 февраля 2012 в 18:07 0 | ||
|
| # 2 марта 2012 в 21:48 0 | ||
|
| # 3 марта 2012 в 09:44 0 | ||
|
| # 4 марта 2012 в 16:36 0 | ||
|
| # 4 марта 2012 в 16:39 0 |
| # 6 марта 2012 в 14:14 0 | ||
|
| # 7 марта 2012 в 15:53 0 |
| # 7 марта 2012 в 16:10 0 | ||
|
| # 24 марта 2012 в 10:21 0 |
| # 22 апреля 2012 в 23:42 0 | ||
|
