SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
Getting

Ignited
          with
          EE2
I’m here to talk about
developing add-ons for
>{ExpressionEngine}
1.
Client and Developer
sign contract
2.
Developer gets to
            work
3.
Client gets annoying
and demanding.
(boo)
4.
Developer can’t find
 it, so he decides to
             build it.
It’s all over now,
     baby blue




             5.
              The site is launched
6.
Developer decides to
release the add-on to
      the community
Bottom

UP
THE ADD-ON IS
          CREATED
      IT IS NECESSARY
BECAUSE
      FOR THE
      PROJECT
      TO SUCCEED
I WANTED TO FIND
A SOLUTION
       WOULD
THAT



       ALLOW
DEVELOPERS
TO JUMP IN
Identify
a need
THINK ABOUT
EXPRESSIONENGINE
Web Services




                                  E-commerce
                   jQuery




                              Python
Authentication            C




                          Ruby
Pulp’s Music   Sysadmin




PHP              cURL
                          Cronjobs

                          REST
CodeIgniter
Social Media
Maggie’s Farm     APIs
      BRING YOUR PREVIOUS
      EXPERIENCE WITH YOU
WANT
GET GOING
Epicentre
A group of components




                 plug n
  fieldtyp xtension
        m dule
   accessory
A group of components




                 plug n
  fieldtyp xtension
        m dule
   accessory
PLUGIN
   {correlates:to:a:template:tag}

      Basic Text Formatting

           No settings

   One-off; like a rolling stone
A group of components




                 plug n
  fieldtyp xtension
        m dule
   accessory
EXTENSION
                             Pretty powerful!
                            Hooks into the core:
// -------------------------------------------
// 'channel_entries_tagdata' hook.
// - The times, they are a changin’
//
    if ($this->EE->extensions->active_hook('channel_entries_tagdata') === TRUE)
    {
        $tagdata = $this->EE->extensions->call('channel_entries_tagdata', $tagdata, $row, $this);
        if ($this->EE->extensions->end_script === TRUE) return $tagdata;
    }
//
// -------------------------------------------



                              Custom Processing
                                         Settings
A group of components




                 plug n
  fieldtyp xtension
        m dule
   accessory
MODULE
     {exp:module:method}

   POST requests (actions)

    Backend control panel

    Custom database fields

  Advanced, powerful add-ons
A group of components




                 plug n
  fieldtyp xtension
        m dule
   accessory
ACCESSORY
   Simple tabs in the CP

    JavaScript -> Mods
A group of components




                 plug n
  fieldtyp xtension
        m dule
   accessory
FIELDTYPE
 Custom data formatting in channel entries

               Fieldtype API

       Google Maps, Taggable, Playa
AN ADD-ON IS
A PACKAGE


      2
$this->ee =& get_instance();
$this->ee->load->library('twitter');
$this->ee->twitter->call('statuses/user_timeline', array(
    'user' => 'jamierumbelow'
));
PAGINATION. CODEIGNITER. IMAGES. C
FILE UPLOADING.CODEIGNITER. XML-R
FTP. CODEIGNITER. I18N. CODEIGNITER
SECURITY. CODEIGNITER. CARTS. CODE
HTML TABLES. CODEIGNITER. SESSION
TEMPLATING. CODEIGNITER.ZIP. CODE
PAGINATION.IT’S ALL CI.
            CODEIGNITER. IMAGES. C
FILE UPLOADING.CODEIGNITER. XML-R
FTP. CODEIGNITER. I18N. CODEIGNITER
SECURITY. CODEIGNITER. CARTS. CODE
HTML TABLES. CODEIGNITER. SESSION
TEMPLATING. IT ‘AINT ME BABE. ZIP. CO
PAGINATION. CODEIGNITER. IMAGES. C
$this->load->database()
Yo, EE
what ya doin’?
ROUTING IS

