Build cfg template

build_cfg_template; –– Build configuration template for the ACP.

Description
string build_cfg_template( $tpl_type, $key , &$new , $config_key , $vars) This function is used in the ACP to build a configuration page and cuts down on all the INPUT fields you have to make in the template. It allows you to create a simple array of all the fields you need to set, along with limits, validation, etc...

This is done by building a $display_vars array, looping through it and passing the data to the function.

Return Values
HTML string for output within the template.

display_vars array
title ACP title lang Include a different lang file vars array Used to build form

Example #1
$display_vars = array(	'title' => 'ACP_FOO',	'vars'	=> array( 'legend1'		 	=> 'GENERAL_FOO', 'foo1'			 	=> array('lang' => 'ALLOW_BAR', 'validate' => 'bool',	  	'type' => 'radio:yes_no',   'explain' => false), 'foo2'				=> array('lang' => 'MAX_BAR',	 'validate' => 'int:0',   	'type' => 'text:5:4',	   'explain' => true), 'foo3'				=> array('lang' => 'BAR_TYPE',	 'validate' => 'string',  	'type' => 'custom',	   'method' => 'bar_type', 'explain' => true), 'foo4'				=> array('lang' => 'SELECT_EXAMPLE', 'validate' => 'int',	'type' => 'select', 'function' => 'style_select', 'params' => array('{CONFIG_VALUE}', false), 'explain' => false) ), );

$this->new_config = $config; $cfg_array = (isset($_REQUEST['config'])) ? request_var('config', array( => )) : $this->new_config; $error = array;

validate_config_vars($display_vars['vars'], $cfg_array, $error);

foreach ($display_vars['vars'] as $config_key => $vars) {	if (!is_array($vars) && strpos($config_key, 'legend') === false) {		continue; }

if (strpos($config_key, 'legend') !== false) {		$template->assign_block_vars('options', array( 'S_LEGEND'		=> true, 'LEGEND'		=> (isset($user->lang[$vars])) ? $user->lang[$vars] : $vars)		);

continue; }

$type = explode(':', $vars['type']);

$l_explain = ''; if ($vars['explain'] && isset($vars['lang_explain'])) {		$l_explain = (isset($user->lang[$vars['lang_explain']])) ? $user->lang[$vars['lang_explain']] : $vars['lang_explain']; }	else if ($vars['explain']) {		$l_explain = (isset($user->lang[$vars['lang']. '_EXPLAIN'])) ? $user->lang[$vars['lang']. '_EXPLAIN'] : ''; }

$content = build_cfg_template($type, $config_key, $this->new_config, $config_key, $vars);

if (empty($content)) {		continue; }

$template->assign_block_vars('options', array( 'KEY'			=> $config_key, 'TITLE'			=> (isset($user->lang[$vars['lang']])) ? $user->lang[$vars['lang']] : $vars['lang'], 'S_EXPLAIN'		=> $vars['explain'], 'TITLE_EXPLAIN' => $l_explain, 'CONTENT'		=> $content, ));

unset($display_vars['vars'][$config_key]); }

function style_select($default = '', $all = false) {	global $db;

$sql_where = (!$all) ? 'WHERE style_active = 1 ' : ''; $sql = 'SELECT style_id, style_name FROM '. STYLES_TABLE. "		$sql_where		ORDER BY style_name"; $result = $db->sql_query($sql);

$style_options = ''; while ($row = $db->sql_fetchrow($result)) {		$selected = ($row['style_id'] == $default) ? ' selected="selected"' : ''; $style_options .= '' . $row['style_name']. ' ';	}	$db->sql_freeresult($result);

return $style_options; }

Template {options.LEGEND}

 {options.TITLE}: {options.TITLE_EXPLAIN}  {options.CONTENT} 