コード例 #1
0
ファイル: function.input.php プロジェクト: nathansamson/CoOrg
function smarty_function_input($params, $smarty)
{
	$type = FormElement::getParameter($params, 'type', 'text');
	$label = FormElement::getParameter($params, 'label');
	if (! $label && !FormElement::getBoolParameter($params, 'nolabel'))
	{
		$type = 'hidden';
	}
	
	$object = FormElement::getObject($type);
	if ($object instanceof FileInput)
	{
		$smarty->_coorg_form->file_upload = true;
	}

	if ($object instanceof LabeledFormElement)
	{
		$object->setLabel(t($label));
		$object->setIDPrefix($smarty->_coorg_form->formID);
		
		if (FormElement::getBoolParameter($params, 'disabled')) $object->disable();
		if ($tabindex = FormElement::getParameter($params, 'tabindex')) $object->tabindex($tabindex);
	}

	if ($object instanceof IUserInput)
	{
		if ($placeholder = FormElement::getParameter($params, 'placeholder')) $object->setPlaceholder($placeholder);
		if (FormElement::getBoolParameter($params, 'readonly')) $object->readonly();
					
		if ($for = FormElement::getParameter($params, 'for'))
		{
			$object->setName($for); // This can be overriden by a name="" (see later)
			
			$instance = $smarty->_coorg_form->instance;
			$object->setObject($instance, $for);
		}
		else
		{
			$object->setValue(FormElement::getParameter($params, 'value'));
		}
	}
	
	if ($name = FormElement::getParameter($params, 'name'))
	{
		$object->setName($name);
	}
	
	$object->setSpecificParameters($params);
	return $object->render();
}