运行 php 在 joomla 3 中用户注销的代码
run php code on user logout in joomla 3
版本 - Joomla 3.6.2
我的软件包包括一个管理组件、一个前端组件和一个模块。
我正尝试在用户注销时 运行 一些 php 代码(http 请求)。我对在哪里编写该代码感到困惑。
我有几个问题 -
- 我找不到有关事件实施的好资源。如何使用这些事件(https://docs.joomla.org/Plugin/Events)
- 我需要为此写一个插件吗???
您可以使用 plugin
或覆盖登录模块和 com_user 组件的模板来实现此目的,您可以在注销时设置自定义 url。因此,在注销过程完成后,用户将来到您的自定义脚本,您可以做您的事情。
或者,如果你不想继续更新 joomla,你可以 hack com_users.
注意:仅推荐插件方法,这是实现您的目标的更安全和正确的方法。
是的,写一个用户插件就是你想要的,而且非常简单。下面是供您开始的框架:
- 在您的安装中创建一个新文件夹,例如 /plugin/user/yourplugin
- 添加一个 xml 文件:yourplugin.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<extension version="3.0.0" type="plugin" group="user" method="upgrade">
<name>plg_user_yourplugin</name>
<author>NeiL</author>
<creationDate>Aug 2017</creationDate>
<version>3.1.0</version>
<description>Add a description</description>
<files>
<filename plugin="yourplugin">yourplugin.php</filename>
</files>
</extension>
- 还有一个 php 文件,例如
<?php
defined('_JEXEC') or die;
class PlgUserYourplugin extends JPlugin
{
function onUserLogout($credentials, $options){
// call whatever php you like here...
return true;
}
}
文档说 onUserLogout 应该 return 一个布尔值,但是 returning false 似乎没有效果,用户仍然注销用户。
如果插件只在前端运行,你需要处理这个。
创建文件后,您可以使用发现功能(扩展->管理->发现)安装插件。安装后记得启用插件。
版本 - Joomla 3.6.2
我的软件包包括一个管理组件、一个前端组件和一个模块。
我正尝试在用户注销时 运行 一些 php 代码(http 请求)。我对在哪里编写该代码感到困惑。 我有几个问题 -
- 我找不到有关事件实施的好资源。如何使用这些事件(https://docs.joomla.org/Plugin/Events)
- 我需要为此写一个插件吗???
您可以使用 plugin
或覆盖登录模块和 com_user 组件的模板来实现此目的,您可以在注销时设置自定义 url。因此,在注销过程完成后,用户将来到您的自定义脚本,您可以做您的事情。
或者,如果你不想继续更新 joomla,你可以 hack com_users.
注意:仅推荐插件方法,这是实现您的目标的更安全和正确的方法。
是的,写一个用户插件就是你想要的,而且非常简单。下面是供您开始的框架:
- 在您的安装中创建一个新文件夹,例如 /plugin/user/yourplugin
- 添加一个 xml 文件:yourplugin.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<extension version="3.0.0" type="plugin" group="user" method="upgrade">
<name>plg_user_yourplugin</name>
<author>NeiL</author>
<creationDate>Aug 2017</creationDate>
<version>3.1.0</version>
<description>Add a description</description>
<files>
<filename plugin="yourplugin">yourplugin.php</filename>
</files>
</extension>
- 还有一个 php 文件,例如
<?php
defined('_JEXEC') or die;
class PlgUserYourplugin extends JPlugin
{
function onUserLogout($credentials, $options){
// call whatever php you like here...
return true;
}
}
文档说 onUserLogout 应该 return 一个布尔值,但是 returning false 似乎没有效果,用户仍然注销用户。
如果插件只在前端运行,你需要处理这个。
创建文件后,您可以使用发现功能(扩展->管理->发现)安装插件。安装后记得启用插件。