Transcript

IgnitedGetting

withEE2

I’m here to talk aboutdeveloping add-ons for >{ExpressionEngine}

Client and Developersign contract

1.

Developer gets to work

2.

Client gets annoyingand demanding.(boo)

3.

Developer can’t find it, so he decides to

build it.

4.

The site is launched

5.It’s all over now,

baby blue

Developer decides to release the add-on to

the community

6.

Bottom

UP

THE ADD-ON ISCREATED

BEC

AU

SE IT IS NECESSARY

FOR THEPROJECTTO SUCCEED

I WANTED TO FINDA SOLUTION

THAT WOULD

ALLOWDEVELOPERS

TO JUMP IN

Identifya need

THINK ABOUTEXPRESSIONENGINE

PHPCodeIgniterSocial Media

cUR

L

Web Services

E-comm

erce

REST

Maggie’s Farm

Cronjobs

Pulp’s Music Sysadmin

APIs

PythonRuby

AuthenticationjQuery

C

BRING YOUR PREVIOUS EXPERIENCE WITH YOU

WANT

GET GOING

Epicentre

A group of components

m

dulextension

plug nfieldtyp

accessory

A group of components

m

dulextension

plug nfieldtyp

accessory

PLUGIN{correlates:to:a:template:tag}

Basic Text Formatting

No settings

One-off; like a rolling stone

A group of components

m

dulextension

plug nfieldtyp

accessory

EXTENSIONHooks 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

Pretty powerful!

A group of components

m

dulextension

plug nfieldtyp

accessory

MODULE{exp:module:method}

Backend control panel

Custom database fields

Advanced, powerful add-ons

POST requests (actions)

A group of components

m

dulextension

plug nfieldtyp

accessory

ACCESSORYSimple tabs in the CP

JavaScript -> Mods

A group of components

m

dulextension

plug nfieldtyp

accessory

FIELDTYPECustom data formatting in channel entries

Fieldtype API

Google Maps, Taggable, Playa

AN ADD-ON ISA PACKAGE

2

$this->ee =& get_instance();

$this->ee->load->library('twitter');$this->ee->twitter->call('statuses/user_timeline', array( 'user' => 'jamierumbelow'));

PAGINATION.CODEIGNITER. IMAGES. CODEIGNITER.FILE UPLOADING.CODEIGNITER. XML-RPC.FTP. CODEIGNITER. I18N.CODEIGNITER.SECURITY.CODEIGNITER.CARTS. CODEIGNITER.HTML TABLES. CODEIGNITER.SESSION.CODEIGNITER.TEMPLATING. CODEIGNITER.ZIP. CODEIGNITER.PAGINATION.CODEIGNITER. IMAGES. CODEIGNITER.FILE UPLOADING.CODEIGNITER. XML-RPC.FTP. CODEIGNITER. I18N.CODEIGNITER.SECURITY.CODEIGNITER.CARTS. CODEIGNITER.HTML TABLES. CODEIGNITER.SESSION.TEMPLATING. IT ‘AINT ME BABE. ZIP. CODEIGNITER.PAGINATION.CODEIGNITER. IMAGES. CODEIGNITER.FILE UPLOADING.CODEIGNITER. XML-RPC.

IT’S ALL CI.

$this->load->database()

Yo, EEwhat 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

OTHER’SWITH

ADD-ONS

THICKCLIENTS ARE

$addon_success = $this->beta_test->is_run();

DON’T RESENT SUPPORT

GET SELLING

HOPEFULLY...

Thanks!

CodeIgniter Community Chieftainhttp://jamieonsoftware.com

@jamierumbelow

http://getsparkplugs.com


Top Related