• Like
  • Save
Tienda Development Workshop - JAB11
Upcoming SlideShare
Loading in...5
×
 

Tienda Development Workshop - JAB11

on

  • 701 views

Slideshow presentation for the "Tienda Development Workshop" at JAB11 by Daniele Rosario

Slideshow presentation for the "Tienda Development Workshop" at JAB11 by Daniele Rosario

Statistics

Views

Total Views
701
Views on SlideShare
700
Embed Views
1

Actions

Likes
0
Downloads
4
Comments
0

1 Embed 1

http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Tienda Development Workshop - JAB11 Tienda Development Workshop - JAB11 Presentation Transcript

  • TIENDA DEVELOPMENT JAndBeyond 2011 Workshop
  • Keynote URLhttp://tiny.cc/jab11tienda
  • Summary
  • SummaryWho am I?
  • SummaryWho am I?Who are You?
  • SummaryWho am I?Who are You?What’s this workshop about?
  • SummaryWho am I?Who are You?What’s this workshop about?projects.dioscouri.com : the home for Tienda Development
  • SummaryWho am I?Who are You?What’s this workshop about?projects.dioscouri.com : the home for Tienda DevelopmentTienda Codebase: brief introduction
  • SummaryWho am I?Who are You?What’s this workshop about?projects.dioscouri.com : the home for Tienda DevelopmentTienda Codebase: brief introductionWhat are we going to build?
  • SummaryWho am I?Who are You?What’s this workshop about?projects.dioscouri.com : the home for Tienda DevelopmentTienda Codebase: brief introductionWhat are we going to build?CODING !!!!
  • Who am I?Daniele Rosario
  • Who am I? Daniele Rosario Weble is an italian companythat focuses on Joomla! based websites, internet marketing and web development.
  • Who am I? Daniele Rosario Weble is an italian company Dioscouri Design is athat focuses on Joomla! based Manhattan-based design firm websites, internet marketing specializing in PHP and and web development. MySQL, with a particular emphasis on the open source PHP package, Joomla!
  • Who are You?
  • Who are You?Fresh New Web Developers?
  • Who are You?Fresh New Web Developers?Experienced Web Developers?
  • Who are You?Fresh New Web Developers?Experienced Web Developers?Joomla! Web Developers?
  • Who are You?Fresh New Web Developers?Experienced Web Developers?Joomla! Web Developers?Tienda Web Developers?
  • Who are You?Fresh New Web Developers?Experienced Web Developers?Joomla! Web Developers?Tienda Web Developers?....... What’s a Developer? ( If this is your answer, you’reprobably in the wrong room! )
  • What’s this Workshop about?
  • What’s this Workshop about?Tienda Framework Basics
  • What’s this Workshop about?Tienda Framework Basics Models
  • What’s this Workshop about?Tienda Framework Basics Models Tables
  • What’s this Workshop about?Tienda Framework Basics Models Tables Helpers
  • What’s this Workshop about?Tienda Framework Basics Models Tables Helpers Plugins
  • What’s this Workshop about?Tienda Framework Basics Models Tables Helpers Plugins Template Overrides
  • What’s this Workshop about?Tienda Framework Basics Models Tables Helpers Plugins Template OverridesCoding
  • http://projects.dioscouri.com
  • http://projects.dioscouri.comPublic Space for all Dioscouri.com projects
  • http://projects.dioscouri.comPublic Space for all Dioscouri.com projectsTienda Community dedicated space
  • http://projects.dioscouri.comPublic Space for all Dioscouri.com projectsTienda Community dedicated spaceRegister now!
  • http://projects.dioscouri.comPublic Space for all Dioscouri.com projectsTienda Community dedicated spaceRegister now!Checkout the SVN branch at “branches/jab11”
  • http://projects.dioscouri.comPublic Space for all Dioscouri.com projectsTienda Community dedicated spaceRegister now!Checkout the SVN branch at “branches/jab11”Fire up you IDE! ( or your notepad, if you want! )
  • Tienda Codebase
  • Tienda CodebaseMModels
  • Tienda CodebaseM VModels Views
  • Tienda CodebaseM V CModels Views Controllers
  • Tienda CodebaseM V CModels Views Controllers TTables
  • Tienda CodebaseM V CModels Views Controllers T HTables Helpers
  • Tienda CodebaseM V CModels Views Controllers T H PTables Helpers Plugins
  • Models
  • ModelsAre “Dumb” - they will do what they are told to do.
  • ModelsAre “Dumb” - they will do what they are told to do.No default “State” - default is: return all the results.
  • ModelsAre “Dumb” - they will do what they are told to do.No default “State” - default is: return all the results.Do not interact with $_REQUEST or other data sources
  • ModelsAre “Dumb” - they will do what they are told to do.No default “State” - default is: return all the results.Do not interact with $_REQUEST or other data sourcesFetch the data from the Database
  • ModelsAre “Dumb” - they will do what they are told to do.No default “State” - default is: return all the results.Do not interact with $_REQUEST or other data sourcesFetch the data from the Database $date = JFactory::getDate()->toMysql(); $model = JModel::getInstance( Products, TiendaModel ); $model->setState(filter_published, 1); $model->setState(filter_published_date, $date ); $model->setState(filter_enabled, 1); $products = $model->getList();
  • Tables
  • TablesPowered up version of JTable
  • TablesPowered up version of JTableSupport multiple keys loading
  • TablesPowered up version of JTableSupport multiple keys loadingUsed for fetching single rows from the Database
  • TablesPowered up version of JTableSupport multiple keys loadingUsed for fetching single rows from the DatabaseContains some cool & useful methods
  • TablesPowered up version of JTableSupport multiple keys loadingUsed for fetching single rows from the DatabaseContains some cool & useful methods $order = JTable::getInstance( Orders, TiendaTable ); $foreach( $items as $item ) { $order->addItem( $item ); } $order->calculateTotals(); $total = $order->order_total;
  • Helpers
  • HelpersHelpers perform common actions that do not fit in M, C or T
  • HelpersHelpers perform common actions that do not fit in M, C or T Currency Conversion
  • HelpersHelpers perform common actions that do not fit in M, C or T Currency Conversion Routing
  • HelpersHelpers perform common actions that do not fit in M, C or T Currency Conversion Routing Image Resizing
  • HelpersHelpers perform common actions that do not fit in M, C or T Currency Conversion Routing Image Resizing TiendaHelperImage::resize( ‘product.jpg’ );
  • Loader
  • LoaderTienda has a LOT of classes
  • LoaderTienda has a LOT of classesWe didn’t want to load everything (that is really too much!)
  • LoaderTienda has a LOT of classesWe didn’t want to load everything (that is really too much!)Solution: dynamic loading
  • LoaderTienda has a LOT of classesWe didn’t want to load everything (that is really too much!)Solution: dynamic loadingWhen you need a class, just load it first, and then call it!
  • LoaderTienda has a LOT of classesWe didn’t want to load everything (that is really too much!)Solution: dynamic loadingWhen you need a class, just load it first, and then call it! Tienda::load( ‘TiendaHelperProducts’, ‘helpers.products’ ); TiendaHelperProduct::getGalleryImages( $product_id );
  • LoaderTienda has a LOT of classesWe didn’t want to load everything (that is really too much!)Solution: dynamic loadingWhen you need a class, just load it first, and then call it! Tienda::load( ‘TiendaHelperProducts’, ‘helpers.products’ ); TiendaHelperProduct::getGalleryImages( $product_id );Or just get it, if you are lazy
  • Loader Tienda has a LOT of classes We didn’t want to load everything (that is really too much!) Solution: dynamic loading When you need a class, just load it first, and then call it! Tienda::load( ‘TiendaHelperProducts’, ‘helpers.products’ ); TiendaHelperProduct::getGalleryImages( $product_id ); Or just get it, if you are lazyTienda::get( ‘TiendaHelperProducts’, ‘helpers.products’ )->getGalleryImages( $product_id );
  • Plugins
  • PluginsPlugins that extends our base classes
  • PluginsPlugins that extends our base classes TiendaPluginBase - (template override support & common methods)
  • PluginsPlugins that extends our base classes TiendaPluginBase - (template override support & common methods) TiendaShippingPlugin - (base class and interface for shipping plugins)
  • PluginsPlugins that extends our base classes TiendaPluginBase - (template override support & common methods) TiendaShippingPlugin - (base class and interface for shipping plugins) TiendaPaymentPlugin - (base class and interface for payment plugins)
  • PluginsPlugins that extends our base classes TiendaPluginBase - (template override support & common methods) TiendaShippingPlugin - (base class and interface for shipping plugins) TiendaPaymentPlugin - (base class and interface for payment plugins) TiendaReportPlugin - (base report plugin with helper methods)
  • PluginsPlugins that extends our base classes TiendaPluginBase - (template override support & common methods) TiendaShippingPlugin - (base class and interface for shipping plugins) TiendaPaymentPlugin - (base class and interface for payment plugins) TiendaReportPlugin - (base report plugin with helper methods) TiendaToolPlugin - (multistep support & helper methods)
  • Plugins ( again)
  • Plugins ( again)A LOT of plugin events in Tienda code ( see Tienda Event List )
  • Plugins ( again)A LOT of plugin events in Tienda code ( see Tienda Event List ) 400 +
  • Plugins ( again)A LOT of plugin events in Tienda code ( see Tienda Event List ) 400 +You can do almost EVERYTHING with a simple plugin
  • Plugins ( again)A LOT of plugin events in Tienda code ( see Tienda Event List ) 400 +You can do almost EVERYTHING with a simple pluginTienda has a neat url that allows you to call any plugin method
  • Plugins ( again) A LOT of plugin events in Tienda code ( see Tienda Event List ) 400 + You can do almost EVERYTHING with a simple plugin Tienda has a neat url that allows you to call any plugin method‘index.php?option=com_tienda&task=doTask&element=plugin_name&elementTask=pluginMethod’
  • Plugins( this is the last one, i promise! )
  • Plugins ( this is the last one, i promise! )All Tienda Plugins supports html overrides
  • Plugins ( this is the last one, i promise! )All Tienda Plugins supports html overrides template files in the plugin subfolder “tmpl”
  • Plugins ( this is the last one, i promise! )All Tienda Plugins supports html overrides template files in the plugin subfolder “tmpl” output with $this->_getLayout( $filename );
  • Plugins ( this is the last one, i promise! )All Tienda Plugins supports html overrides template files in the plugin subfolder “tmpl” output with $this->_getLayout( $filename );All Tienda Plugins can have their own MVC
  • Plugins ( this is the last one, i promise! )All Tienda Plugins supports html overrides template files in the plugin subfolder “tmpl” output with $this->_getLayout( $filename );All Tienda Plugins can have their own MVCYou can write extensions for Tienda in just a few hours of work,without compromising the entire system!
  • What are we going to build?Ideas?More than one extension at the same time?
  • Thank You!Daniele RosarioWeble - Dioscouri Design daniele@weble.itdrosario@dioscouri.com twitter.com/Skullbock twitter.com/dioscouri