Skip to main content

Posts

DD4TFormRouteHandler (posting a form as tridion page url)

ASP.NET routing enables us to use URLs that are not physical files, In DD4T we have the default page route definition. In which all page request redirct to Page controller and process the page. DD4TFormRouteHandler is a custom route handler responsible for mapping incoming browser requests to particular MVC controller actions, this works along with  DD4TFormHelper  (that generate the route information for the form) Posting a form in DD4T is not complicated, you can create the mvc form as a normal controller and action, then post it via AJAX. But, when we need to do post the form as normal page, It would need a tweak as the controller/action is not a page existed in tridion. This can be achieved by implementing a custom Mvc RoutHandler and reroute the posted form to the encrypted action and controller. It works as below daigram. So, how to do this. to render out the form we have BeginDD4TForm html helper as below that generate the form with encrypted route values....

Handling images and on the fly re-sizing in DD4T

When it comes with DD4T we have plenty of control on the data and we can decided on how we wanted the page to be rendered. The traditional approach of having difference size of same image is replaced in DD4T to have one single image and generate the thumbnail on the fly. In this approach, we will have only one image published in tridion, and rest will be created on the fly based on the request. Just by adding below configuration on the web.config modules session will enable this feature <modules runAllManagedModulesForAllRequests="true">   <add name="BinaryModule"         type="DD4T.Web.Binaries.BinaryDistributionModule" />  </modules> The BinaryDistributionModule process the request as below Process the Binary Request Check if the file is already in the file system. If file is available compare the last published date of the binary against the broker. If the file is updated, update the existing file in the file system....

DD4T: Customizing RenderComponentPresentation

Sometime when we work with Component presentation, we might come up with the scenario to have customized RenderComponentPresentation, when we deal with Area/View or splitting view into more organized structure. We can fetch and send the area from the Template. Currently DD4T doesn’t allow injecting the ComponentPresentationRenderer, instead it allows us to write our own renderer and call it along with RenderComponentPresentation as below The custom ComponentPresenationRenderer can be created based on the scenario, so when we use the area, we could have the custom ComponentPresentation as below SDL Reference implementation, customized Renderer beautifully and implemented the Renderor to use Area view concept.

Navigation in DD4T

There always been a question on What is the best approach for building navigation with DD4T and ASP.NET MVC? Answer is: There is TridionSiteMapProvider as part of the DD4T.Mvc project, which can be used out of the box. The  DD4T.Examples.Templates project also have a example on how Sitemap can be generated from the template ( TBB ) Many organization will have different kinds of navigation structure, It can be from very simple structure or it can be a heavily complex in nature. In this article you can see how the default SitemapProvider can be used and how we could customize to achieve complex Navigations like Megamenu or similar using TridionSiteMapProvider. Setting up the default TridionSiteMapProvider The only configuration you would need to do in web.config is set the your default sitemap provider is as below. <system.web> <siteMap defaultProvider= "TridionSiteMapProvider" enabled= "true" > <providers> <clear/> ...

What is DD4T

Well, It's the high time to think about DD4T. What is DD4T? What makes more easier to the developer and Editor to talk about DD4T.!!  DD4T is a framework that developed by Tridion veterans. The framework makes it easier for Tridion developers to develop, deploy and maintain a project. The basic building blocks of Tridion  like, schema, components, template etc. are still remain the same as below. So what changes, if you look at the below diagram, you could see the different between both So, the whole logic goes to the web server, CMS just plays the role of generating the pages and delivering it to the Broker, no Template logic or HTML in CMS any more. DD4T solves the problem by making sure the pages and content are published to the broker as data, without any HTML rendering. If we summarize the diagram. 1) The role of editor and visitor are normal, and that is the main aspect of DD4T architecture. 2) Everything is published to the broker database. ...

Dynamic Publication Resolving in DD4T

DD4T is a great framework which would give you everything in place what you basically needed. Here we will see how we could resolve the publication based on the URL,  when we work with multiple publications accessing same web site, our DD4T would need to query dynamically to different publications. Many times it can be based on URL, based on the domain or language we could resolve the publication. It’s obviously up to us how we implement it. By default the DD4T framework queries the publication that we have mapped in the key: <add key="DD4T.PublicationId" value="7" /> or keep it 0 to query all publications We can make it dynamic simply by implementing the IPublicationResolver class Step 1: To resolve publication dynamically, we can write a class that implement DD4T.ContentModel.Contracts.Resolvers.IPublicationResolver namespace Indivirtual.DD4T.Mvc.Resolver { public class SitePublicationResolver : IPublicationResolver { ...

ASP.MVC in Umbraco 6

Umbraco 6 brings new lots of improvements for developers, new datalayer, new API’s and complete support for Asp.net MVC 4. This means developers will have greater control, simpler code and higher productivity when developing with Umbraco. As the umbraco blog says, in Umbraco 6 we have: MVC support,  Native Razor support Strongly typed views   Building custom controllers Whole new shiny API Customizing routes. and many more.. Download the latest version 6.0.0. from http://umbraco.codeplex.com/releases . Create a blank MVC4 Application , and add the downloaded files to the newly created website. so that it will make the debugging easier. OR run NuGet Package Manager Command :  PM> Install-Package UmbracoCms Now we can enable the mvc in ~/config/umbracoSettings.config  <defaultRenderingEngine>Mvc</defaultRenderingEngine> by default it will be web forms change it to Mvc. Add another blank MVC4 project to the exist...