Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Moving the parseAttributes to Html helper.
- Loading branch information
Showing
4 changed files
with
184 additions
and
167 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -105,30 +105,6 @@ class Helper extends Object { | |
*/ | ||
protected $_View; | ||
|
||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
jrbasso
Author
Member
|
||
/** | ||
* Minimized attributes | ||
* | ||
* @var array | ||
*/ | ||
protected $_minimizedAttributes = array( | ||
'compact', 'checked', 'declare', 'readonly', 'disabled', 'selected', | ||
'defer', 'ismap', 'nohref', 'noshade', 'nowrap', 'multiple', 'noresize' | ||
); | ||
|
||
/** | ||
* Format to attribute | ||
* | ||
* @var string | ||
*/ | ||
protected $_attributeFormat = '%s="%s"'; | ||
|
||
/** | ||
* Format to attribute | ||
* | ||
* @var string | ||
*/ | ||
protected $_minimizedAttributeFormat = '%s="%s"'; | ||
|
||
/** | ||
* Default Constructor | ||
* | ||
|
@@ -330,94 +306,6 @@ public function clean($output) { | |
return $this->__cleaned; | ||
} | ||
|
||
/** | ||
* Returns a space-delimited string with items of the $options array. If a | ||
* key of $options array happens to be one of: | ||
* | ||
* - 'compact' | ||
* - 'checked' | ||
* - 'declare' | ||
* - 'readonly' | ||
* - 'disabled' | ||
* - 'selected' | ||
* - 'defer' | ||
* - 'ismap' | ||
* - 'nohref' | ||
* - 'noshade' | ||
* - 'nowrap' | ||
* - 'multiple' | ||
* - 'noresize' | ||
* | ||
* And its value is one of: | ||
* | ||
* - '1' (string) | ||
* - 1 (integer) | ||
* - true (boolean) | ||
* - 'true' (string) | ||
* | ||
* Then the value will be reset to be identical with key's name. | ||
* If the value is not one of these 3, the parameter is not output. | ||
* | ||
* 'escape' is a special option in that it controls the conversion of | ||
* attributes to their html-entity encoded equivalents. Set to false to disable html-encoding. | ||
* | ||
* If value for any option key is set to `null` or `false`, that option will be excluded from output. | ||
* | ||
* @param array $options Array of options. | ||
* @param array $exclude Array of options to be excluded, the options here will not be part of the return. | ||
* @param string $insertBefore String to be inserted before options. | ||
* @param string $insertAfter String to be inserted after options. | ||
* @return string Composed attributes. | ||
*/ | ||
public function _parseAttributes($options, $exclude = null, $insertBefore = ' ', $insertAfter = null) { | ||
if (is_array($options)) { | ||
$options = array_merge(array('escape' => true), $options); | ||
|
||
if (!is_array($exclude)) { | ||
$exclude = array(); | ||
} | ||
$filtered = array_diff_key($options, array_merge(array_flip($exclude), array('escape' => true))); | ||
$escape = $options['escape']; | ||
$attributes = array(); | ||
|
||
foreach ($filtered as $key => $value) { | ||
if ($value !== false && $value !== null) { | ||
$attributes[] = $this->_formatAttribute($key, $value, $escape); | ||
} | ||
} | ||
$out = implode(' ', $attributes); | ||
} else { | ||
$out = $options; | ||
} | ||
return $out ? $insertBefore . $out . $insertAfter : ''; | ||
} | ||
|
||
/** | ||
* Formats an individual attribute, and returns the string value of the composed attribute. | ||
* Works with minimized attributes that have the same value as their name such as 'disabled' and 'checked' | ||
* | ||
* @param string $key The name of the attribute to create | ||
* @param string $value The value of the attribute to create. | ||
* @return string The composed attribute. | ||
*/ | ||
protected function _formatAttribute($key, $value, $escape = true) { | ||
$attribute = ''; | ||
if (is_array($value)) { | ||
$value = ''; | ||
} | ||
|
||
if (is_numeric($key)) { | ||
$attribute = sprintf($this->_minimizedAttributeFormat, $value, $value); | ||
} elseif (in_array($key, $this->_minimizedAttributes)) { | ||
if ($value === 1 || $value === true || $value === 'true' || $value === '1' || $value == $key) { | ||
$attribute = sprintf($this->_minimizedAttributeFormat, $key, $key); | ||
} | ||
} else { | ||
$attribute = sprintf($this->_attributeFormat, $key, ($escape ? h($value) : $value)); | ||
} | ||
return $attribute; | ||
} | ||
|
||
/** | ||
* Sets this helper's model and field properties to the dot-separated value-pair in $entity. | ||
* | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Why this deletion does not effect to "Helper" now?
It seems commit history of this was lost and remains the codes of parseAttributes() in the (renamed)file.