有沒有這樣的事情,一個函數或查詢跟蹤行最後一次更改的時間? ID沒有時間戳列,也不能添加一個,有特定的列,名稱發佈,從0改爲1,反之亦然,我想檢查它最後更改的時間。是否有特定列已更改Mysql/Joomla的時間戳?
在這裏和joomla一起工作,並試圖找出插件發佈/未發佈時,沒有事件發生,只有事件是onExtensionBefore和保存後,但沒有事件跟蹤發佈狀態。
有沒有這樣的事情,一個函數或查詢跟蹤行最後一次更改的時間? ID沒有時間戳列,也不能添加一個,有特定的列,名稱發佈,從0改爲1,反之亦然,我想檢查它最後更改的時間。是否有特定列已更改Mysql/Joomla的時間戳?
在這裏和joomla一起工作,並試圖找出插件發佈/未發佈時,沒有事件發生,只有事件是onExtensionBefore和保存後,但沒有事件跟蹤發佈狀態。
添加觸發器,在每個columnname
更新執行:
DELIMITER |
CREATE TRIGGER `TriggerName`
AFTER UPDATE ON `TriggerTable`
FOR EACH ROW
BEGIN
IF NEW.columnname <> OLD.columnname THEN
SET `timestampcolumn`=NOW();
END IF
END
|
之後,如果你更新columnname
應該更新timestampcolumn
到當前時間。
注:定義觸發器時DELIMITER [
delimiter
]
更改您的分隔符。分隔符應該是不在CREATE TRIGGER
定義中的東西。默認分隔符是;
並將其從默認更改爲必需,因爲;
之後SET ´timestampcolumn´=NOW();
會以其他方式中斷TRIGGER
定義。
就像說,不能添加/更改列 – Benn
@Benn然後,你需要存儲信息的其他地方,像其他表,其他數據庫,文件,素描本... –
對於onSave事件,您應該獲取整行數據,包括髮布/狀態狀態。對於可能涉及保存的每個字段,您都不需要特殊的觸發器。 我會製作一個內容插件,它具有一個表格,可以在保存狀態發生變化時節省時間。
問題是,我們製作的插件是系統插件,onSave僅用於內容插件 – Benn
我不確定你的意思。任何保存的表單都會有一個onSave。所以你可以使用一個內容插件,但是如果你想使用一個系統插件,你可以...但爲什麼你會想要在每次加載時檢查該插件,當你知道它應該只在你編輯在管理員表單中? 你還想要插件做什麼?你還有什麼版本的Joomla? – Elin
用戶可以禁用插件擴展插件管理器:插件,無需進入插件編輯窗體,並且沒有任何事件可以連接到,測試25/3.0,製作css/js壓縮插件。在插件窗體中輸入,我們刪除緩存並創建新的緩存,但是如果用戶在插件列表中禁用了插件,我們就無法做到這一點。所以告訴我們何時禁用/啓用插件的時間戳可以幫助我們交叉緩存文件的參考時間戳,並在未發佈時間比緩存文件時間戳更新時刪除緩存。 – Benn
你可以添加另一個表嗎? – diEcho
不,我只能檢查現有的一個,它沒有發佈時間列 – Benn
@diEcho我編輯我的帖子,所以你會更好地理解我正在處理 – Benn