Try our conversational search powered by Generative AI!

Custom (image) Content Provider - image doesn't render in edit mode

Vote:
 

Hello,

I'm in the middle of implementing a custom content provider to server images from an external dam system.

I've got almost everything running, except, I have no images in on page edit mode.

My content provider returns a custom IContent type that inhertits from ImageData, this to blend in as best as possible in epi.
Behind it I have a custom blobprovider to stream images from the dam.

Thumbnails in the shell works, as well as the rendering on the public site. But I don't see any images in edit mode.
And I think the problems lies how epi generates it url's.

If I use an image from de default media library, the url to an image in edit mode is the following:
http://localhost:1812/EPiServer/CMS/Content/globalassets/en/demo/cotton/farm2.jpg,,14?epieditmode=False

But when I use an image from my provider, it's like this:
http://localhost:1812/EPiServer/CMS/Content/en/dam/9FCBB804-89E5-4443-8D969A9265D74B3B-home-banner.jpg,,1__bynder?epieditmode=True

If I open this url, it triggers 2 requests:

  1. http://localhost:1812/EPiServer/CMS/Content/en/dam/9FCBB804-89E5-4443-8D969A9265D74B3B-home-banner.jpg,,1__bynder?epieditmode=True
    Content-Type:text/html; charset=utf-8
  2. http://localhost:1812/EPiServer/CMS/Content/en/dam/9FCBB804-89E5-4443-8D969A9265D74B3B-home-banner.jpg,,1__bynder?epieditmode=False
    Content-Type:image/jpeg

When I use the edit action menu in the assets pane, it immediately renders the following (correct?) url:
http://localhost:1812/EPiServer/CMS/Content/en/dam/9FCBB804-89E5-4443-8D969A9265D74B3B-home-banner.jpg,,1__bynder?epieditmode=False
Content-Type:image/jpeg

Does anybody already encountered this? Any idea how to resolve this?

Many thanks,

bob

#186153
Dec 13, 2017 7:29
Vote:
 

Bob did you ever get this figured out? 

#196980
Sep 19, 2018 5:03
Vote:
 

I'm experiencing the same problem. Did you ever find a solution?

#197301
Sep 28, 2018 14:55
Vote:
 

Hello,

it's been awhile but I think the following code fixed the issue:

I registered a route in the initialization module of my provider (IInitializableModule.Initialize)

        public void Initialize(InitializationEngine context)
        {
            var settings = context.Locate.Advanced.GetInstance<IBynderSettings>();
            var bynderRoot = EnsureCreateProviderRoot(context, settings);

            EnsureProvider(context, bynderRoot);

            EnsureRoutes(bynderRoot);
        }

        private void EnsureRoutes(IContent bynderRoot)
        {
            // Since we have our structure outside asset root we registera custom route for it
            // and remove the language segment
            // -> disabled for the moment, we want content to be localizable
            //RouteTable.Routes.MapContentRoute(
            //name: "BynderMedia",
            //    url: "bynder/{node}/{partial}/{action}",
            //    defaults: new { action = "index" },
            //    contentRootResolver: (s) => bynderRoot.ContentLink);

            // EPiServer UI needs the language segment
            RouteTable.Routes.MapContentRoute(
                name: "BynderMediaEdit",
                url: CmsHomePath + "bynder/{language}/{medianodeedit}/{partial}/{action}",
                defaults: new { action = "index" },
                contentRootResolver: (s) => bynderRoot.ContentLink);
        }

        private static string CmsHomePath
        {
            get
            {
                var cmsContentPath = VirtualPathUtility.AppendTrailingSlash(EPiServer.Shell.Paths.ToResource("CMS", "Content"));
                return VirtualPathUtilityEx.ToAppRelative(cmsContentPath).Substring(1);
            }
        }

Sorry for the slow response, and not updating my post in the first place...

bob

#197306
Sep 28, 2018 17:10
Vote:
 

Thanks for the response Bob!
I tried your solution but didn't get it to work (even though it seems like it should). My solution instead were to change the content provider root from the root folder and instead use the global asset root. The content provider root folder were then visible in the media asset folder structure as well, but that wasn't a big problem for me.

#197725
Oct 11, 2018 13:58
Vote:
 

Hi Bob, Drew.

What Bynder package you had implemented?

We use v. 3.0.0 with current CMS 11 and COmmerce 13 implementation.

Now we upgrading to CMS 12 and Commerce 14 and use Bynder package 5.0.1

In both implementation the only issue with Bynder assets we have is in the commerce area in 'assets' for products.

We are missing the thambnail image for assigned bynder asset. Did you have this issue and how did you resolve it?

Thank you for your time.

Irina

#305979
Jul 31, 2023 14:13
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.