We are getting close to the next version of WLPE

!
Here is what I have so far.
1.) A frontend, templateable, fully customizable Manager interface where you can:
- Edit ANY attribute of ANY user.
- Delete any user.
- (Best to keep this one accessible to ONLY Site Admins
)
2.) System Event triggers for almost every possible service in WLPE using standard MODx events whenever possible. Examples are:
- OnBeforeWebLogin
- OnWebLogin
- OnBeforeWebSaveUser (New event)
- OnViewProfile (New event. Possible uses include counting profile views per user?)
- These are just some examples. There are MANY more.
3.) Using the ’active_users’ table I have put a timestamp in for the user’s internal key whenever they interact in any way with a page calling WebLoginPE (any page you have a login form, profile, viewusers, whatever). When viewing users, you can see who has been online (logged in) in the last 15 minutes. Like I said, that timestamp gets updated every time they view a page with WebLoginPE on it, so as long as they are viewing your site, they will show up as "Online". When they log out, or go more than 15 minutes without viewing a page, they show up as "Offline".
4.) ViewAllUsers() got a MASSIVE overhaul!
- Now you can have multiple lists per page
- New parameter &usersList allows you to specify each list format.
- You can specify "List Name", "Outer Template", "Inner Template", "Sort By", "Sort Order", and "Filters"
The ViewAllUsers() method has been the most difficult programming I have ever done, but it is very, very versatile.
The syntax for
&usersList looks like this:
&usersList=`List Name:outerTplChunk:userTplChunk:fieldtosortby:sortorder:filter(value),filter2()`.
An example you say?
How about the default!
[(site_name)] Members:default:default:username:ASC:username()
This makes a list of web users. The title of this list is "My MODx Site Members".
It will use the default templates specified in &userTpl and &userOuterTpl.
It will sort the list by username, Ascending (0-9 then A-Z)
the filter is "username" so it will remove from the list anyone without a username (no one, I hope)
The filter part IS optional. I could end the list above with ASC: (the final colon is important!) if I wanted to.
You are probably wondering about the filter(value) thing, right?
we could limit our list to only those who have supplied a phone number by using:
Folks with Phones:default:default:username:ASC:phone()
even cooler, we could limit our list to only those who have supplied a hotmail email account:
Hotmail users:default:default:username:ASC:email(hotmail)
How about if we limit our list to only those who have a website (&customFields) AND are members of the webgroup "Site Admins" by using:
Admins with websites:default:default:username:ASC:website(),webgroup(Site Admins)
When you use "webgroup" as a parameter, it searches for all of the members of the webgroup between the parentheses.
If you specify a filter without a (value), like website() it grabs each user with a value for the website field stored in the database. If we give the filter a value, like website(modxcms) it will only return users who have "modxcms" in some form in the website field of their database table row (it uses strpos to find the string).
You can have multiple lists by separating them in the call with double pipes (||).
&usersList=`Admins with websites:default:default:username:ASC:website(),webgroup(Site Admins)||Users online right now:onlineOuterChunk:onlineUsersChunk:internalKey:DESC:online()`
The online() filter is a freebie that I threw in. It will work without any customFields.
I also want to make a tool to convert your PPP table for use with WLPE, but I have a lot of work to do, so I will get to that when I can.
-sD-
Dr. Scotty Delicious, Scientist DFPA.