Formatting code for ConfigureAttributesInfo
==[[PhplistDocumentation Phplist Documentation]] » [[ConfigurationFunctionsInfo Configuration functions]] » ==
----
===== Configure Attributes =====
phplist allows you to add **Attributes** to your system. Instead of having only an email identifying each [[UserInfo user]] as in an ordinary mailing list, you can add an attribute for their first name, another for their last name, an attribute listing countries in which the user may reside, an attribute proposing a series of favourite meals, etc. Thus, phplist can become not only a mailing list system, but also a real **subscriber database**.
These attributes can be used as [[SendMessageCriteriaInfo criteria]] to **send targeted messages** to your users.
Users can have access to any selection of attributes in any order selected by the admins in the [[ConfigureSubscribePageInfo subscribe pages]]. Attributes can be mandatory, or not. They can have default values, or not.
====Description====
%%Here you can identify the attributes you want people to enter, in order to sign up for the lists.
Attributes are "global" ie, they apply to all lists.%%
Attributes do //not// work like [[ListAndUserFunctionsInfo lists]], as lists are admin-dependent: [[AdministratorFunctionsInfo admins]] have access only to the lists they own, whereas any admin has access to all the attributes (that is why they are called "global").
**##Add a new one##**
~To add an attribute to your system. See below: //Types of attribute//.
**##Load data from predefined defaults##**
~phplist comes with a number or predefined attributes/values such as: Countries, States in the USA, Counties in the UK, etc. You can upload these automatically instead of adding them manually.
**##Existing attributes:##**
{{table columns="2" cells="Attribute: #; Tag [checkbox]; Name:; [textline] ;Type:; [pulldown menu]; Default Value: ; [textline] ;Order of Listing: # ; Is this attribute required? [checkbox]"}}
#%Save changes#% button
**##Attribute # ##**
~Each attribute has a unique ID which is shown here.
**##Tag##**
~You can tag an attribute to perform an operation (see below: ##Delete## or ##Merge## ##tagged attributes##)
**##Name##**
~The name of the attribute. It will appear in the [[ConfigureSubscribePageInfo subcribe page]] and can be used as a placeholder when sending out messages. See [[SendMessageInfo Using placeholders]].
**##Type [pulldown menu]##**
~Each attribute has a unique type. See below: //Types of attribute//
**##Default value##**
~You can specify a default value for the attribute.
**##Order of listing##**
~The attribute will be listed in the order specified in the admin area of your system. You can specify a different order in which the attribute is listed in the [[ConfigureSubscribePageInfo subcribe page]]. You can specify the same order of listing for several attributes (for example: 28), in which case, those attributes will be sub-ordered by ID number (descending)
**##Is this attribute required? [checkbox]##**
~Required attributes are shown in red in the [[ConfigureSubscribePageInfo subscribe pages]].
**##What to do with tagged attributes?##**
~The following options are potentially dangerous and/or time-consuming.
#%Delete#%button
~Using this button will delete the attributes that are checked.
#%Merge#% button
~Notes for merging attributes.
Merging attributes means that the values for users will stay the same, but that the actual attribute they belong to is merged into one. The attribute that will remain is the first one (by listorder, as you see it in the page).
* You can only merge attributes that have the same type
* When merging, the value of the first attribute will be kept if it exists, otherwise it will be overwritten by the value of the attribute being merged into it. This can cause loss of data, in case both attributes had a value.
* If you merge attributes of type checkbox the resulting merged attribute will be of checkboxgroup type.
* Attributes that are being merged into another one will be deleted after the merge.
Based on this description this really isn't a merge. If you had two fields and some people had filled out 1, and some the other, and the data was similar in nature and you wanted to make it so there was now only 1 field you would use this. As only the 1st value is kept. If you had a First Name field (1) & a Last Name field (2) you could create a merge. If anyone didn't have a 1st name and did have a last name the resulting field would contain the last name, however where you had both a 1st name and a last name, you would end with only the 1st name. So it isn't really a merge. It's more like replace blank fields in **attribute1** with information in **attribute2** else delete **attribute2**
====Types of attributes====
It is extremely important that you **choose your type of attribute wisely**. Think long-term. Once you have chosen a type of attribute, trying to change it will only create havoc.
Certain attributes can have different [[AttributeValuesInfo values]]. For example, a pulldown menu with 3 choices has 3 values. Each choice is a different value. See [[AttributeValuesInfo Attribute Values]] for more info.
**##textline##**
~This is a one-line text field in which someone can type something freely. This is convenient for anything reasonably short (for example: phone numbers, first/last name, street name, etc.)
**##checkbox##**
~This is a checkbox which can be checked or left unchecked (default value). This is convenient when you ask someone to agree to something (for example: 'do you agree to be contacted by phone? if so, please check this box.') Note: A checkbox attribute cannot be changed into a checkboxgroup attribute without creating potential problems. This type of attribute requires values. See [[AttributeValuesInfo Attribute Values]] for more info.
**##checkboxgroup##**
~This allows you to have **several** checkboxes. Several checkboxes can be checked or left unchecked. You can add checkiboxes to the initial list as time goes along. This is convenient if you want people to choose one or several options (for example: 'do you like...?: pasta / meat / seafood / vegetables / fruit'. Someone can check 'pasta' and 'fruit'.) This type of attribute requires values. See [[AttributeValuesInfo Attribute Values]] for more info.
**##radio##**
~This is for a radio button which can be selected from a list of other radio buttons. You can only select **one** radio button from the list. This is convenient if you want people to choose one element exclusive of all the others (for example: 'smoking / non-smoking'. Some can select either the one or the other, but not both.) This type of attribute requires values. See [[AttributeValuesInfo Attribute Values]] for more info.
**##select##**
~This allows you to have a **pulldown menu** in which people can select **one** value. The list of values listed can be modified as time goes along. This is convenient if you want people to select one element from a relatively long list of possibilities (for example: country of residence). This type of attribute requires values. See [[AttributeValuesInfo Attribute Values]] for more info.
**##hidden##**
~Hidden fields are used to "save state" within HTML forms. They are not shown on the Web page, but the information is sent along with other form input fields. Usually, the hidden fields will contain configuration information for the server-side action script which handles the form data, e.g.: //<input type="hidden" name="list[1]" value="signup" />//
**##textarea##**
~This creates a bigger box in which people can write down something which is relatively **long**, as opposed to the ##textline## option. This is convenient when you want people to express themselves in a way which is not possible with pre-defined lists.
**##date##**
~This creates a field in which Day/Month/Year can be selected (for example: when do you plan to go on vacation? or when is your birthday?). By default the drop down for year will display values ranging from three years before to 10 years after the current year. If you want to use a bigger range, you can set the start and end year by editing the //##DATE_START_YEAR##// and //##DATE_END_YEAR##// settings in your config.php file. Keep in mind that the drop down list may become very large.
**Related pages:**
-[[AttributeValuesInfo Attribute Values]]
-[[SendMessageInfo Sending a message using placeholders]]
-[[SendMessageCriteriaInfo Sending a message using criteria]]
-[[UserInfo User files]]
-[[ConfigureSubscribePageInfo Subscribe pages]].
----
CategoryDocumentation
----
===== Configure Attributes =====
phplist allows you to add **Attributes** to your system. Instead of having only an email identifying each [[UserInfo user]] as in an ordinary mailing list, you can add an attribute for their first name, another for their last name, an attribute listing countries in which the user may reside, an attribute proposing a series of favourite meals, etc. Thus, phplist can become not only a mailing list system, but also a real **subscriber database**.
These attributes can be used as [[SendMessageCriteriaInfo criteria]] to **send targeted messages** to your users.
Users can have access to any selection of attributes in any order selected by the admins in the [[ConfigureSubscribePageInfo subscribe pages]]. Attributes can be mandatory, or not. They can have default values, or not.
====Description====
%%Here you can identify the attributes you want people to enter, in order to sign up for the lists.
Attributes are "global" ie, they apply to all lists.%%
Attributes do //not// work like [[ListAndUserFunctionsInfo lists]], as lists are admin-dependent: [[AdministratorFunctionsInfo admins]] have access only to the lists they own, whereas any admin has access to all the attributes (that is why they are called "global").
**##Add a new one##**
~To add an attribute to your system. See below: //Types of attribute//.
**##Load data from predefined defaults##**
~phplist comes with a number or predefined attributes/values such as: Countries, States in the USA, Counties in the UK, etc. You can upload these automatically instead of adding them manually.
**##Existing attributes:##**
{{table columns="2" cells="Attribute: #; Tag [checkbox]; Name:; [textline] ;Type:; [pulldown menu]; Default Value: ; [textline] ;Order of Listing: # ; Is this attribute required? [checkbox]"}}
#%Save changes#% button
**##Attribute # ##**
~Each attribute has a unique ID which is shown here.
**##Tag##**
~You can tag an attribute to perform an operation (see below: ##Delete## or ##Merge## ##tagged attributes##)
**##Name##**
~The name of the attribute. It will appear in the [[ConfigureSubscribePageInfo subcribe page]] and can be used as a placeholder when sending out messages. See [[SendMessageInfo Using placeholders]].
**##Type [pulldown menu]##**
~Each attribute has a unique type. See below: //Types of attribute//
**##Default value##**
~You can specify a default value for the attribute.
**##Order of listing##**
~The attribute will be listed in the order specified in the admin area of your system. You can specify a different order in which the attribute is listed in the [[ConfigureSubscribePageInfo subcribe page]]. You can specify the same order of listing for several attributes (for example: 28), in which case, those attributes will be sub-ordered by ID number (descending)
**##Is this attribute required? [checkbox]##**
~Required attributes are shown in red in the [[ConfigureSubscribePageInfo subscribe pages]].
**##What to do with tagged attributes?##**
~The following options are potentially dangerous and/or time-consuming.
#%Delete#%button
~Using this button will delete the attributes that are checked.
#%Merge#% button
~Notes for merging attributes.
Merging attributes means that the values for users will stay the same, but that the actual attribute they belong to is merged into one. The attribute that will remain is the first one (by listorder, as you see it in the page).
* You can only merge attributes that have the same type
* When merging, the value of the first attribute will be kept if it exists, otherwise it will be overwritten by the value of the attribute being merged into it. This can cause loss of data, in case both attributes had a value.
* If you merge attributes of type checkbox the resulting merged attribute will be of checkboxgroup type.
* Attributes that are being merged into another one will be deleted after the merge.
Based on this description this really isn't a merge. If you had two fields and some people had filled out 1, and some the other, and the data was similar in nature and you wanted to make it so there was now only 1 field you would use this. As only the 1st value is kept. If you had a First Name field (1) & a Last Name field (2) you could create a merge. If anyone didn't have a 1st name and did have a last name the resulting field would contain the last name, however where you had both a 1st name and a last name, you would end with only the 1st name. So it isn't really a merge. It's more like replace blank fields in **attribute1** with information in **attribute2** else delete **attribute2**
====Types of attributes====
It is extremely important that you **choose your type of attribute wisely**. Think long-term. Once you have chosen a type of attribute, trying to change it will only create havoc.
Certain attributes can have different [[AttributeValuesInfo values]]. For example, a pulldown menu with 3 choices has 3 values. Each choice is a different value. See [[AttributeValuesInfo Attribute Values]] for more info.
**##textline##**
~This is a one-line text field in which someone can type something freely. This is convenient for anything reasonably short (for example: phone numbers, first/last name, street name, etc.)
**##checkbox##**
~This is a checkbox which can be checked or left unchecked (default value). This is convenient when you ask someone to agree to something (for example: 'do you agree to be contacted by phone? if so, please check this box.') Note: A checkbox attribute cannot be changed into a checkboxgroup attribute without creating potential problems. This type of attribute requires values. See [[AttributeValuesInfo Attribute Values]] for more info.
**##checkboxgroup##**
~This allows you to have **several** checkboxes. Several checkboxes can be checked or left unchecked. You can add checkiboxes to the initial list as time goes along. This is convenient if you want people to choose one or several options (for example: 'do you like...?: pasta / meat / seafood / vegetables / fruit'. Someone can check 'pasta' and 'fruit'.) This type of attribute requires values. See [[AttributeValuesInfo Attribute Values]] for more info.
**##radio##**
~This is for a radio button which can be selected from a list of other radio buttons. You can only select **one** radio button from the list. This is convenient if you want people to choose one element exclusive of all the others (for example: 'smoking / non-smoking'. Some can select either the one or the other, but not both.) This type of attribute requires values. See [[AttributeValuesInfo Attribute Values]] for more info.
**##select##**
~This allows you to have a **pulldown menu** in which people can select **one** value. The list of values listed can be modified as time goes along. This is convenient if you want people to select one element from a relatively long list of possibilities (for example: country of residence). This type of attribute requires values. See [[AttributeValuesInfo Attribute Values]] for more info.
**##hidden##**
~Hidden fields are used to "save state" within HTML forms. They are not shown on the Web page, but the information is sent along with other form input fields. Usually, the hidden fields will contain configuration information for the server-side action script which handles the form data, e.g.: //<input type="hidden" name="list[1]" value="signup" />//
**##textarea##**
~This creates a bigger box in which people can write down something which is relatively **long**, as opposed to the ##textline## option. This is convenient when you want people to express themselves in a way which is not possible with pre-defined lists.
**##date##**
~This creates a field in which Day/Month/Year can be selected (for example: when do you plan to go on vacation? or when is your birthday?). By default the drop down for year will display values ranging from three years before to 10 years after the current year. If you want to use a bigger range, you can set the start and end year by editing the //##DATE_START_YEAR##// and //##DATE_END_YEAR##// settings in your config.php file. Keep in mind that the drop down list may become very large.
**Related pages:**
-[[AttributeValuesInfo Attribute Values]]
-[[SendMessageInfo Sending a message using placeholders]]
-[[SendMessageCriteriaInfo Sending a message using criteria]]
-[[UserInfo User files]]
-[[ConfigureSubscribePageInfo Subscribe pages]].
----
CategoryDocumentation



