版 - 的Joomla 3.6.2运行PHP代码中的Joomla 3
我的封装包括一个管理部件,一个前端元件和一个模块。
我想在用户注销时运行一些php代码(http请求)。我很困惑在哪里写代码。 我有几个问题 -
- 我无法找到实施活动的好资源。如何使用这些事件(https://docs.joomla.org/Plugin/Events)
- 我需要为此编写一个插件吗?
版 - 的Joomla 3.6.2运行PHP代码中的Joomla 3
我的封装包括一个管理部件,一个前端元件和一个模块。
我想在用户注销时运行一些php代码(http请求)。我很困惑在哪里写代码。 我有几个问题 -
是的,编写用户插件是你想要的,而且非常简单。下面是一个骷髅为你下手:
<?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 defined('_JEXEC') or die; class PlgUserYourplugin extends JPlugin { function onUserLogout($credentials, $options){ // call whatever php you like here... return true; } }
文档说onUserLogout应该返回一个布尔值,但返回false似乎没有效果,用户仍然将用户注销。
如果插件只能在前端运行,则需要处理该问题。
在创建文件后,您可以使用discover - 功能(扩展 - >管理 - >发现)来安装插件。请记住在安装后启用该插件。
你可以做到这一点无论是使用plugin
或做登录模块& com_user组件的模板压倒一切的在那里你可以注销设置自定义网址。因此,注销过程完成后,用户将访问您的自定义脚本,并可以完成自己的任务。 或者,如果你不想继续更新joomla,你可以破解com_users。
注意:只有插件方法建议更安全&实现你的目标的正确方法。
看起来你需要把它放在一个插件中。 – apokryfos
@apokryfos我不确定这个选项,只是一个小功能的插件文件。在Drupal钩子中使用,在WordPress中有过滤器,应该有另一种方式来做到这一点? – NeiL
在drupal中,任何用户代码在技术上都是模块或主题的一部分,这是一种插件。 – apokryfos