we have a problem with Courier deployment.
Users can add macro in richttext editor and can select content as parameter with content picker. If we deploy this content with macro inside to our production environment the old content id is referenced. Courier doesn´t replace it.
Does anybody know how to achieve this?
Update...yes I see a potential issue with Courier for v7 as Umbraco uses a plugin approach for property editors - I'll address that and include in the next build.
@Ben - I don't see the issue with v6 however, could you include details and repro steps on the issue tracker? http://issues.umbraco.org/issues/COU
We've made an update to address content/media picker types when used as macro parameter types and the containing values. While we prepare an update release the fix is available in this build for evaluation:
Note that you'll need to update your courier.config to reflect any property editors being used as content/media pickers for macro parameters. By default these are the pickers handled:
<macroPropertyTypeResolvers>
<contentPickers>
<!-- Macro Property Types, that store Content IDs, to link to media or content -->
<add key="contentPicker">Umbraco.ContentPickerAlias</add>
<add key="multiplemediaPicker">Umbraco.MultipleMediaPicker</add>
<add key="mediaPicker">Umbraco.MediaPicker</add>
</contentPickers>
</macroPropertyTypeResolvers>
@Paul - Thanks for the quick reply. I'm not at the client's site at the moment so I cannot be 100%, however I used the default Courier.config in your zip file here: http://our.umbraco.org/FileDownload?id=12670 with only an amend to supply the destination umbraco instance in the repositories section. The default config does indeed have these settings turned on.
I am using the advanced courier mode where you create revisions that can later be transferred to any Umbraco instance. Looking through the XML courier creates for a revision, I cannot see how it would work, as the Node Id's are present in the XML. These are different on the target instance, so I got a random content Node selected. Is there anything I can check to see where the process is going wrong? How is the process intended to work? Looking at the data I would assume you'd have to substitute the Node Id's with Guids, and maintain a mapping table on each umbraco DB, otherwise we'll have problems with collisions/severed-relations in different databases.
Thanks for the reprp steps...with 6.2 the paramaters are resolved properly and updated on extraction to the correct content/media id's on the target instance. So must be something different in the setup or process.
@Paul - Okay, I was puzzled by how you'd achieve that with the data I've seen in the database table and in the XML files. The node ID present in the XML file is unaltered so it is essentially an arbitary ID on the destination database. It needs updating (as you indicated), but there don't seem to be any good candidates within the database data to key the mapping on. Title can be duplicated easily if you have the same named Content in different folders within the site. Version seems to be different on the source and destination, and there arn't any other obvious candidates. I was speculating that if I was doing this, I'd probably replace the NodeID's with Guids in the XML and maintain a mapping table within the database at each end (NodeID->Guid and Guid->New NodeID). An alternative is to leave the Node ID's as they are and create a mapping XML file in the revision? What should I look for to trace the flow through?
@Paul - Had another look at the site this morning, and realised there was one important difference with what we're doing. It's actually a Macro Container (technically a custom data type based on a Macro container, with a restriction on which macros can be used) rather than a RTE. Sorry, I should have made that distinction. I assume the same mechanisms should apply in this case, but it is different control.
If you have that and still the parameters aren't resolved there may be something "custom" in your data type that Courier doesn't know about. In that case you'd need to create a custom resolver. If you like, you can pack up your site (or perhaps package the data type andf all its parts along with a sample usage) and send to me directly. Just ping me on email in that case.
How would I install the Hotfix? We installed 2.10.115 throught the Backoffice as a local copy, but when I tried installing the hotfix I got this error.
Do I just need to push a DLL instead?
Could not upload file System.Exception: Error unpacking extension... ---> System.IO.FileNotFoundException: Could not find file 'D:\WebSites\eContent\App_Data\554b0809-7bad-4b5a-8e1a-6df0ee1910c5\package.xml'. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize) at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn) at System.Xml.XmlTextReaderImpl.OpenUrlDelegate(Object xmlResolver) at System.Threading.CompressedStack.runTryCode(Object userData) at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) at System.Threading.CompressedStack.Run(CompressedStack compressedStack, ContextCallback callback, Object state) at System.Xml.XmlTextReaderImpl.OpenUrl() at System.Xml.XmlTextReaderImpl.Read() at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) at System.Xml.XmlDocument.Load(XmlReader reader) at System.Xml.XmlDocument.Load(String filename) at umbraco.cms.businesslogic.packager.Installer.LoadConfig(String tempDir) at umbraco.cms.businesslogic.packager.Installer.Import(String InputFile) --- End of inner exception stack trace --- at umbraco.cms.businesslogic.packager.Installer.Import(String InputFile) at umbraco.presentation.developer.packages.Installer.uploadFile(Object sender, EventArgs e)
Courier deployment macro parameter
Hallo,
we have a problem with Courier deployment. Users can add macro in richttext editor and can select content as parameter with content picker. If we deploy this content with macro inside to our production environment the old content id is referenced. Courier doesn´t replace it. Does anybody know how to achieve this?
Umbraco Version: 1.7.8 Courier Version: 2.10.0.102.v7
Heiko
Hi all,
same issue here (Umbraco Version 1.7.8, Courier for V7).
The deployment to live is tomorrow.
Can anyone help me to solve this?
Best regards
Sören
I'll have a look right away!
I'm able to reproduce, so I can confirm this is a bug! Will be looking into a fix.
Hi Niels, I have the same problem in Umbraco 6.2.0 and Courier 2.7.8.35. Are you looking to port this fix back to the version for umbraco 6.2?
Thanks
@All -
Can you verify you have the following set to true in courier.config so that Courier knows to handle Macro Parameters:
macrosAreDependencies
macroParametersAreDependencies
With these set to true a macro in an RTE property using macro parameters should be resolved and transferred.
-Paul
@All
Update...yes I see a potential issue with Courier for v7 as Umbraco uses a plugin approach for property editors - I'll address that and include in the next build.
@Ben - I don't see the issue with v6 however, could you include details and repro steps on the issue tracker? http://issues.umbraco.org/issues/COU
-Paul
@All
We've made an update to address content/media picker types when used as macro parameter types and the containing values. While we prepare an update release the fix is available in this build for evaluation:
http://nightly.umbraco.org/UmbracoCourier/Umbraco%207/Umbraco.Courier.Hotfix.v2.10.115.zip
Note that you'll need to update your courier.config to reflect any property editors being used as content/media pickers for macro parameters. By default these are the pickers handled:
@Paul - Thanks for the quick reply. I'm not at the client's site at the moment so I cannot be 100%, however I used the default Courier.config in your zip file here: http://our.umbraco.org/FileDownload?id=12670 with only an amend to supply the destination umbraco instance in the repositories section. The default config does indeed have these settings turned on.
I am using the advanced courier mode where you create revisions that can later be transferred to any Umbraco instance. Looking through the XML courier creates for a revision, I cannot see how it would work, as the Node Id's are present in the XML. These are different on the target instance, so I got a random content Node selected. Is there anything I can check to see where the process is going wrong? How is the process intended to work? Looking at the data I would assume you'd have to substitute the Node Id's with Guids, and maintain a mapping table on each umbraco DB, otherwise we'll have problems with collisions/severed-relations in different databases.
I'll go fill out the repo for you.
Thanks
Ben
@Ben
Thanks for the reprp steps...with 6.2 the paramaters are resolved properly and updated on extraction to the correct content/media id's on the target instance. So must be something different in the setup or process.
-Paul
@Paul - Okay, I was puzzled by how you'd achieve that with the data I've seen in the database table and in the XML files. The node ID present in the XML file is unaltered so it is essentially an arbitary ID on the destination database. It needs updating (as you indicated), but there don't seem to be any good candidates within the database data to key the mapping on. Title can be duplicated easily if you have the same named Content in different folders within the site. Version seems to be different on the source and destination, and there arn't any other obvious candidates. I was speculating that if I was doing this, I'd probably replace the NodeID's with Guids in the XML and maintain a mapping table within the database at each end (NodeID->Guid and Guid->New NodeID). An alternative is to leave the Node ID's as they are and create a mapping XML file in the revision? What should I look for to trace the flow through?
Thanks
@Paul - Had another look at the site this morning, and realised there was one important difference with what we're doing. It's actually a Macro Container (technically a custom data type based on a Macro container, with a restriction on which macros can be used) rather than a RTE. Sorry, I should have made that distinction. I assume the same mechanisms should apply in this case, but it is different control.
@Paul - Thank you for the hotfix! Our customer will check this morning. I'll give you feedback as soon as possible.
@Ben
Make sure you have the Macro Container type listed in courier.config under the <macros> element.
<add key="Macro Container">Umbraco.MacroContainer</add>
If you have that and still the parameters aren't resolved there may be something "custom" in your data type that Courier doesn't know about. In that case you'd need to create a custom resolver. If you like, you can pack up your site (or perhaps package the data type andf all its parts along with a sample usage) and send to me directly. Just ping me on email in that case.
-Paul
Thank you very much for the hotfix. This solved our problem
@Paul - Sorry that I answer you just now. Thank you very much for the quick hotfix! It solved the issue for us!
Best regards
Sören
@Paul or anyone.
How would I install the Hotfix? We installed 2.10.115 throught the Backoffice as a local copy, but when I tried installing the hotfix I got this error.
Do I just need to push a DLL instead?
@carlos
The hotfix is just an archove of files, not a package, so you simply replace the files that are different in the specified folders. Easy!
Also, please note that this is still being evaluated, we'll have a release shortly. If you find any issues when evaluating please let us know: http://issues.umbraco.org/issues?issueFolder=51-18
Thanks!
Thank you. We will not implement the hotfix and in turn wait for the next release. For our needs, I guess we do not need the hotfix.
Thanks for the info!
is working on a reply...