From 48f040f7493e2ebedf73608ad87832f51121fda6 Mon Sep 17 00:00:00 2001
From: Yuri Salimovskiy
Date: Mon, 13 Feb 2023 12:04:56 +0200
Subject: [PATCH 01/11] using fieldtypes for member fields
https://github.com/ExpressionEngine/ExpressionEngine/issues/715
---
docs/control-panel/member-manager.md | 24 ++++++++++++++++-
docs/development/addon-setup-php-file.md | 33 +++++++++++++++++-------
2 files changed, 46 insertions(+), 11 deletions(-)
diff --git a/docs/control-panel/member-manager.md b/docs/control-panel/member-manager.md
index 9ae857433..b1bdc61e8 100755
--- a/docs/control-panel/member-manager.md
+++ b/docs/control-panel/member-manager.md
@@ -47,7 +47,29 @@ The _Member Fields_ feature permits you to add fields to the member registration
This section allows you to create or edit Member Fields.
-The following fields are available:
+The following field types are compatible as can be used for custom member fields:
+
+- Checkboxes
+- Color Picker
+- Date
+- Duration
+- Email Address
+- File
+- Number Input
+- Multi Select
+- Radio Buttons
+- Range Slider
+- Rich Text Editor
+- Select Dropdown
+- Selectable Buttons
+- Text Input
+- Textarea
+- URL
+- Value Slider
+
+Additionaly, third-party field types that specify their use for `MemberField` model can be selected.
+
+The following fields are available when creating custom field:
- **Type** -- You may choose what type of field this is. There are three choices: 1. **Text Input**: This is a single input line for text. It is the type of field you might use for a title, name, or other short information. 2. **Textarea**: This is a standard text entry box with multiple lines. This is what you would use for larger amount of text. 3. **Drop-down List**: This creates a standard HTML `` drop-down list. You will need to define contents of the list in the provided form.
diff --git a/docs/development/addon-setup-php-file.md b/docs/development/addon-setup-php-file.md
index 8fdb4f10b..42e8e0015 100755
--- a/docs/development/addon-setup-php-file.md
+++ b/docs/development/addon-setup-php-file.md
@@ -102,22 +102,35 @@ This indicates whether or not the add-on provides a plugin that should be made a
'fieldtypes' => array(
'hello_world' => array(
'name' => 'Hello World',
- 'compatibility' => 'text'
+ 'compatibility' => 'text',
+ 'use' => array(
+ 'MemberField'
+ )
)
)
This is an associative array of the fieldtypes the add-on contains where the key corresponds to the fieldtype, `ft.hello_world.php` in the above example. Each fieldtype defines its name, which is used when creating or editing Channel Fields.
-As of 3.1.0 fieldtypes can specify their compatibility. When editing a Channel Field the fieldtype options will be restricted to those fieldtypes that have the same compatibility. ExpressionEngine's native fieldtypes have the following compatibilities:
+Fieldtypes can specify their compatibility. When editing a Channel Field the fieldtype options will be restricted to those fieldtypes that have the same compatibility. ExpressionEngine's native fieldtypes have the following compatibilities:
-| Compatibility | Fieldtypes |
-| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| date | [Date](fieldtypes/date.md) |
-| file | [File](fieldtypes/file.md) |
-| grid | [Grid](fieldtypes/grid.md) |
-| list | [Checkboxes, Radio Buttons, Select, Multiselect](fieldtypes/select.md) |
-| relationship | [Relationships](https://docs.expressionengine.com/latest/fieldtypes/relationships.html) |
-| text | [Email Address](fieldtypes/email-address.md), [Rich Text Editor](fieldtypes/rte.md), [Text Input](fieldtypes/text.md), [Textarea](fieldtypes/textarea.md),[URL](fieldtypes/url.md) |
+| Compatibility | Fieldtypes |
+| ------------- | ----------------------------------------------------------------------------------- |
+| date | [Date](fieldtypes/date.md) |
+| file | [File](fieldtypes/file.md) |
+| grid | [Grid](fieldtypes/grid.md) |
+| list | [Checkboxes](fieldtypes/checkboxes.md), [Radio Buttons](fieldtypes/radio-buttons.md), [Select](fieldtypes/select.md), [Multiselect](fieldtypes/multiselect.md), [Selectable Buttons](fieldtypes/selectable-buttons.md) |
+| relationship | [Relationships](fieldtypes/relationships.md) |
+| text | [Color Picker](fieldtypes/colorpicker.md), [Duration](fieldtypes/duration.md), [Email Address](fieldtypes/email-address.md), [Number](fieldtypes/number.md), [Range Slider](fieldtypes/range-slider.md), [Rich Text Editor](fieldtypes/rte.md), [Text Input](fieldtypes/text.md), [Textarea](fieldtypes/textarea.md), [URL](fieldtypes/url.md), [Value Slider](fieldtypes/value-slider.md) |
+
+If the fieldtype does not specify its compatibility then the type of created field can not be changed.
+
+All fieldtypes can be used as Channel Fields for the entries (as `ChannelField` model).
+
+If a fieldtype is also compatible with other content types (such as `MemberField` model that represents Custom Member Fields) then the model name needs to be specified in `use` array.
+
+ 'use' => array(
+ 'MemberField'
+ )
### `services`
From 3cf3b8eddbee628834013c7b98efc6fff03d53b8 Mon Sep 17 00:00:00 2001
From: Yuri Salimovskiy
Date: Mon, 13 Feb 2023 15:38:04 +0200
Subject: [PATCH 02/11] update links
---
docs/add-ons/pro-search/filters.md | 4 +--
docs/advanced-usage/front-end/dock.md | 2 +-
docs/advanced-usage/front-end/frontend.md | 2 +-
docs/control-panel/create.md | 2 +-
.../file-manager/upload-directories.md | 2 +-
.../settings/front-end-editing.md | 6 ++--
docs/development/add-on-update-file.md | 2 +-
.../development/addon-development-overview.md | 4 +--
docs/development/extensions.md | 4 +--
docs/development/legacy/libraries/cp.md | 2 +-
docs/development/v6-add-on-migration.md | 2 +-
docs/fieldtypes/relationships.md | 2 +-
.../general/system-configuration-overrides.md | 28 +++++++++----------
docs/installation/changelog.md | 4 +--
docs/templates/embedding.md | 2 +-
docs/templates/engine.md | 2 +-
docs/toc_sections/_advanced_usage_toc.yml | 2 +-
.../front-end-content-management.md | 5 ++--
18 files changed, 38 insertions(+), 39 deletions(-)
diff --git a/docs/add-ons/pro-search/filters.md b/docs/add-ons/pro-search/filters.md
index 6338f75b7..dd6e60635 100644
--- a/docs/add-ons/pro-search/filters.md
+++ b/docs/add-ons/pro-search/filters.md
@@ -168,7 +168,7 @@ You can use the native `search:field_name` parameter to target specific fields.
### Parameters
#### `search:field_name`
- Like the [channel search:field_name= parameter](/channel/channel_entries.html#search-field-name).
+ Like the [channel search:field_name= parameter](/channel/channel_entries.md#search-field-name).
#### `search:field_name:column_name`
Works just like the `search:field_name` parameter, but targets a specific column in a Grid/Matrix field.
#### `search:title`
@@ -178,7 +178,7 @@ You can use the native `search:field_name` parameter to target specific fields.
#### `search:status`
Works just like the `search:field_name` parameter, but targets statuses.
#### `contains_words`
- Accepts parameter names. Force the given parameter values to match the full term, to ensure that the values are [not contained within other words](/channel/channel_entries.html#contains-matching). Also possible by using `search:field_name="value\W"`.
+ Accepts parameter names. Force the given parameter values to match the full term, to ensure that the values are [not contained within other words](/channel/channel_entries.md#contains-matching). Also possible by using `search:field_name="value\W"`.
#### `ends_with`
Accepts parameter names. Force the given parameter values to match the end of the target field. Also possible by using `search:field_name="value$"`.
#### `exact`
diff --git a/docs/advanced-usage/front-end/dock.md b/docs/advanced-usage/front-end/dock.md
index 8528a1ef1..1328bec2e 100644
--- a/docs/advanced-usage/front-end/dock.md
+++ b/docs/advanced-usage/front-end/dock.md
@@ -57,6 +57,6 @@ Developers may create third-party prolets that can be installed with add-ons. Re

## Disabling
-The Dock can be disabled by either the setting in the [Control Panel](control-panel/settings/front-end-editing.md#general-settings) or [config override](general/system-configuration-overrides.md#enable_dock).
+The Dock can be disabled by either the setting in the [Control Panel](control-panel/settings/front-end-editing.md) or [config override](general/system-configuration-overrides.md#enable-dock).
WARN **Warning**: If the Dock is disabled, all of ExpressionEngine's [Front-End Content Management](advanced-usage/front-end/overview.md) is turned off for the front-end.
\ No newline at end of file
diff --git a/docs/advanced-usage/front-end/frontend.md b/docs/advanced-usage/front-end/frontend.md
index 575b5ac74..b0a988876 100644
--- a/docs/advanced-usage/front-end/frontend.md
+++ b/docs/advanced-usage/front-end/frontend.md
@@ -58,7 +58,7 @@ This special conditional allows you to display content if front-end editing is e
## Enable/Disable The Front Edit Link
There are several ways to disable front-end editing links:
- - Globally with [configuration overrides](/general/system-configuration-overrides.html#enable_frontedit_links) or in [General Settings](/control-panel/settings/front-end-editing.md#enable-automatic-front-end-editing-links)
+ - Globally with [configuration overrides](/general/system-configuration-overrides.md#enable_frontedit_links) or in [General Settings](/control-panel/settings/front-end-editing.md#enable-automatic-front-end-editing-links)
- Per field in the [field settings](control-panel/field-manager/field-manager-settings.md)
- Via the Dock on the front-end by toggling Edit Mode on/off.
- In the template by using [ExpressionEngine template comments](#expressionengine-comment), [HTML comments](#html-comment), or [field parameter](#field-tag-parameter)
diff --git a/docs/control-panel/create.md b/docs/control-panel/create.md
index c1e7a7a4e..4ac350b13 100755
--- a/docs/control-panel/create.md
+++ b/docs/control-panel/create.md
@@ -15,7 +15,7 @@
This is the area where you'll create content for your site by publishing new Entries to your Channels. If you have more than one Channel, moving your cursor over the Publish menu will show all of your Channels and allow you to select one.
-TIP: **Tip:** Site builders can customize the display of the Publish Page on a per Channel bases by creating a custom layout. Just go to the [Channel manager](control-panel/channels.md) and click 'layouts' to access the [Form layout](control-panel/channels.md#form-layouts).
+TIP: **Tip:** Site builders can customize the display of the Publish Page on a per Channel bases by creating a custom layout. Just go to the [Channel manager](control-panel/channels.md) and click 'layouts' to access the [publish layout](control-panel/channels.md#publish-layouts).

diff --git a/docs/control-panel/file-manager/upload-directories.md b/docs/control-panel/file-manager/upload-directories.md
index 77e164e9e..7a80576ad 100644
--- a/docs/control-panel/file-manager/upload-directories.md
+++ b/docs/control-panel/file-manager/upload-directories.md
@@ -80,7 +80,7 @@ Optionally set the maximum allowed height in pixes for uploaded images. Images o
##### Constrain or Crop
-Specify one or more alternate versions of an image that automatically get created when the original image is uploaded. A manipulation can include a resized version, a [watermark](control-panel/file-manager/file-manager.md#watermarks), or both. You can refer to a particular Image Manipulation in your templates via a File Field's [single variable tag](fieldtypes/file.md#single-variable-usage) or its [variable pair tag](fieldtypes/file.md#url). The resize type will determine whether the image is constrained (resized) or cropped to the specified dimensions. If only height or width is specified, the thumbnails will be created using that as the master dimension. For example, setting the height to 200 and leaving the width blank will result in an image that is no higher than 200 pixels, with the width resized proportionately. Setting both the height and the width to 200 would result in an image that is no higher or wider than 200 pixels.
+Specify one or more alternate versions of an image that automatically get created when the original image is uploaded. A manipulation can include a resized version, a [watermark](control-panel/file-manager/watermarks.md), or both. You can refer to a particular Image Manipulation in your templates via a File Field's [single variable tag](fieldtypes/file.md#single-variable-usage) or its [variable pair tag](fieldtypes/file.md#url). The resize type will determine whether the image is constrained (resized) or cropped to the specified dimensions. If only height or width is specified, the thumbnails will be created using that as the master dimension. For example, setting the height to 200 and leaving the width blank will result in an image that is no higher than 200 pixels, with the width resized proportionately. Setting both the height and the width to 200 would result in an image that is no higher or wider than 200 pixels.
##### Allowed member roles
diff --git a/docs/control-panel/settings/front-end-editing.md b/docs/control-panel/settings/front-end-editing.md
index 4310a5600..f6645ee5a 100644
--- a/docs/control-panel/settings/front-end-editing.md
+++ b/docs/control-panel/settings/front-end-editing.md
@@ -16,13 +16,13 @@
## **Enable Dock**
-(Default: On, Matching Config Override: [`enable_dock`](#enable_dock) )
+(Default: On, Matching Config Override: [`enable_dock`](#enable-dock) )
Enabling the Dock controls whether ExpressionEngine Pro is turned on for the front-end of your website. When the Dock is disabled all front-end editing, prolets, and Dock features will be disabled.
## **Enable front-end editing**
-(Default: On, Matching Config Override: [`enable_frontedit`](#enable_frontedit))
+(Default: On, Matching Config Override: [`enable_frontedit`](#enable-front-end-editing))
Enabling front-end editing allows users with respective permissions to edit channel entries and content on the front-end of your website using provided edit links ( ) .
## **Enable automatic front-end editing links**
-(Default: On, Matching Config Override: [`enable_frontedit_links`](#enable_frontedit_links))
+(Default: On, Matching Config Override: [`enable_frontedit_links`](#enable-automatic-front-end-editing-links))
By default ExpressionEngine Pro automatically inserts edit links ( ) where editable content is found in templates. These can be disabled on a per field basis or globally when using this toggle. When toggled off, ExpressionEngine Pro will no longer automatically generate edit links and links will need to be [added manually](/advanced-usage/front-end/frontend.md#customizing-the-link-location) where needed in templates.
\ No newline at end of file
diff --git a/docs/development/add-on-update-file.md b/docs/development/add-on-update-file.md
index 1fa8058db..25429a832 100644
--- a/docs/development/add-on-update-file.md
+++ b/docs/development/add-on-update-file.md
@@ -68,7 +68,7 @@ The first thing you will notice in our `Amazing_add_on_upd` class is a list of p
```
## Install Your Add-On (`install()`)
-The CLI automatically generates our install method. This method will ensure that all extensions and actions declared above will be properly installed. If you only need to install actions and/or extensions, then you can leave this method as is. Otherwise, use this section to add tabs to saved [publish layouts](), update the database, or do something else when the add-on is installed.
+The CLI automatically generates our install method. This method will ensure that all extensions and actions declared above will be properly installed. If you only need to install actions and/or extensions, then you can leave this method as is. Otherwise, use this section to add tabs to saved [publish layouts](control-panel/channels.md#publish-layouts), update the database, or do something else when the add-on is installed.
| Parameter | Type | Description |
diff --git a/docs/development/addon-development-overview.md b/docs/development/addon-development-overview.md
index b79f3d16b..f0fd168ed 100644
--- a/docs/development/addon-development-overview.md
+++ b/docs/development/addon-development-overview.md
@@ -11,7 +11,7 @@
With custom add-ons you can add new fieldtypes, features, template tags, and much more to ExpressionEngine. Here we are going to look at different parts of an add-on, and how to define just what our add-on is going to do.
-TIP: In this section, we're explaining the parts of an add-on. No need to memorize everything though, the [CLI](/cli/intro.html) will generate all the pieces we need based on what functions we want our add-on to have.
+TIP: In this section, we're explaining the parts of an add-on. No need to memorize everything though, the [CLI](/cli/intro.md) will generate all the pieces we need based on what functions we want our add-on to have.
[TOC]
@@ -32,7 +32,7 @@ Here are some ideas of what you can accomplish with a custom add-on:
These are just a few ideas of what you can do with custom add-ons. The possibilities are almost endless.
## Getting Started
-Getting started making an add-on is incredibly easy with the CLI. To begin making an add-on, simply use the `make:addon` command from the [CLI](/cli/intro.html).
+Getting started making an add-on is incredibly easy with the CLI. To begin making an add-on, simply use the `make:addon` command from the [CLI](/cli/intro.md).
TIP: If you are working with an existing add-on, we recommend you start with [Modernizing add-ons](development/modernizing-existing-add-ons.md)
diff --git a/docs/development/extensions.md b/docs/development/extensions.md
index 23281c0e4..6b0848e3b 100755
--- a/docs/development/extensions.md
+++ b/docs/development/extensions.md
@@ -59,7 +59,7 @@ TIP: Extensions need to be enabled to work. When you create an extension, a migr
## Anatomy Of An Extension
Once we've added the ability to hook into the core with our add-on, an `Extensions` folder is created. The CLI will generate a class and a respective file for each core hook we wish to use.
-Here we have added the ability to interact with the [`typography_parse_type_end()`](/development/extension-hooks/global/typography.html#typography_parse_type_endstr-this-prefs) hook.
+Here we have added the ability to interact with the [`typography_parse_type_end()`](/development/extension-hooks/global/typography.md#typography_parse_type_endstr-this-prefs) hook.
So our add-on structure now looks like this:
@@ -99,7 +99,7 @@ Inside our class is the `process()` function. Again the CLI has already added al
TIP:Reference the [Available Core Hooks](development/extension-hooks/extension-hooks-overview.md) section of the docs to read on what parameters your hook uses.
-From the [`typography_parse_type_end()`](/development/extension-hooks/global/typography.html#typography_parse_type_endstr-this-prefs) docs we can see that this hook modifies a string after all other typography is processed. Thus we should be able to take a string, manipulate it, then pass it back to ExpressionEngine to be rendered in the template.
+From the [`typography_parse_type_end()`](/development/extension-hooks/global/typography.md#typography_parse_type_endstr-this-prefs) docs we can see that this hook modifies a string after all other typography is processed. Thus we should be able to take a string, manipulate it, then pass it back to ExpressionEngine to be rendered in the template.
We know that we should expect the following parameters for this hook:
diff --git a/docs/development/legacy/libraries/cp.md b/docs/development/legacy/libraries/cp.md
index 23ec160f4..4a594f7ee 100755
--- a/docs/development/legacy/libraries/cp.md
+++ b/docs/development/legacy/libraries/cp.md
@@ -187,4 +187,4 @@ Modules have certain actions for forms, links, etc. that are recognized via an a
## Publish Page Layout Methods
-Administrators may extensively customize publish pages on a per member role and per channel basis. Since these custom layouts are saved as a serialized array in the database, any additions or deletions to publish page tabs and fields must be synced to any saved layouts. The control panel library provides 4 methods to facilitate custom layout updates. (See also [Tab File Function Reference](development/modules.md#tab-file-function-reference)
+Administrators may extensively customize publish pages on a per member role and per channel basis. Since these custom layouts are saved as a serialized array in the database, any additions or deletions to publish page tabs and fields must be synced to any saved layouts. The control panel library provides 4 methods to facilitate custom layout updates. (See also [Tab File Reference](development/tab-files.md)
diff --git a/docs/development/v6-add-on-migration.md b/docs/development/v6-add-on-migration.md
index 2026ef24c..50c30827a 100644
--- a/docs/development/v6-add-on-migration.md
+++ b/docs/development/v6-add-on-migration.md
@@ -49,7 +49,7 @@ ExpressionEngine 6 supports displaying custom field data in the Entry Manager ta
### Base classes for add-on installation
-While the legacy methods for installing modules and extensions are still supported, we’ve also made it easier by using the new [Add-on Installer](development/addon-installer.md).
+While the legacy methods for installing modules and extensions are still supported, we’ve also made it easier by using the new [Add-on Installer](development/modernizing-existing-add-ons.md).
### Namespace change
diff --git a/docs/fieldtypes/relationships.md b/docs/fieldtypes/relationships.md
index c825f16c2..6a45f1188 100755
--- a/docs/fieldtypes/relationships.md
+++ b/docs/fieldtypes/relationships.md
@@ -82,7 +82,7 @@ The following parameters are available to all looping relationship tags, allowin
Some relationship tags may have additional parameters available. These are included in the usage instructions below.
-NOTE: **NOTE:** The [`disable`](fieldtypes/relationships.md#optimizing-relationships-rerformance) parameter should be applied to the containing `{exp:channel:entries}` call, not to the relationship tag itself.
+NOTE: **NOTE:** The [`disable`](fieldtypes/relationships.md#optimizing-relationships-performance) parameter should be applied to the containing `{exp:channel:entries}` call, not to the relationship tag itself.
## Accessing Children
diff --git a/docs/general/system-configuration-overrides.md b/docs/general/system-configuration-overrides.md
index a940556f5..d71a56ba0 100755
--- a/docs/general/system-configuration-overrides.md
+++ b/docs/general/system-configuration-overrides.md
@@ -1487,7 +1487,7 @@ Example Usage:
### `forum_is_installed`
-Automatically enabled when the [Discussion Forum](add-ons/forum/index.md) module is installed.
+Automatically enabled when the [Discussion Forum](https://github.com/ExpressionEngine/Forum) module is installed.
| Value | Description |
| ----- | ---------------------------- |
@@ -1500,7 +1500,7 @@ Example Usage:
### `forum_trigger`
-Sets the forum triggering word if the [Discussion Forum module is installed](add-ons/forum/index.md).
+Sets the forum triggering word if the [Discussion Forum module is installed](https://github.com/ExpressionEngine/Forum).
| Value | Description |
| ----- | --------------------- |
@@ -1510,7 +1510,7 @@ Example Usage:
$config['forum_trigger'] = 'eerox';
-**Also found in CP:** `Developer --> Add-Ons --> Discussion Forum Settings --> Edit`: [Forum Triggering Word](add-ons/forum/boards.md#forum-triggering-word)
+**Also found in CP:** `Developer --> Add-Ons --> Discussion Forum Settings --> Edit`: [Forum Triggering Word](https://github.com/ExpressionEngine/Forum/blob/main/docs/boards.md#forum-triggering-word)
### `gmail_duplication_prevention`
@@ -1648,7 +1648,7 @@ Example Usage:
### ip2nation
-Enable checks against the [IP to Nation](add-ons/ip-to-nation.md) database.
+Enable checks against the [IP to Nation](https://github.com/ExpressionEngine/IP-To-Nation) database.
| Value | Behavior |
| ----- | ------------------------------------ |
@@ -2556,7 +2556,7 @@ Example Usage:
### `sc_certificate_id`
-Specify the unique ID that is supplied by PayPal after providing them with a [public certificate](add-ons/simple-commerce/paypal-settings.md#public-certificate-path).
+Specify the unique ID that is supplied by PayPal after providing them with a [public certificate](https://github.com/ExpressionEngine/Simple-Commerce/blob/main/docs/paypal-settings.md#public-certificate-path).
| Value | Description |
| ------ | -------------- |
@@ -2566,7 +2566,7 @@ Example Usage:
$config['sc_certificate_id'] = 'SX4DT7FDO1234';
-**Also found in CP:** `Developer --> Add-Ons --> Simple Commerce Settings`: [ID Given to Public Certificate by PayPal](add-ons/simple-commerce/paypal-settings.md#public-certification-id)
+**Also found in CP:** `Developer --> Add-Ons --> Simple Commerce Settings`: [ID Given to Public Certificate by PayPal](https://github.com/ExpressionEngine/Simple-Commerce/blob/main/docs/paypal-settings.md#public-certification-id)
### `sc_encrypt_buttons`
@@ -2574,7 +2574,7 @@ Enable encryption for PayPal purchase links and buttons created by Simple Commer
NOTE: **Important:** Enabling this requires that your server have [OpenSSL](https://php.net/manual/en/ref.openssl.php) support compiled in PHP. Ask your server administrator for this information.
-NOTE: **Note:** Enabling this requires that you use a public certificate and private key. Please read the section on [Encrypted Website Payments](add-ons/simple-commerce/index.md#encrypted-website-payments) for full details. To be the most effective, you should set your PayPal account settings to only accept encrypted payments.
+NOTE: **Note:** Enabling this requires that you use a public certificate and private key. Please read the section on [Encrypted Website Payments](https://github.com/ExpressionEngine/Simple-Commerce/blob/main/docs/index.md#encrypted-website-payments) for full details. To be the most effective, you should set your PayPal account settings to only accept encrypted payments.
| Value | Behavior |
| ----- | ---------------------------- |
@@ -2585,7 +2585,7 @@ Example Usage:
$config['sc_encrypt_buttons'] = 'y';
-**Also found in CP:** `Developer --> Add-Ons --> Simple Commerce Settings`: [Encrypt PayPal Buttons and Links? ](add-ons/simple-commerce/paypal-settings.md#encrypt-paypal-buttons-and-links)
+**Also found in CP:** `Developer --> Add-Ons --> Simple Commerce Settings`: [Encrypt PayPal Buttons and Links? ](https://github.com/ExpressionEngine/Simple-Commerce/blob/main/docs/paypal-settings.md#encrypt-paypal-buttons-and-links)
### `sc_paypal_account`
@@ -2599,7 +2599,7 @@ Example Usage:
$config['sc_paypal_account'] = 'paypal_email@example.com';
-**Also found in CP:** `Developer --> Add-Ons --> Simple Commerce Settings`: [PayPal Account](add-ons/simple-commerce/paypal-settings.md#paypal-account-email)
+**Also found in CP:** `Developer --> Add-Ons --> Simple Commerce Settings`: [PayPal Account](https://github.com/ExpressionEngine/Simple-Commerce/blob/main/docs/paypal-settings.md#paypal-account-email)
### `sc_paypal_certificate`
@@ -2615,7 +2615,7 @@ Example Usage:
$config['sc_paypal_certificate'] = "/path/to/paypal_certificate.pem";
-**Also found in CP:** `Developer --> Add-Ons --> Simple Commerce Settings`: [PayPal Certificate Path](add-ons/simple-commerce/paypal-settings.md#paypal-certificate-path)
+**Also found in CP:** `Developer --> Add-Ons --> Simple Commerce Settings`: [PayPal Certificate Path](https://github.com/ExpressionEngine/Simple-Commerce/blob/main/docs/paypal-settings.md#paypal-certificate-path)
### `sc_private_key`
@@ -2631,7 +2631,7 @@ Example Usage:
$config['sc_private_key'] = "/path/to/private_key.pem";
-**Also found in CP:** `Developer --> Add-Ons --> Simple Commerce Settings`: [Private Key Path](add-ons/simple-commerce/paypal-settings.md#private-key-path)
+**Also found in CP:** `Developer --> Add-Ons --> Simple Commerce Settings`: [Private Key Path](https://github.com/ExpressionEngine/Simple-Commerce/blob/main/docs/paypal-settings.md#private-key-path)
### `sc_public_certificate`
@@ -2647,7 +2647,7 @@ Example Usage:
$config['sc_public_certificate'] = "/path/to/public_certificate.pem";
-**Also found in CP:** `Developer --> Add-Ons --> Simple Commerce Settings`: [Public Certificate Path](add-ons/simple-commerce/paypal-settings.md#public-certificate-path)
+**Also found in CP:** `Developer --> Add-Ons --> Simple Commerce Settings`: [Public Certificate Path](https://github.com/ExpressionEngine/Simple-Commerce/blob/main/docs/paypal-settings.md#public-certificate-path)
### `sc_temp_path`
@@ -2663,7 +2663,7 @@ Example Usage:
$config['sc_temp_path'] = "/path/to/tmp";
-**Also found in CP:** `Developer --> Add-Ons --> Simple Commerce Settings`: [Temporary Encrypted Files Path](add-ons/simple-commerce/paypal-settings.md#temporary-encrypted-files-path)
+**Also found in CP:** `Developer --> Add-Ons --> Simple Commerce Settings`: [Temporary Encrypted Files Path](https://github.com/ExpressionEngine/Simple-Commerce/blob/main/docs/paypal-settings.md#temporary-encrypted-files-path)
### `send_headers`
@@ -3151,7 +3151,7 @@ Example Usage:
### `use_forum_url`
-Set the system to use the forum URL specified in the [forum board preferences](add-ons/forum/boards.md#forum-url) rather than the [the main site URL](#site_url) to form the forum's URL.
+Set the system to use the forum URL specified in the [forum board preferences](https://github.com/ExpressionEngine/Forum/blob/main/docs/boards.md#forum-url) rather than the [the main site URL](#site_url) to form the forum's URL.
| Value | Behavior |
| ----- | ------------------------------------------ |
diff --git a/docs/installation/changelog.md b/docs/installation/changelog.md
index 9a5002878..5f14f53e6 100755
--- a/docs/installation/changelog.md
+++ b/docs/installation/changelog.md
@@ -609,7 +609,7 @@ NOTE:**Note:** If multiple members are needed, an ExpressionEngine Pro license i
- Ability to organize content into [subfolders](/control-panel/file-manager/subfolders.md)
- Folders can now be created directly on the filesystem through the File Manager
- Implemented [FlySystem PHP library](https://flysystem.thephpleague.com/docs/) to add more extensiblity to the File Manager.
- - Added support for cloud based file storage through [Adapters](/control-panel/file-manager/adapters.md)
+ - Added support for cloud based file storage through [Adapters](/control-panel/file-manager/upload-directories.md#adapter)
- Changed how files are referenced in the database. Previously files were referenced using `{filedir_X}filename.ext`. Files are now referenced using `{file:XX:url}`. [Compatiblity Mode](/control-panel/file-manager/file-manager.md#compatibility-mode) is recommended for upgrades until there is confirmation that all add-ons will work with new file data format.
- File usage is now available in the File Manager to display where a file is used throughout the Control Panel as well as notify users if a file is in use before deleting the file
@@ -641,6 +641,6 @@ NOTE:**Note:** If multiple members are needed, an ExpressionEngine Pro license i
- Simple Commerce Add-on has now been removed from ExpressionEngine and made a downloadable add-on from the ExpressionEngine Store. On upgrades which use the Simple Commerce Add-on, the add-on will be moved from the `ee/addons` folder to `user/addons` and considered a user installed add-on.
- Ip to Nation Add-on has now been removed from ExpressionEngine and made a downloadable add-on from the ExpressionEngine Store. On upgrades which use the Ip to Nation Add-on, the add-on will be moved from the `ee/addons` folder to `user/addons` and considered a user installed add-on.
- The included version of jQuery used in the Control Panel has been updated to v3.6.0
- - Added the option to [globablly cache](/channels/entries.html#cache-refresh-cache_prefix) Channel Entries tag results
+ - Added the option to [globally cache](/channels/entries.md#cache-refresh-cache-prefix) Channel Entries tag results
- Added [ENV File Support](/advanced-usage/env-support.md)
- Added new Shared Form View
diff --git a/docs/templates/embedding.md b/docs/templates/embedding.md
index 7fe7bcaaf..b58714521 100755
--- a/docs/templates/embedding.md
+++ b/docs/templates/embedding.md
@@ -21,7 +21,7 @@ Where "template_group" is the name of the group and "template" is the name of th
You **must** include both the template group and the template name in the embed tag.
-By default, you cannot use embeds inside of Forum templates. See [Other Features](add-ons/forum/other-features.md) for instructions on running the forums through regular templates.
+By default, you cannot use embeds inside of Forum templates. See [Other Forum Features](https://github.com/ExpressionEngine/Forum/blob/main/docs/other-features.md) for instructions on running the forums through regular templates.
### Notes
diff --git a/docs/templates/engine.md b/docs/templates/engine.md
index de2c87e03..82667db62 100755
--- a/docs/templates/engine.md
+++ b/docs/templates/engine.md
@@ -13,7 +13,7 @@
When ExpressionEngine serves up each Template, the system must go through a rendering process to parse out the Tags, Variables, Template Partials, and Embeds being used in the Template. This page explains the order of those rendering stages. This information can be immensely useful when building pages and troubleshooting problems.
-NOTE: **Note:** The information in this article applies only to rendering Templates. It doesn't apply to rendering theme files such as those used for [Member Profiles](control-panel/template-manager.md#member-profile-templates), or the [Discussion Forum](add-ons/forum/themes.md) module.
+NOTE: **Note:** The information in this article applies only to rendering Templates. It doesn't apply to rendering theme files such as those used for [Member Profiles](control-panel/template-manager.md#member-profile-templates) (legacy), or the [Discussion Forum](https://github.com/ExpressionEngine/Forum/blob/main/docs/themes.md) module.
## Rendering Order
diff --git a/docs/toc_sections/_advanced_usage_toc.yml b/docs/toc_sections/_advanced_usage_toc.yml
index 70d00b6d6..fe4d47803 100644
--- a/docs/toc_sections/_advanced_usage_toc.yml
+++ b/docs/toc_sections/_advanced_usage_toc.yml
@@ -129,7 +129,7 @@
- name: Building An Add-On
items:
- name: Start Here
- href: development/addon-development-overview
+ href: development/addon-development-overview.md
- name: Add-on Setup File
href: development/addon-setup-php-file.md
- name: Add-on Update File
diff --git a/docs/troubleshooting/front-end-content-management.md b/docs/troubleshooting/front-end-content-management.md
index 4a223a9d4..10f0a62df 100644
--- a/docs/troubleshooting/front-end-content-management.md
+++ b/docs/troubleshooting/front-end-content-management.md
@@ -22,13 +22,13 @@ There are several settings that could prevent the Dock from showing on the front
- The Dock is disabled via settings or config override. Disabling the Dock will disable all Front-End Content Management on the front-end of your site.
- Via [front-end editing settings](control-panel/settings/front-end-editing.md), ensure that the "Enable Dock?" setting is toggled on.
- - Via the [`enable_dock` config override](general/system-configuration-overrides.md#enable_dock). If in use, this override must be set to `'y'` for the Dock to work on the front-end.
+ - Via the [`enable_dock` config override](general/system-configuration-overrides.md#enable-dock). If in use, this override must be set to `'y'` for the Dock to work on the front-end.
### Dock shows, but front edit links do not show on the front-end of the website.
- Front edit links are disabled via settings or config override.
- Via settings [front-end editing settings](control-panel/settings/front-end-editing.md), ensure that the "Enable front-end editing" setting is toggled on.
- - Via the [`enable_frontedit` config override](general/system-configuration-overrides.md#enable_frontedit). If in use, this override must be set to `'y'` for front-end editing to work.
+ - Via the [`enable_frontedit` config override](general/system-configuration-overrides.md#enable-frontedit). If in use, this override must be set to `'y'` for front-end editing to work.
- User does not have proper access to edit channels. Users must be assigned a role which has access to channels and to be able to edit channel content to see related front edit links on the site.
@@ -45,4 +45,3 @@ There are several settings that could prevent the Dock from showing on the front
- Front edit links are disabled via HTML comments, EE template comments, or `disable` parameter. There are 3 ways to disable Pro's automatic generation of front edit links. Ensure that the template code your inspecting isn't surrounded by template comments or wrapped in a field tag using `disable="frontedit`. For details on these methods read the [docs regarding disabling front-edit links](advanced-usage/front-end/frontend.md#enabledisable-the-front-edit-link)
- User does not have proper access to edit channels they are viewing. Users must be assigned access to channels and to be able to edit channel content to see related front edit links on the site. If the user is viewing entries on the front-end for which they do not have content, then no front edit links will show.
-
From 02933276b8e5ac449f3e6874fece7392d09689c8 Mon Sep 17 00:00:00 2001
From: Yuri Salimovskiy
Date: Mon, 13 Mar 2023 09:34:23 +0200
Subject: [PATCH 03/11] support username parameter
---
docs/member/custom-profile-data.md | 8 +++++++-
docs/member/member-roles-tags.md | 6 ++++++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/docs/member/custom-profile-data.md b/docs/member/custom-profile-data.md
index 8d3959937..203717c5c 100644
--- a/docs/member/custom-profile-data.md
+++ b/docs/member/custom-profile-data.md
@@ -30,7 +30,13 @@ NOTE: **Important:** If you omit the member_id= parameter as in the above exampl
member_id="147"
-Specifies a particular member's information to display. By default (if you do not include the member_id parameter), the tag will simply display information pertaining to the currently logged-in user.
+Specifies a particular member's information to display. By default (if you do not include the `member_id` or `username` parameter), the tag will simply display information pertaining to the currently logged-in user.
+
+### `username=`
+
+ username="admin"
+
+Username of member to display
## Variables
diff --git a/docs/member/member-roles-tags.md b/docs/member/member-roles-tags.md
index 7a906c057..b38c13d69 100644
--- a/docs/member/member-roles-tags.md
+++ b/docs/member/member-roles-tags.md
@@ -27,6 +27,12 @@ The `{exp:member:roles}` tag allows you to display all groups that the member be
Specifies a particular member's information to display. By default (if you do not include the member_id parameter, the tag will simply display information pertaining to the currently logged-in user.
+### `username=`
+
+ username="admin"
+
+Username of member to display
+
### Variables
#### `{role_id}`
From e029cc515ed499b7b8c516ec7b1a7e96661a09da Mon Sep 17 00:00:00 2001
From: Yuri Salimovskiy
Date: Mon, 13 Mar 2023 11:47:15 +0200
Subject: [PATCH 04/11] update registration tag docs
---
docs/member/edit-profile.md | 2 ++
docs/member/registration.md | 33 +++++++++++++++++++++++++++++++++
2 files changed, 35 insertions(+)
diff --git a/docs/member/edit-profile.md b/docs/member/edit-profile.md
index baae2da0e..fbf25d235 100644
--- a/docs/member/edit-profile.md
+++ b/docs/member/edit-profile.md
@@ -13,6 +13,8 @@
## Overview
+ exp:member:edit_profile
+
Edit member profile.
## Parameters
diff --git a/docs/member/registration.md b/docs/member/registration.md
index a03160871..53932c897 100644
--- a/docs/member/registration.md
+++ b/docs/member/registration.md
@@ -92,6 +92,39 @@ Please note you need to address those by ID and not name, e.g. `m_field_id_8`
Work title
+Custom fields can also be output inside the ``{custom_fields}`` varialble tag pair.
+
+ {custom_fields}
+
+ {lang:profile_field}
+ {lang:profile_field_description}
+
+ {form:custom_profile_field}
+
+
+ {/custom_fields}
+
+### `{custom_fields}` Pair Variables
+
+#### `{lang:profile_field}`
+#### `{field_name}`
+
+Outputs the custom field's name.
+
+#### `{lang:profile_field_description}`
+#### `{field_description}`
+
+Outputs the field's description, if any.
+
+#### `{form:custom_profile_field}`
+#### `{field}`
+
+Shows the fully parsed custom member form field.
+
+#### `{if required}`
+
+Indicates whether the field is marked as required
+
## Variables
### `{accept_terms}`
From b3fa97276e37f3b0846985040ce3253e7ed1125c Mon Sep 17 00:00:00 2001
From: Yuri Salimovskiy
Date: Mon, 3 Jul 2023 16:14:26 +0300
Subject: [PATCH 05/11] document using field in forms
---
docs/member/edit-profile.md | 77 +++++++++++++++++++++++++++++++------
docs/member/registration.md | 36 +++++++++++++++++
2 files changed, 102 insertions(+), 11 deletions(-)
diff --git a/docs/member/edit-profile.md b/docs/member/edit-profile.md
index fbf25d235..7c9e0ef87 100644
--- a/docs/member/edit-profile.md
+++ b/docs/member/edit-profile.md
@@ -15,21 +15,37 @@
exp:member:edit_profile
-Edit member profile.
+This template tag allows editing member's profile using the form that is similar to [Channel Form](channels/channel-form/overview.md)
## Parameters
+### `include_assets=`
+
+ include_assets="yes"
+
+Adds the Javascript and CSS that is required by custom member fields to your form. By default, these are **not** included
+
### `datepicker=`
-Include the datepicker javascript. This should be set to ``yes`` if there is a date type member custom field in order to output the calendar.
+ datepicker="no"
- datepicker="yes"
+Adds the datepicker to your date fields. Defaults to "yes".
-### `include_assets=`
+NOTE: **Note:** If you are manually constructing a date field, in order to apply the date picker you must include `rel="date-picker"`.
-Include the CSS for the custom member fields.
+### `include_css=`
- include_assets="yes"
+ include_css="no"
+
+Allows you to manage the inclusion of required CSS independently from the `include_assets` parameter. Defaults to "yes".
+
+### `include_jquery=`
+
+ include_jquery="no"
+
+Includes jQuery automatically. Defaults to "yes".
+
+NOTE: **Note:** If you are using your own copy of jQuery you will need to load it **before** the form.
### `return=`
@@ -98,6 +114,12 @@ Member username. This is a **required** field and must be unique across the site
Username
+### Custom field
+
+The custom profile fields can be displayed individually by addressing them using the field's short name prefixed with `field:`:
+
+ {field:birthday}
+
## Custom Profile Field Variable Pair
All custom fields are output inside the ``{custom_profile_fields}`` varialble tag pair.
@@ -112,20 +134,53 @@ All custom fields are output inside the ``{custom_profile_fields}`` varialble ta
{/custom_profile_fields}
-## Custom Profile Field Variables
+### Custom Profile Field Variables
-#### {lang:profile_field}
+These variables are available inside `{custom_profile_fields}` tag pair.
-Outputs the custom field's name.
+#### `{lang:profile_field}`
+#### `{field_label}`
-#### {lang:profile_field_description}
+Outputs the custom field's label.
+
+#### `{field_id}`
+
+Field ID
+
+#### `{field_name}`
+
+The field's short name
+
+#### `{lang:profile_field_description}`
+#### `{field_instructions}`
Outputs the field's description, if any.
-#### {form:custom_profile_field}
+#### `{form:custom_profile_field}`
+#### `{display_field}`
Shows the fully parsed custom member form field.
+#### `{field_data}`
+
+Saved field data for the member
+
+#### `{if field_required}`
+
+Checks whether the field is set as required
+
+#### `{text_direction}`
+
+Text direction set for field (`rtl` or `ltr`)
+
+#### `{maxlength}`
+
+Max. length set for text fields
+
+#### `{field_type}`
+
+Short name of the fieldtype used for field
+
## Example
{exp:member:edit_profile
diff --git a/docs/member/registration.md b/docs/member/registration.md
index 53932c897..e974ab751 100644
--- a/docs/member/registration.md
+++ b/docs/member/registration.md
@@ -38,6 +38,34 @@ This parameter allows you to specify the primary role to assign the new member,
This parameter allows you to use inline errors in your registration form. The errors can be displayed using the `{error:field_name}` tag where `field_name` would need to be replaced with the name of the field that has an error, as used to compose the form.
+### `include_assets=`
+
+ include_assets="yes"
+
+Adds the Javascript and CSS that is required by custom member fields to your form. By default, these are **not** included
+
+### `datepicker=`
+
+ datepicker="no"
+
+Adds the datepicker to your date fields. Defaults to "yes".
+
+NOTE: **Note:** If you are manually constructing a date field, in order to apply the date picker you must include `rel="date-picker"`.
+
+### `include_css=`
+
+ include_css="no"
+
+Allows you to manage the inclusion of required CSS independently from the `include_assets` parameter. Defaults to "yes".
+
+### `include_jquery=`
+
+ include_jquery="no"
+
+Includes jQuery automatically. Defaults to "yes".
+
+NOTE: **Note:** If you are using your own copy of jQuery you will need to load it **before** the form.
+
## Form Inputs
NOTE: Be sure to include the required JavaScript and CSS to use the native [Password Validation](member/password-validation.md).
@@ -92,6 +120,11 @@ Please note you need to address those by ID and not name, e.g. `m_field_id_8`
Work title
+And easier way to display the field's input is to use special tag:
+
+ Work title
+ {field:work_title}
+
Custom fields can also be output inside the ``{custom_fields}`` varialble tag pair.
{custom_fields}
@@ -168,6 +201,9 @@ This will show errors with the submitted password as well as password confirm.
{if error:username}{error:username}{/if}
+### `{field:field_name}`
+
+Displays the custom field input form for the given field (substitute `field_name` with actual field name). Note that the field must be set as "visible on registration" in order to show up.
## Example
From 12e38d5033279a45cea9de410f753df94463a2ca Mon Sep 17 00:00:00 2001
From: Bryan Nielsen
Date: Tue, 14 Nov 2023 14:16:50 -0500
Subject: [PATCH 06/11] Minor changes to member documentation
---
docs/member/edit-profile.md | 4 ++--
docs/member/registration.md | 10 +++++-----
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/docs/member/edit-profile.md b/docs/member/edit-profile.md
index 7c9e0ef87..bee7a4948 100644
--- a/docs/member/edit-profile.md
+++ b/docs/member/edit-profile.md
@@ -122,7 +122,7 @@ The custom profile fields can be displayed individually by addressing them using
## Custom Profile Field Variable Pair
-All custom fields are output inside the ``{custom_profile_fields}`` varialble tag pair.
+All custom fields are output inside the ``{custom_profile_fields}`` variable tag pair.
{custom_profile_fields}
@@ -175,7 +175,7 @@ Text direction set for field (`rtl` or `ltr`)
#### `{maxlength}`
-Max. length set for text fields
+Maximum length set for text fields
#### `{field_type}`
diff --git a/docs/member/registration.md b/docs/member/registration.md
index e974ab751..42e50819f 100644
--- a/docs/member/registration.md
+++ b/docs/member/registration.md
@@ -26,10 +26,10 @@ NOTE: **Important:** In order for site visitors to be allowed to register for ac
### `form_class=`
form_class="register"
-
+
### `primary_role=`
- primary_role="7"
+ primary_role="7"
This parameter allows you to specify the primary role to assign the new member, overriding the default member setting.
@@ -120,12 +120,12 @@ Please note you need to address those by ID and not name, e.g. `m_field_id_8`
Work title
-And easier way to display the field's input is to use special tag:
+And easier way to display the field's input is to use the special tag:
Work title
{field:work_title}
-Custom fields can also be output inside the ``{custom_fields}`` varialble tag pair.
+Custom fields can also be output inside the ``{custom_fields}`` variable tag pair.
{custom_fields}
@@ -203,7 +203,7 @@ This will show errors with the submitted password as well as password confirm.
### `{field:field_name}`
-Displays the custom field input form for the given field (substitute `field_name` with actual field name). Note that the field must be set as "visible on registration" in order to show up.
+Displays the custom field input form for the given field (substitute `field_name` with the actual field name). Note that the field must be set as "visible on registration" in order to show up.
## Example
From 12de0467c49616a1a76918bb0e06a0f9c39a472b Mon Sep 17 00:00:00 2001
From: Yuri Salimovskiy
Date: Wed, 17 Jan 2024 14:28:53 +0200
Subject: [PATCH 07/11] add some info on member manager
---
docs/_images/cp-members.png | Bin 104841 -> 109888 bytes
docs/control-panel/member-manager.md | 26 +++++++++++++++++---------
2 files changed, 17 insertions(+), 9 deletions(-)
diff --git a/docs/_images/cp-members.png b/docs/_images/cp-members.png
index 1973814236af65171a6fd9cb3bbc31eb35c0e7a8..bff86e5900b2f65914579818978c6c00509e99ad 100644
GIT binary patch
literal 109888
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