Search will search all fields in the current list for the search text and return users who are in the current list and have that text in a field in the list.
Many fields will have default formats, but what if you want a different format? Or if the field was added by another plugin? There are add-ons for some third party plugins which may offer suitable formats. Alternatively from version 4.0 of amr-users and up, one can control the format via the settings.
Tell the amr-users plugin what sort of data you have in your fields (the fieldtype) and the plugin will offer you some predefined formats for that field. In some cases the option may be greyed out if the format function is not available in the system.
Some formats are available in the free version and some may require amr-users-plus versions >= 3.0 or may require a custom add-ons.
This is for example very useful if dealing with a third party plugin that stores date and time fields as Unix timestamps. (Why do they do this?, ok I know why, it’s just that if wordpress doesn’t do it, it’s not necessary for plugins to do it is it?. It obfuscates the data and makes to hard for you when you look at the raw data.)
- Custom format specified in settings & custom function for that exists
- Else Custom format specified in settings – default pluggable function
- Else Linktype with default format
- Else Custom pluggable field specific function
- Else Default pluggable function if available (no settings, no linktype)
In the “Fields and nice names” screen, select the field type for the field that the plugin has found. For example:
- user registration date is stored in date time format YYYY-MM-DD hh:mi:ss
- various S2 member date time fields are stored in Unix timestamp format
In the “configure list” screen for each list, choose formats that make sense for that field-type. Each list can have a different format. For example, one list might have a high level date format for the user registration date, and another list might choose to include the date and the time.
Date Time fields and Unix time-stamp fields could currently be formatted as:
- Date and time
- Ago (human time difference)
- Birth month
The actual format of the date, time and datetime options can also be customised. The options are the usual wordpress options AND the custom options from your general settings screen.
Usually the user_email field will be formatted with the ‘mailto’ linktype and then each site can tailor this with their own css. Perhaps use wordpress dashicons to show a email icon? Two format options have also been provided. If functions are defined for the format dropdown options, they will become ‘available’. Eg:
- function ausers_format_email_mailto($email) or
- function ausers_format_email_icon_mailto($email)
If a custom format is specified in the settings, these will generally override any coded custom formatting routine (except for amr-users-plus-s2member version 2.0 and lower) and any default formatting.
You should ensure that your data adheres to the field type specified. Any invalid data will generally be shown unformatted.
Changing the text in a plugin or theme without editing the plugin or theme files is surprisingly easy IF the plugin or theme has made the text translateable.
Using a plugin like https://wordpress.org/plugins/loco-translate/, ensure the language chosen matches your wordpress language, and choose a location for your files (loco translate helps) that
will be accessed by the plugin or theme (some help with this) and
will not be overwritten by updates – loco translates helps and some plugins/themes help too by offering another lookup location. The recommended custom language file location is /wp-content/languages/.
For more information see http://icalevents.com/3445-an-accent-for-your-website/
The amr-user plugin offers wordpress capability control of access to users lists. In wordpress roles have capabilities, and the capabilities determine what the users can do. User lists can also be tagged as ‘public’ so that a viewer with no role can see the list if used on the front end.
Summary of access control options:
- public lists (ie lists ticked ‘public’ in the settings) can be viewed by anyone
- non-public lists can only be viewed by people with ‘list_users’ capability
- ‘manage_options‘ or ‘manage_userlists‘ (custom capability) can create and edit user lists.
Tailoring access to the lists for roles:
If you want to isolate the ‘manage_userlists’ capability to a non-administrator and you don’t already have a plugin to do that for you, something like Justin Tadlock’s Members plugin is useful.
To select users by excluding any who do not have certain criteria, use the exclude column for that field.
Enter the values which will cause users to be excluded. These should be the actual data values.
Separate multiple values with one comma with no spaces.
There are two fields that show details of date of registration. When the plugin started I wanted to see a human based ‘days ago’ view as I found that much more helpful to assess how long a user had been a member.
Thus that is the real wordpress registration date fields default formatting. If one hovers over the field full details of the actual date will show.
It is also possible for you to write your own formatting function to format the date any way you would like. For those people who are unable to write their own functions from the example and just want to display the registration date, there is a ‘pseudo’ field created which is called ‘Registration Date’ – it is not a real field though and does not sort well.
Registered days ago
- real registration date field formatted using wordpress’s human time difference date time function
- has hover text so you can see the actual date
- will sort by date
- will display the date in the csv extract
- pseudo field created on the fly in display only
- doesn’t sort. Sort by the ‘days ago’ field and then remove the display order to hide the field
- doesn’t show in csv
In the future there may be the possibility for one to choose from a range of formats. For example I can imagine a number of possibilities:
- a range of date formatting options using php date format options
- human time diff, days ago
- birthday (no years)
[2019 Note: Please watch out for major update. First_role will be replaced by Capabilities/Roles. There will no longer be a separate first_role field ]
Do users on your websites have more than one wordpress role ?
On a basic wordpress install, a user usually has only one role. At the simplest, many sites only deal with administrators and subscribers.
The free amr users user listing plugin will extract the first role found in the wordpress usermeta capabilities value and present that as the ‘first role’. This is great for most installs, some may need more reporting possibilities.
WordPress does actually allow for users to have multiple roles. Add in the bbpress plugin and possibly a membership plugin which may create it’s own set of roles in parallel to the wordpress ones (ie not instead of), then you may find a single user may have many roles even if you actually need them to only have one.
Depending how/when a user was created in the system, (converted? created before or after the forum etc) they may/may not have a wordpress default role, they may just have a bpress role for example. Even more confusingly the ‘first role’ may no longer be useful. For example, someone may have been created as a forum participant with while someone else may be wordpress ‘editor’ and then a forum participant. The ‘first roles’ may then differ, when one might think that they should both have participant.
In such a case, other role fields may be useful too. The free amr users plugin will automatically extract all the roles it finds and present each as a field where the user either has a that value (1 or true) or does not. One can use these to exclude or include users from the user lists, or to interrogate the db looking for users with multiple roles etc.
If you need more than that, then you need the amr-users-plus plugin. It adds
- a ‘roles’ field which will list in the one field all the roles a user has. It also adds filtering functionality where one can do realtime selection. This will work for any roles stored in the usermeta capabilities record.
- a first bbpress forum role, in case you just interested in forum access only
The latest update (3.9) adds a admin screen that allows you to
- see and change which meta keys are excluded by default from the plugin and
- exclude more meta keys
- delete user meta records for selected metakeys (cleanup)
- see totals of meta records for meta keys
This became essential for anyone using S2member, and handy for anyone using Advanced custom fields which seems to create additional hidden metakeys for every custom field. Thisplugin will attempt to help you out by default excluding as many unnecessary fields as possible. You can then update.
The S2member access cap times field is keyed by time, which means that as time goes by there will be more and more sub fields detected by amr-users and the fields and nicenames page will become impossible.
This is clearly unworkable. So a admin page to exclude meta keys was added. This page will also allow you to delete meta records. Be Careful! This is a confirmation step, but no undo.
The “find fields and nice names” page has been updated to help highlight what’s going on.
Do you want to add css for html generated by a plugin perhaps?
Got a Custom Theme?
Do you have a custom theme that you are NEVER going to automatically update?
Then edit the themes css, add your custom css to the bottom of the main style.css. This should be in your themes folder under wp-content.
Got an Updateable Theme ?
Does your theme have upates occasionally ? If you want to be able to auto update your theme, then it is better to add your css separately.
Some plugin have ways to add a custom css file for that plugin and/or to disable any plugin css so that you may reduce the number of stylesheets. Do NOT edit any plugin css files unless it is a site specific plugin that will not be updated automatically – you will lose your css when the update is applied.
The easiest way to add custom css if you cannot use your themes style.css is probably by using the official wordpress jetpack plugin: http://wordpress.org/support/plugin/jetpack
It has a custom css module http://jetpack.me/support/custom-css/ There are other plugins that allow you to do this.
How to work out what css selectors to use?
First you need to work out what css selectors have been provided in the html that is generated. My plugins generally offer many css selectors in the html. The various ‘inspect element’ tools are invaluable here.
- http://getfirebug.com/css and
They help highlight what css is being applied to the html and what is being overwritten. And of course they help you to see easily what css ‘hooks’ there are to add special styling.
Your custom css needs to work with your theme, so you either need to specify the css tightly enough that no theme css will ever override it, or know that you are not going to be changing themes.
To work out what css to add, ideally you should have a reasonable understanding of css. In particular the concepts of specificity and inheritance
You could ask for help from css experts.
- http://webmasters.stackexchange.com/questions/tagged/css or
- http://stackoverflow.com/questions/tagged/css or
- pay for a bit of wp related help https://www.google.com.au/search?q=www.wpquestions.com+css
When asking for help you should
- provide a link to the problem page of your site or demo site
- identify the theme you are using perhaps
- be clear and specific about the effect you are trying to achieve and your level of skill in editing css
You should also know that browsers vary in their implementation and while your hack that you worked out or have been given might look beautiful on your apple mac running safari, results can vary greatly.
If you have any pride in your work at all, you should test the result using something like http://browsershots.org/, or risk the site looking really stupid.
Identifying CSS selectors example:
In this example from the amr-users plugin, one can see that:
- there are id’s specific to a user list, thus enabling one to isolate your css to just the list (div id=userlist1)
- there is a general userlist class which enables one to style all such userlists with the same css
- there are classes per field allowing one to style individual fields
A ‘funny’ recently presented itself. In the chrome browser, avatars were not showing up, despite they being there in the html code.
My first thought when I hear of browsers responding differently is to check html validation – browsers often cope with errors but sometimes not.
In this case, it was the css that turned out to be the problem.
An invaluable tool to debug these things is the ‘inspect element’ firebugs or chromes and the ability to deselect or add css to see what is overriding what. See http://bigemployee.com/4-simple-techniques-to-quickly-debug-and-fix-your-css-code-in-almost-any-browser/
Fairly quickly one could see that somehow the inline attributes were being overwritten.
Scrolling back up through the css to see what might be overwriting that css, I paused thoughtfully at a image max-width and unticked and reticked some css.
As soon as I unticked the max-width the images reappeared in chrome.
A quick web search showed that others had encountered this before and had some suggestions on overcoming this. It seems Chrome interprets the rule differently from Firefox. It assumes the image can freely be shrunk, and with a long string of text in the cell next door, it squeezes the images.
- https://drupal.org/node/1291704 -image max-width causes images to collapse in table cells in Chrome unless a width is set on the table column
So some possible solutions appear to be:
- remove the max-width attempt to be responsive, or
- set a fixed table width
- maybe set a fixed column width