ExpressionEngine 2:
  Total Domination!




          #expressionengine
Wilkommen, Amigos.
Panel
Released on Dec
2nd, 2009
Built on the CodeIgniter
Framework
Is a powerful, friendly
content management
system
Snippets of
ExpressionEngine
We’re not here
to talk sh*t
‘bout
Wordpress
We’re not here to
discuss pay vs. free
software
We’re not
being paid by
EllisLab*
* We’ll TOTALLY take EllisLab’s
  precious, precious money.
“Content Management is about storing and
retrieving your content.”

                     - Barack Obama
ExpressionEngine excels at content entry.


                like a fox

              ...a sexy fox
We create a FORM
  assign it to a channel
and enter CONTENT
EE2 Video Upload Form
   (theoretically)
Flynn Lives
Form Fields.
  “Is there anything more exciting
than form fields? No. There is not.”
                - Zeus, Lord of Olympus
Forms are created by little pieces called



Fieldtypes
Fieldtypes Native to EE2:
*   File
*   Select Drop-down
*   Relationship
*   Checkboxes
*   Multi Select
*   Radio Buttons
*   Textarea
*   Text Input
*   Love™*
        * May be lacking from your EE2...or stalled, horrible relationship.
Global Field Settings
Sample Fieldtype Settings
   File:


   Relationship:



   Select Dropdown:
Content Entry Form = Group of Fieldtypes
Here’s a field group




  It’s pretty sweet.
          We named it “video”.
“Let’s assign our field group to a channel. It
will be so awesome, everyone will get
pregnant.”



                        - Bill & Ted, Historians
*guitar solo*
Channels are content of the same type.
“We enter content.”
             - Optimus Prime
AMAZING
VIDEO FORM
Create your field group.
Assign it to a channel.
Enter content.




                          Booyah!
