RAN*_*RAN 6 php xml joomla plugins joomla3.0
将自定义字段添加到com_menus - item视图时出现问题.
教程:(参见:http://docs.joomla.org/Adding_custom_fields_to_core_components_using_a_plugin)
该教程工作得很好(com_contact),但是当我想要覆盖菜单项视图时:参数没有被保存!!!
下面是我用来确定组件的代码和添加自定义表单的视图.
class plgContentPluginName extends JPlugin {
function onContentPrepareForm($form, $data) {
$app = JFactory::getApplication();
$option = $app->input->get('option');
$view = $app->input->get('view');
switch($option) {
case 'com_menus': {
if ($app->isAdmin() && $view == 'item') {
JForm::addFormPath(__DIR__ . '/forms');
$form->loadFile('item', false);
}
return true;
}
}
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
这是要加载的item.xml(/forms/item.xml)
<?xml version="1.0" encoding="UTF-8"?>
<form>
<fields name="params">
<fieldset name="params" label="Custom Fields">
<field name="param1" type="text" label="lbltext"/>
<field name="param2" type="text" label="lblText2"/>
</fieldset>
</fields>
</form>
Run Code Online (Sandbox Code Playgroud)
当我创建或编辑菜单项时,表单正在正确呈现,但是当我点击"保存"时,没有保存这些值.
谢谢.
我通过删除 If 块中的 $view == 'item' 条件解决了这个问题。
最后看起来像这样:
class plgContentPluginName extends JPlugin {
function onContentPrepareForm($form, $data) {
$app = JFactory::getApplication();
$option = $app->input->get('option');
switch($option) {
case 'com_menus': {
if ($app->isAdmin()) {
JForm::addFormPath(__DIR__ . '/forms');
$form->loadFile('item', false);
}
return true;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
item.xml 保持不变。
顺便说一句:我现在使用 Joomla 版本 3.4.1。
| 归档时间: |
|
| 查看次数: |
1940 次 |
| 最近记录: |