Загрузка Аватара при Регистрации (Случайный Аватар) ХАК (Бесплатно)

Автор: DagStudent
Опубликовано: 241 день назад (24 сентября 2011)
Рубрика: Без рубрики
Редактировалось: 6 раз — последний 25 сентября 2011
Настроение: Отличное
Играет: Шум Холодильника
+42
Голосов: 44
Наверное многим как и мне надоели одноликие пользователи которым лень после регистрации закачать аватар.
Тогда то я и захотел, сделать загрузку аватара при регистрации, в блогах уже была такая реализация, но она была платная, а покупать мне не хотелосьsmileв один прекрасный момент я наконец то понял как это сделать, но тогда встала другая проблема, а что делать если пользователь не выбрал аватар, надо либо делать выбор аватара обязательным либо сделать возможность установки случайного аватара, вот как раз таки как сделать второе я и расскажу:
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:
<form id="regform" name="regform" method="post" action="/registration" enctype="multipart/form-data">
3. В файле components/registration/frontend.php находим строчку:
Код 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:
//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);
}
Кто ставил выбор города при регистрации не забываем вставить ".$new_user_id.", '$city', вместо "$new_user_id.", '';
5. В том же файле если не включена активация по email находим это:
Код PHP:
// Регистрируем событие
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']); }
а если включена активация по email то это:
Код 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. С удовольствием приму благодарности  zst реквизиты на стене.
Кнопки Добавить в друзья и Отправить сообщение в Списке Пользователей - Хак | Компонент Музыкальный Альбом v1.0 (FREE)
vitalson9 # 24 сентября 2011 в 17:58 0
всё сделал как тут описано при попытке авторизации на новом нике выдало белую страницу и назад не востонавлевается всё что прописал удалил но картина таже самая белая страница вот посмотрите ссылка
DagStudent # 24 сентября 2011 в 18:10 0
Я зашел регистрироваться, на странице регистрации нету пункта загрузки аватора значит вы все таки не все по инструкции сделали. Но я все же зарегистрировался, но потом не могу зайти, а потом Ваш сайт вообще перестал грузиться, вы проводите технические работы или что?
vitalson9 # 24 сентября 2011 в 18:18 0
всё это началось когда я установил ваш хак на сайт и когда вы регистрировались я его уже снёс и теперь зайти на сайт могу только с мазилы а опера выдаёт пустую страницу не знаю может опера глючит но всеровно ставлю плюс
DagStudent # 24 сентября 2011 в 18:25 0
Вот мой файл frontend.php можете им заменить свой и попробовать еще раз
vitalson9 # 24 сентября 2011 в 22:41 0
не спасибо у меня он переписан
DagStudent # 24 сентября 2011 в 18:19 0
С Opera 11 ваш сайт не грузиться, с Мозилы и Хром грузиться, но я так и не увидел в пункте регистрация загрузить аватар.
vitalson9 # 24 сентября 2011 в 18:25 0
сейчас с оперой разберусь и попробую поставить снова позже отпишусь
DagStudent # 24 сентября 2011 в 18:27 0
в архиве с аватарами название папки w замените на f, или заново скачайте архив я его перезалил, может из за этого глюк был.
Ilekor # 25 сентября 2011 в 00:29 0
Проблема скорее всего в последнем коде. Быстрым глазом мне кажется что то с елсом что то не то.
DagStudent # 25 сентября 2011 в 09:05 0
Но у меня же с этим кодом все работает, сейчас еще раз перепроверю всели скопировал и отпишусь.
Ilekor # 24 сентября 2011 в 23:50 0
Также все делал по вашей инструкции, руки прямые, та же ситуация, регистрация нормально идет, потом нажимаешь авторизоваться и белая страница, сейчас нет времени скрипт глянуть, если не сделаете, я посмотрю завтра что не так.
Nikitka # 25 сентября 2011 в 00:30 0
Вдумайтесь в первый абзац этого блога и все станет ясно без разных непоняток "Наверное многим как и мне надоели одноликие пользователи которым лень после регистрации закачать аватар."
Nikitka # 25 сентября 2011 в 00:21 0
DagStudent это все конечно круто!Но дело в том чио загрузка аватара не является обязательной!По этому ленивый пользователь может с легкостью зарегиться опять же без аватара))))сделайте это поле обязательным!А так все равно ++++++
Ilekor # 25 сентября 2011 в 00:25 0
Ну дык вы прочтите пост, что если пользователь не выбрал аватар тогда берется автоматически с сервера из указанной папки случайный аватар. Для меня это верное решение.
Nikitka # 25 сентября 2011 в 00:28 -1
Вот как я обошел регистрацию без загрузки аватара!http://даг05.рф/users/qweqweqwe Сделайте пожалуйста это поле ОБЯЗАТЕЛЬНЫМ!
Ilekor # 25 сентября 2011 в 00:37 0
Находим  

