版 - 的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