if ($config[$i]->getVar('conf_valuetype') == 'array') {
// this is exceptional.. only when value type is
arrayneed a smarter way for this
$ele = ($config[$i]->getVar('conf_value') != '') ? new
XoopsFormTextArea($title,
$config[$i]->getVar('conf_name'),
$myts->htmlspecialchars(implode('|',
$config[$i]->getConfValueForOutput())), 5, 50) : new
XoopsFormTextArea($title,
$config[$i]->getVar('conf_name'), '', 5, 50);
} elseif ($config[$i]->getVar('conf_valuetype') ==
'textarea') {
$ele = new XoopsFormTextArea($title,
$config[$i]->getVar('conf_name'),
$config[$i]->getVar('conf_value', 'e'), 5, 50);
} else {
$ele = new XoopsFormTextArea($title,
$config[$i]->getVar('conf_name'),
$myts->htmlspecialchars($config[$i]->getConfValueForOutput()),
5, 50);
}
定すると、管理メニューの一般設定でdisplayTareaされた状
態で表示されます。
modules/system/admin/preferences/main.php の266行で以下
のようになっているのですが
$ele = new XoopsFormTextArea($title,
$config[$i]->getVar('conf_name'),
$myts->htmlspecialchars($config[$i]->getConfValueForOutput()),
5, 50);
getConfValueForOutputメソッドで、valuetypeが'textarea'
の場合、return $this->getVar('conf_value'); が返ってい
ます。
以下のように修正すると大丈夫のようです。
if ($config[$i]->getVar('conf_valuetype') == 'array') {
// this is exceptional.. only when value type is
arrayneed a smarter way for this
$ele = ($config[$i]->getVar('conf_value') != '') ? new
XoopsFormTextArea($title,
$config[$i]->getVar('conf_name'),
$myts->htmlspecialchars(implode('|',
$config[$i]->getConfValueForOutput())), 5, 50) : new
XoopsFormTextArea($title,
$config[$i]->getVar('conf_name'), '', 5, 50);
} elseif ($config[$i]->getVar('conf_valuetype') ==
'textarea') {
$ele = new XoopsFormTextArea($title,
$config[$i]->getVar('conf_name'),
$config[$i]->getVar('conf_value', 'e'), 5, 50);
} else {
$ele = new XoopsFormTextArea($title,
$config[$i]->getVar('conf_name'),
$myts->htmlspecialchars($config[$i]->getConfValueForOutput()),
5, 50);
}