Код PHP:
// Регистрируем событие
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(!$realfile) {
  $msg  .= 'Вы не выбрали аватар для загрузки!
';
}

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);
		}
	}
}
Кажется так.
DagStudent # 25 сентября 2011 в 09:10 0
Если сделать так то пользователь зарегистрируется, а потом выдаст ошибку. надо в пункте 3 вместо строк:
Код PHP:
//Проверяем аватар
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><br/>';
	}
}
записать эти:
Код PHP:
//Проверяем аватар
if (!$realfile) {
	$msg  .= 'Ошибка! Вы не выбрали <b>Аватар</b><br/>';
}
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><br/>';
}
DagStudent # 25 сентября 2011 в 09:14 0
И еще тогда в пункте 5, нужно после этого:
Код PHP:
// Регистрируем событие
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:
	$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);
	}
и архив качать и распаковывать не надо
DagStudent # 25 сентября 2011 в 09:03 0
Вот из за того что вы не выбрали аватар вам система поставила этот:
BilarИuss # 25 сентября 2011 в 02:53 +1
Ошибка:  Не указан Город!
Вы не указали свой Пол!
Vovan # 25 сентября 2011 в 03:21 0
А с какой периодичностью повторяются одни и те же аватары
DagStudent # 25 сентября 2011 в 09:17 0
ну смотря сколько аватаров накидаете в папки m и f которые в архиве
russianru # 25 сентября 2011 в 10:23 0
кокойто недогон!!! я вставел свою фотку и всеровно вылиз аватар левый с галилей можской и во вторы у меня уже стоит какой пол выбрать как с этим быть?
Ingvarruss # 25 сентября 2011 в 11:14 0
Сделал все по инструкции, но постоянно вылазит сообщение что не выбран пол, зарегистрироваться не получается.
Ingvarruss # 25 сентября 2011 в 11:23 0
Исправил
DagStudent # 25 сентября 2011 в 11:35 0
Блин забыл про enctype
В файле ВАШ_ШАБЛОН/components/com_registration.tpl
Это:
Код PHP:
<form id="regform" name="regform" method="post" action="/registration">
меняем на это:
Код PHP:
<form id="regform" name="regform" method="post" action="/registration" enctype="multipart/form-data">
Пост Обновил!
russianru # 25 сентября 2011 в 12:12 0
там две токих строки какую из них менять первую или вторую?
DagStudent # 25 сентября 2011 в 12:21 0
Второй
Ilekor # 25 сентября 2011 в 12:30 0
Вобщем брал ваш файлы и методом сравнения переносил код, и вуаля, регистрация заработала, и авторизация проходит, вот только аватар не выбрался автоматически.
Ilekor # 25 сентября 2011 в 12:35 0
и не загружается, метод регистрации используется через активацию по майлу.
Ilekor # 25 сентября 2011 в 12:38 0
без включенной активации по мылу работает.
DagStudent # 25 сентября 2011 в 13:53 +1
чтобы работало с включенной активации по мылу, то в пункте 5 надо вставку делать после этого:
Код PHP:
if ($is_locked){
  sendActivationNotice($send_pass, $new_user_id);
  $inPage->includeTemplateFile('special/regactivate.php');
vitalson9 # 25 сентября 2011 в 13:02 0
всё супер 1.8 полёт нормальный спасибо автору
imprint # 26 сентября 2011 в 13:38 0
все сделал при регистрации все нормально только аватар загрузился nopic
DagStudent # 26 сентября 2011 в 16:12 0
Не знаю не знаю, несколько раз перепроверял и с нуля ставил должен работать, если можешь скинь свой fronted.php посмотрю
Александр # 11 октября 2011 в 15:48 0
ладно поставим посмотрим на свой страх и риск))) а так идея отличная спасибо за ваш труд)))) давно хотел , чтоб сразу зашел и была аватарка!
Анатолий # 7 декабря 2011 в 08:24 0
Поставил на 1.9 полёт нормальный! Спасибо автору
GarikKR # 24 января 2012 в 23:57 -1
Ребят после регистрации белый экран,подскажите что поправить?все сделал по инструкции,уже незнаю что править
oll # 25 января 2012 в 00:24 0
Вот не помню , или поставить или убрать одну закрывающую скобку }
php редактором посмотри после if .
Rossoman # 25 января 2012 в 00:36 0
А у меня на 1.9 просто не загружается аватар. Фотка выбирается, при нажатии на кнопку регистрация у пользователя остается заглушка
GarikKR # 25 января 2012 в 01:08 -1
Вроде зделал ,при регистрации без аваторки на ура,сейчас попробую загрузить аватор при регистрации
GarikKR # 25 января 2012 в 01:17 -1
Все работает на Ура!В купе с выбором города,аватарка загружается с компа,без аватарки ставится с сайта.В опере полет нормальный!

