Author Topic: passing variables/plugin api  (Read 6440 times)

Offline corbosman

  • Sr. Member
  • ****
  • Posts: 260
passing variables/plugin api
« on: May 18, 2009, 05:34:15 AM »
Hi all, what is the recommended way to pass state in between calls of functions of a plugin?

As an example.. lets say I want to show the last login of a user in a template. I create a template object, hook into it through plugin api, and add the last login to the content var. But the last_login info from the user object is already modified by then to be the current login time/date. So I need to grab this info at an earlier hook (login_after), and then pass it to the template hook.  (btw, the example userinfo plugin also fails here..it shows the current login time).

Im using a cookie now, but im wondering if there isnt a better way. I cant just create an object variable ($this->last_login) because the data is wiped between login_after and template_object_*.

Also, is there some uniform way to save permanent longterm data as a plugin without having to build my own DB query?  

Regards,

Cor

Offline rosali

  • Hero Member
  • *****
  • Posts: 2,533
passing variables/plugin api
« Reply #1 on: May 20, 2009, 12:56:17 AM »
An idea would be to use the startup hook and to check if $_POST['_user'] is set. If so, query "users" table for "last_login" before it is updated by the login function and save the last login value into the session or a cookie. To avoid a database query for last login on each request, skip the query if the session value or the cookie is already present. I would prefer a session value. Otherwise you have to care to clear the cookie on a request where the user is not authenticated.

To save permanent longtern data not only within a session you could add it to "users" table field "preferences" as a part of the serialized array. I do so e.g. for my password recovery tool (secret question and answer).
« Last Edit: May 20, 2009, 01:07:49 AM by rosali »
Regards,
Rosali
__________________
MyRoundcube Project (commercial)

Offline corbosman

  • Sr. Member
  • ****
  • Posts: 260
passing variables/plugin api
« Reply #2 on: May 20, 2009, 04:06:04 AM »
Where can I find your password recovery tool?

Regards,

Cor

Offline rosali

  • Hero Member
  • *****
  • Posts: 2,533
passing variables/plugin api
« Reply #3 on: May 20, 2009, 07:55:27 AM »
Unfortunately it is part of MyRoundCube (see footer). It has not been updated to use the new plugin API yet.
Regards,
Rosali
__________________
MyRoundcube Project (commercial)