ACP Add User MOD Модификация

Поддержка старых модов или модов, созданных авторами не из нашего сообщества, а также любые вопросы, связанные с модами для phpBB 3.0.x, кроме относящихся к форуму Для авторов (phpBB 3.0.x).
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
CasperSoft
phpBB 1.4.2
Сообщения: 70
Стаж: 13 лет 11 месяцев
Благодарил (а): 2 раза

ACP Add User MOD Модификация

Сообщение CasperSoft »

Решил добавить в него выбор пола.
Для выбора пола используется мод Genders 1.0.1
Для того чтобы добавить в в мод ACP Add User выбор пола при добавлении пользователя необходимо произвести следующие правки.
adm/style/acp_add_user.html
Найти

Код: Выделить всё

	<!-- IF S_BIRTHDAYS_ENABLED -->
	<dl> 
		<dt><label for="birthday">{L_BIRTHDAY}:</label><br /><span>{L_BIRTHDAY_EXPLAIN}</span></dt>
		<dd>{L_DAY}: <select id="birthday" name="bday_day">{S_BIRTHDAY_DAY_OPTIONS}</select> {L_MONTH}: <select name="bday_month">{S_BIRTHDAY_MONTH_OPTIONS}</select> {L_YEAR}: <select name="bday_year">{S_BIRTHDAY_YEAR_OPTIONS}</select></dd>
	</dl>
	<!-- ENDIF -->
Добавить после

Код: Выделить всё

   <dl>
      <dt><label for="gender_x">{L_GENDER}:</label><br /><span>{L_GENDER_EXPLAIN}</span></dt>
      <dd>
         <label for="gender_m"><input type="radio" name="gender" id="gender_m" value="{GENDER_M}"<!-- IF S_GENDER_M --> checked="checked"<!-- ENDIF --> /> {L_GENDER_M}</label>
         <label for="gender_f"><input type="radio" name="gender" id="gender_f" value="{GENDER_F}"<!-- IF S_GENDER_F --> checked="checked"<!-- ENDIF --> /> {L_GENDER_F}</label>
         <label for="gender_x"><input type="radio" name="gender" id="gender_x" value="{GENDER_X}"<!-- IF S_GENDER_X --> checked="checked"<!-- ENDIF --> /> {L_GENDER_X}</label>
      </dd>
   </dl>
includes/acp/acp_add_user.php
Найти

Код: Выделить всё

'tz'				=> request_var('tz', (float) $timezone)
Заменить

Код: Выделить всё

			'tz'				=> request_var('tz', (float) $timezone),
//-- mod : BB Genders Plus ------------------------------------------------------------
         		'gender'      		=> request_var('gender', $user->data['user_gender'])
//-- end mod : Genders -------------------------------------------------------
Найти

Код: Выделить всё

			'S_TZ_OPTIONS'		=> tz_select($data['tz']),
Добавить после

Код: Выделить всё

//-- mod : BB Genders Plus ------------------------------------------------------------
         	'GENDER_X'      	=> GENDER_X,
         	'GENDER_M'      	=> GENDER_M,
         	'GENDER_F'      	=> GENDER_F,

         	'S_GENDER_X'   		=> ($data['gender'] == GENDER_X) ? true : false,
         	'S_GENDER_M'   		=> ($data['gender'] == GENDER_M) ? true : false,
         	'S_GENDER_F'   		=> ($data['gender'] == GENDER_F) ? true : false,
//-- end mod : Genders --------------------------------------------------------
Найти

Код: Выделить всё

'user_inactive_time'	=> $user_inactive_time,
Добавить после

Код: Выделить всё

//-- mod : BB Genders Plus ------------------------------------------------------------
              		'user_gender'   		=> $data['gender'],
//-- end mod : Genders --------------------------------------------------------
Найти

Код: Выделить всё

'lang'				=> array('match', false, '#^[a-z_-]{2,}$#i'),
Добавить после

Код: Выделить всё

//-- mod : BB Genders Plus ------------------------------------------------------------
            	'gender'      		=> array('num', false, 1, 2),
//-- end mod : Genders -------------------------------------------------------
В следующем сообщении добавлю изменения с выбором Флага страны.
Мод National Flags 2.0.4

Добавлено спустя 39 минут 4 секунды:
adm/style/acp_add_user.html
Найти

Код: Выделить всё

	<dl>
		<dt><label for="lang">{L_LANGUAGE}:</label></dt>
		<dd><select name="lang" id="lang">{S_LANG_OPTIONS}</select></dd>
	</dl>
Добавить после

Код: Выделить всё

<script type="text/javascript">
// <![CDATA[
	/**
	* Some functions for the AJAX checker
	*/
	function createRequestObject() {
	    var ro;
	    var browser = navigator.appName;
	    if(browser == "Microsoft Internet Explorer"){
	        ro = new ActiveXObject("Microsoft.XMLHTTP");
	    } else {
	        ro = new XMLHttpRequest();
	    }
	    return ro;
	}	

	var http = createRequestObject();	
	function flagIdReq(value) {
		// Make the request
		var flagimage_url = '{AJAX_FLAG_INFO}';
		http.open('get', flagimage_url.replace('FLAG_ID', value));
	    http.onreadystatechange = handleResponse;
	    http.send(null);
	}
	// fill in the response
	function handleResponse() {
		if(http.readyState == 4 ){		
		var response = http.responseText;
			document.getElementById('flag_image').innerHTML = response;
		}
	}	
