【问题标题】:How to add multiple forms Joomla 2.5 component如何添加多个表单 Joomla 2.5 组件
【发布时间】:2013-04-12 18:40:59
【问题描述】:

我正在开发一个 joomla 网站,它需要一些自定义组件来集成管理投资组合、用户配置文件等。我们为 joomla 2.5 下载了一个 hello_world MVC 组件[http://docs.joomla.org/Developing_a_Model-View-Controller_Component /2.5/Introduction] 并进行了必要的定制。第一个组件运行良好。但是现在我们需要一个新组件,它需要集成多种形式。 例如:存储一个表单的类型,存储另一个表单的详细信息,通过另一个表单管理国家/州。 在具有管理一种表单[添加/编辑/删除/查看]选项的默认组件中。在这里,我尝试修改/复制,但失败了。 任何人都可以建议架构/示例代码来管理 joomla 2.5 组件创建中的多个表单 [添加/编辑/删除/查看]。 任何帮助将不胜感激?

【问题讨论】:

  • 我认为您的意思是不同的实体?如果是这样,您可能需要为每个实体创建自己的模型/视图/控制器。看看 Joomla 的 com_content 组件。 github.com/joomla/joomla-cms/tree/2.5.x/components/com_content
  • 您可能想查看类似notwebdesign.com/joomla-component-creator 的内容。该工具可以帮助您布局自定义组件,并最终生成您可以调整的代码,但它提供了一个很好的学习基础。
  • 您好,感谢您的回复。实际上我的意思是不同的,我想使用 Joomla 2.5 MVC 在同一个模型/视图中使用多个表单?任何人都可以为此或任何教程建议一种方法。

标签: joomla2.5 custom-component


【解决方案1】:

假设您说的是存储在模型/表单文件夹中的表单...您应该尝试覆盖模型中的 getForm() 函数,以调用正确的表单。您应该在调用页面时传递一个“布局”,然后在模型构造函数中获取它。

可能是这样:

class YourComponentModelYourModel extends JModelAdmin{

           public function __construct($config = array()){
                switch(JRequest::getVar('layout')){
                        case 'firstlayout' : $this->form='firstform';
                        break;
                        case 'secondlayout' : $this->form='secondform';
                        break;
                        default : $this->form='defaultform';
                        }
             parent::__construct($config);
             }      

...

public function getForm($data = array(), $loadData = true) 
    {
        // Get the form.
        $form = $this->loadForm('com_yourcomponent.'.$this->form,$this->form,
                                array('control' => 'jform', 'load_data' => $loadData));

        if (empty($form)){return false;}
        return $form;
    }

您必须在 views/YourView/tmpl 文件夹中为每个表单放置一个布局,并且表单声明也必须调用布局:

<form action="<?php echo JRoute::_('index.php?option=com_yourcomponent&layout=firstlayout&id='.(int) $this->item->id); ?>"
      method="post" name="adminForm" id="draw-form">

【讨论】:

    猜你喜欢
    • 2012-11-24
    • 1970-01-01
    • 2013-03-12
    • 2012-04-05
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 2012-04-22
    相关资源
    最近更新 更多