Updated form class to serve up less markup

Cut empty attributes and line breaks. Closes #14
This commit is contained in:
Josh Sherman 2013-01-28 16:46:23 -05:00
parent 640727c554
commit 41ba406ea6
2 changed files with 110 additions and 52 deletions

View file

@ -9,7 +9,7 @@
* Redistribution of these files must retain the above copyright notice. * Redistribution of these files must retain the above copyright notice.
* *
* @author Josh Sherman <pickles@joshtronic.com> * @author Josh Sherman <pickles@joshtronic.com>
* @copyright Copyright 2007-2012, Josh Sherman * @copyright Copyright 2007-2013, Josh Sherman
* @license http://www.opensource.org/licenses/mit-license.html * @license http://www.opensource.org/licenses/mit-license.html
* @package PICKLES * @package PICKLES
* @link https://github.com/joshtronic/pickles * @link https://github.com/joshtronic/pickles
@ -55,9 +55,9 @@ class Form extends Object
* @param boolean $checked optional whether the input is checked * @param boolean $checked optional whether the input is checked
* @return string HTML for the input * @return string HTML for the input
*/ */
public function input($name, $value = '', $classes = '', $additional = null, $type = 'text', $checked = false) public function input($name, $value = null, $classes = null, $additional = null, $type = 'text', $checked = false)
{ {
if ($additional != null) if ($additional)
{ {
$additional = ' ' . $additional; $additional = ' ' . $additional;
} }
@ -67,7 +67,17 @@ class Form extends Object
$additional .= ' checked="checked"'; $additional .= ' checked="checked"';
} }
return '<input type="' . $type . '" name="' . $name . '" id="' . $name . '" value="' . $value . '" class="' . $classes . '"' . $additional . ' />' . "\n"; if ($value)
{
$additional .= ' value="' . $value . '"';
}
if ($classes)
{
$additional .= ' class="' . $classes . '"';
}
return '<input type="' . $type . '" name="' . $name . '" id="' . $name . '"' . $additional . ' />';
} }
// }}} // }}}
@ -84,7 +94,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the input * @return string HTML for the input
*/ */
public function hidden($name, $value = '', $classes = '', $additional = null) public function hidden($name, $value = null, $classes = null, $additional = null)
{ {
return $this->input($name, $value, $classes, $additional, 'hidden'); return $this->input($name, $value, $classes, $additional, 'hidden');
} }
@ -102,7 +112,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the input * @return string HTML for the input
*/ */
public function hiddenInput($name, $value = '', $classes = '', $additional = null) public function hiddenInput($name, $value = null, $classes = null, $additional = null)
{ {
return $this->input($name, $value, $classes, $additional, 'hidden'); return $this->input($name, $value, $classes, $additional, 'hidden');
} }
@ -121,7 +131,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the input * @return string HTML for the input
*/ */
public function password($name, $value = '', $classes = '', $additional = null) public function password($name, $value = null, $classes = null, $additional = null)
{ {
return $this->input($name, $value, $classes, $additional, 'password'); return $this->input($name, $value, $classes, $additional, 'password');
} }
@ -139,7 +149,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the input * @return string HTML for the input
*/ */
public function passwordInput($name, $value = '', $classes = '', $additional = null) public function passwordInput($name, $value = null, $classes = null, $additional = null)
{ {
return $this->input($name, $value, $classes, $additional, 'password'); return $this->input($name, $value, $classes, $additional, 'password');
} }
@ -158,7 +168,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the input * @return string HTML for the input
*/ */
public function submit($name, $value = '', $classes = '', $additional = null) public function submit($name, $value = null, $classes = null, $additional = null)
{ {
return $this->input($name, $value, $classes, $additional, 'submit'); return $this->input($name, $value, $classes, $additional, 'submit');
} }
@ -176,7 +186,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the input * @return string HTML for the input
*/ */
public function submitInput($name, $value = '', $classes = '', $additional = null) public function submitInput($name, $value = null, $classes = null, $additional = null)
{ {
return $this->input($name, $value, $classes, $additional, 'submit'); return $this->input($name, $value, $classes, $additional, 'submit');
} }
@ -233,7 +243,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the input * @return string HTML for the input
*/ */
public function checkbox($name, $value = '', $checked = false, $classes = '', $additional = null) public function checkbox($name, $value = null, $checked = false, $classes = null, $additional = null)
{ {
return $this->input($name, $value, $classes, $additional, 'checkbox', $checked); return $this->input($name, $value, $classes, $additional, 'checkbox', $checked);
} }
@ -258,7 +268,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the input * @return string HTML for the input
*/ */
public function radio($name, $value = '', $checked = false, $classes = '', $additional = null) public function radio($name, $value = null, $checked = false, $classes = null, $additional = null)
{ {
return $this->input($name, $value, $classes, $additional, 'radio', $checked); return $this->input($name, $value, $classes, $additional, 'radio', $checked);
} }
@ -283,14 +293,19 @@ class Form extends Object
* @param string $type optional type of input * @param string $type optional type of input
* @return string HTML for the input * @return string HTML for the input
*/ */
public function textarea($name, $value = '', $classes = '', $additional = null) public function textarea($name, $value = null, $classes = null, $additional = null)
{ {
if ($additional != null) if ($additional)
{ {
$additional = ' ' . $additional; $additional = ' ' . $additional;
} }
return '<textarea name="' . $name . '" id="' . $name . '" class="' . $classes . '"' . $additional . '>' . $value . '</textarea>' . "\n"; if ($classes)
{
$additional .= ' class="' . $classes . '"';
}
return '<textarea name="' . $name . '" id="' . $name . '"' . $additional . '>' . $value . '</textarea>';
} }
// }}} // }}}
@ -308,14 +323,19 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the select box * @return string HTML for the select box
*/ */
public function select($name, $options, $selected = null, $classes = '', $additional = null) public function select($name, $options, $selected = null, $classes = null, $additional = null)
{ {
if ($additional != null) if ($additional)
{ {
$additional = ' ' . $additional; $additional = ' ' . $additional;
} }
return '<select id="' . $name . '" name="' . $name . '" class="' . $classes . '"' . $additional . '>' . $this->options($options, $selected) . '</select>' . "\n"; if ($classes)
{
$additional .= ' class="' . $classes . '"';
}
return '<select id="' . $name . '" name="' . $name . '" class="' . $classes . '"' . $additional . '>' . $this->options($options, $selected) . '</select>';
} }
// }}} // }}}
@ -400,7 +420,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the select box * @return string HTML for the select box
*/ */
public function stateSelect($name = 'state', $selected = null, $classes = '', $additional = null) public function stateSelect($name = 'state', $selected = null, $classes = null, $additional = null)
{ {
$options = array( $options = array(
null => '-- Select State --', null => '-- Select State --',
@ -489,7 +509,7 @@ class Form extends Object
* @param integer $end_year optional last year to display * @param integer $end_year optional last year to display
* @return string HTML for the select boxes * @return string HTML for the select boxes
*/ */
public function dateSelect($name = 'date', $selected = null, $classes = '', $additional = null, $start_year = null, $end_year = null) public function dateSelect($name = 'date', $selected = null, $classes = null, $additional = null, $start_year = null, $end_year = null)
{ {
$html = ''; $html = '';
@ -565,7 +585,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the select boxes * @return string HTML for the select boxes
*/ */
public function dobSelect($name = 'dob', $selected = null, $classes = '', $additional = null) public function dobSelect($name = 'dob', $selected = null, $classes = null, $additional = null)
{ {
// Note: Start year based on oldest living person: http://en.wikipedia.org/wiki/Oldest_people as of November 2010 // Note: Start year based on oldest living person: http://en.wikipedia.org/wiki/Oldest_people as of November 2010
// Note: Start and end year may seem backwards, but we want them in descending order when rendered // Note: Start and end year may seem backwards, but we want them in descending order when rendered
@ -585,7 +605,7 @@ class Form extends Object
* @param string $classes optional class names * @param string $classes optional class names
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
*/ */
public function polarSelect($name = 'decision', $selected = 0, $classes = '', $additional = null) public function polarSelect($name = 'decision', $selected = 0, $classes = null, $additional = null)
{ {
$options = array(1 => 'Yes', 0 => 'No'); $options = array(1 => 'Yes', 0 => 'No');
@ -605,7 +625,7 @@ class Form extends Object
* @param string $classes optional class names * @param string $classes optional class names
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
*/ */
public function phoneInput($name = 'phone', $value = null, $classes = '', $additional = null) public function phoneInput($name = 'phone', $value = null, $classes = null, $additional = null)
{ {
if ($value == null) if ($value == null)
{ {
@ -630,19 +650,28 @@ class Form extends Object
'line_number' => 4 'line_number' => 4
); );
if ($additional != null) if ($additional)
{ {
$additional = ' ' . $additional; $additional = ' ' . $additional;
} }
$additional .= ' class="digits';
if ($classes)
{
$additional .= ' ' . $classes;
}
$additional .= '"';
$html = ''; $html = '';
foreach ($parts as $part => $size) foreach ($parts as $part => $size)
{ {
$html .= ($html != '' ? ' ' : ''); $html .= ($html != '' ? ' ' : '');
$html .= '<input type="input" name="' . $name . '[' . $part . ']" id="' . $name . '[' . $part . ']" value="' . $value[$part] . '" minlength="' . $size . '" maxlength="' . $size . '" class="digits ' . $class . '"' . $additional . ' />'; $html .= '<input type="input" name="' . $name . '[' . $part . ']" id="' . $name . '[' . $part . ']" value="' . $value[$part] . '" minlength="' . $size . '" maxlength="' . $size . '"' . $additional . ' />';
} }
return $html . "\n"; return $html;
} }
// }}} // }}}

81
jar.php
View file

@ -3460,7 +3460,7 @@ class File
* Redistribution of these files must retain the above copyright notice. * Redistribution of these files must retain the above copyright notice.
* *
* @author Josh Sherman <pickles@joshtronic.com> * @author Josh Sherman <pickles@joshtronic.com>
* @copyright Copyright 2007-2012, Josh Sherman * @copyright Copyright 2007-2013, Josh Sherman
* @license http://www.opensource.org/licenses/mit-license.html * @license http://www.opensource.org/licenses/mit-license.html
* @package PICKLES * @package PICKLES
* @link https://github.com/joshtronic/pickles * @link https://github.com/joshtronic/pickles
@ -3506,9 +3506,9 @@ class Form extends Object
* @param boolean $checked optional whether the input is checked * @param boolean $checked optional whether the input is checked
* @return string HTML for the input * @return string HTML for the input
*/ */
public function input($name, $value = '', $classes = '', $additional = null, $type = 'text', $checked = false) public function input($name, $value = null, $classes = null, $additional = null, $type = 'text', $checked = false)
{ {
if ($additional != null) if ($additional)
{ {
$additional = ' ' . $additional; $additional = ' ' . $additional;
} }
@ -3518,7 +3518,17 @@ class Form extends Object
$additional .= ' checked="checked"'; $additional .= ' checked="checked"';
} }
return '<input type="' . $type . '" name="' . $name . '" id="' . $name . '" value="' . $value . '" class="' . $classes . '"' . $additional . ' />' . "\n"; if ($value)
{
$additional .= ' value="' . $value . '"';
}
if ($classes)
{
$additional .= ' class="' . $classes . '"';
}
return '<input type="' . $type . '" name="' . $name . '" id="' . $name . '"' . $additional . ' />';
} }
// }}} // }}}
@ -3535,7 +3545,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the input * @return string HTML for the input
*/ */
public function hidden($name, $value = '', $classes = '', $additional = null) public function hidden($name, $value = null, $classes = null, $additional = null)
{ {
return $this->input($name, $value, $classes, $additional, 'hidden'); return $this->input($name, $value, $classes, $additional, 'hidden');
} }
@ -3553,7 +3563,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the input * @return string HTML for the input
*/ */
public function hiddenInput($name, $value = '', $classes = '', $additional = null) public function hiddenInput($name, $value = null, $classes = null, $additional = null)
{ {
return $this->input($name, $value, $classes, $additional, 'hidden'); return $this->input($name, $value, $classes, $additional, 'hidden');
} }
@ -3572,7 +3582,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the input * @return string HTML for the input
*/ */
public function password($name, $value = '', $classes = '', $additional = null) public function password($name, $value = null, $classes = null, $additional = null)
{ {
return $this->input($name, $value, $classes, $additional, 'password'); return $this->input($name, $value, $classes, $additional, 'password');
} }
@ -3590,7 +3600,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the input * @return string HTML for the input
*/ */
public function passwordInput($name, $value = '', $classes = '', $additional = null) public function passwordInput($name, $value = null, $classes = null, $additional = null)
{ {
return $this->input($name, $value, $classes, $additional, 'password'); return $this->input($name, $value, $classes, $additional, 'password');
} }
@ -3609,7 +3619,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the input * @return string HTML for the input
*/ */
public function submit($name, $value = '', $classes = '', $additional = null) public function submit($name, $value = null, $classes = null, $additional = null)
{ {
return $this->input($name, $value, $classes, $additional, 'submit'); return $this->input($name, $value, $classes, $additional, 'submit');
} }
@ -3627,7 +3637,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the input * @return string HTML for the input
*/ */
public function submitInput($name, $value = '', $classes = '', $additional = null) public function submitInput($name, $value = null, $classes = null, $additional = null)
{ {
return $this->input($name, $value, $classes, $additional, 'submit'); return $this->input($name, $value, $classes, $additional, 'submit');
} }
@ -3684,7 +3694,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the input * @return string HTML for the input
*/ */
public function checkbox($name, $value = '', $checked = false, $classes = '', $additional = null) public function checkbox($name, $value = null, $checked = false, $classes = null, $additional = null)
{ {
return $this->input($name, $value, $classes, $additional, 'checkbox', $checked); return $this->input($name, $value, $classes, $additional, 'checkbox', $checked);
} }
@ -3709,7 +3719,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the input * @return string HTML for the input
*/ */
public function radio($name, $value = '', $checked = false, $classes = '', $additional = null) public function radio($name, $value = null, $checked = false, $classes = null, $additional = null)
{ {
return $this->input($name, $value, $classes, $additional, 'radio', $checked); return $this->input($name, $value, $classes, $additional, 'radio', $checked);
} }
@ -3734,14 +3744,19 @@ class Form extends Object
* @param string $type optional type of input * @param string $type optional type of input
* @return string HTML for the input * @return string HTML for the input
*/ */
public function textarea($name, $value = '', $classes = '', $additional = null) public function textarea($name, $value = null, $classes = null, $additional = null)
{ {
if ($additional != null) if ($additional)
{ {
$additional = ' ' . $additional; $additional = ' ' . $additional;
} }
return '<textarea name="' . $name . '" id="' . $name . '" class="' . $classes . '"' . $additional . '>' . $value . '</textarea>' . "\n"; if ($classes)
{
$additional .= ' class="' . $classes . '"';
}
return '<textarea name="' . $name . '" id="' . $name . '"' . $additional . '>' . $value . '</textarea>';
} }
// }}} // }}}
@ -3759,14 +3774,19 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the select box * @return string HTML for the select box
*/ */
public function select($name, $options, $selected = null, $classes = '', $additional = null) public function select($name, $options, $selected = null, $classes = null, $additional = null)
{ {
if ($additional != null) if ($additional)
{ {
$additional = ' ' . $additional; $additional = ' ' . $additional;
} }
return '<select id="' . $name . '" name="' . $name . '" class="' . $classes . '"' . $additional . '>' . $this->options($options, $selected) . '</select>' . "\n"; if ($classes)
{
$additional .= ' class="' . $classes . '"';
}
return '<select id="' . $name . '" name="' . $name . '" class="' . $classes . '"' . $additional . '>' . $this->options($options, $selected) . '</select>';
} }
// }}} // }}}
@ -3851,7 +3871,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the select box * @return string HTML for the select box
*/ */
public function stateSelect($name = 'state', $selected = null, $classes = '', $additional = null) public function stateSelect($name = 'state', $selected = null, $classes = null, $additional = null)
{ {
$options = array( $options = array(
null => '-- Select State --', null => '-- Select State --',
@ -3940,7 +3960,7 @@ class Form extends Object
* @param integer $end_year optional last year to display * @param integer $end_year optional last year to display
* @return string HTML for the select boxes * @return string HTML for the select boxes
*/ */
public function dateSelect($name = 'date', $selected = null, $classes = '', $additional = null, $start_year = null, $end_year = null) public function dateSelect($name = 'date', $selected = null, $classes = null, $additional = null, $start_year = null, $end_year = null)
{ {
$html = ''; $html = '';
@ -4016,7 +4036,7 @@ class Form extends Object
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
* @return string HTML for the select boxes * @return string HTML for the select boxes
*/ */
public function dobSelect($name = 'dob', $selected = null, $classes = '', $additional = null) public function dobSelect($name = 'dob', $selected = null, $classes = null, $additional = null)
{ {
// Note: Start year based on oldest living person: http://en.wikipedia.org/wiki/Oldest_people as of November 2010 // Note: Start year based on oldest living person: http://en.wikipedia.org/wiki/Oldest_people as of November 2010
// Note: Start and end year may seem backwards, but we want them in descending order when rendered // Note: Start and end year may seem backwards, but we want them in descending order when rendered
@ -4036,7 +4056,7 @@ class Form extends Object
* @param string $classes optional class names * @param string $classes optional class names
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
*/ */
public function polarSelect($name = 'decision', $selected = 0, $classes = '', $additional = null) public function polarSelect($name = 'decision', $selected = 0, $classes = null, $additional = null)
{ {
$options = array(1 => 'Yes', 0 => 'No'); $options = array(1 => 'Yes', 0 => 'No');
@ -4056,7 +4076,7 @@ class Form extends Object
* @param string $classes optional class names * @param string $classes optional class names
* @param string $additional optional additional parameters * @param string $additional optional additional parameters
*/ */
public function phoneInput($name = 'phone', $value = null, $classes = '', $additional = null) public function phoneInput($name = 'phone', $value = null, $classes = null, $additional = null)
{ {
if ($value == null) if ($value == null)
{ {
@ -4081,19 +4101,28 @@ class Form extends Object
'line_number' => 4 'line_number' => 4
); );
if ($additional != null) if ($additional)
{ {
$additional = ' ' . $additional; $additional = ' ' . $additional;
} }
$additional .= ' class="digits';
if ($classes)
{
$additional .= ' ' . $classes;
}
$additional .= '"';
$html = ''; $html = '';
foreach ($parts as $part => $size) foreach ($parts as $part => $size)
{ {
$html .= ($html != '' ? ' ' : ''); $html .= ($html != '' ? ' ' : '');
$html .= '<input type="input" name="' . $name . '[' . $part . ']" id="' . $name . '[' . $part . ']" value="' . $value[$part] . '" minlength="' . $size . '" maxlength="' . $size . '" class="digits ' . $class . '"' . $additional . ' />'; $html .= '<input type="input" name="' . $name . '[' . $part . ']" id="' . $name . '[' . $part . ']" value="' . $value[$part] . '" minlength="' . $size . '" maxlength="' . $size . '"' . $additional . ' />';
} }
return $html . "\n"; return $html;
} }
// }}} // }}}