// ]]>
</script>
	<dl>
		<td class="row1" width="50%"><b class="genmed">{L_FLAG}:</b></td>
		<td class="row2"><select name="flag" id="flag" onchange="flagIdReq(this.value);">{S_FLAG_OPTIONS}</select>&nbsp;<span id="flag_image" <!-- IF not FLAG_IMAGE -->style="display:none;"<!-- ENDIF -->><img src="{FLAG_IMAGE}" alt="{FLAG_NAME}" title="{FLAG_NAME}" style="vertical-align:middle;" /></span></td>	
	</dl>
includes/acp/acp_add_user.php
Найти

Код: Выделить всё

		include($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx);
		include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
Добавить после

Код: Выделить всё

				//Begin: National_Flag
				include($phpbb_root_path . 'includes/functions_flag.' . $phpEx);
				//End: National_Flag
Найти

Код: Выделить всё

$data['user_birthday'] = sprintf('%2d-%2d-%4d', $data['bday_day'], $data['bday_month'], $data['bday_year']);
		}
Добавить после

Код: Выделить всё

			//Begin: National_Flag
				if (!empty($config['allow_flags']))
				{					
					$data['flag'] = request_var('flag', (int) $user->data['user_flag']);					
				}
				//End: National_Flag
Найти

Код: Выделить всё

if ($config['allow_birthdays'])
					{
						$validate_array = array_merge($validate_array, array(
Добавить перед

Код: Выделить всё

					//Begin: National_Flag
					//Currently set to validate up to 300, if you want more
					//flags than 300 change to the amount you want
					if (!empty($config['allow_flags']))
					{
						$validate_array = array_merge($validate_array, array(
							'flag'      	=> array('num', true, 0, 300),
						));
					}
					//End: National_Flag
Найти

Код: Выделить всё

				'S_BIRTHDAYS_ENABLED'		=> true,
			));
		}
Добавить после

Код: Выделить всё

				//Begin: National_Flag
				if (!empty($config['allow_flags']))
				{
					global $cache;
					get_user_flag();
					$flags = $cache->get('_user_flags');
					$flag_name = '';
					if ($data['flag'] && $config['flag_type'] != USER_FLAG_TEXT)
					{
						$flag_name = $flags[$data['flag']]['flag_image'];
					}
					unset($flags);				
					$s_flag_options = list_all_flags($data['flag']);
					
					$template->assign_vars(array(
						'S_FLAG_OPTIONS'	=> $s_flag_options,
						'S_FLAGS_ENABLED'	=> true,
						'FLAG_IMAGE'		=> ($flag_name) ? "{$phpbb_root_path}images/flags/$flag_name" : '',
						'FLAG_NAME'			=> $flag_name,
						'AJAX_FLAG_INFO'	=> append_sid("{$phpbb_root_path}ajax_user_flag.$phpEx", 'flag_id=FLAG_ID'),
					));
				}
				//End: National_Flag
Добавлено спустя 13 минут 19 секунд:
Также необходимо скопировать папку flags в adm/images/.
Добавлено спустя 37 минут 35 секунд:
как я понял за изменения флага страны в UCP отвечает вот это условие.

Код: Выделить всё

						//Begin: National_Flag
						if (!empty($config['allow_flags']))
						{
							$sql_ary['user_flag'] = $data['flag'];
						}
						//End: National_Flag
Но так как мы не изменяем флаг а задаем во время создания пользователя.
Найти

Код: Выделить всё

'tz'				=> request_var('tz', (float) $timezone),
Добавить после

Код: Выделить всё

'flag'				=> request_var('flag',''),
Найти

Код: Выделить всё

					'user_inactive_time'	=> $user_inactive_time,
Добавить после

Код: Выделить всё

'user_flag'   		=> $data['flag'],
Найти

Код: Выделить всё

'lang'				=> array('match', false, '#^[a-z_-]{2,}$#i'),
Добавить после

Код: Выделить всё

				'flag'      		=> array('num', false, 0, 300),
Добавлено спустя 9 минут 2 секунды:
И вопрос на который у меня сегодня не хватило сил, но он не критический.
При добавлении нового пользователя по стандарту флаг стоит тот который выбран у админа как бы сделать чтобы был выставлен в 0 то есть "Выберите флаг страны проживания".
По ходу надо подправить где то здесь.

Код: Выделить всё

				//Begin: National_Flag
				if (!empty($config['allow_flags']))
				{
					global $cache;
					get_user_flag();
					$flags = $cache->get('_user_flags');
					$flag_name = '';
					if ($data['flag'] && $config['flag_type'] != USER_FLAG_TEXT)
					{
						$flag_name = $flags[$data['flag']]['flag_image'];
					}
					unset($flags);				
					$s_flag_options = list_all_flags($data['flag']);
					
					$template->assign_vars(array(
						'S_FLAG_OPTIONS'	=> $s_flag_options,
						'S_FLAGS_ENABLED'	=> true,
						'FLAG_IMAGE'		=> ($flag_name) ? "{$phpbb_root_path}images/flags/$flag_name" : '',
						'FLAG_NAME'			=> $flag_name,
						'AJAX_FLAG_INFO'	=> append_sid("{$phpbb_root_path}ajax_user_flag.$phpEx", 'flag_id=FLAG_ID'),
					));
				}
				//End: National_Flag

Вернуться в «Поддержка модов для phpBB 3.0.x»