In my DXA solution I was trying to change the Page Metadata to come from a Component rather but unfortunately it didn’t work out of the box.
Taking a look inside the ProcessMetadataField method in the DefaultModelBuilder class the code is written to work with an Embedded Schema:
But when it drops into the else statement to resolve the Component Link then it doesn’t get any content back as that Page Metadata Component is not published.
With a quick tweak to the method you can add an extra else if for a Component Link type and this is now working:
else if (field.FieldType == FieldType.ComponentLink)
foreach (IComponent component in field.LinkedComponentValues)
foreach (IField subfield in component.Fields.Values)
ProcessMetadataField(subfield, meta, localization);
I also needed to change the link level value to 2 in the Generate dynamic page TBB on the Render Page Content Modular Template in order to get the Metadata Component values in the published JSON:
Mark Williams has created a really useful Alchemy Plugin to preview DXA websites in Tridion. Unfortunately for me this was only for the DD4T Tridion 2013 Provider and I needed it for 2013 SP1 as I am building a DXA 1.2 website.
Away I went to get the source from Github to modify the 2013 SP1 Provider that DXA 1.2 uses but I soon realised I was modifying the wrong version. One Stack Exchange question later, Bart had hooked me up with the exact version that I needed to modify which was 2.0.5-beta.
So I have modified the Page Provider to bring over the same code that Mark wrote and voila! I have a working DXA Preview Alchemy Plugin for DXA 1.2 and the DD4T 2013 SP1 Provider.
Only the TridionPageProvider.GetContentByURL() method is modified and here is the code: https://gist.github.com/RyanDurkin/daeb5cfbe0f8a7170e88c9e83c71fe98
Hopefully this will help somebody in the same situation.
SDL Tridion is a hugely scalable product and so when I wanted to scale out the Publisher onto it’s own dedicated machine I thought the steps to do this would be easy to find so I searched the online manual for the steps but all I found was one single paragraph:
You can install the Publisher on one or more dedicated machines. On a dedicated machine, you can configure the Publisher for a multiprocessor machine, or increase the number of Publisher threads. You can also create Publishers that only accept content from certain Publications or Publication Targets, or with a certain Publish Priority.
Woo hoo! That’s exactly what I need! But that was it…. nothing else on that page?
So if anyone else is looking for the steps to install the Publisher on a dedicated machine, here are the steps I followed:
- Transfer the Content Manager install files to your new server
- Double Click and Run the Installer
- Select only the Content Delivery Windows Services, Content Manager and Context Expressions features
- Complete all your user account and database details that you completed when you initially installed your Content Manager
- Complete the details for the Content Manager website
- Transfer your license files into the correct locations just like you did with your Content Manager installation
- Restart the server
The core Content Manager components have now been installed on your new server but you only need a few of the Windows Services. To complete the setup you need to:
- Stop and Disable the Tridion Content Manager Workflow Agent Service, the Tridion Content Manager Service Host Service, the Tridion Content Manager Search Indexer and the Tridion Content Manager Batch Processor Service
- Transfer your cd_transport_conf.xml file from your Content Manager Server to the same location on the new Publisher Server. Restart the Tridion Content Distributor Transport Service.
The new Publishing server is now ready to publish but you need to log on to the Content Manager server to stop it doing the Publishing. On the Content Manager Server:
- Stop and Disable the Tridion Content Manager Publisher Service and the Tridion Content Distributor Transport Service
You should now be able to publish an item from the CME and the new Publishing Server will pick it up and transport it to your Deployer.
If you haven’t managed to get your hands on SDL Web 8 or have missed all the presentations and webinars (like myself) then I’ve just found that there is a great webinar that Nuno Linhares recorded that you can find here: https://community.sdl.com/products-solutions/solutions/customer_experience_cloud/digital-experience/tridion/w/wiki/818.future-direction-roadmap
He explains all the new features as well as diving deeper into the changes in the Content Manager and Content Delivery API as well as explaining the infamous Topology Manager.
Whilst setting up the Content Manager for SDL Tridion 2013 SP1 the installation steps in the online manual aren’t very clear for where to get your ODAC components from.
The steps in the manual say:
Download the Oracle client software from the following location: http://www.oracle.com/technetwork/database/windows/downloads/index-101290.html. Download and unpack it to a location of your choice, then start the 64-bit Oracle client installer.
But that took me to a section on the Oracle website to do with Visual Studio which completely confused me.
The ODAC Components that worked great for me were these ones: http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html
I downloaded the 64-bit ODAC 12c Release 4 (188.8.131.52.4) for Windows x64
The downloaded file name is: ODAC121024_x64.zip
You can then install the required items which are Oracle Services for Microsoft Transaction Server and Oracle Data Provider for .NET
This installer also creates your TNSNAMES.ORA file too which is useful. The other installers I used didn’t do this.
Once the installer is finished then restart your server and then you will be able to run the SDL Tridion installer or the Powershell scripts.
These same ODAC components work if you are developing a DD4T or DXA solution locally too.