tw. @kennymeyers
e. kenny.meyers at
{live event
   Ryan Irelan
Riot Racing


• riot racing website screenshot
• talk about what they are and what they
  asked us to do
{compo
{compo
 ★Twitter
 Updates
{compo
 ★ Twitter
 Updates
 ★ Twitpics
{compo
 ★ Twitter
 Updates
 ★ Twitpics
 ★ Twitvids
{ste
{ste
★ Create Race in
Control Panel
{ste
★  Create Race in
Control Panel
★ Toggle Entry
Status on Race Day
{code}
{code}
{code}
{code}
@ryanirelan
   eeinsider.com
eequickstartguide.c
        om
Starter Files
        For
ExpressionEngine 2
  (the quickening)
Starter Files
        For
ExpressionEngine 2
     (the quickening)




...I’ll be here all day folks
What are Starter Files?
What are Starter Files?

    A reusable set of folders, files,
         and code snippets -
       used to begin a project.
Front-End Template
        Starter Files

       Every project is different.
And every project is a little bit the same.
Front-End Template
   Starter Files
ExpressionEngine
           Starter Files
      Every EE project is different.
And every Simple Search Form is a little bit
               the same.
Starter Files
http://starterfiles.com
http://starterfiles.com
Search Forms
http://starterfiles.com
Search Results
http://starterfiles.com/search/results
Advanced Search Form
http://starterfiles.com/search
No Search Results
http://starterfiles.com/search/no-results
Contact Page
http://starterfiles.com/contact
Content Page
http://starterfiles.com/about
Login Functionality
http://starterfiles.com/
Login Functionality
http://starterfiles.com/login
News Landing
http://starterfiles.com/news
News Detail
http://starterfiles.com/news/detail
News Detail
http://starterfiles.com/news/detail
Twitter Timeline
http://starterfiles.com/
Heading Logic
http://starterfiles.com/




inc/header
So How Can I Use These?
So How Can I Use These?

   EE 1 : Save templates as flat files.

   EE 2 : Create templates from files!
Download
http://starterfiles.com/download
http://starterfiles.com
    @jennlukas
    http://jennlukas.com
ACCESSORIES
Handbags for your EE Control Panel.
What are
Accessories?
What are
     Accessories?
• Handbags
What are
      Accessories?
• Handbags
• Persistent, or not
What are
      Accessories?
• Handbags
• Persistent, or not
• 1337 hax0rs
Anatomy
  (ew)
Victory!
Victorious Again!
Boring.
Google Analytics
Add-on Updater
Pimp Your Book
Lots more...
Lots more...
• Screencasts
Lots more...
• Screencasts
• One-off controls
Lots more...
• Screencasts
• One-off controls
• Support form
Lots more...
• Screencasts
• One-off controls
• Support form
• Site Stats
THANKS
   @mrwarren
begoodnotbad.com
EE2 API
What’s an API


“Documented” way of interacting with an
application
Standard way of interacting with data
  That means it won’t change, at least not
  without notice
What is the EE2 API?
Five Children

API
 Categories
 Channels
 Entries
 Fields
 Templates
Five Children

API
 Categories
 Channels
 Entries
 Fields
 Templates
The Parent Class


Notable Methods
 instantiate()
 _set_error()
 _unique_url_title()
The Entries Class


Notable Methods
 entry_exists()
 submit_new_entry()
 update_entry()
 update_related_cache()
Advantages


Validation
Automatic date setting
Automatic site_id setting
Automatic high ASCII conversion
Advantages



Automatic relationship updates
Automatic cache busting
Hook execution
Let’s Use It
Instantiate
Run
Return
That’s it.
  Seriously.
Why I’m Excited



1. Extensions can co-exist now
2. Upgrades will be smoother
@markhuot
Questions?

@jennlukas             @kennymeyers




@mrwarren                  @markhuot
             @ryanirelan

ExpressionEngine 2: Total Domination

Editor's Notes

  • #45 Twitee module by Shapeshed (not yet available for 2.0) Could use Twitter Timeline -- free plugin converted to EE 2
  • #46 Using magpie plugin to pull in Twitpic RSS feed for Riot Racing. Using a bit of PHP to make things pretty.
  • #47 Custom plugin that uses the Twitvid API to pull in latest videos. Originally written for EE 1.6.x but now available for EE 2.0
  • #50 I will be talking about these wonderful things called Starter Files and how you can use them for ExpressionEngine 2
  • #51 I will also be making some bad overused jokes
  • #52 So what are starter files. Pretty simply they are
  • #53 a reusable set of folder, files and code snippets that we use to begin the start of a project.
  • #54 Daniel Mall, Mark Huot and I began using starter files at happy cog a couple of years ago to kick off all our template builds. We were seeing similarities between each of our projects and we started using them to save a bit of time when it came to reusable code and folder structures.
  • #55 So here’s an example of what they can look like - So for instance, we always use CSS files on our sites, so there’s a c folder that we start with on every project that holds our commonly used CSS files - such as one for ie and one for print styles. As well as some empty include files like a header and a footer - that we will use to markup those global sections. So even though we might not know the specific styles that are going to go in those css files or we don’t know what kind of navigation markup will go into our header file, 98% of the time, we will need these files created to fill in with our project specific markup.
  • #56 Once I started working with ExpressionEngine, I found more and more the need to write some of the same code I had written previously. Things like contact forms and search forms and search results. There all very common components from project to project. I was consistently going to the user guide or to past projects I worked on to grab the some of the same code snippets for almost every project I worked on.
  • #57 So with that in mind, I created starterfiles.com to demo these ExpressionEngine2 starter file templates.
  • #58 starterfiles.com is a small site built on ExpressionEngine 2 that features these components that I have often found myself needing to reuse from project to project. Things like...
  • #59 a Simple search form - I’d say pretty close to 100% of sites Ive worked on have had some type of search. This search form has an example of pre-filled values in it to provide some additional context for users. I’ve also included some JavaScript to clear out the form on focus and reset the text if there is no change.
  • #60 Search Results page That also has a link to an Advanced Search Page
  • #61 For this search form, Ive updated the example from the user guide to have a bit cleaner fieldsets as well as I’ve added labels for all the fields for added accessibility. Lastly for this one, Ive removed the table markup that the user guide suggests.
  • #62 No Results page for searches that don’t return any results. But also includes a suggestion for the user to try the advanced search.
  • #63 A contact page using the email contact form. Again, this is another example to where Ive added labels for the inputs and text areas.
  • #64 An about page that can be repurposed for other basic content pages that has a corresponding Page Channel and Custom Fields for the page channel
  • #65 Login functionality that lives in the header can be accessed from any page with ease using a JavaScript based popup. This popup is using the jquery load method to pull in the content from a login page.
  • #66 And its done this way so the login page exists For users without JavaScript enabled who will not get the popup.
  • #67 A news landing page with pagination based on dynamic content from the News Channel. This could also be a basis for a site blog.
  • #68 Theres a news detail page template for all news or blog entries that feature the full text for the entry. Also on these news detail pages is the code for comments and the commenting form
  • #69 Also on these news detail pages is the code for comments and the commenting form. You’ll notice the image in the comment section - I’ve included the code for the gravatar plugin for this. Ive also included the built in captcha
  • #70 the twitter_timeline plugin is also included. and currently is featuring the public timeline. You’ll also see that the CSS3 styles included for talk bubbles.
  • #71 Ive also added some simple logic to make the site logo the h1 on the home page and a strong tag on the others - in order to let the page headings on sub pages be the h1
  • #73 With ExpressionEngine2, All I have to do is copy these templates to my default site folder, load up the template manager and hit refresh and these templates are ready to go.
  • #74 with the Starter Files can be as detailed or general as you like. If you need different types of fieldsets or listing styles - or prefer your heading structure different - all these things can be tailored to how you code your projects. The Starter Files that Im showing in these slides are available to download for free on the starter files site - and you can use all of the parts or some of the parts to start off your ExpressionEngine 2 site as well!