Extension talk:CustomUserCreateForm
In MediaWiki 11.1.0, error as follows:
Fatal error: Cannot redeclare class UserloginTemplate in
/home/memswiki/public_html/extensions/customUserCreateForm/templates/customUserlogin.php on line 94
On customUserlogin.php needs to rename UserLoginTemplate class to customUserLoginTemplate
Note
editThe UsercreateTemplate and UserloginTemplate classes have been split into separate files. Be sure to be careful with that.Jasper Deng (talk) 05:40, 26 February 2012 (UTC)
How to add a custom field
editFirst of all, this was made by using Mediawiki 1.17.0 and customUserCreateForm version 0.1
Said so, let's start
Add the field to the registration form
editFile Old: templates/customUserLogin.php
File New: templates/customUsercreate.php
Process:
- Add the following line somewhere in the middle of the execute method of the
customUsercreateTemplate
class.
$this->addInputItem('fieldname', 'default value', 'input type', 'Left column message');
Managing the data retrieved by the new fields and adding it to the database
editFile: templates/customUserCreateForm.php
Process:
- Add a new
AddNewAccount
hook at the top of the file: - Create a new function that will handle the data with the same name as stated on the AddNewAccount hook registration. All the data from the registration process can be retrieved via
wgRequest
global variable - Store the data in the user_properties table by using
wfGetDB (DB_MASTER)
Example:
$wgHooks['AddNewAccount'][] = 'customUserSaveToDB';
function customUserSaveToDB( $user, $byEmail){
global $wgRequest;
$dbw = wfGetDB( DB_MASTER );
$dbw->insert( 'user_properties', array(
'up_user' => $user->getID(),
'up_property' => 'city',
'up_value' => $wgRequest->getText( 'wpCity' )
));
return true;
}
Add new data to Special:Preferences page
editFile: templates/customUserCreateForm.php
Process:
- Add a new
GetPreferences
hook at the top of the file: - Create a new function that will handle the custom user preferences section with the same name as stated on the
GetPreferences
hook registration. - Call the data in the user_properties table by using the preferences variable
Example:
$wgHooks['GetPreferences'][] = 'customUserPreferences';
function customUserPreferences ($user, &$preferences)
{
$preferences['city'] = array(
'type' => 'text',
'label-message' => 'customUserCity', // a system message
'section' => 'personal/info',
);
// Required return value of a hook function.
return true;
}
Create the custom system messages for the new fields
edit- For each new property in the preferences, visit the MediaWiki:systemMessageForTheProperty article of your wiki and edit it by adding the name of the field you wish to appear next to the preferences box field.
Get data from the database
editThe SQL query for getting the data from the database should go as following:
SELECT user_name, user_email, up_user, up_property, CONVERT(up_value USING utf8) AS yourFieldName FROM user_properties
JOIN user ON user.user_id=user_properties.up_user
WHERE up_property IN ('field1','field2',...) AND (up_value IS NOT NULL AND (TRIM(up_value) != ''))
ORDER BY user_name DESC
That should be all! Enjoy your new customized registration tool
--Fladei (talk) 20:01, 15 April 2012 (UTC)
If you wish to inject text into the UI this DOES NOT WORK. FIX IS INCLUDED
editThe function prototype needs to be:
function customUserCreateForm(&$template) {
NOT
function customUserCreateForm($template) {
$template needs to be passed by reference because the execute() function that renders the content is call after the hooks are exected.
-Michael Lapinski
-mtl[attt]mit[dot]edu
Extension NOT clear
editCan you please provide more about how does this extension work and how to create new columns in database if i want to add birth date and country ' ANY ADVICE PLEASE
Is this extension still supported
editIs this extension still supported please let us know
custom user create form dont work in 1.27 version
editHi every one.
Yesterday ,I was upgrade my system from 1.24 to 1.27 ,but the (customUserCreateForm) extension dont work any more.
The new version does not read my custom template , as it is not exist .
Does there is a new way to build a custom create and login form in a new version?
Please help.
Thank you.
In a last version of mediawiki(1.27) on the (realease-note) file , there is a following line:
- AbortNewAccount (create a MediaWiki\Auth\PreAuthenticationProvider instead)
What the mean of (create a MediaWiki\Auth\PreAuthenticationProvider instead)?? This sentence was written multiple times , especially near the hooks that no more working in a new version (1.27)
create a MediaWiki\Auth\PreAuthenticationProvider instead
editIn a last version of mediawiki(1.27) on the (realease-note) file , there is a following line:
AbortNewAccount (create a MediaWiki\Auth\PreAuthenticationProvider instead) What the mean of (create a MediaWiki\Auth\PreAuthenticationProvider instead)?? This sentence was written multiple times , especially near the hooks that no more working in a new version (1.27)