Pear
■ このスレッドは過去ログ倉庫に格納されています
0590554
04/07/03 16:03ID:???素のtoArray()は添字配列なんで、単純にループさせる場合はそれでいいが、
ループで済まされない場合は属性(name)を使った連想配列の方が、
やっぱ何かと都合がいい。
そんなわけで、エレメントだけ一つ掘った配列になるよう
Smartyレンダラ(ArraySmarty)を継承して作ってみました。
<?php
require_once 'HTML/QuickForm/Renderer/ArraySmarty.php';
class HTML_QuickFrom_Renderer_ArraySmarty2 extends HTML_QuickForm_Renderer_ArraySmarty{
function _storeArray($elAry)
{
if ($elAry) {
$sKeys = $elAry['keys'];
unset($elAry['keys']);
// where should we put this element...
if (is_array($this->_currentGroup) && ('group' != $elAry['type'])) {
$toEval = '$this->_currentGroup' . $sKeys . ' = $elAry;';
} else {
$toEval = '$this->_ary[\'elements\']' . $sKeys . ' = $elAry;';
}
eval($toEval);
}
return;
}
}
?>
[\'elements\']を追加しただけですけどね。とりあえずこれで動いた。
■ このスレッドは過去ログ倉庫に格納されています