<xf:macro id="db_host"
	arg-value="localhost"
	arg-placeholder="{{ null }}"
	arg-explain="{{ null }}">

	<xf:macro id="db_textbox"
		arg-name="host"
		arg-label="{{ phrase('mysql_server') }}"
		arg-value="{$value}"
		arg-placeholder="{$placeholder}"
		arg-explain="{$explain}" />
</xf:macro>

<xf:macro id="db_dbname"
	arg-value="{{ null }}"
	arg-placeholder="{{ null }}"
	arg-explain="{{ null }}">

	<xf:macro id="db_textbox"
		arg-name="dbname"
		arg-label="{{ phrase('mysql_database_name') }}"
		arg-value="{$value}"
		arg-placeholder="{$placeholder}"
		arg-explain="{$explain}" />
</xf:macro>

<xf:macro id="db_username"
	arg-value="{{ null }}"
	arg-placeholder="{{ null }}"
	arg-explain="{{ null }}">

	<xf:macro id="db_textbox"
		arg-name="username"
		arg-label="{{ phrase('mysql_user_name') }}"
		arg-value="{$value}"
		arg-placeholder="{$placeholder}"
		arg-explain="{$explain}" />
</xf:macro>

<xf:macro id="db_password"
	arg-value="{{ null }}"
	arg-placeholder="{{ null }}"
	arg-explain="{{ null }}">

	<xf:macro id="db_textbox"
		arg-name="password"
		arg-label="{{ phrase('mysql_password') }}"
		arg-value="{$value}"
		arg-placeholder="{$placeholder}"
		arg-autocomplete="off"
		arg-explain="{$explain}" />
</xf:macro>

<xf:macro id="db_port"
	arg-value="3306"
	arg-placeholder="{{ null }}"
	arg-explain="{{ null }}">

	<xf:macro id="db_textbox"
		arg-name="port"
		arg-label="{{ phrase('mysql_port') }}"
		arg-value="{$value}"
		arg-placeholder="{$placeholder}"
		arg-explain="{$explain}" />
</xf:macro>

<xf:macro id="db_tablePrefix"
	arg-value="{{ null }}"
	arg-placeholder="{{ null }}"
	arg-explain="{{ null }}">

	<xf:macro id="db_textbox"
		arg-name="tablePrefix"
		arg-label="{{ phrase('mysql_table_prefix') }}"
		arg-value="{$value}"
		arg-placeholder="{$placeholder}"
		arg-explain="{$explain}" />
</xf:macro>

<xf:macro id="db_charset"
	arg-value="{{ null }}"
	arg-placeholder="{{ null }}"
	arg-explain="{{ phrase('mysql_force_charset_explain') }}">

	<xf:macro id="db_textbox"
		arg-name="charset"
		arg-label="{{ phrase('mysql_force_charset') }}"
		arg-value="{$value}"
		arg-placeholder="{$placeholder}"
		arg-explain="{$explain}" />
</xf:macro>

<xf:macro id="db_textbox"
	arg-name="!"
	arg-label="!"
	arg-value="{{ null }}"
	arg-placeholder="{{ null }}"
	arg-autocomplete="{{ null }}"
	arg-explain="{{ null }}">

	<xf:textboxrow name="config[db][{$name}]" value="{$value}" autocomplete="{$autocomplete}"
		placeholder="{$placeholder}"
		label="{$label}"
		explain="{$explain}" />
</xf:macro>

<xf:macro id="language_charset"
	arg-name="charset"
	arg-label="{{ phrase('default_language_character_set') }}"
	arg-value="{{ null }}"
	arg-placeholder="{{ null }}"
	arg-autocomplete="{{ null }}"
	arg-explain="{{ null }}">

	<xf:textboxrow name="config[{$name}]" value="{$value}" autocomplete="{$autocomplete}"
		placeholder="{$placeholder}"
		label="{$label}"
		explain="{$explain}" />
</xf:macro>