【问题标题】:run php function/script after save in joomla在 joomla 中保存后运行 php 函数/脚本
【发布时间】:2012-12-13 22:03:43
【问题描述】:

我正试图弄清楚如何在 joomla 2.5 中保存项目后立即运行函数/脚本。 Joomla 的 MVC 结构对我来说仍然相当复杂,所以我在这里拉头发,试图找出触发此保存事件的位置。另外我想保持代码整洁,所以我在这里寻求帮助。

基本上我想在 joomla 中保存项目后立即运行我自己的函数(比如说 emailUser() )。目前,当触发保存事件时,我无法做“其他事情”。

我在这里使用由组件创建器生成的自定义组件: http://www.notwebdesign.com/joomla-component-creator/

我听说插件是解决方案,但我找不到任何有关保存事件以及如何使用插件来执行此操作的文档。 Joomla 的帮助论坛也无济于事。所以基本上我需要朝着正确的方向前进。

编辑: 我似乎找到了创建保存按钮的工具栏,但这意味着它是通过 joomla 的内部工作方式保存的。它在 view.html.php 文件中。有什么方法可以通过自定义函数来利用它?

【问题讨论】:

    标签: php joomla joomla-component


    【解决方案1】:

    在组件(管理员/组件)的控制器内部,如何将保存事件重新定义为这样的:

    $save =& JToolBarHelper::save('clientscan.save', 'JTOOLBAR_SAVE');
    if($save)
    {
        JFactory::getMailer();
        //emailing goes here..
    }
    

    【讨论】:

    • 我可以使用 mailer 方法,但是我很好奇 在哪里我应该调用这个方法。我正在搜索生成的组件的源代码,但我无法确定在保存项目后我可以在哪里运行新函数(这只是我正在寻找的事件)
    • 我对这个组件创建者了解不多,但从概念上讲,它应该在管理员目录中,您可能有一些子目录,如组件/模块。从那里开始,您的焦点将缩小到组件的结构本身。保存事件应该在控制器部分的某个地方。
    • 我看过,它似乎是一个内部的 joomla 助手。 JToolBarHelper::save('clientscan.save', 'JTOOLBAR_SAVE'); 所以是的.. 不知道现在该做什么,因为修改 joomla 的内部结构不是一种选择:')
    • 很抱歉回复晚了,但它似乎不起作用。这只会创建按钮。实际的保存功能隐藏在 joomla 的深处。一切都是通过 URL 中传递的参数自动完成的,因此(据我所知)很难做到这一点。我会在 joomla 论坛上再次询问
    • 一点也不深,正如我所说,它提供了一个 postsavehook。
    【解决方案2】:

    保存后会说在您的控制器中使用 postSaveHook。

    【讨论】:

      猜你喜欢
      • 2011-07-29
      • 2014-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      相关资源
      最近更新 更多