WEIRD
define('TAGGABLE_URL',
BASE.AMP.'C=addons_modules'.AMP.'M=show_module_cp'.AMP.'module=taggable');
define('TAGGABLE_PATH',
'C=addons_modules'.AMP.'M=show_module_cp'.AMP.'module=taggable');
SOME OF THE HELPERS ARE
SCREWED UP
$this->ee->TMPL->parse_variables($tagdata, $vars);
$vars = array(
    array( 'variable' => 'value' ),
    array( 'variable' => 'value2' ),
    array( 'variable' => 'value3' )
);
EE MODULES REQUIRES
A LANGUAGE FILE
MSM
EXPERIMENT
   WITH
OTHER’S
ADD-ONS
CLIENTS ARE

THICK
$addon_success = $this->beta_test->is_run();
DON’T RESENT SUPPORT
GET SELLING
HOPEFULLY...
Thanks!




          CodeIgniter Community Chieftain
          http://jamieonsoftware.com
          @jamierumbelow
          http://getsparkplugs.com

Más contenido relacionado

Similar a Getting Ignited with EE2

Integrating cloud stack with puppet
Integrating cloud stack with puppetIntegrating cloud stack with puppet
Integrating cloud stack with puppet
Puppet
 
Exploiting the newer perl to improve your plugins
Exploiting the newer perl to improve your pluginsExploiting the newer perl to improve your plugins
Exploiting the newer perl to improve your plugins
Marian Marinov
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
Fred Sauer
 

Similar a Getting Ignited with EE2 (20)

Workshop quality assurance for php projects - ZendCon 2013
Workshop quality assurance for php projects - ZendCon 2013Workshop quality assurance for php projects - ZendCon 2013
Workshop quality assurance for php projects - ZendCon 2013
 
Camel on Cloud by Christina Lin
Camel on Cloud by Christina LinCamel on Cloud by Christina Lin
Camel on Cloud by Christina Lin
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php Presentation
 
Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12
 
Workshop quality assurance for php projects - phpbelfast
Workshop quality assurance for php projects - phpbelfastWorkshop quality assurance for php projects - phpbelfast
Workshop quality assurance for php projects - phpbelfast
 
Using Maven2
Using Maven2Using Maven2
Using Maven2
 
60分鐘完送百萬edm,背後雲端ci/cd實戰大公開
60分鐘完送百萬edm,背後雲端ci/cd實戰大公開60分鐘完送百萬edm,背後雲端ci/cd實戰大公開
60分鐘完送百萬edm,背後雲端ci/cd實戰大公開
 
Magento 2 Capistrano Deploy
Magento 2 Capistrano DeployMagento 2 Capistrano Deploy
Magento 2 Capistrano Deploy
 
Ch ch-changes cake php2
Ch ch-changes cake php2Ch ch-changes cake php2
Ch ch-changes cake php2
 
Introduction To Eclipse RCP
Introduction To Eclipse RCPIntroduction To Eclipse RCP
Introduction To Eclipse RCP
 
Final Project Presentation
Final Project PresentationFinal Project Presentation
Final Project Presentation
 
닷넷 개발자를 위한 패턴이야기
닷넷 개발자를 위한 패턴이야기닷넷 개발자를 위한 패턴이야기
닷넷 개발자를 위한 패턴이야기
 
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
 
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterSymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
 
Integrating cloud stack with puppet
Integrating cloud stack with puppetIntegrating cloud stack with puppet
Integrating cloud stack with puppet
 
A Taxonomy of Clustering, or, No Container is an Island
A Taxonomy of Clustering, or, No Container is an IslandA Taxonomy of Clustering, or, No Container is an Island
A Taxonomy of Clustering, or, No Container is an Island
 
Exploiting the newer perl to improve your plugins
Exploiting the newer perl to improve your pluginsExploiting the newer perl to improve your plugins
Exploiting the newer perl to improve your plugins
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
 
KubeCon EU 2016: Kubernetes and the Potential for Higher Level Interfaces
KubeCon EU 2016: Kubernetes and the Potential for Higher Level InterfacesKubeCon EU 2016: Kubernetes and the Potential for Higher Level Interfaces
KubeCon EU 2016: Kubernetes and the Potential for Higher Level Interfaces
 
The Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/PressThe Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/Press
 

Último

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 

Getting Ignited with EE2

Notas del editor