⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 acp_profile.php

📁 这些都是我以前学习是用到的源码
💻 PHP
📖 第 1 页 / 共 4 页
字号:
					$field_option = ($field_row['field_required']) ? 'field_required' : (($field_row['field_show_on_reg']) ? 'field_show_on_reg' : (($field_row['field_hide']) ? 'field_hide' : ''));				}				$cp->vars['field_no_view'] = request_var('field_no_view', $field_row['field_no_view']);				// A boolean field expects an array as the lang options				if ($field_type == FIELD_BOOL)				{					$options = request_var('lang_options', array(''), true);				}				else				{					$options = request_var('lang_options', '', true);				}				// If the user has submitted a form with options (i.e. dropdown field)				if ($options)				{					$exploded_options = (is_array($options)) ? $options : explode("\n", $options);					if (sizeof($exploded_options) == sizeof($lang_options) || $action == 'create')					{						// The number of options in the field is equal to the number of options already in the database						// Or we are creating a new dropdown list.						$cp->vars['lang_options']	= $exploded_options;					}					else if ($action == 'edit')					{						// Changing the number of options? (We remove and re-create the option fields)						$cp->vars['lang_options']	= $exploded_options;					}				}				else				{					$cp->vars['lang_options']	= $lang_options;				}				// step 2				foreach ($exclude[2] as $key)				{					$var = request_var($key, $field_row[$key], true);					// Manipulate the intended variables a little bit if needed					if ($field_type == FIELD_DROPDOWN && $key == 'field_maxlen')					{						// Get the number of options if this key is 'field_maxlen'						$var = sizeof(explode("\n", request_var('lang_options', '', true)));					}					if ($field_type == FIELD_TEXT && $key == 'field_length')					{						if (isset($_REQUEST['rows']))						{							$cp->vars['rows'] = request_var('rows', 0);							$cp->vars['columns'] = request_var('columns', 0);							$var = $cp->vars['rows'] . '|' . $cp->vars['columns'];						}						else						{							$row_col = explode('|', $var);							$cp->vars['rows'] = $row_col[0];							$cp->vars['columns'] = $row_col[1];						}					}					if ($field_type == FIELD_DATE && $key == 'field_default_value')					{						$always_now = request_var('always_now', 0);						if ($always_now || $var == 'now')						{							$now = getdate();							$cp->vars['field_default_value_day'] = $now['mday'];							$cp->vars['field_default_value_month'] = $now['mon'];							$cp->vars['field_default_value_year'] = $now['year'];							$var = $_POST['field_default_value'] = 'now';						}						else						{							if (isset($_REQUEST['field_default_value_day']))							{								$cp->vars['field_default_value_day'] = request_var('field_default_value_day', 0);								$cp->vars['field_default_value_month'] = request_var('field_default_value_month', 0);								$cp->vars['field_default_value_year'] = request_var('field_default_value_year', 0);								$var = $_POST['field_default_value'] = sprintf('%2d-%2d-%4d', $cp->vars['field_default_value_day'], $cp->vars['field_default_value_month'], $cp->vars['field_default_value_year']);							}							else							{								list($cp->vars['field_default_value_day'], $cp->vars['field_default_value_month'], $cp->vars['field_default_value_year']) = explode('-', $var);							}						}						}					$cp->vars[$key] = $var;				}				// step 3 - all arrays				if ($action == 'edit')				{					// Get language entries					$sql = 'SELECT *						FROM ' . PROFILE_FIELDS_LANG_TABLE . ' 						WHERE lang_id <> ' . $lang_defs['iso'][$config['default_lang']] . "							AND field_id = $field_id						ORDER BY option_id ASC";					$result = $db->sql_query($sql);					$l_lang_options = array();					while ($row = $db->sql_fetchrow($result))					{						$l_lang_options[$row['lang_id']][$row['option_id']] = $row['lang_value'];					}					$db->sql_freeresult($result);							$sql = 'SELECT lang_id, lang_name, lang_explain, lang_default_value						FROM ' . PROFILE_LANG_TABLE . ' 						WHERE lang_id <> ' . $lang_defs['iso'][$config['default_lang']] . "							AND field_id = $field_id						ORDER BY lang_id ASC";					$result = $db->sql_query($sql);					$l_lang_name = $l_lang_explain = $l_lang_default_value = array();					while ($row = $db->sql_fetchrow($result))					{						$l_lang_name[$row['lang_id']] = $row['lang_name'];						$l_lang_explain[$row['lang_id']] = $row['lang_explain'];						$l_lang_default_value[$row['lang_id']] = $row['lang_default_value'];					}					$db->sql_freeresult($result);				}						foreach ($exclude[3] as $key)				{					$cp->vars[$key] = request_var($key, array(0 => ''), true);					if (!$cp->vars[$key] && $action == 'edit')					{						$cp->vars[$key] = $$key;					}					else if ($key == 'l_lang_options' && sizeof($cp->vars[$key]) > 1)					{						foreach ($cp->vars[$key] as $lang_id => $options)						{							$cp->vars[$key][$lang_id] = explode("\n", $options);						}					}				}				// Check for general issues in every step				if ($submit) //  && $step == 1				{					// Check values for step 1					if ($cp->vars['field_ident'] == '')					{						$error[] = $user->lang['EMPTY_FIELD_IDENT'];					}					if (!preg_match('/^[a-z_]+$/', $cp->vars['field_ident']))					{						$error[] = $user->lang['INVALID_CHARS_FIELD_IDENT'];					}					if (strlen($cp->vars['field_ident']) > 17)					{						$error[] = $user->lang['INVALID_FIELD_IDENT_LEN'];					}					if ($cp->vars['lang_name'] == '')					{						$error[] = $user->lang['EMPTY_USER_FIELD_NAME'];					}					if ($field_type == FIELD_DROPDOWN && !sizeof($cp->vars['lang_options']))					{						$error[] = $user->lang['NO_FIELD_ENTRIES'];					}					if ($field_type == FIELD_BOOL && (empty($cp->vars['lang_options'][0]) || empty($cp->vars['lang_options'][1])))					{						$error[] = $user->lang['NO_FIELD_ENTRIES'];					}					// Check for already existing field ident					if ($action != 'edit')					{						$sql = 'SELECT field_ident 							FROM ' . PROFILE_FIELDS_TABLE . " 							WHERE field_ident = '" . $db->sql_escape($cp->vars['field_ident']) . "'";						$result = $db->sql_query($sql);						$row = $db->sql_fetchrow($result);						$db->sql_freeresult($result);						if ($row)						{							$error[] = $user->lang['FIELD_IDENT_ALREADY_EXIST'];						}					}				}				$step = (isset($_REQUEST['next'])) ? $step + 1 : ((isset($_REQUEST['prev'])) ? $step - 1 : $step);				if (sizeof($error))				{					$step--;					$submit = false;				}				// Build up the specific hidden fields				foreach ($exclude as $num => $key_ary)				{					if ($num == $step)					{						continue;					}					$_new_key_ary = array();					foreach ($key_ary as $key)					{						if (!isset($_REQUEST[$key]))						{							$var = false;						}						else						{							$_new_key_ary[$key] = (is_array($_REQUEST[$key])) ? request_var($key, array(''), true) : request_var($key, '', true);						}					}					$s_hidden_fields .= build_hidden_fields($_new_key_ary);				}				if (!sizeof($error))				{					if ($step == 3 && (sizeof($lang_defs['iso']) == 1 || $save))					{						$this->save_profile_field($cp, $field_type, $lang_defs, $action);					}					else if ($action == 'edit' && $save)					{						$this->save_profile_field($cp, $field_type, $lang_defs, $action);					}				}				$template->assign_vars(array(					'S_EDIT'			=> true,					'S_EDIT_MODE'		=> ($action == 'edit') ? true : false,					'ERROR_MSG'			=> (sizeof($error)) ? implode('<br />', $error) : '',					'L_TITLE'			=> $user->lang['STEP_' . $step . '_TITLE_' . strtoupper($action)],					'L_EXPLAIN'			=> $user->lang['STEP_' . $step . '_EXPLAIN_' . strtoupper($action)],										'U_ACTION'			=> $this->u_action . "&amp;action=$action&amp;step=$step",					'U_BACK'			=> $this->u_action)				);				// Now go through the steps				switch ($step)				{					// Create basic options - only small differences between field types					case 1: 							// Build common create options						$template->assign_vars(array(							'S_STEP_ONE'		=> true,							'S_FIELD_REQUIRED'	=> ($cp->vars['field_required']) ? true : false,							'S_SHOW_ON_REG'		=> ($cp->vars['field_show_on_reg']) ? true : false,							'S_FIELD_HIDE'		=> ($cp->vars['field_hide']) ? true : false,							'S_FIELD_NO_VIEW'	=> ($cp->vars['field_no_view']) ? true : false,							'L_LANG_SPECIFIC'	=> sprintf($user->lang['LANG_SPECIFIC_OPTIONS'], $config['default_lang']),							'FIELD_TYPE'		=> $user->lang['FIELD_' . strtoupper($cp->profile_types[$field_type])],							'FIELD_IDENT'		=> $cp->vars['field_ident'],							'LANG_NAME'			=> $cp->vars['lang_name'],							'LANG_EXPLAIN'		=> $cp->vars['lang_explain'])						);						// String and Text needs to set default values here...						if ($field_type == FIELD_STRING || $field_type == FIELD_TEXT)						{							$template->assign_vars(array(								'S_TEXT'		=> ($field_type == FIELD_TEXT) ? true : false,								'S_STRING'		=> ($field_type == FIELD_STRING) ? true : false,								'L_DEFAULT_VALUE_EXPLAIN'	=> $user->lang[strtoupper($cp->profile_types[$field_type]) . '_DEFAULT_VALUE_EXPLAIN'],								'LANG_DEFAULT_VALUE'		=> $cp->vars['lang_default_value'])							);						}									if ($field_type == FIELD_BOOL || $field_type == FIELD_DROPDOWN)						{							// Initialize these array elements if we are creating a new field							if (!sizeof($cp->vars['lang_options']))							{								if ($field_type == FIELD_BOOL)								{									// No options have been defined for a boolean field.									$cp->vars['lang_options'][0] = '';									$cp->vars['lang_options'][1] = '';								}								else								{									// No options have been defined for the dropdown menu									$cp->vars['lang_options'] = array();								}							}							$template->assign_vars(array(								'S_BOOL'		=> ($field_type == FIELD_BOOL) ? true : false,								'S_DROPDOWN'	=> ($field_type == FIELD_DROPDOWN) ? true : false,								'L_LANG_OPTIONS_EXPLAIN'	=> $user->lang[strtoupper($cp->profile_types[$field_type]) . '_ENTRIES_EXPLAIN'],								'LANG_OPTIONS'				=> ($field_type == FIELD_DROPDOWN) ? implode("\n", $cp->vars['lang_options']) : '',								'FIRST_LANG_OPTION'			=> ($field_type == FIELD_BOOL) ? $cp->vars['lang_options'][0] : '',								'SECOND_LANG_OPTION'		=> ($field_type == FIELD_BOOL) ? $cp->vars['lang_options'][1] : '')							);						}										break;					case 2:												$template->assign_vars(array(							'S_STEP_TWO'		=> true,							'L_NEXT'			=> (sizeof($lang_defs['iso']) == 1) ? $user->lang['SAVE'] : $user->lang['PROFILE_LANG_OPTIONS'])						);						// Build options based on profile type						$function = 'get_' . $cp->profile_types[$field_type] . '_options';						$options = $cp->$function();						foreach ($options as $num => $option_ary)						{							$template->assign_block_vars('option', $option_ary);						}					break;					// Define remaining language variables					case 3: 						$template->assign_var('S_STEP_THREE', true);						$options = $this->build_language_options($cp, $field_type, $action);						foreach ($options as $lang_id => $lang_ary)						{							$template->assign_block_vars('options', array(								'LANGUAGE'		=> ($lang_ary['lang_iso'] == $config['default_lang']) ? sprintf($user->lang['DEFAULT_ISO_LANGUAGE'], $config['default_lang']) : sprintf($user->lang['ISO_LANGUAGE'], $lang_ary['lang_iso']))							);							foreach ($lang_ary['fields'] as $field_ident => $field_ary)							{								$template->assign_block_vars('options.field', array(									'L_TITLE'		=> $field_ary['TITLE'],									'L_EXPLAIN'		=> (isset($field_ary['EXPLAIN'])) ? $field_ary['EXPLAIN'] : '',									'FIELD'			=> $field_ary['FIELD'])								);							}						}							break;				}				$template->assign_vars(array(					'S_HIDDEN_FIELDS'	=> $s_hidden_fields)				);				return;			break;		}				$sql = 'SELECT *			FROM ' . PROFILE_FIELDS_TABLE . '			ORDER BY field_order';		$result = $db->sql_query($sql);		$s_one_need_edit = false;		while ($row = $db->sql_fetchrow($result))		{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -