Skip to content

Commit 65c0c78

Browse files
committed
Cherry picked changes from v16 to v17
1 parent bb86631 commit 65c0c78

File tree

7 files changed

+25
-17
lines changed

7 files changed

+25
-17
lines changed

16/umbraco-engage/marketers-and-editors/introduction/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Umbraco Engage uses a cookie to collect visitor data on your Umbraco website. Le
2424

2525
## [Profiling](../profiling/)
2626

27-
The Profiling section helps track visitor sessions, manage profiles, and differentiate between identified and anonymous visitors.
27+
The Profiling section helps track visitor sessions, manage profiles, and differentiate between identified and unidentified visitors.
2828

2929
## [Settings](../settings/)
3030

16/umbraco-engage/marketers-and-editors/profiling/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: >-
33
Explore how the Profiles section helps track visitor sessions, manage
4-
profiles, and differentiate between identified and anonymous visitors.
4+
profiles, and differentiate between identified and unidentified visitors.
55
---
66

77
# Profiling

17/umbraco-cms/customizing/property-editors/full-examples-value-converters.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Property Value Converter full example
2-
This page includes an example of a complete Property Value Converter. The example is that of a Property Value Converter for a Content Picker, where the user picks a node from the Umbraco tree.
32

3+
This page includes an example of a complete Property Value Converter. The example is that of a Property Value Converter for a Content Picker, where the user picks a node from the Umbraco tree.
44

55
{% code title="ContentPickerPropertyConverter.cs" %}
66

17/umbraco-cms/customizing/property-editors/property-actions.md

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@ Property Actions appear as a small button next to the property label, which expa
1010

1111
## Property Actions in the UI
1212

13-
<figure style="max-width:60%; margin:auto; text-align:center;">
14-
<img src="../../.gitbook/assets/property-actions-blocklist.png" alt="" style="max-width:60%; height:auto; display:block; margin:auto">
15-
<figcaption><p><strong>Property action in Block List</strong></p></figcaption>
16-
</figure>
13+
![Property action in Block List](../../.gitbook/assets/property-actions-blocklist.png)
1714

1815
## Registering a Property Action
1916

@@ -22,9 +19,9 @@ Before creating a Property Action, make sure you are familiar with the [Extensio
2219
{% endhint %}
2320

2421
Here is how you can register a new Property Action:
25-
```
26-
import { extensionRegistry } from '@umbraco-cms/extension-registry';
27-
import { MyEntityAction } from './my-property-action.api';
22+
23+
```typescript
24+
import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
2825
const manifest =
2926
{
3027
type: 'propertyAction',
@@ -40,14 +37,15 @@ const manifest =
4037
}
4138
};
4239

43-
extensionRegistry.register(manifest);
40+
umbExtensionsRegistry.register(manifest);
4441
```
42+
4543
### Creating the Property Action Class
4644

4745
Every Property Action needs a class that defines what happens when the action is executed.
4846
You can extend the `UmbPropertyActionBase` class for this.
4947

50-
```
48+
```typescript
5149
import { UmbPropertyActionBase } from '@umbraco-cms/backoffice/property-action';
5250
import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property';
5351

@@ -62,4 +60,4 @@ export class MyPropertyAction extends UmbPropertyActionBase {
6260
}
6361
}
6462
export { MyPropertyAction as api };
65-
```
63+
```

17/umbraco-cms/customizing/property-editors/property-value-converters.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@ A Property Value Converter converts a property editor's database-stored value in
99
For example, a Content Picker stores the Key of the picked node in the database. When reading published data, Umbraco returns an `IPublishedContent` object instead of the Key. This conversion is done by a Property Value Converter.
1010

1111
A Property Value Converter has three conversion levels:
12+
1213
* **Source** - The raw data stored in the database; this is generally a `string`.
1314
* **Intermediate** - An object of a type that is appropriate to the property. For example, a node Key should be a `Guid`, or a collection of node Keys would be a `Guid[]`.
1415
* **Object** - The object to be used when accessing the property using the Published Content API. For example, the object returned by the `IPublishedContent.Value<T>(alias)` method. Additionally, the Models Builder generates a property of the same type as the object.
1516

1617
## Create a Property Value Converter
18+
1719
A class becomes a Property Value Converter when it implements the `IPropertyValueConverter` interface from the `Umbraco.Cms.Core.PropertyEditors` namespace. Property Value Converters are automatically registered when implementing the interface. Any given PropertyEditor can only utilize a single Property Value Converter.
1820

1921
```csharp
@@ -27,6 +29,7 @@ Consider using the `PropertyValueConverterBase` class as the base of your Proper
2729
The `IPropertyValueConverter` interface exposes the following methods you need to implement:
2830

