运行 php 在 joomla 3 中用户注销的代码

run php code on user logout in joomla 3

版本 - Joomla 3.6.2

我的软件包包括一个管理组件、一个前端组件和一个模块。

我正尝试在用户注销时 运行 一些 php 代码(http 请求)。我对在哪里编写该代码感到困惑。 我有几个问题 -

您可以使用 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 似乎没有效果,用户仍然注销用户。

如果插件只在前端运行,你需要处理这个。

创建文件后,您可以使用发现功能(扩展->管理->发现)安装插件。安装后记得启用插件。