Successfully reported this slideshow.

Getting Ignited with EE2

2,217 views

Published on

My talk from EECI2010 US on Getting Ignited with EE2

Published in: Technology
  • Be the first to comment

Getting Ignited with EE2

  1. 1. Getting Ignited with EE2
  2. 2. I’m here to talk about developing add-ons for >{ExpressionEngine}
  3. 3. 1. Client and Developer sign contract
  4. 4. 2. Developer gets to work
  5. 5. 3. Client gets annoying and demanding. (boo)
  6. 6. 4. Developer can’t find it, so he decides to build it.
  7. 7. It’s all over now, baby blue 5. The site is launched
  8. 8. 6. Developer decides to release the add-on to the community
  9. 9. Bottom UP
  10. 10. THE ADD-ON IS CREATED IT IS NECESSARY BECAUSE FOR THE PROJECT TO SUCCEED
  11. 11. I WANTED TO FIND A SOLUTION WOULD THAT ALLOW DEVELOPERS TO JUMP IN
  12. 12. Identify a need
  13. 13. THINK ABOUT EXPRESSIONENGINE
  14. 14. 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
  15. 15. WANT
  16. 16. GET GOING
  17. 17. Epicentre
  18. 18. A group of components plug n fieldtyp xtension m dule accessory
  19. 19. A group of components plug n fieldtyp xtension m dule accessory
  20. 20. PLUGIN {correlates:to:a:template:tag} Basic Text Formatting No settings One-off; like a rolling stone
  21. 21. A group of components plug n fieldtyp xtension m dule accessory
  22. 22. 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
  23. 23. A group of components plug n fieldtyp xtension m dule accessory
  24. 24. MODULE {exp:module:method} POST requests (actions) Backend control panel Custom database fields Advanced, powerful add-ons
  25. 25. A group of components plug n fieldtyp xtension m dule accessory
  26. 26. ACCESSORY Simple tabs in the CP JavaScript -> Mods
  27. 27. A group of components plug n fieldtyp xtension m dule accessory
  28. 28. FIELDTYPE Custom data formatting in channel entries Fieldtype API Google Maps, Taggable, Playa
  29. 29. AN ADD-ON IS A PACKAGE 2
  30. 30. $this->ee =& get_instance();
  31. 31. $this->ee->load->library('twitter'); $this->ee->twitter->call('statuses/user_timeline', array( 'user' => 'jamierumbelow' ));
  32. 32. 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
  33. 33. $this->load->database()
  34. 34. Yo, EE what ya doin’?
  35. 35. ROUTING IS WEIRD
  36. 36. 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');
  37. 37. SOME OF THE HELPERS ARE SCREWED UP
  38. 38. $this->ee->TMPL->parse_variables($tagdata, $vars);
  39. 39. $vars = array( array( 'variable' => 'value' ), array( 'variable' => 'value2' ), array( 'variable' => 'value3' ) );
  40. 40. EE MODULES REQUIRES A LANGUAGE FILE
  41. 41. MSM
  42. 42. EXPERIMENT WITH OTHER’S ADD-ONS
  43. 43. CLIENTS ARE THICK
  44. 44. $addon_success = $this->beta_test->is_run();
  45. 45. DON’T RESENT SUPPORT
  46. 46. GET SELLING
  47. 47. HOPEFULLY...
  48. 48. Thanks! CodeIgniter Community Chieftain http://jamieonsoftware.com @jamierumbelow http://getsparkplugs.com

×