Imageshop.Umbraco 9.0.2

dotnet add package Imageshop.Umbraco --version 9.0.2
                    
NuGet\Install-Package Imageshop.Umbraco -Version 9.0.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Imageshop.Umbraco" Version="9.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Imageshop.Umbraco" Version="9.0.2" />
                    
Directory.Packages.props
<PackageReference Include="Imageshop.Umbraco" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Imageshop.Umbraco --version 9.0.2
                    
#r "nuget: Imageshop.Umbraco, 9.0.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Imageshop.Umbraco@9.0.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Imageshop.Umbraco&version=9.0.2
                    
Install as a Cake Addin
#tool nuget:?package=Imageshop.Umbraco&version=9.0.2
                    
Install as a Cake Tool

Umbraco Property Editor for Imageshop

This Umbraco property editor integrates Imageshop to enable easy selection and insertion of images directly into your content. It enhances the editing experience by not only embedding the image URL, but also storing rich metadata alongside the image for multilingual and accessibility support.

Key Features

  • Select and insert images from Imageshop into Umbraco content.
  • Automatically retrieve metadata such as image dimensions, titles, descriptions, and usage rights.
  • Supports multiple languages (e.g. no, en, sv, etc.) for localized metadata.
  • Allows the user to modify the Norwegian (no) image description within the editor.
  • Stores the full JSON representation of the image and its metadata.
  • Not backward compatible with the older string-based property editor, which only stored image URLs.

Value Format

The property editor stores the image data as a JSON object. Below is a description of the structure and fields.

JSON Example

{
  "code": "SC-0203",
  "image": {
    "file": "https://v.imgi.no/jp724drlek",
    "width": 200,
    "height": 500,
    "thumbnail": "https://magik.imageshop.no/iMageWithFallbackAndMagikAndS3.aspx?d=1&t=637820640000000000&c=image%2fjpeg&base=39&h=2FCB358DB8099760D816E577A91E2D9B&x=0&y=0&real=&img=-2bba06-wm.JPG"
  },
  "text": {
    "no": {
      "title": "Imageshop logo",
      "description": "Imageshop ikon modified",
      "altText": "Logo av Imageshop",
      "rights": "",
      "credits": "",
      "tags": "",
      "categories": []
    },
    "en": {
      "title": "Imageshop logo",
      "description": "",
      "altText": "",
      "rights": "",
      "credits": "",
      "tags": "",
      "categories": []
    },
    "sv": {
      "title": "imageshop-96.png",
      "description": "Imageshop ikon",
      "altText": "Ikon från Imageshop",
      "rights": "",
      "credits": "",
      "tags": "",
      "categories": []
    }
  },
  "extraInfo": {
    "ShowDescription": "1"
  },
  "documentId": 2865670,
  "AuthorName": null,
  "InterfaceList": [
    {
      "InterfaceID": 57331,
      "InterfaceName": "Public"
    },
    {
      "InterfaceID": 57332,
      "InterfaceName": "Private"
    }
  ],
  "focalPoint": {
    "x": 0.25,
    "y": -0.1
  }
}

JSON Field Breakdown

Field Type Description
code string A unique identifier for the image (typically an image code or SKU).
image.file string Direct URL to the image file hosted on Imageshop.
image.width number Width of the image in pixels.
image.height number Height of the image in pixels.
image.thumbnail string URL to a thumbnail or preview of the image.
text object Localized metadata organized by language code (no, en, sv, etc.).
text.{lang}.title string Title of the image in the specified language.
text.{lang}.description string Description or caption for the image. Can be edited for Norwegian (no).
text.{lang}.altText string Alternative text for accessibility.
text.{lang}.rights string Usage rights or license information.
text.{lang}.credits string Photographer or source credits.
text.{lang}.tags string Comma-separated tags or keywords for search.
text.{lang}.categories array Array of categories assigned to the image.
text.{lang}.documentinfo array List of additional metadata with DocumentInfoTypeId, Name, and Value.
extraInfo `object null` Optional field for additional display/config flags (e.g. ShowDescription).
documentId number Internal Imageshop document ID.
AuthorName `string null` Optional name of the author or creator.
InterfaceList array List of interfaces where the image is used (e.g. Public, Private).
profile `object null` Optional metadata profile (may be null).
focalPoint `object null` Optional object with x and y (range: -1.0 to 1.0) for image cropping and focus.

Editing Description in Umbraco

The user can edit the Norwegian description of the image through the editor using:

value.text['no'].description

This allows content editors to override or enrich the default description provided by Imageshop.

Manifest File Configuration

The configuration for the property editor is defined in a manifest file. This file registers the editor with Umbraco and provides editable prevalue fields for token setup, interface, sizing, etc.

Example manifest file:

{
  propertyEditors: [
    {
      alias: "screentek.ImageshopEditor",
      name: "Screentek Imageshop",
      editor: {
        view: "~/App_Plugins/Imageshop/imageshopeditor.html?v=b",
        valueType: "JSON"
      },
      prevalues: {
        fields: [
          {
            label: "Token",
            description: "Retrieved from Imageshop",
            key: "token",
            view: "textstring",
            validation: [{ type: "Required" }]
          },
          {
            label: "Interface",
            description: "A valid Interface in Imageshop",
            key: "interface",
            view: "textstring"
          },
          {
            label: "Prefix",
            description: "Prefix of the document code when uploading to Imageshop",
            key: "prefix",
            view: "textstring"
          },
          {
            label: "Predefined sizes",
            description: "Predefined sizes the user can select from. Format: <name>;<size>[:<name>;<size>][...]. Example: 'Default size;2000x868:Free width;2000x0'",
            key: "sizes",
            view: "textstring"
          },
          {
            label: "Profile name",
            description: "Size profile created by Imageshop. Use 'empty' to denote the blank profile. See http://demo.imageshop.no for more info.",
            key: "profile",
            view: "textstring"
          },
          {
            label: "Default preview crop for profile",
            description: "Crop suffix for preview (e.g. '-Desktop/HD'). See https://apidocumentation.imageshop.no",
            key: "previewcrop",
            view: "textstring"
          },
          {
            label: "Hide size dialogue",
            description: "Hide or show size selector. If hidden, only predefined size will be used.",
            key: "hidesizedialgue",
            view: "boolean"
          }
        ]
      }
    }
  ],
  javascript: [
    "~/App_Plugins/Imageshop/imageshopeditor.controller.js?v=c"
  ]
}

This manifest file should be placed in your Umbraco App_Plugins/ImageshopEditor folder. It defines how the editor behaves and what configuration options are available to content administrators.

Migration Notice

This version is not backward compatible with the old string-based property editor, which only stored a single image URL. The new version stores a rich JSON object including metadata, localized texts, alt texts, and accessibility details.

Legacy data must be manually migrated or transformed to match the new format if you wish to upgrade existing properties.

Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.