Presentation is loading. Please wait.

Presentation is loading. Please wait.

Tridion and PHP Don’t Mix …or Do They?. Abstract Using PHP and Dynamic Publishing, the considerations and the limitations of using PHP via OData v.s..NET.

Similar presentations


Presentation on theme: "Tridion and PHP Don’t Mix …or Do They?. Abstract Using PHP and Dynamic Publishing, the considerations and the limitations of using PHP via OData v.s..NET."— Presentation transcript:

1 Tridion and PHP Don’t Mix …or Do They?

2 Abstract Using PHP and Dynamic Publishing, the considerations and the limitations of using PHP via OData v.s..NET or Java. I will show some sample code and discuss the kind of TCDL handlers that need to be developed, and the difficulty/ease of doing so.

3 About Us A lot of credit goes to Jon Primmer for getting much of the technical detail Feel free to reach out: – Jon Primmer: @jonnybeemud ; j.primmer@contentbloom.com – Nick Roussakov: @nroussakov ; nick@contentbloom.com

4 Why PHP, all of a sudden? We recently had a few customers request Tridion integrations with their PHP front-end applications. PHP is free and has a plethora of open-source products starting to seep into the enterprise. For example: – Magento e-comm platform – Drupal – Wordpress – SugarCRM – Silverstripe – CodeIgniter MVC framework – Has frameworks to do just about everything (even LINQ - http://phplinq.codeplex.com/)http://phplinq.codeplex.com/ PHP version 5.3 has very robust OOP capability Coding PHP doesn’t suck any more. Eclipse with IntelliSense works great Xdebug

5 So how do you integrate a PHP solution with SDL Tridion? Our first thought: “Static Publishing” – Render any kind of text file and place it on the host server. – Get creative with “include” files. For example, a Page in Tridion with a set of Component Presentations published as an “include” file gives another level for nesting Component Presentations. What if we need to have the ability to target content based on, say, taxonomy (keywords or custom metadata)? – Have taxonomy-driven navigation – Quicker (more efficient) way to update and publish content – Share published content from a single source … and so we explore Tridion’s Dynamic Content Delivery

6 Dynamic Content Delivery Options for non-Java/.NET Web Apps Traditionally, Tridion’s Dynamic Delivery was available for Java and.NET -based applications This meant having to create a custom wrapper around the Java or.NET APIs With SDL Tridion 2011 a new Content Delivery Web service is available (a.k.a. Tridion Odata) (There is also REL)

7 "You mean I finally have frickin' sharks with frickin' laser beams attached to their frickin' heads?"

8 Odata Sample Output

9 Consuming the Dynamic Content In our page template we frequently use this code: When the output format and delivery target language are set to REL, we get the following on our php page:

10 Consuming the Dynamic Content (cont.) All we need now is a Tridion Building Block that will catch this during publishing and replace it with PHP code to call oData

11 Optimizing oData Calls Odata querying just the right amount of data: – Does filtering via LINQ require sending too much across the wire (e.g. /ComponentPresentations returns all the CPs from the Broker and filtering on application side)? No. See http://msdn.microsoft.com/en-us/library/ee622463.aspxhttp://msdn.microsoft.com/en-us/library/ee622463.aspx What about with Java or PHP? – Need to fine-tune our Odata queries using $filter, $expand – E.g. Get Component Presentations where CustomMeta key = “foo”, such that the fewest number of HTTP Requests go out. The answer: caching – Tridion’s Cache Channel Service on top of oData – A caching appliance – Application-level caching, e.g. CodeIgniter Cache (https://github.com/philsturgeon/codeigniter-cache)https://github.com/philsturgeon/codeigniter-cache

12 Make the Odata Query as Drilled Down as Possible QueryOne: ComponentPresentations based on component custom meta field ------------------ http://localhost:82/odata.svc/CustomMetas?$filter=StringValueeq%20%27Golf%27&$expand=Co mponent/ComponentPresentations QueryTwo: All custom meta of componet presentations based on a specific template ------------------ localhost:82/odata.svc/ComponentPresentations?$filter=TemplateId eq 666 and publicationId eq 8&$expand=Component/CustomMetas

13 Sample Output

14 What About Add-on Modules and Products? Tridion Experience Manager (the new SiteEdit) Profiling and Personalization Fredhopper

15 Tridion Experience Manager The staging site runs in an iFrame, so technically it can be on any language platform (PHP, python, whatever) The caveat is Session Preview, which requires the staging site to be able to run Java (Content Delivery API and Ambient Data Framework jars). – Possible to run PHP on a Java App server, e.g.: – Tomcat AJP Connector: http://tomcat.apache.org/tomcat- 3.2-doc/tomcat-apache-howto.htmlhttp://tomcat.apache.org/tomcat- 3.2-doc/tomcat-apache-howto.html – or PHP to Java Bridge: http://php-java- bridge.sourceforge.net/doc/tomcat6.phphttp://php-java- bridge.sourceforge.net/doc/tomcat6.php – This is still in experimental stages

16 Profiling and Personalization Tridion offers the ability to set up Target Groups based on keyword tracking and other criteria Unfortunately this requires storing cookies on the client machine. The Contenet Delivery Web Service can’t do that. Good news: we can build our own…

17 Profiling and Personalization A custom TCDL handler can be created to translate the target group syntax into PHP code, which talks to the Broker

18 Fredhopper SmartTarget is the product that integrates Fredhopper with Tridion. The Ambient Data Framework is used in between For PHP integration, a custom solution can be built on top of Fredhopper’s web service APIs. Probably can’t make it as good as SDL’s ADF, but possible to make it good-enough for the immediate functionality required.

19 Thanks Questions?

20 About Content Bloom Offices in Toronto, Brussels and UK Certified SDL Tridion consultancy and partner Strong knowledge and deep roots within the SDL Tridion product suite


Download ppt "Tridion and PHP Don’t Mix …or Do They?. Abstract Using PHP and Dynamic Publishing, the considerations and the limitations of using PHP via OData v.s..NET."

Similar presentations


Ads by Google