one|content : joomla on steroids
DESCRIPTION
The first ever public demo of one|contentTRANSCRIPT
![Page 1: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/1.jpg)
one|contentjoomla! on steroids
j and beyond 2010paul delbar, delius
![Page 2: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/2.jpg)
objectives
explain why we built one|contentexplain the basic conceptsshow a simple demotalk about advanced featuresget feedback, comments, suggestions, …
![Page 3: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/3.jpg)
why ? tell me why !
![Page 4: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/4.jpg)
example: mgxbymaterialise.com
complex product catalog website
![Page 5: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/5.jpg)
example: axolot.nl
IT training supplier
![Page 6: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/6.jpg)
example: 11.be
consortium of non-profits working in the south
![Page 7: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/7.jpg)
example: 11.be
everything is related to most other things
![Page 8: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/8.jpg)
example: hdp.be
corporate site for HR services company
![Page 9: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/9.jpg)
complex content construction strategies
content projection (everything is an article)makes it difficult for customers to manage content
hacking com_contentsimply never a good idea
developing a number of com_whatevercontent takes on average 2 days per content typevery flexible, but complex to build and hard to maintain
use a CCK extensiondo not address content relations very well (sic)
![Page 10: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/10.jpg)
what if we could …
build structured content sites in a declarative styleusing concepts the customer understands alreadywith minimal codingintegrating content from any data source
using a toolkit that is CMS-agnosticis suited for an integrator (not for end-users)is mildly extensible (but not a framework)
![Page 11: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/11.jpg)
the one|content vision
really everything, likearticlescountriesspeakersinventory itemsorderssearchesusers
content-based navigationoften the most logical way
content-based viewsbuild a consistent UIOO view concept
everything is content. content is everything.
![Page 12: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/12.jpg)
the content cloud
corporate website
campaignwebsite intranet divisional
website application
local data
shared contentnon-CMS data
![Page 13: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/13.jpg)
the basic concepts
![Page 14: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/14.jpg)
representing real-world concepts
![Page 15: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/15.jpg)
schemes
a scheme defines the meta-structure of an item
attributes individual data values, not visual types !
![Page 16: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/16.jpg)
model
a model is an instance of a schemehas specific values for each attribute
comparison using com_content article view : shows one modelcategory blog view : shows a list (selection) of models
![Page 17: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/17.jpg)
relations
in real life, stuff is related to other stuffdifferent types of relations
categorization : categories, topicscomposition: regions, subregions, countriesreflexive: hierarchies, graphs
other projection techniquessections, categories, ...tags
![Page 18: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/18.jpg)
view
an OO approach to viewsfor every scheme, build (at least)
a detail view : introducing nanoScripta list view : link to the detail view
admin viewlist viewedit view
![Page 19: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/19.jpg)
controller
controller taskslistdetailedit/adddelete
how to access the content com_onemod_nanonano content plugin and one package
![Page 20: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/20.jpg)
MVC elements
let’s demo !
![Page 21: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/21.jpg)
nanoScript basics
![Page 22: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/22.jpg)
overall principle
PHP-level library (autoloaded)similar to Smarty (but better, haha)
any content can contain nano tags (eg. HTML, XML, ...)the parser constructs a script execution treeuse: instantiate, load script, inject data, execute
<?php
$ns = new nScript();$ns->load( ‘template.html’ );$ns->set( ‘conference’, ‘J and Beyond’ );
echo $ns->execute();
![Page 23: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/23.jpg)
example
![Page 24: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/24.jpg)
tags and expressions
unary tagsbinary tags (closures)can be extended (class hierarchy)
used for things like {tidy}…{/tidy}
{set release = 1.6}
{if release > 1.5} <h1>Congratulations on releasing version {= release} !</h1>{else} <p class="late">Still at 1.5 !</p>{endif}
![Page 25: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/25.jpg)
variables
handles a number of formatsscalar variablesarraysobjects
expressions
The temperature is {= temp} degrees.
The second competitor's name is {= competitor[1]}.
The address is {= person->address}.
The order total is {= order->net + order->vat}.
![Page 26: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/26.jpg)
control structures
the usualif, then, elsewhile, endwhileloop
{if count(entries) > 0} <ul>The nominees for extension of the year are {loop entries e} <li>{= e->name]}</li> {endloop}</ul>{endif}
![Page 27: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/27.jpg)
structured HTML
section tag@ tagnamespaces
{section QUESTION title} <div class="question"> <h1 class="question">{= title}</h1> </div>{endsection}
<img src="{@ icon:question}" />{@ QUESTION "Why did we develop one ?"}
![Page 28: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/28.jpg)
nanoScript search path
sets folder sequence / hierarchy to checkapplications of it
could be used to implement template overrideslanguage-dependent script loading
![Page 29: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/29.jpg)
packages
makes nanoScript extensible withhelper functionalityJoomla functions
{if count(entries) > 0} <ul>The nominees for extension of the year are {loop entries e} <li>{= e->name]}</li> {endloop}</ul>{endif}
![Page 30: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/30.jpg)
custom nodes
extend the syntax with unary or binary nodesuseful examples
tidyExcel or PDF generator
<p>Comment:</p><div> <h1>{= entry->title}</h1> {tidy} {= entry->introText} {= entry->fullText} {endtidy}</div>
![Page 31: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/31.jpg)
the nanoScript content plugin
placed inside an articlesimilar to a content plugin, but more genericmakes content extremely dynamic
how would you use this ?show content depending on the user access level
access user info using a packageinclude one|content views
![Page 32: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/32.jpg)
advanced topics
with real-life examples
![Page 33: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/33.jpg)
more controller stuff
selecting modelshow does the select task work ?the query object
influencing selectionsfiltersquerying multiple related schemes
what about performance (caching, joins, …)building a custom model factory
![Page 34: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/34.jpg)
building a multi-scheme search form
similar to the edit formdifferent widgets
can include operators (like, begins with, …)find items related to one or more of …
example from MGX
![Page 35: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/35.jpg)
permissions : an open permissions system
controller permissionsform permissionsbuild your own terms
![Page 36: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/36.jpg)
behaviors
search and the search plugin (search behavior)slugcalendargooglerss
other examples of behaviors publishversioningmultilingualwikiclass
![Page 37: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/37.jpg)
stores and factories
data resides in different placesthe Joomla/Nooku databaseother MySQL tablesSQL Server, Oracle, …behind a SOAP service
schemes and storesseparates the logical and physical layers
stores and strategiesencapsulate the data-level adapter
![Page 38: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/38.jpg)
custom controllers and admins
framework-like extensionstask-oriented
duplicatepublish
wizard-likeduplicateimport/export
build semantic admins
![Page 39: one|content : joomla on steroids](https://reader033.vdocument.in/reader033/viewer/2022042813/5476fca8b4af9f300b8b46c8/html5/thumbnails/39.jpg)
thanks !