<form id="regform" name="regform" method="post" action="/registration">
эту строку менять не первую!а вторую!
GarikKR # 25 января 2012 в 01:18 -1
v.1.9
pasplus # 2 февраля 2012 в 23:34 0
Спасибо DagStudent на 1.9 все работает на УРА, одозначно++++
Thanatognozija # 4 февраля 2012 в 10:31 0
Здравствуйте, уважаемое сообщество!
Скорее всего мой вопрос не по теме, но здесь звучало мнение, что можно включить принудительную, то есть, обязательную загрузку, или включение аватара пользователем. Может быть кто-то знает как это сделать, а то я не нашел где это включить?

Спасибо!
DagStudent # 5 февраля 2012 в 21:08 0
В 3м пункте вместо этого:
Код PHP:
//Проверяем аватар
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>
';
	}
}
ставим это:
//Проверяем аватар
Код PHP:
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>
';
	}
}else{
	$msg  .= 'Ошибка не выбран аватар';
}
Tagil-Rulit # 18 февраля 2012 в 21:52 0
Автору спасибо. Сайт автора работает, однако архив не скачивается...
DagStudent # 21 февраля 2012 в 18:07 0
Проверил архив на месте и скачивается, попробуйте скачать по этой ссылке с зеркала http://da05.ru/rand_ava.zip а то то до сих пор браузеры плохо обрабатывают кирилические домены.
R.S. # 2 марта 2012 в 21:48 0
1.8 все отлично
Dag Student, а как вы город в форму регистрации вывели?
R.S. # 3 марта 2012 в 09:44 0
т.е. я видел ваше красивое решение, но мне такое не надо. Я хочу вывести стандартное заполнение города, т.е. человек сам вписывает название своего города.

видел подобное здесь: http://www.instantcms.ru/forum/thread1114.html но это походу для старых версий, не работает
DagStudent # 4 марта 2012 в 16:36 0
1,2й пункт отсюда http://www.instantcms.ru/blogs/blog-nachavshego-programirovat/krasivoe-reshenie-vybora-goroda-pri-registraci.html не делаем;
вместо 3го пишем это:
Код PHP:
<tr>
	<td valign="top" class="">
		<div><strong>Город</strong></div>
		<div><small>Выберите место своего рождения или пребывания</small></div>
	</td>
	<td valign="top" class="">
		<div class="city">
			<strong>Город:</strong>
			<select name="city" id="city">
				<option value="">Выберите город</option>
			</select>
		</div>
	</td>
</tr>
4 и 5 делаем как написано и все будет ок.
DagStudent # 4 марта 2012 в 16:39 0
погорячился чуток вместо 3го это:
Код PHP:
<tr>
	<td valign="top" class="">
		<div><strong>Город</strong></div>
		<div><small>Выберите место своего рождения или пребывания</small></div>
	</td>
	<td valign="top" class="">
		<div class="city">
                   <input type="text" name="city" value="">
		</div>
	</td>
</tr>
R.S. # 6 марта 2012 в 14:14 0
так всё ок, но после регистрации в профиле не отображается выбранный пол человека
DagStudent # 7 марта 2012 в 15:53 0
Это:
Код PHP:
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.", '$city', '', '0', '0', '1', '0', '', 'all')";
	$inDB->query($sql) ;
	
	$user_array['id'] = $new_user_id;
	cmsCore::callEvent('USER_REGISTER', $user_array);
}
меняем на это
Код PHP:
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.", '$city', '', '0', '0', '1', '0', '', 'all', '$gender')";
	$inDB->query($sql) ;
	
	$user_array['id'] = $new_user_id;
	cmsCore::callEvent('USER_REGISTER', $user_array);
}
R.S. # 7 марта 2012 в 16:10 0
спасибо
vpugachev # 24 марта 2012 в 10:21 0
Спасибо очень нужное решение. Есть несколько вопросов:
1) Как сделать, что бы при неверном заполнении какого-либо поля и последующим сообщением об этом на вновь открывшейся странице регистрации данные о выбранном поле сохранялись.
2) Можно ли выполнить какой то sql-запрос, что бы у уже зарегистрированных пользователей на сайте в случайном порядке изменились аватары на загруженные в какую-либо папку на сервере?
VopisUVD # 22 апреля 2012 в 23:42 0
Мну тоже это интересует... у меня хоть и не много пользователе... но всеже?
вопрос к админам подобное решение достойно войти в релиз?