joomla - 如何覆盖组件中的 save() 方法

标签 joomla joomla2.5 joomla3.1

我在哪里以及如何覆盖 Joomla 3.0 自定义组件中的保存方法?

现状:

自定义管理员组件。

我有一个 ListView ,显示存储在表中的所有人。 单击一个条目,我会进入加载表单的详细 View ,并且可以编辑它的字段。

保存时,值存储在数据库中。这一切都很好。但是,....

点击保存时,我希望在将字段存储到数据库之前对其进行修改。如何覆盖保存功能以及在哪里?我一直在搜索这个论坛并安静地搜索了一下以找到实现它的方法。任何人给我一个简单的例子或指出我正确的方向吗?

谢谢。

最佳答案

只需为想要知道问题本身答案的任何人添加此内容 - 如果您明确希望覆盖保存功能,则此方法有效。但是,看看如何操作值的实际解决方案!

你在 Controller 中覆盖它,像这样:

/**
 * save a record (and redirect to main page)
 * @return void
 */
function save()
{
    $model = $this->getModel('hello');

    if ($model->store()) {
        $msg = JText::_( 'Greeting Saved!' );
    } else {
        $msg = JText::_( 'Error Saving Greeting' );
    }

    // Check the table in so it can be edited.... we are done with it anyway
    $link = 'index.php?option=com_hello';
    $this->setRedirect($link, $msg);
}

此处有更多详细信息:Joomla Docs - Adding Backend Actions

关于joomla - 如何覆盖组件中的 save() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17539188/

相关文章:

components - joomla 自定义组件翻译兼容性

php - Joomla 升级数据库错误从 v3.1.1 到 3.1.5

php - Joomla 扩展更新 - 将列添加到数据库表

css - 在 Joomla 文章中使用 CSS 重置

PHP Joomla 2.5 MySQL 加载数据文件 - 权限被拒绝

postgresql - 支持 PostgreSQL 的 Joomla 扩展安装

javascript - 根据第一个下拉列表的选择将初始值加载到第二个下拉列表中

php - 迁移类别/部分到 joomla 2.5

php - 如何强制注册 K2 而不是 joomla 注册?

php - 在另一个模块中创建一个额外的主菜单