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

📄 acp_profile.php

📁 这些都是我以前学习是用到的源码
💻 PHP
📖 第 1 页 / 共 4 页
字号:
			$active_lang = (!$row['field_active']) ? 'ACTIVATE' : 'DEACTIVATE';			$active_value = (!$row['field_active']) ? 'activate' : 'deactivate';			$id = $row['field_id'];			$s_need_edit = (sizeof($lang_defs['diff'][$row['field_id']])) ? true : false;			if ($s_need_edit)			{				$s_one_need_edit = true;			}			$template->assign_block_vars('fields', array(				'FIELD_IDENT'		=> $row['field_ident'],				'FIELD_TYPE'		=> $user->lang['FIELD_' . strtoupper($cp->profile_types[$row['field_type']])],				'L_ACTIVATE_DEACTIVATE'		=> $user->lang[$active_lang],				'U_ACTIVATE_DEACTIVATE'		=> $this->u_action . "&amp;action=$active_value&amp;field_id=$id",				'U_EDIT'					=> $this->u_action . "&amp;action=edit&amp;field_id=$id",				'U_TRANSLATE'				=> $this->u_action . "&amp;action=edit&amp;field_id=$id&amp;step=3",				'U_DELETE'					=> $this->u_action . "&amp;action=delete&amp;field_id=$id",				'U_MOVE_UP'					=> $this->u_action . "&amp;action=move_up&amp;order={$row['field_order']}",				'U_MOVE_DOWN'				=> $this->u_action . "&amp;action=move_down&amp;order={$row['field_order']}",				'S_NEED_EDIT'				=> $s_need_edit)			);		}		$db->sql_freeresult($result);		// At least one option field needs editing?		if ($s_one_need_edit)		{			$template->assign_var('S_NEED_EDIT', true);		}		$s_select_type = '';		foreach ($cp->profile_types as $key => $value)		{			$s_select_type .= '<option value="' . $key . '">' . $user->lang['FIELD_' . strtoupper($value)] . '</option>';		}		$template->assign_vars(array(			'U_ACTION'			=> $this->u_action,			'S_TYPE_OPTIONS'	=> $s_select_type)		);	}	/**	* Build all Language specific options	*/	function build_language_options(&$cp, $field_type, $action = 'create')	{		global $user, $config, $db;		$sql = 'SELECT lang_id, lang_iso 			FROM ' . LANG_TABLE . "			WHERE lang_iso <> '" . $config['default_lang'] . "'			ORDER BY lang_english_name";		$result = $db->sql_query($sql);		$languages = array();		while ($row = $db->sql_fetchrow($result))		{			$languages[$row['lang_id']] = $row['lang_iso'];		}		$db->sql_freeresult($result);				$options = array();		$options['lang_name'] = 'string';		if ($cp->vars['lang_explain'])		{			$options['lang_explain'] = 'text';		}			switch ($field_type)		{			case FIELD_BOOL:				$options['lang_options'] = 'two_options';			break;			case FIELD_DROPDOWN:				$options['lang_options'] = 'optionfield';			break;						case FIELD_TEXT:			case FIELD_STRING:				if ($cp->vars['lang_default_value'])				{					$options['lang_default_value'] = ($field_type == FIELD_STRING) ? 'string' : 'text';				}			break;		}			$lang_options = array();		foreach ($options as $field => $field_type)		{			$lang_options[1]['lang_iso'] = $config['default_lang'];			$lang_options[1]['fields'][$field] = array(				'TITLE'		=> $user->lang['CP_' . strtoupper($field)],				'FIELD'		=> '<dd>' . ((is_array($cp->vars[$field])) ? implode('<br />', $cp->vars[$field]) : str_replace("\n", '<br />', $cp->vars[$field])) . '</dd>'			);			if (isset($user->lang['CP_' . strtoupper($field) . '_EXPLAIN']))			{				$lang_options[1]['fields'][$field]['EXPLAIN'] = $user->lang['CP_' . strtoupper($field) . '_EXPLAIN'];			}		}		foreach ($languages as $lang_id => $lang_iso)		{			$lang_options[$lang_id]['lang_iso'] = $lang_iso;			foreach ($options as $field => $field_type)			{				$value = ($action == 'create') ? request_var('l_' . $field, array(0 => ''), true) : $cp->vars['l_' . $field];				if ($field == 'lang_options')				{					$var = ($action == 'create' || !is_array($cp->vars['l_lang_options'][$lang_id])) ? $cp->vars['lang_options'] : $cp->vars['lang_options'][$lang_id];										switch ($field_type)					{						case 'two_options':							$lang_options[$lang_id]['fields'][$field] = array(								'TITLE'		=> $user->lang['CP_' . strtoupper($field)],								'FIELD'		=> '											<dd><input class="medium" name="l_' . $field . '[' . $lang_id . '][]" value="' . ((isset($value[$lang_id][0])) ? $value[$lang_id][0] : $var[0]) . '" /> ' . $user->lang['FIRST_OPTION'] . '</dd>											<dd><input class="medium" name="l_' . $field . '[' . $lang_id . '][]" value="' . ((isset($value[$lang_id][1])) ? $value[$lang_id][1] : $var[1]) . '" /> ' . $user->lang['SECOND_OPTION'] . '</dd>'							);						break;						case 'optionfield':							$lang_options[$lang_id]['fields'][$field] = array(								'TITLE'		=> $user->lang['CP_' . strtoupper($field)],								'FIELD'		=> '<dd><textarea name="l_' . $field . '[' . $lang_id . ']" rows="7" cols="80">' . ((isset($value[$lang_id])) ? implode("\n", $value[$lang_id]) : implode("\n", $var)) . '</textarea></dd>'							);						break;					}									if (isset($user->lang['CP_' . strtoupper($field) . '_EXPLAIN']))					{						$lang_options[$lang_id]['fields'][$field]['EXPLAIN'] = $user->lang['CP_' . strtoupper($field) . '_EXPLAIN'];					}				}				else				{					$var = ($action == 'create' || !is_array($cp->vars[$field])) ? $cp->vars[$field] : $cp->vars[$field][$lang_id];					$lang_options[$lang_id]['fields'][$field] = array(						'TITLE'		=> $user->lang['CP_' . strtoupper($field)],						'FIELD'		=> ($field_type == 'string') ? '<dd><input class="medium" type="text" name="l_' . $field . '[' . $lang_id . ']" value="' . ((isset($value[$lang_id])) ? $value[$lang_id] : $var) . '" /></dd>' : '<dd><textarea name="l_' . $field . '[' . $lang_id . ']" rows="3" cols="80">' . ((isset($value[$lang_id])) ? $value[$lang_id] : $var) . '</textarea></dd>'					);								if (isset($user->lang['CP_' . strtoupper($field) . '_EXPLAIN']))					{						$lang_options[$lang_id]['fields'][$field]['EXPLAIN'] = $user->lang['CP_' . strtoupper($field) . '_EXPLAIN'];					}				}			}		}		return $lang_options;	}	/**	* Save Profile Field	*/	function save_profile_field(&$cp, $field_type, &$lang_defs, $action = 'create')	{		global $db, $config, $user;		$field_id = request_var('field_id', 0);		// Collect all information, if something is going wrong, abort the operation		$profile_sql = $profile_lang = $empty_lang = $profile_lang_fields = array();		$default_lang_id = $lang_defs['iso'][$config['default_lang']];		if ($action == 'create')		{			$sql = 'SELECT MAX(field_order) as max_field_order				FROM ' . PROFILE_FIELDS_TABLE;			$result = $db->sql_query($sql);			$new_field_order = (int) $db->sql_fetchfield('max_field_order');			$db->sql_freeresult($result);			$field_ident = $cp->vars['field_ident'];		}		// Save the field		$profile_fields = array(			'field_length'			=> $cp->vars['field_length'],			'field_minlen'			=> $cp->vars['field_minlen'],			'field_maxlen'			=> $cp->vars['field_maxlen'],			'field_novalue'			=> $cp->vars['field_novalue'],			'field_default_value'	=> $cp->vars['field_default_value'],			'field_validation'		=> $cp->vars['field_validation'],			'field_required'		=> $cp->vars['field_required'],			'field_show_on_reg'		=> $cp->vars['field_show_on_reg'],			'field_hide'			=> $cp->vars['field_hide'],			'field_no_view'			=> $cp->vars['field_no_view']		);		if ($action == 'create')		{			$profile_fields += array(				'field_type'		=> $field_type,				'field_ident'		=> $field_ident,				'field_name'		=> $field_ident,				'field_order'		=> $new_field_order + 1,				'field_active'		=> 1			);			$sql = 'INSERT INTO ' . PROFILE_FIELDS_TABLE . ' ' . $db->sql_build_array('INSERT', $profile_fields);			$db->sql_query($sql);			$field_id = $db->sql_nextid();		}		else		{			$sql = 'UPDATE ' . PROFILE_FIELDS_TABLE . '				SET ' . $db->sql_build_array('UPDATE', $profile_fields) . "				WHERE field_id = $field_id";			$db->sql_query($sql);		}				if ($action == 'create')		{			$field_ident = 'pf_' . $field_ident;			$profile_sql[] = $this->add_field_ident($field_ident, $field_type);		}		$sql_ary = array(			'lang_name'				=> $cp->vars['lang_name'],			'lang_explain'			=> $cp->vars['lang_explain'],			'lang_default_value'	=> $cp->vars['lang_default_value']		);		if ($action == 'create')		{			$sql_ary['field_id'] = $field_id;			$sql_ary['lang_id'] = $default_lang_id;					$profile_sql[] = 'INSERT INTO ' . PROFILE_LANG_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);		}		else		{			$this->update_insert(PROFILE_LANG_TABLE, $sql_ary, array('field_id' => $field_id, 'lang_id' => $default_lang_id));		}		if (is_array($cp->vars['l_lang_name']) && sizeof($cp->vars['l_lang_name']))		{			foreach ($cp->vars['l_lang_name'] as $lang_id => $data)			{				if (($cp->vars['lang_name'] != '' && $cp->vars['l_lang_name'][$lang_id] == '')					|| ($cp->vars['lang_explain'] != '' && $cp->vars['l_lang_explain'][$lang_id] == '')					|| ($cp->vars['lang_default_value'] != '' && $cp->vars['l_lang_default_value'][$lang_id] == ''))				{					$empty_lang[$lang_id] = true;					break;				}				if (!isset($empty_lang[$lang_id]))				{					$profile_lang[] = array(						'field_id'		=> $field_id,						'lang_id'		=> $lang_id,						'lang_name'		=> $cp->vars['l_lang_name'][$lang_id],						'lang_explain'	=> (isset($cp->vars['l_lang_explain'][$lang_id])) ? $cp->vars['l_lang_explain'][$lang_id] : '',						'lang_default_value'	=> (isset($cp->vars['l_lang_default_value'][$lang_id])) ? $cp->vars['l_lang_default_value'][$lang_id] : ''					);				}			}			foreach ($empty_lang as $lang_id => $NULL)			{				$sql = 'DELETE FROM ' . PROFILE_LANG_TABLE . " 					WHERE field_id = $field_id					AND lang_id = " . (int) $lang_id;				$db->sql_query($sql);			}		}		// These are always arrays because the key is the language id...		$cp->vars['l_lang_name']			= request_var('l_lang_name', array(0 => ''), true);		$cp->vars['l_lang_explain']			= request_var('l_lang_explain', array(0 => ''), true);		$cp->vars['l_lang_default_value']	= request_var('l_lang_default_value', array(0 => ''), true);		$cp->vars['l_lang_options']			= request_var('l_lang_options', array(0 => ''), true);		if ($cp->vars['lang_options'])		{			if (!is_array($cp->vars['lang_options']))			{				$cp->vars['lang_options'] = explode("\n", $cp->vars['lang_options']);			}			if ($action != 'create')			{				$sql = 'DELETE FROM ' . PROFILE_FIELDS_LANG_TABLE . " 					WHERE field_id = $field_id						AND lang_id = " . (int) $default_lang_id;				$db->sql_query($sql);			}						foreach ($cp->vars['lang_options'] as $option_id => $value)			{				$sql_ary = array(					'field_type'	=> (int) $field_type,					'lang_value'	=> $value				);				if ($action == 'create')				{					$sql_ary['field_id'] = $field_id;					$sql_ary['lang_id'] = $default_lang_id;					$sql_ary['option_id'] = (int) $option_id;					$profile_sql[] = 'INSERT INTO ' . PROFILE_FIELDS_LANG_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);				}				else				{					$this->update_insert(PROFILE_FIELDS_LANG_TABLE, $sql_ary, array(						'field_id'	=> $field_id,						'lang_id'	=> (int) $default_lang_id,						'option_id'	=> (int) $option_id)					);				}			}		}		if (is_array($cp->vars['l_lang_options']) && sizeof($cp->vars['l_lang_options']))		{			$empty_lang = array();			foreach ($cp->vars['l_lang_options'] as $lang_id => $lang_ary)			{				if (!is_array($lang_ary))				{					$lang_ary = explode("\n", $lang_ary);				}				if (sizeof($lang_ary) != sizeof($cp->vars['lang_options']))				{					$empty_lang[$lang_id] = true;				}				if (!isset($empty_lang[$lang_id]))				{					if ($action != 'create')					{						$sql = 'DELETE FROM ' . PROFILE_FIELDS_LANG_TABLE . " 							WHERE field_id = $field_id							AND lang_id = " . (int) $lang_id;						$db->sql_query($sql);					}					foreach ($lang_ary as $option_id => $value)					{						$profile_lang_fields[] = array(							'field_id'		=> (int) $field_id,							'lang_id'		=> (int) $lang_id,							'option_id'		=> (int) $option_id,							'field_type'	=> (int) $field_type,							'lang_value'	=> $value						);					}				}			}			foreach ($empty_lang as $lang_id => $NULL)			{				$sql = 'DELETE FROM ' . PROFILE_FIELDS_LANG_TABLE . " 					WHERE field_id = $field_id					AND lang_id = " . (int) $lang_id;				$db->sql_query($sql);			}		}		foreach ($profile_lang as $sql)		{			if ($action == 'create')

⌨️ 快捷键说明

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