2931
## Implement information methods
32+
3033
Implement the following methods, which provide Umbraco with context about the Property Value Converter.
3134

3235
### `IsConverter(IPublishedPropertyType propertyType)`
@@ -44,6 +47,7 @@ public bool IsConverter(IPublishedPropertyType propertyType)
4447
```
4548

4649
### `IsValue(object value, PropertyValueLevel level)`
50+
4751
The `IsValue` method determines whether a property contains a meaningful value or should be considered "empty" at different stages of the value conversion process. This method is essential for Umbraco's `property.HasValue()` method.
4852

4953
{% hint style="info" %}
@@ -125,6 +129,7 @@ Here you specify which level the property value is cached at.
125129
A property value can be cached at the following levels:
126130

127131
#### `PropertyCacheLevel.Element`
132+
128133
This is the most commonly used cache level and should be your default, unless you have specific reasons to do otherwise.
129134

130135
The property value will be cached until its _element_ is modified. The element is what holds (or owns) the property. For example:
@@ -158,11 +163,15 @@ public PropertyCacheLevel GetPropertyCacheLevel(IPublishedPropertyType propertyT
158163
```
159164

160165
## Implement conversion methods
166+
161167
Implement the methods that perform the conversion from a raw database value to an intermediate value and then to the final type. Conversions happen in two steps.
162168

163169
### `ConvertSourceToIntermediate(IPublishedElement owner, IPublishedPropertyType propertyType, object source, bool preview)`
170+
164171
This method converts the raw data value into an appropriate intermediate type that is needed for the final conversion step to an object.
172+
165173
For example:
174+
166175
- A basic text property likely stores its data as a `string`, so that can be converted to a `string` intermediate value.
167176
- A Content Picker stores the node identifier (`Udi`) as a `string`. To return `IPublishedContent`, the final conversion step needs a `Udi` instead. So in the intermediate step, check if the `string` value is a valid `Udi` and convert the `string` to a `Udi` as the intermediate value.
168177

@@ -201,6 +210,7 @@ public object? ConvertIntermediateToObject(IPublishedElement owner, IPublishedPr
201210
```
202211

203212
## Override existing Property Value Converters
213+
204214
To override an existing Property Value Converter, either from Umbraco or a package, additional steps are required. Deregister the existing one to prevent conflicts.
205215

206216
```csharp

17/umbraco-engage/marketers-and-editors/introduction/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Umbraco Engage uses a cookie to collect visitor data on your Umbraco website. Le
2424

2525
## [Profiling](../profiling/)
2626

27-
The Profiling section helps track visitor sessions, manage profiles, and differentiate between identified and anonymous visitors.
27+
The Profiling section helps track visitor sessions, manage profiles, and differentiate between identified and unidentified visitors.
2828

2929
## [Settings](../settings/)
3030

17/umbraco-engage/marketers-and-editors/profiling/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: >-
33
Explore how the Profiles section helps track visitor sessions, manage
4-
profiles, and differentiate between identified and anonymous visitors.
4+
profiles, and differentiate between identified and unidentified visitors.
55
---
66

77
# Profiling
@@ -20,9 +20,9 @@ The graph shows the number of new identified visitors over the last 30 days.
2020

2121
The table displays an overview of the profiles per month.
2222

23-
## Identified versus Anonymous Profiles
23+
## Identified versus Unidentified Profiles
2424

25-
As long as there is no data of a visitor, this profile is called "Anonymous". If a visitor [does not give consent](../../developers/introduction/the-umbraco-engage-cookie/module-permissions.md) to be identified, they remain "Anonymous".
25+
As long as there is no data of a visitor, this profile is called "Unidentified". If a visitor [does not give consent](../../developers/introduction/the-umbraco-engage-cookie/module-permissions.md) to be identified, they remain "Unidentified".
2626

2727
However, once a visitor logs in (via Umbraco's Members section) or submits an Umbraco Form, they become an "Identified Profile." For example: If you see a visitor name in the Profiles table it is because the visitor has logged in as a member.
2828

0 commit comments

Comments
 (0)