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.
*
* @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
* @package PICKLES
* @link https://github.com/joshtronic/pickles
@ -55,9 +55,9 @@ class Form extends Object
* @param boolean $checked optional whether the input is checked
* @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;
}
@ -67,7 +67,17 @@ class Form extends Object
$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
* @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');
}
@ -102,7 +112,7 @@ class Form extends Object
* @param string $additional optional additional parameters
* @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');
}
@ -121,7 +131,7 @@ class Form extends Object
* @param string $additional optional additional parameters
* @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');
}
@ -139,7 +149,7 @@ class Form extends Object
* @param string $additional optional additional parameters
* @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');
}
@ -158,7 +168,7 @@ class Form extends Object
* @param string $additional optional additional parameters
* @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');
}
@ -176,7 +186,7 @@ class Form extends Object
* @param string $additional optional additional parameters
* @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');
}
@ -233,7 +243,7 @@ class Form extends Object
* @param string $additional optional additional parameters
* @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);
}
@ -258,7 +268,7 @@ class Form extends Object
* @param string $additional optional additional parameters
* @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);
}
@ -283,14 +293,19 @@ class Form extends Object
* @param string $type optional type of 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;
}
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
* @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;
}
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
* @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(
null => '-- Select State --',
@ -489,7 +509,7 @@ class Form extends Object
* @param integer $end_year optional last year to display
* @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 = '';
@ -565,7 +585,7 @@ class Form extends Object
* @param string $additional optional additional parameters
* @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 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 $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');
@ -605,7 +625,7 @@ class Form extends Object
* @param string $classes optional class names
* @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)
{
@ -630,19 +650,28 @@ class Form extends Object
'line_number' => 4
);
if ($additional != null)
if ($additional)
{
$additional = ' ' . $additional;
}
$additional .= ' class="digits';
if ($classes)
{
$additional .= ' ' . $classes;
}
$additional .= '"';
$html = '';
foreach ($parts as $part => $size)
{
$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.
*
* @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
* @package PICKLES
* @link https://github.com/joshtronic/pickles
@ -3506,9 +3506,9 @@ class Form extends Object
* @param boolean $checked optional whether the input is checked
* @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;
}
@ -3518,7 +3518,17 @@ class Form extends Object
$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
* @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');
}
@ -3553,7 +3563,7 @@ class Form extends Object
* @param string $additional optional additional parameters
* @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');
}
@ -3572,7 +3582,7 @@ class Form extends Object
* @param string $additional optional additional parameters
* @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');
}
@ -3590,7 +3600,7 @@ class Form extends Object
* @param string $additional optional additional parameters
* @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');
}
@ -3609,7 +3619,7 @@ class Form extends Object
* @param string $additional optional additional parameters
* @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');
}
@ -3627,7 +3637,7 @@ class Form extends Object
* @param string $additional optional additional parameters
* @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');
}
@ -3684,7 +3694,7 @@ class Form extends Object
* @param string $additional optional additional parameters
* @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);
}
@ -3709,7 +3719,7 @@ class Form extends Object
* @param string $additional optional additional parameters
* @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);
}
@ -3734,14 +3744,19 @@ class Form extends Object
* @param string $type optional type of 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;
}
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
* @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;
}
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
* @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(
null => '-- Select State --',
@ -3940,7 +3960,7 @@ class Form extends Object
* @param integer $end_year optional last year to display
* @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 = '';
@ -4016,7 +4036,7 @@ class Form extends Object
* @param string $additional optional additional parameters
* @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 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 $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');
@ -4056,7 +4076,7 @@ class Form extends Object
* @param string $classes optional class names
* @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)
{
@ -4081,19 +4101,28 @@ class Form extends Object
'line_number' => 4
);
if ($additional != null)
if ($additional)
{
$additional = ' ' . $additional;
}
$additional .= ' class="digits';
if ($classes)
{
$additional .= ' ' . $classes;
}
$additional .= '"';
$html = '';
foreach ($parts as $part => $size)
{
$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;
}
// }}}