Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ description: Learn about the different methods for declaring an Extension Manife

The Extension Manifest is the first step for any extension. It is the declaration of what you want to register.

In this section you will find all the Extension Types provided by the Backoffice. [See all Extension Types here.](../extension-types/)
In this section you will find all the Extension Types provided by the Backoffice. [See all Extension Types here.](../extension-types/README.md)

### Extension Manifest Format
## Extension Manifest Format

An Extension Manifest can be written as a JavaScript or JSON Object.

Expand All @@ -25,7 +25,7 @@ const manifest = {

The `type` defines what it is declaring. The `alias` is a unique identifier for this manifest. It must be globally unique, so make sure to prefix it with something that makes your extension unique. The `name` is a representational name of this manifest, this does not need to be unique but such can be beneficial when debugging extensions.

### Manifest Data
## Manifest Data

Each Extension Manifest has to declare its type. This is used to determine where it hooks into the system. It also determines what data is required of this manifest.

Expand All @@ -41,12 +41,12 @@ Additionally, many extensions support the use of the following fields:

* `weight` - Define a weight, to determine the importance or visual order of this extension. The higher the weight, the higher in the list it will appear.
* `overwrites` - Define one or more Extension Aliases that this extension should replace. Notice it only omits the listed Extensions when this is rendered in the same spot. [Read more in Replace, Exclude or Unregister](replace-exclude-or-unregister.md).
* `conditions` - Define one or more conditions that must be permitted for the extension to become available. [Extension Conditions](../extension-conditions/extension-conditions.md).
* `conditions` - Define one or more conditions that must be permitted for the extension to become available. [Extension Conditions](../extension-conditions.md).
* `kind` - Define a kind-alias of which this manifest should be based upon. Kinds acts like a preset for your manifest. [Extension Kinds](../extension-kind.md).

Many of the Extension Types require additional information declared as part of a `meta` field.

### Registration
## Registration

An Extension Manifest can be registered in multiple ways.

Expand All @@ -58,15 +58,15 @@ This enables you to locate your Manifests in files together with the implementat

A typical structure would be to declare one or more `Bundle` extensions in the Package Manifest. Each of the Bundles points to a `manifests.js` file which declares the Extensions of interest.

#### The `bundle` extension type
### The `bundle` extension type

The Bundle extension type is used to declare multiple Extension Manifests from a single JavaScript file.

The Bundle is loaded at startup. All the Extension Manifests exported of the JavaScript file will be registered.

Read more about the `bundle` extension type in the [Bundle](../../../extending/extending-overview/extension-registry/bundle.md)[ ](../extension-types/bundle.md)article.
Read more about the `bundle` extension type in the [Bundle](../extension-types/bundle.md)article.

#### The `backofficeEntryPoint` extension type
### The `backofficeEntryPoint` extension type

Run any JavaScript code when Backoffice startups, after the user is logged in. This can be used as an entry point for a package, registering more extensions or configuring your package.

Expand All @@ -76,7 +76,7 @@ The entry point declares a single JavaScript file that will be loaded and run wh

Read more about the `backofficeEntryPoint` extension type in the [Entry Point](extension-manifest.md#the-backofficeentrypoint-extension-type) article.

#### The `appEntryPoint` extension type
### The `appEntryPoint` extension type

Similar as `appEntryPoint` this runs as startup, the difference is that this runs before the user is logged in. Use this to initiate things before the user is logged in or to provide things for the Login screen.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ We can create the manifest using JSON in the `umbraco-package.json`.

The manifest can also be written in TypeScript.

For this TypeScript example we used a [Backoffice Entry Point](../../extending-overview/extension-types/backoffice-entry-point) extension to register the manifests.
For this TypeScript example we used a [Backoffice Entry Point](../../extending-overview/extension-types/backoffice-entry-point.md) extension to register the manifests.

```typescript
import { ManifestMenu } from "@umbraco-cms/backoffice/extension-registry";
Expand Down Expand Up @@ -92,7 +92,7 @@ We can create the manifest using JSON in the `umbraco-package.json`.

The manifest can also be written in TypeScript.

For this TypeScript example we used a [Backoffice Entry Point](../../extending-overview/extension-types/backoffice-entry-point) extension to register the manifests.
For this TypeScript example we used a [Backoffice Entry Point](../../extending-overview/extension-types/backoffice-entry-point.md) extension to register the manifests.

{% code title="manifest.ts" overflow="wrap" lineNumbers="true" %}
```typescript
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ We can create the manifest using json in the `umbraco-package.json`.
{% tab title="TypeScript" %}
The manifest can also be written in TypeScript.

For this TypeScript example we used a [Backoffice Entry Point](../backoffice-entry-point/) extension to register the manifests.
For this TypeScript example we used a [Backoffice Entry Point](../backoffice-entry-point.md) extension to register the manifests.

```typescript
import { ManifestSectionView } from "@umbraco-cms/backoffice/extension-registry";
Expand Down
2 changes: 1 addition & 1 deletion 15/umbraco-cms/extending/build-on-umbraco-functionality.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ One of the biggest strengths of the Umbraco CMS is its flexibility. It is possib
{% hint style="info" %}
Are you looking to **customize and build extensions for the Umbraco backoffice?**

All articles related to customizing and extending the Umbraco backoffice have been moved to the [Customize the Backoffice](broken-reference) section.
All articles related to customizing and extending the Umbraco backoffice have been moved to the [Customize the Backoffice](../customizing/overview.md) section.
{% endhint %}

In this section, you can find resources to build and extend Umbraco CMS functionality.
Expand Down
2 changes: 1 addition & 1 deletion 15/umbraco-cms/extending/embedded-media-providers.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@

### Custom Embed Provider Example

Azure Media Services [(https://azure.microsoft.com/en-gb/services/media-services/)](https://azure.microsoft.com/en-gb/services/media-services/) provides 'broadcast-quality' video streaming services. You can embed the Azure Media Player into your site to play a video [using an IFrame](https://ampdemo.azureedge.net/azuremediaplayer.html).
Azure Media Services [(https://azure.microsoft.com/en-gb/services/media-services/)](https://azure.microsoft.com/en-gb/services/media-services/) provides 'broadcast-quality' video streaming services. You can embed the Azure Media Player into your site to play a video using an IFrame.

Check warning on line 124 in 15/umbraco-cms/extending/embedded-media-providers.md

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [UmbracoDocs.Brands] We prefer 'Microsoft' over 'microsoft.' Raw Output: {"message": "[UmbracoDocs.Brands] We prefer 'Microsoft' over 'microsoft.'", "location": {"path": "15/umbraco-cms/extending/embedded-media-providers.md", "range": {"start": {"line": 124, "column": 99}}}, "severity": "WARNING"}

Check warning on line 124 in 15/umbraco-cms/extending/embedded-media-providers.md

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [UmbracoDocs.Brands] We prefer 'Azure' over 'azure.' Raw Output: {"message": "[UmbracoDocs.Brands] We prefer 'Azure' over 'azure.'", "location": {"path": "15/umbraco-cms/extending/embedded-media-providers.md", "range": {"start": {"line": 124, "column": 93}}}, "severity": "WARNING"}

You can create a custom `EmbedProvider` to embed an IFrame video player in your content. This can be done by taking the Media asset URL and writing out the required markup.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ This document provides guides and notes on package development. It includes good

To extend the Umbraco backoffice, a package can provide files such as `umbraco-package.json` and TypeScript/JavaScript files that should be stored within the `App_Plugins` folder. It's recommended to put all files in a subfolder with a unique name, preferably using the package name, like `App_Plugins\MyPackage`.

For more information on how to extend the Umbraco backoffice, have a look at the [customizing the backoffice documentation](../../customizing/extend-and-customize-editing-experience.md)
For more information on how to extend the Umbraco backoffice, have a look at the [customizing the backoffice documentation](../../customizing/overview.md)

Files in the `App_Plugins` folder will be publicly available on the website even though they are not in the `wwwroot` folder. You should not store sensitive information in the `App_Plugins` folder.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ This is known as Block Level Variance:

Block Level Variance is achieved when:

* The [Document Type](../../../../data/defining-content/default-document-types#document-type) is configured for variance, and
* The [Document Type](../../../../data/defining-content/default-document-types.md#document-type) is configured for variance, and
* The Block Editor property is _not_ configured for variance, and
* The Block Editor property editor is configured to use [Element Types](../../../../data/defining-content/default-document-types#element-type) that _do_ vary.
* The Block Editor property editor is configured to use [Element Types](../../../../data/defining-content/default-document-types.md#element-type) that _do_ vary.

## The "unexposed" Block state

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ The Tags property editor allows you to add multiple tags to a node.

## Data Type Definition Example

![Tags Data Type Definition Example](/14/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/tags-DataType.png)
![Tags Data Type Definition Example](images/tags-DataType.png)

### Tag group

Expand All @@ -26,17 +26,17 @@ There are built-in property value converters, which means you don't need to worr

### CSV tags

![CSV tags example](../../../../../../10/umbraco-cms/fundamentals/backoffice/property-editors/built-in-property-editors/images/Csv-example-v8.png)
![CSV tags example](../built-in-property-editors/images/Csv-example-v8.png)

### JSON tags

![JSON tags example](../../../../../../10/umbraco-cms/fundamentals/backoffice/property-editors/built-in-property-editors/images/Json-example-v8.png)
![JSON tags example](../built-in-property-editors/images/Json-example-v8.png)

### Tags typeahead

Whenever a tag has been added it will be visible in the typeahead when you start typing on other pages.

![Tags typeahead example](../../../../../../10/umbraco-cms/fundamentals/backoffice/property-editors/built-in-property-editors/images/Typeahead-v8.png)
![Tags typeahead example](../built-in-property-editors/images/Typeahead-v8.png)

## MVC View Example - displays a list of tags

Expand Down
2 changes: 1 addition & 1 deletion 15/umbraco-cms/fundamentals/backoffice/sections.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ For more information, see the [Packages](../../extending/packages/) article.

The Users section allows administrators to manage user accounts, assign permissions, set user roles, and monitor user activity within the backoffice. It provides control over who can access and modify content, media, and settings in the CMS.

For more information, see the [Users](../data/users.md) article.
For more information, see the [Users](../data/users/README.md) article.

## Members

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ The **Settings** section of the Umbraco backoffice has its own set of default da

The Welcome dashboard is the first dashboard in the Settings section. Like all dashboards, it has a customizable view and links to different resources for developing your Umbraco website.

For more information about creating custom dashboards, see the [Dashboards](../../customizing/dashboards.md) article.
For more information about creating custom dashboards, see the [Dashboards](../../customizing/extending-overview/extension-types/dashboard.md) article.

</details>

Expand Down
2 changes: 1 addition & 1 deletion 15/umbraco-cms/fundamentals/backoffice/variants.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ To read about how you render variant content in Templates, check out the [render
Culture and hostnames must be added to your language sites before the content can be tested for variants:

1. Click **...** next to the Home node and select **Culture and Hostnames**.
2. Add a specific URL per language and save. For eg: An English language variant with English (United States) as the language can be given a specific URL [_https://yourwebsite.com/en-us_](https://yourwebsite.com/en-us) and a Danish language variant can be given a specific URL [_https://yourwebsite.com/dk_](https://yourwebsite.com/dk).
2. Add a specific URL per language and save. For eg: An English language variant with English (United States) as the language can be given a specific URL `https://yourwebsite.com/en-us` and a Danish language variant can be given a specific URL `https://yourwebsite.com/dk`.

The Info content app should now show specific URLs for your language variants.

Expand Down
8 changes: 4 additions & 4 deletions 15/umbraco-cms/fundamentals/data/adding-tabs.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ To add a tab, follow these steps:
1. Go to **Settings**.
2. Create or select a **Document Type/Media Type/Member Type** and click **Add tab**.

![Add tab](/14/umbraco-cms/fundamentals/data/images/Add-tab.png.png)
![Add tab](images/Add-tab.png.png)

{% hint style="info" %}
When adding the first tab, all existing groups are automatically added to the tab.
Expand All @@ -30,7 +30,7 @@ To reorder tabs, follow these steps:

This is important when using compositions, as you want to always display a tab/group at a certain position by setting a manual numeric value.

![Reorder tabs](../../../../10/umbraco-cms/fundamentals/data/images/Reorder-tabs.gif)
![Reorder tabs](images/Reorder-tabs.gif)
5. Select **I am done reordering**.
6. Click **Save**.

Expand All @@ -53,12 +53,12 @@ Converting a tab back into a group is not possible, as tabs can contain groups,

Once you start adding tabs, you might see a “Generic” tab appear. This is done to hold groups and properties that are not assigned to a tab. For example, a group of properties coming from a composition that has no tab. In order to display the groups and properties correctly and have a solid data structure, they will be displayed under the “Generic” tab.

![Generic-tab](/14/umbraco-cms/fundamentals/data/images/Generic-tab.png)
![Generic-tab](images/Generic-tab.png)

To manage the **Generic** tab on a **Document Type/Media Type**:

1. Go to the **Composition** Document Type/Media Type.
2. Click **Add tab** and enter the **Name** for the tab. All existing groups and properties are added to the tab.
3. Go to the **Document Type/Media Type**, the **Generic** tab will now be replaced by the tab from the composition.

![Composition Add Tab](../../../../10/umbraco-cms/fundamentals/data/images/Composition-add-tab.gif)
![Composition Add Tab](images/Composition-add-tab.gif)
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ The `UmbracoMediaArticle` media type has the following properties:
* `umbracoExtension` - Label (string)
* `umbracoBytes` - Label (bigint)

![MediaArticle](/14/umbraco-cms/fundamentals/data/creating-media/images/umbraco-media-article-media-type.png)
![MediaArticle](images/umbraco-media-article-media-type.png)

### UmbracoMediaAudio

Expand All @@ -52,7 +52,7 @@ The `UmbracoMediaAudio` media type has the following properties:
* `umbracoExtension` Label (string)
* `umbracoBytes` Label (bigint)

![MediaAudio](/14/umbraco-cms/fundamentals/data/creating-media/images/umbraco-media-audio-media-type.png)
![MediaAudio](images/umbraco-media-audio-media-type.png)

### UmbracoMediaVectorGraphics

Expand All @@ -62,7 +62,7 @@ The `UmbracoMediaVectorGraphics` media type has the following properties:
* `umbracoExtension` Label (string)
* `umbracoBytes` Label (bigint)

![MediaVectorGraphics](/14/umbraco-cms/fundamentals/data/creating-media/images/umbraco-media-vector-graphicsmedia-type.png)
![MediaVectorGraphics](images/umbraco-media-vector-graphicsmedia-type.png)

### UmbracoMediaVideo

Expand All @@ -72,7 +72,7 @@ The `UmbracoMediaVideo` media type has the following properties:
* `umbracoExtension` - Label (string)
* `umbracoBytes` - Label (bigint)

![MediaVideo](/14/umbraco-cms/fundamentals/data/creating-media/images/umbraco-media-video-media-type.png)
![MediaVideo](images/umbraco-media-video-media-type.png)

{% hint style="info" %}
You can also create localization files for Media Types. You can read more about this in the [Document Type Localization](../defining-content/document-type-localization.md) article.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ description: >-

On this page, you will find the default Document Types in Umbraco. If you want to use these Document Types, you can create them in the Settings section.

![Create Document Type](/15/umbraco-cms/fundamentals/data/images/CreateDoctype.png)
![Create Document Type](../images/CreateDoctype.png)

## Document Type

Expand All @@ -28,7 +28,7 @@ An Element Type is a Document Type *without a template* designed for reusabale a

Element Types are not part of the Content tree and cannot render directly on the front end. When created, the **Is an Element Type** flag in the **Permissions** tab is automatically set to **True**.

![Element type](/15/umbraco-cms/fundamentals/data/images/element-type.png)
![Element type](../images/element-type.png)

Use an Element Type when defining building blocks for complex page layouts, such as grid blocks or call-to-action sections. They are an essential part of modular content design.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ The localizations are applied by using the syntax `#{area alias}_{key alias}`.
* Under validation add `#properties_title-message`.

{% hint style="info" %}
Property descriptions support [Umbraco Flavored Markdown](../../../reference/umbraco-flavored-markdown), which uses a different syntax (wrapped in brackets) to avoid conflicts with Markdown headers.
Property descriptions support [Umbraco Flavored Markdown](../../../reference/umbraco-flavored-markdown.md), which uses a different syntax (wrapped in brackets) to avoid conflicts with Markdown headers.
{% endhint %}

![Applying localization to a property](../images/localization-document-type-editor-validation-v15.png)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ description: "All the code snippets you need to get a jump start on building tem

The Razor Cheatsheet is a collection of common methods used for building templates and views in Umbraco CMS.&#x20;

<figure><img src="../../../../.gitbook/assets/razorcheatsheet.png" alt=""><figcaption><p>Umbraco 11 - Razor Cheatsheet</p></figcaption></figure>

Get the Umbraco 11 Cheatsheet: [https://umbra.co/razorCheatsheet](https://umbra.co/razorCheatsheet)

You can also find the [cheatsheet on GitHub](https://github.com/umbraco/UmbracoDocs/tree/RazorCheatSheet) where you can give feedback, contribute, or download the template used to _generate_ the sheet.
Expand Down
2 changes: 1 addition & 1 deletion 15/umbraco-cms/reference/content-delivery-api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ All content properties (including expanded properties) are part of the output by

Property expansion and limiting can be used when querying for single and multiple content or media items. You can expand properties by adding an `expand` parameter to the query and limit them using the `fields` query parameter.

Refer to the [Property Expansion and Limiting](./property-expansion-and-limiting) article for an in-depth explanation of this feature.
Refer to the [Property Expansion and Limiting](property-expansion-and-limiting.md) article for an in-depth explanation of this feature.

</details>

Expand Down
Loading
Loading