Re: RTLizing html_checkboxes
Armen Baghumian <[email protected]> Fri, 30 Mar 2007 19:37:04 +0330
| Newsgroups | gmane.comp.php.smarty.devel |
|---|---|
| Message-ID | <20070330193704.70a56c88@localhost> |
--MP_8jquHbB4LPspmzQf/niundg
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Hi Boots,
> Thanks for the patch and sorry for taking so long to get back to you.
> This is the right place to post patches :) I haven't had a chance to
> review this yet but after a quick look, it seems like a reasonable
> patch to commit.
you are welcome. :)
> I'll try to properly review and test this by the end of the weekend.
> I don't actually use RTL myself, so any suggestions for testing it
> would be appreciated. Any other feedback from RTL users would also be
> grand.
As you want to test it I just patched html_radios and it attached with
this message.
Regards,
Armen
--MP_8jquHbB4LPspmzQf/niundg
Content-Type: application/x-php; name=function.html_radios.php
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=function.html_radios.php
PD9waHAKLyoqCiAqIFNtYXJ0eSBwbHVnaW4KICogQHBhY2thZ2UgU21hcnR5CiAqIEBzdWJwYWNr
YWdlIHBsdWdpbnMKICovCgoKLyoqCiAqIFNtYXJ0eSB7aHRtbF9yYWRpb3N9IGZ1bmN0aW9uIHBs
dWdpbgogKgogKiBGaWxlOiAgICAgICBmdW5jdGlvbi5odG1sX3JhZGlvcy5waHA8YnI+CiAqIFR5
cGU6ICAgICAgIGZ1bmN0aW9uPGJyPgogKiBOYW1lOiAgICAgICBodG1sX3JhZGlvczxicj4KICog
RGF0ZTogICAgICAgMjQuRmViLjIwMDM8YnI+CiAqIFB1cnBvc2U6ICAgIFByaW50cyBvdXQgYSBs
aXN0IG9mIHJhZGlvIGlucHV0IHR5cGVzPGJyPgogKiBJbnB1dDo8YnI+CiAqICAgICAgICAgICAt
IG5hbWUgICAgICAgKG9wdGlvbmFsKSAtIHN0cmluZyBkZWZhdWx0ICJyYWRpbyIKICogICAgICAg
ICAgIC0gdmFsdWVzICAgICAocmVxdWlyZWQpIC0gYXJyYXkKICogICAgICAgICAgIC0gb3B0aW9u
cyAgICAob3B0aW9uYWwpIC0gYXNzb2NpYXRpdmUgYXJyYXkKICogICAgICAgICAgIC0gY2hlY2tl
ZCAgICAob3B0aW9uYWwpIC0gYXJyYXkgZGVmYXVsdCBub3Qgc2V0CiAqICAgICAgICAgICAtIHNl
cGFyYXRvciAgKG9wdGlvbmFsKSAtIGllIDxicj4gb3IgJm5ic3A7CiAqICAgICAgICAgICAtIG91
dHB1dCAgICAgKG9wdGlvbmFsKSAtIHRoZSBvdXRwdXQgbmV4dCB0byBlYWNoIHJhZGlvIGJ1dHRv
bgogKiAgICAgICAgICAgLSBhc3NpZ24gICAgIChvcHRpb25hbCkgLSBhc3NpZ24gdGhlIG91dHB1
dCBhcyBhbiBhcnJheSB0byB0aGlzIHZhcmlhYmxlCiAqICAgICAgICAgICAtIGRpcmVjdGlvbiAg
KG9wdGlvbmFsKSAtIGFkZCBkaXJlY3Rpb24gZm9yIGZpZWxkcyAKICogRXhhbXBsZXM6CiAqIDxw
cmU+CiAqIHtodG1sX3JhZGlvcyB2YWx1ZXM9JGlkcyBvdXRwdXQ9JG5hbWVzfQogKiB7aHRtbF9y
YWRpb3MgdmFsdWVzPSRpZHMgbmFtZT0nYm94JyBzZXBhcmF0b3I9Jzxicj4nIG91dHB1dD0kbmFt
ZXN9CiAqIHtodG1sX3JhZGlvcyB2YWx1ZXM9JGlkcyBjaGVja2VkPSRjaGVja2VkIHNlcGFyYXRv
cj0nPGJyPicgb3V0cHV0PSRuYW1lc30KICogPC9wcmU+CiAqIEBsaW5rIGh0dHA6Ly9zbWFydHku
cGhwLm5ldC9tYW51YWwvZW4vbGFuZ3VhZ2UuZnVuY3Rpb24uaHRtbC5yYWRpb3MucGhwIHtodG1s
X3JhZGlvc30KICogICAgICAoU21hcnR5IG9ubGluZSBtYW51YWwpCiAqIEBhdXRob3IgICAgIENo
cmlzdG9waGVyIEt2YXJtZSA8Y2hyaXN0b3BoZXIua3Zhcm1lQGZsYXNoamFiLmNvbT4KICogQGF1
dGhvciBjcmVkaXRzIHRvIE1vbnRlIE9ocnQgPG1vbnRlQGlzcGkubmV0PgogKiBAdmVyc2lvbiAg
ICAxLjAKICogQHBhcmFtIGFycmF5CiAqIEBwYXJhbSBTbWFydHkKICogQHJldHVybiBzdHJpbmcK
ICogQHVzZXMgc21hcnR5X2Z1bmN0aW9uX2VzY2FwZV9zcGVjaWFsX2NoYXJzKCkKICovCmZ1bmN0
aW9uIHNtYXJ0eV9mdW5jdGlvbl9odG1sX3JhZGlvcygkcGFyYW1zLCAmJHNtYXJ0eSkKewogICAg
cmVxdWlyZV9vbmNlICRzbWFydHktPl9nZXRfcGx1Z2luX2ZpbGVwYXRoKCdzaGFyZWQnLCdlc2Nh
cGVfc3BlY2lhbF9jaGFycycpOwogICAKICAgICRuYW1lID0gJ3JhZGlvJzsKICAgICR2YWx1ZXMg
PSBudWxsOwogICAgJG9wdGlvbnMgPSBudWxsOwogICAgJHNlbGVjdGVkID0gbnVsbDsKICAgICRz
ZXBhcmF0b3IgPSAnJzsKICAgICRsYWJlbHMgPSB0cnVlOwogICAgJG91dHB1dCA9IG51bGw7CiAg
ICAkZXh0cmEgPSAnJzsKICAgICRkaXJlY3Rpb24gPSAnbHRyJzsgICAgCgogICAgZm9yZWFjaCgk
cGFyYW1zIGFzICRfa2V5ID0+ICRfdmFsKSB7CiAgICAgICAgc3dpdGNoKCRfa2V5KSB7CiAgICAg
ICAgICAgIGNhc2UgJ25hbWUnOgogICAgICAgICAgICBjYXNlICdzZXBhcmF0b3InOgogICAgICAg
ICAgICBjYXNlICdkaXJlY3Rpb24nOiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgJCRfa2V5
ID0gKHN0cmluZykkX3ZhbDsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2Fz
ZSAnY2hlY2tlZCc6CiAgICAgICAgICAgIGNhc2UgJ3NlbGVjdGVkJzoKICAgICAgICAgICAgICAg
IGlmKGlzX2FycmF5KCRfdmFsKSkgewogICAgICAgICAgICAgICAgICAgICRzbWFydHktPnRyaWdn
ZXJfZXJyb3IoJ2h0bWxfcmFkaW9zOiB0aGUgIicgLiAkX2tleSAuICciIGF0dHJpYnV0ZSBjYW5u
b3QgYmUgYW4gYXJyYXknLCBFX1VTRVJfV0FSTklORyk7CiAgICAgICAgICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgICAgICAgICRzZWxlY3RlZCA9IChzdHJpbmcpJF92YWw7CiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ2xhYmVs
cyc6CiAgICAgICAgICAgICAgICAkJF9rZXkgPSAoYm9vbCkkX3ZhbDsKICAgICAgICAgICAgICAg
IGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnb3B0aW9ucyc6CiAgICAgICAgICAgICAgICAkJF9r
ZXkgPSAoYXJyYXkpJF92YWw7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNh
c2UgJ3ZhbHVlcyc6CiAgICAgICAgICAgIGNhc2UgJ291dHB1dCc6CiAgICAgICAgICAgICAgICAk
JF9rZXkgPSBhcnJheV92YWx1ZXMoKGFycmF5KSRfdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFr
OwoKICAgICAgICAgICAgY2FzZSAncmFkaW9zJzoKICAgICAgICAgICAgICAgICRzbWFydHktPnRy
aWdnZXJfZXJyb3IoJ2h0bWxfcmFkaW9zOiB0aGUgdXNlIG9mIHRoZSAicmFkaW9zIiBhdHRyaWJ1
dGUgaXMgZGVwcmVjYXRlZCwgdXNlICJvcHRpb25zIiBpbnN0ZWFkJywgRV9VU0VSX1dBUk5JTkcp
OwogICAgICAgICAgICAgICAgJG9wdGlvbnMgPSAoYXJyYXkpJF92YWw7CiAgICAgICAgICAgICAg
ICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ2Fzc2lnbic6CiAgICAgICAgICAgICAgICBicmVh
azsKCiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBpZighaXNfYXJyYXkoJF92
YWwpKSB7CiAgICAgICAgICAgICAgICAgICAgJGV4dHJhIC49ICcgJy4kX2tleS4nPSInLnNtYXJ0
eV9mdW5jdGlvbl9lc2NhcGVfc3BlY2lhbF9jaGFycygkX3ZhbCkuJyInOwogICAgICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkc21hcnR5LT50cmlnZ2VyX2Vycm9yKCJo
dG1sX3JhZGlvczogZXh0cmEgYXR0cmlidXRlICckX2tleScgY2Fubm90IGJlIGFuIGFycmF5Iiwg
RV9VU0VSX05PVElDRSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICB9CiAgICB9CgogICAgaWYgKCFpc3NldCgkb3B0aW9ucykgJiYgIWlzc2V0KCR2YWx1
ZXMpKQogICAgICAgIHJldHVybiAnJzsgLyogcmFpc2UgZXJyb3IgaGVyZT8gKi8KCiAgICAkX2h0
bWxfcmVzdWx0ID0gYXJyYXkoKTsKCiAgICBpZiAoaXNzZXQoJG9wdGlvbnMpICYmIGlzX2FycmF5
KCRvcHRpb25zKSkgewoKICAgICAgICBmb3JlYWNoICgoYXJyYXkpJG9wdGlvbnMgYXMgJF9rZXk9
PiRfdmFsKQogICAgICAgICAgICAkX2h0bWxfcmVzdWx0W10gPSBzbWFydHlfZnVuY3Rpb25faHRt
bF9yYWRpb3Nfb3V0cHV0KCRuYW1lLCAkX2tleSwgJF92YWwsICRzZWxlY3RlZCwgJGV4dHJhLCAk
c2VwYXJhdG9yLCAkbGFiZWxzLCAkZGlyZWN0aW9uKTsKCiAgICB9IGVsc2UgewoKICAgICAgICBm
b3JlYWNoICgoYXJyYXkpJHZhbHVlcyBhcyAkX2k9PiRfa2V5KSB7CiAgICAgICAgICAgICRfdmFs
ID0gaXNzZXQoJG91dHB1dFskX2ldKSA/ICRvdXRwdXRbJF9pXSA6ICcnOwogICAgICAgICAgICAk
X2h0bWxfcmVzdWx0W10gPSBzbWFydHlfZnVuY3Rpb25faHRtbF9yYWRpb3Nfb3V0cHV0KCRuYW1l
LCAkX2tleSwgJF92YWwsICRzZWxlY3RlZCwgJGV4dHJhLCAkc2VwYXJhdG9yLCAkbGFiZWxzLCAk
ZGlyZWN0aW9uKTsKICAgICAgICB9CgogICAgfQoKICAgIGlmKCFlbXB0eSgkcGFyYW1zWydhc3Np
Z24nXSkpIHsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJHBhcmFtc1snYXNzaWduJ10sICRfaHRt
bF9yZXN1bHQpOwogICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gaW1wbG9kZSgiXG4iLCRfaHRt
bF9yZXN1bHQpOwogICAgfQoKfQoKZnVuY3Rpb24gc21hcnR5X2Z1bmN0aW9uX2h0bWxfcmFkaW9z
X291dHB1dCgkbmFtZSwgJHZhbHVlLCAkb3V0cHV0LCAkc2VsZWN0ZWQsICRleHRyYSwgJHNlcGFy
YXRvciwgJGxhYmVscywgJGRpcmVjdGlvbikgewogICAgJF9vdXRwdXQgID0gJyc7CiAgICAkX291
dHB1dCAuPSAoJGxhYmVscyk/JzxsYWJlbCBkaXI9Iicuc21hcnR5X2Z1bmN0aW9uX2VzY2FwZV9z
cGVjaWFsX2NoYXJzKCRkaXJlY3Rpb24pLiciPic6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
JzxzcGFuIGRpcj0iJy5zbWFydHlfZnVuY3Rpb25fZXNjYXBlX3NwZWNpYWxfY2hhcnMoJGRpcmVj
dGlvbikuJyI+JzsKICAgIAogICAgJF9vdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJyYWRpbyIgbmFt
ZT0iJwogICAgICAgIC4gc21hcnR5X2Z1bmN0aW9uX2VzY2FwZV9zcGVjaWFsX2NoYXJzKCRuYW1l
KSAuICciIHZhbHVlPSInCiAgICAgICAgLiBzbWFydHlfZnVuY3Rpb25fZXNjYXBlX3NwZWNpYWxf
Y2hhcnMoJHZhbHVlKSAuICciJzsKCiAgICBpZiAoJHZhbHVlPT0kc2VsZWN0ZWQpIHsKICAgICAg
ICAkX291dHB1dCAuPSAnIGNoZWNrZWQ9ImNoZWNrZWQiJzsKICAgIH0KICAgICRfb3V0cHV0IC49
ICRleHRyYSAuICcgLz4nIC4gJG91dHB1dDsKICAgICRfb3V0cHV0IC49ICgkbGFiZWxzKT8nPC9s
YWJlbD4nOic8L3NwYW4+JzsKICAgICRfb3V0cHV0IC49ICRzZXBhcmF0b3I7ICAgIAoKICAgIHJl
dHVybiAkX291dHB1dDsKfQoKPz4K
--MP_8jquHbB4LPspmzQf/niundg
Content-Type: text/x-patch; name=function.html_radios.php.patch
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=function.html_radios.php.patch
--- function.html_radios.php.orig 2007-03-30 19:14:50.000000000 +0330
+++ ./webapp/libs/smarty/plugins/function.html_radios.php 2007-03-30 19:22:52.000000000 +0330
@@ -22,6 +22,7 @@
* - separator (optional) - ie <br> or
* - output (optional) - the output next to each radio button
* - assign (optional) - assign the output as an array to this variable
+ * - direction (optional) - add direction for fields
* Examples:
* <pre>
* {html_radios values=$ids output=$names}
@@ -50,11 +51,13 @@
$labels = true;
$output = null;
$extra = '';
+ $direction = 'ltr';
foreach($params as $_key => $_val) {
switch($_key) {
case 'name':
case 'separator':
+ case 'direction':
$$_key = (string)$_val;
break;
@@ -106,13 +109,13 @@
if (isset($options) && is_array($options)) {
foreach ((array)$options as $_key=>$_val)
- $_html_result[] = smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels);
+ $_html_result[] = smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels, $direction);
} else {
foreach ((array)$values as $_i=>$_key) {
$_val = isset($output[$_i]) ? $output[$_i] : '';
- $_html_result[] = smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels);
+ $_html_result[] = smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels, $direction);
}
}
@@ -125,9 +128,11 @@
}
-function smarty_function_html_radios_output($name, $value, $output, $selected, $extra, $separator, $labels) {
- $_output = '';
- if ($labels) $_output .= '<label>';
+function smarty_function_html_radios_output($name, $value, $output, $selected, $extra, $separator, $labels, $direction) {
+ $_output = '';
+ $_output .= ($labels)?'<label dir="'.smarty_function_escape_special_chars($direction).'">':
+ '<span dir="'.smarty_function_escape_special_chars($direction).'">';
+
$_output .= '<input type="radio" name="'
. smarty_function_escape_special_chars($name) . '" value="'
. smarty_function_escape_special_chars($value) . '"';
@@ -136,8 +141,8 @@
$_output .= ' checked="checked"';
}
$_output .= $extra . ' />' . $output;
- if ($labels) $_output .= '</label>';
- $_output .= $separator;
+ $_output .= ($labels)?'</label>':'</span>';
+ $_output .= $separator;
return $_output;
}
--MP_8jquHbB4LPspmzQf/niundg
Content-Type: text/plain; charset=us-ascii
--
Smarty Development Mailing List (http://smarty.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
--MP_8jquHbB4LPspmzQf/niundg--