joomla rule engines & metatemplate

37
Joomla Rule Engines and the joy of Meta Stephen Brandon Brandon IT Consulting [email protected]

Post on 21-Oct-2014

1.521 views

Category:

Technology


1 download

DESCRIPTION

This presentation was given at the Joomla & Beyond conference in the Netherlands in May 2011. Watch the video of the complete presentation here: http://vimeo.com/24568855 Note: MetaTemplate Pro has been renamed as "Chameleon" and you can find out more about it at http://www.metamodpro.com/chameleon

TRANSCRIPT

Page 1: Joomla Rule Engines & MetaTemplate

Joomla Rule Engines

and the joy of Meta

Stephen BrandonBrandon IT Consulting

[email protected]

Page 2: Joomla Rule Engines & MetaTemplate

Terms…

•MetaTemplate & MetaMod

•Rule Engine

•Rule Chain

Page 3: Joomla Rule Engines & MetaTemplate
Page 4: Joomla Rule Engines & MetaTemplate

In standard Joomla,how do I…

Page 5: Joomla Rule Engines & MetaTemplate

…modify output?

Page 6: Joomla Rule Engines & MetaTemplate

• plugins act on intermediate or final output

Page 7: Joomla Rule Engines & MetaTemplate

…make completely new types of pages?

Page 8: Joomla Rule Engines & MetaTemplate

• new component defines new types of pages

Page 9: Joomla Rule Engines & MetaTemplate

…alter look and feel of a page?

Page 10: Joomla Rule Engines & MetaTemplate

• new template applied to existing page gives it new look & feel

• selection of modules on the page

• overrides within a template affect HTML output of the component and

modules

Page 11: Joomla Rule Engines & MetaTemplate

So what’s the problem?

Page 12: Joomla Rule Engines & MetaTemplate

•different methods required to affect output in different parts of systeme.g. plugins, overrides, SEO systems

•synchronising and ordering different changes based on the same criteriae.g. for logged-in users, change template of this page and remove certain menu items

•some tasks not available in Joomlae.g. ability to remove individual menu items

Page 13: Joomla Rule Engines & MetaTemplate

Actions to script

Page 14: Joomla Rule Engines & MetaTemplate

Actions to script (cont.)

Page 15: Joomla Rule Engines & MetaTemplate

Case Studies

Page 16: Joomla Rule Engines & MetaTemplate

iContes.com

(unfortunately offline; screencast shown in live presentation)

Page 17: Joomla Rule Engines & MetaTemplate

•use dedicated templates for specific devices (iPhone, iPad)

•use dedicated template for Facebook embedding

•ensure visitors exiting Facebook and viewing site normally return to normal template

Business rulesicontes.com

Page 18: Joomla Rule Engines & MetaTemplate

•pick up Facebook API key from POST request on first page load

•“remember” current context in cookie

•detect URL parameters to trigger return to normal template

•device detection

Cool stufficontes.com

Page 19: Joomla Rule Engines & MetaTemplate

Google Analytics code:<script type="text/javascript">

var _gaq = _gaq || [];

_gaq.push(['_setAccount', 'UA-5246969-1']); // <== put your GA code here

_gaq.push(['_setCustomVar',

1,

'Template',

'ElectricStandard2011' // <== customise here for each template

]);

<?php

$session =& JFactory::getSession();

$info_string = $session->get( 'InfoString', '', 'metatemplate');

if ($info_string != '') {

echo "_gaq.push(['_setCustomVar',";

echo "2,";

echo "'InfoString',";

echo "'$info_string'";

echo "]);";

}

?>

_gaq.push(['_trackPageview']);

(function() {

var ga = document.createElement('script');

ga.type = 'text/javascript'; ga.async = true;

ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';

var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);

})();

</script>

Page 20: Joomla Rule Engines & MetaTemplate

Alexandre Therrien <[email protected]>

Page 21: Joomla Rule Engines & MetaTemplate

•Selling online, private, and correspondence guitar tuition

•Providing a marketing platform for guitar teachers to connect to prospective students

Businessquebecguitar.com

Page 22: Joomla Rule Engines & MetaTemplate

Business Rulesquebecguitar.com

•Determine what people are looking for, using any available cluese.g. Google search query, landing page for campaigns, GeoIP country of origin, language etc.

•Use appropriate templates and modules to support that themee.g. girls/women, metal, electric, Indonesia etc.

•Track conversions in Analytics, noting the template used

Page 23: Joomla Rule Engines & MetaTemplate

Cool stuffquebecguitar.com

•detect search terms in Google referrer string e.g. “metal”; match to template

•GeoIP and language detection; country/language specific templates & modules

•template choices are “sticky”

•RSForm includes info from MetaTemplate in contact e-mails

•Google Analytics tracks template and conversion information

Page 24: Joomla Rule Engines & MetaTemplate

•Demo

Page 25: Joomla Rule Engines & MetaTemplate
Page 26: Joomla Rule Engines & MetaTemplate
Page 27: Joomla Rule Engines & MetaTemplate
Page 28: Joomla Rule Engines & MetaTemplate
Page 29: Joomla Rule Engines & MetaTemplate
Page 30: Joomla Rule Engines & MetaTemplate
Page 31: Joomla Rule Engines & MetaTemplate
Page 32: Joomla Rule Engines & MetaTemplate

Opportunityquebecguitar.com

•Seeking a marketing partner in NL/Europe with interest in music; strong marketing skills

• Contact Alexandre Therrien <[email protected]>

Page 33: Joomla Rule Engines & MetaTemplate

GrowthEngineLocal.com

Page 34: Joomla Rule Engines & MetaTemplate

•GEL sells and implements Local Listing Management for small businessese.g. Google Places, Yelp, Yellowpages, etc

•Affiliate program is used to match clients to a local affiliate

•Site is branded according to local affiliate

BusinessGrowthEngineLocal.com

Page 35: Joomla Rule Engines & MetaTemplate

Business RulesGrowthEngineLocal.com

•Affiliate programme brands the site to a local affiliate, once site identifies location of visitor via GeoIP, zip code (form) or URL

•Branding includes banners, logos, contact numbers, pricing, live chat, menu items etc.

•Once determined, Affiliate–customer link is permanent

Page 36: Joomla Rule Engines & MetaTemplate

•some basic form processing handled in MetaTemplate; can be done on any URL

•affiliate links create permanent linkage, while zip code changes can change affiliate

•GeoIP for zip codes; removing/hiding menu items for some users

•Getting info from AEC

Cool stuffGrowthEngineLocal.com

Page 37: Joomla Rule Engines & MetaTemplate

•Demo

http://growthenginelocal.comand use zip codes: 95008, 94203, or 93401

• http://growthenginelocal.com/?affiliate=1(clear cookies...)http://growthenginelocal.com/?affiliate=2