.. You may want to use the usual include line. Uncomment and adjust the path. .. include:: ../Includes.txt ========================== Frontend User Registration ========================== :Author: Christopher :Created: 2010-12-18T19:57:23 :Changed by: Christian Bülter :Changed: 2013-09-05T17:14:51 :Classification: ke_userregister :Keywords: ke_userregister, registration, salted, md5 :Author: Andreas Kiefer :Email: kiefer@kennziffer.com :Language: en .. _img-1-img-2-Frontend-User-Registration: |img-1| |img-2| Frontend User Registration ========================================== Extension Key: ke\_userregister Language: en Version: 0.1.5 Keywords: ke\_userregister, registration, salted, md5 Copyright 2006-2013, Andreas Kiefer (kennziffer.com), This document is published under the Open Content License available from http://www.opencontent.org/opl.shtml The content of this document is related to TYPO3 \- a GNU/GPL CMS/Framework available from www.typo3.org .. _Table-of-Contents: Table of Contents ----------------- **`Frontend User Registration 1 <#__RefHeading__5708_1738894311>`_** **`Introduction 3 <#__RefHeading__813_1069746998>`_** `What does it do? 3 <#__RefHeading__815_1069746998>`_ `Features 3 <#__RefHeading__823_1069746998>`_ **`Screenshots 4 <#__RefHeading__961_1069746998>`_** `Registration form 4 <#__RefHeading__963_1069746998>`_ `Edit form 4 <#__RefHeading__965_1069746998>`_ `Edit confirmation message 5 <#__RefHeading__967_1069746998>`_ `Edit password form 5 <#__RefHeading__969_1069746998>`_ `Delete profile 5 <#__RefHeading__971_1069746998>`_ **`Installation / Quickstart 6 <#__RefHeading__1069_1069746998>`_** **`Configuration 7 <#__RefHeading__1167_1069746998>`_** `Input field types 7 <#__RefHeading__1169_1069746998>`_ `Example TYPOScript for select\_db\_relation: 7 <#__RefHeading__1171_1069746998>`_ `Password encryption 7 <#__RefHeading__1173_1069746998>`_ `Validation 8 <#__RefHeading__1175_1069746998>`_ `Backlink to last visited page after succesful confirmation 8 <#__RefHeading__1177_1069746998>`_ `Email to administrator 8 <#__RefHeading__556_917700475>`_ `Further TYPOScript settings 9 <#__RefHeading__1179_1069746998>`_ **`Other Extensions 10 <#__RefHeading__1181_1069746998>`_** `direct\_mail 10 <#__RefHeading__1255_1069746998>`_ `static\_info\_tables 10 <#__RefHeading__1257_1069746998>`_ `fe\_tooltip 10 <#__RefHeading__1259_1069746998>`_ **`Miscellaneous 11 <#__RefHeading__1309_1069746998>`_** `Customizing and Styling 11 <#__RefHeading__1311_1069746998>`_ `Hooks 11 <#__RefHeading__1313_1069746998>`_ `Changelog 11 <#__RefHeading__1315_1069746998>`_ `Bugs found? Feature request? 11 <#__RefHeading__1317_1069746998>`_ .. _Introduction: Introduction ------------ .. _What-does-it-do: What does it do? ^^^^^^^^^^^^^^^^ This extension allows visitors to registrate as a frontend user (fe\_user). It was designed as a lightweight alternative to sr\_feuser\_registration. There is a registration form, an edit form, a form for changing the password and a view for deleting an account. Registrations are checked by double-opt-in. If a user changes his email address this is checked by a double-opt-in, too. .. _Features: Features ^^^^^^^^ - Easy configuration - very flexible - double opt-in (link is sent via email) - extendable via hooks - includes newsletter registration (direct\_mail) - small and with minimal overhead - tooltips - supports plain, md5 and salted passwords .. _Screenshots: Screenshots ----------- .. _Registration-form: Registration form ^^^^^^^^^^^^^^^^^ |img-3| Edit form ^^^^^^^^^ |img-4| Edit confirmation message ^^^^^^^^^^^^^^^^^^^^^^^^^ |img-5| Edit password form ^^^^^^^^^^^^^^^^^^ |img-6| Delete profile ^^^^^^^^^^^^^^ |img-7| Installation / Quickstart ------------------------- If not already there, create a sysfolder called “FE Users”. Use the extension manager to install the extension “ke\_userregister” from TER. Go to your main template and include the static template (section “Include static (from extensions)”). Create a new page called “registration”, insert a “General Plugin” and select the plugin “Register form”, set the mode to “create”. Create an “extension template” and add some typoscript to the “setup” section: Set default user group for new users and the sysfolder where to store the user data (the numbers 123 and 456 are of course only examples). Set the sender of the double-opt-in mails. :: plugin.tx_keuserregister { userDataPID = 123 defaultUsergroup = 456 notification.from_email = info@example.com notification.from_name = TYPO3 User Registration } .. _Configuration: Configuration ------------- .. _Input-field-types: Input field types ^^^^^^^^^^^^^^^^^ The following input field types are available: - text - textarea - password - checkbox - radio - select - directmail (fetches values from direct\_mail categories) - image - country (fetches values from static\_info\_tables) - select\_db\_relation (fetches values from other table, saves the selected uid) .. _Example-TYPOScript-for-select-db-relation: Example TYPOScript for select\_db\_relation: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: myDatabaseField { # type type = select_db_relation # optional: set values via typoscript (additional to the values from the db result) values = 0,1,2 # page where to fetch the records from pid = 3 # tablename table = tt_address # db field to display in the dropdown box (also sorting field) displayField = name } You may use these values in the typoscript definition of the create and edit form. See ke\_userregister\static\ts\setup.txt for an example. In order to add new options for example to checkbox or select fields, you will have to define some locallang values, for example: :: plugin.tx_keuserregister_pi1._LOCAL_LANG.de { label_tx_myextension_myfield = This is the label. label_tx_myextension_myfield_1 = This is option 1. label_tx_myextension_myfield_2 = This is option 2. } If you don't want to save a value into the dabase but for example want to process it in your own hook, you may use doNotSaveInDB. For example: :: plugin.tx_keuserregiste.create.fields.myFieldName.type = text plugin.tx_keuserregiste.create.fields.myFieldName.doNotSaveInDB = 1 .. _Password-encryption: Password encryption ^^^^^^^^^^^^^^^^^^^ You may set the password encryption to “plain”, “md5” (for example for the usage together with kb\_md5fepw), or “salted”. “salted” is the default and recommended value (it's the most secure one). It requires TYPO3 4.3 or higher. Make sure that you have the extension saltedpasswords installed and that you have salted passwords for the frontend enabled. Configuration: :: plugin.tx_keuserregister.password.encryption = salted Possible values: plain, md5, salted .. _Validation: Validation ^^^^^^^^^^ Each input field may be validated. The following evaluations are implemented. You may combine them in a comma-separated list. - required - numeric - email - integer - date-de (DD.MM.YYYY) - date-us (MM.DD.YYYY) - Further evaluations may be added via hooks. .. _Backlink-to-last-visited-page-after-succesful-confirmation: Backlink to last visited page after succesful confirmation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This feature must be activated in TYPOScript with the config option “backlink.generate = 1”. If activated, the PID that was passed as piVar “tx\_keuserregister\_pi1[backlinkPid]” to the “create” form will be saved in hash table. After a succesful confirmation the link will be generated. You can use every param for this link, e.g. if you want to link directly to a singleview. All parameters that should be used in the backlink has to be defined in TYPOScript config option “backlink.parameters”. Use comma-separated values if you need multiple params. The params must be passed to the create form, too. :: tx_keuserregister_pi1.backlink { generate = 1 parameters = tx_keyac_pi1[showUid],tx_ttnews[ttnews] } This example will generate a backlink like :: http://domain.de/index.php?id=66&tx_keyac_pi1[showUid]=11&tx_ttnews[ttnews]=22 if you pass the PID and the params to the create form like this: :: http://domain.de/index.php?id=5&tx_keuserregister_pi1[backlinkPid]=66&tx_keyac_pi1[showUid]=11&tx_ttnews[ttnews]=22 .. _Email-to-administrator: Email to administrator ^^^^^^^^^^^^^^^^^^^^^^ *since version 0.1.5:* You can set ke\_userregister to send an email to the administrator each time a user registers or changes his data. This is the typoscript code: :: plugin.tx_keuserregister { # send email to admin after sucessful double-opt-in? # (set to "1" to activate this feature) adminMailAfterConfirmation = 0 # send email to admin after changed userdata adminMailAfterEdit = 0 # admin email addresses (comma-separated) adminMailAddress = admin@my-doma.in # list of fe_user fields that will be sent to the admin adminMailFields ( username, gender, first_name, last_name, email ) } .. _Confirmation-by-administrator: Confirmation by administrator ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *since version 0.1.5:* If you want every new user registration to be checked by an administrator, you can set this up setting the “adminConfigurationEnabled” value to “1”. The administrator will receive an email (administrator notification has to be enabled, see above) with links for confirmation and denial. The user will receive an email when the administrator cklicks on one of the links. This is the typoscript code: plugin.tx\_keuserregister { adminMailAfterConfirmation = 1 adminMail { 10 { address = admin@my-doma.in } } adminConfirmationEnabled = 1 } .. _Further-TYPOScript-settings: Further TYPOScript settings ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Have a look at the file ke\_userregister\static\ts\setup.txt for other typoscript options. .. _Other-Extensions: Other Extensions ---------------- You may improve the functionality of this extension by adding some extensions to your system: .. _direct-mail: direct\_mail ^^^^^^^^^^^^ You may install direct\_mail in order to allow users to register for newsletters. Please not that you will have to install tt\_address first. If you do not have the extension “direct\_mail” installed, you will have to clear the corresponding field: :: plugin.tx_keuserregister.create.fields.module_sys_dmail_category > Remember to clean up the html template as well. .. _static-info-tables: static\_info\_tables ^^^^^^^^^^^^^^^^^^^^ Install the extenstion “static\_info\_tables” if you want to have a country dropdown. Use this typoscript setup: :: plugin.tx_keuserregister.create.fields.country.type = country Remember to clean up the html template if you do not want to use the “country”-field. .. _fe-tooltip: fe\_tooltip ^^^^^^^^^^^ If you want to use tooltips after some or each input field, please install the extension fe\_tooltip. You may then define the tooltips in typoscript setup. .. _Miscellaneous: Miscellaneous ------------- .. _Customizing-and-Styling: Customizing and Styling ^^^^^^^^^^^^^^^^^^^^^^^ Use the template files in the res/-folder of the extension. You should copy the css and html template from the res/ folder of the extension to somewhere in the fileadmin/-folder and then point the typoscript values for “templateFile” and “cssFile” to those files. If you do so, new versions of ke\_userregister won't overwrite your customized templates. .. _Hooks: Hooks ^^^^^ There are hooks for custom validation of input fields, data processing and custom markers. Have a look at ke\_userregister\pi1\class.tx\_keuserregister\_pi1.php and search for “Hook”. .. _Changelog: Changelog ^^^^^^^^^ See file “ChangeLog” in EXT dir. .. _Bugs-found-Feature-request: Bugs found? Feature request? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Please use the bugtracker on forge.typo3.org: :: http://forge.typo3.org/projects/show/extension-ke_userregister .. ######CUTTER_MARK_IMAGES###### .. |img-1| image:: img-1.png .. :align: left .. :border: 0 .. :height: 44 .. :id: graphics5 .. :name: graphics5 .. :vspace: 57 .. :width: 161 .. |img-2| image:: img-2.png .. :align: left .. |img-3| image:: img-3.png .. :align: left .. :border: 0 .. :height: 259 .. :id: Grafik1 .. :name: Grafik1 .. :width: 279 .. |img-4| image:: img-4.png .. :align: left .. :border: 0 .. :height: 288 .. :id: Grafik2 .. :name: Grafik2 .. :width: 325 .. |img-5| image:: img-5.png .. :align: left .. :border: 0 .. :height: 152 .. :id: Grafik3 .. :name: Grafik3 .. :width: 460 .. |img-6| image:: img-6.png .. :align: left .. :border: 0 .. :height: 169 .. :id: Grafik4 .. :name: Grafik4 .. :width: 334 .. |img-7| image:: img-7.png .. :align: left .. :border: 0 .. :height: 170 .. :id: Grafik5 .. :name: Grafik5 .. :width: 513