Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The "What, Why, What" of ExpressionEngine - Tec...

The "What, Why, What" of ExpressionEngine - TechMeetup Glasgow - Pecha Kucha

A Pecha Kucha presentation on ExpressionEngine, why we use it and some of its core features.

Avatar for Steven Grant

Steven Grant

August 28, 2013
Tweet

More Decks by Steven Grant

Other Decks in Technology

Transcript

  1. OH HAI! I’M STEVEN GRANT I’m the co-owner, front-end developer

    for GHIJK - we pronounce it ‘gee-k’ @stevieg_83 Good evening folks. As the slide says, I'm Steven Grant and I'm the co-owner and front-end developer at GHIJK. It's a small web company I run with my wife from our home on the south side of the city. You can find me on Twitter @stevieg_83 which you might want to note for my giveaway later
  2. THE “WHAT, WHY & WHAT” OF EXPRESSIONENGINE by Steven Grant

    @ Tech Meetup - 28th Aug 2013 My topic tonight is the "what, why, what" of ExpressionEngine. As much as is possible in 20 seconds per slide, I'll try to give an overview of ExpressionEngine, why it's our goto platform at GHIJK and an overview of some of its features.
  3. ➡ Content management system ➡ Built by EllisLab ➡ Runs

    with PHP/MySQL with CodeIgniter ➡ Commercial (license $300 USD) ➡ Current version is 2.7.0 ABOUT EXPRESSIONENGINE For us, ExpressionEngine is more than just another content management framework, it has more strings to its bow than just pages & news. It's owned by EllisLab and built on the CodeIgniter PHP framework that, for the time being, they also own. It's a commercial product that currently sells for $300 USD per license.
  4. WHO USES EXPRESSIONENGINE? Some say you can judge a product

    by the company it keeps. ExpressionEngine powers the websites of Alistapart, Barack Obama, BMI Music, Google Zagat and everyone's favourite X- Factor contestant, Leona Lewis. The EllisLab website also indicates usage by Adobe, Apple, BBC, Cisco, Nike & Warner Brothers, to name a few.
  5. WHY GHIJK USE EXPRESSIONENGINE? ➡ Commercial on open source framework

    (CodeIgniter) ➡ Doesn’t smell ➡ Great community #eecms & Stack Exchange ➡ Flexible ➡ Extendible ➡ Supported (from $50 per month) As to why it's our goto platform at GHIJK. Although it's a commercial product, the fact it runs on CodeIgniter means we can modify the core if required. I've said it doesn't "smell" and what I mean here is that it's hard to tell from the source if ExpressionEngine is powering the site. We have a great community, it's flexible, extendible and optionally supported by EllisLab.
  6. WHY GHIJK USE EXPRESSIONENGINE? ➡ Bootstrapped setup ➡ Gives clients

    peace of mind ➡ Greater project value compared to WordPress etc. ➡ Makes us look good Our bootstrapped setups mean we can deploy a baseline framework for certain types of site pretty quickly. We encourage clients to value their websites and when their software is free, we've found organisations don't value it the same way as a paid product. We've also found greater project values with ExpressionEngine compared to WordPress, Drupal etc. We've also yet to get a project where ExpressionEngine hasn't served us - but that time WILL come.
  7. COMMERCIAL EXPRESSIONENGINE ➡ You aren’t charging enough ➡ If client

    baulks at $300 - walk away ➡ Comprehensive docs ➡ Puts food on the table of the devs ➡ Commerical mindset ➡ Viable addon business model ➡ Conversations with other developers usually start with "but ExpressionEngine is $300". If you think $300 is a lot, I'd suggest you're not charging enough for your services. If a client thinks the same, I'd suggest it's better to walk away from that project from experience. A commercial product also supports the developer team behind - and why shouldn't they get paid? The commercial mindset behind ExpressionEngine has also assisted the addon business model for many, and I'll touch on that later.
  8. FEATURES OF EXPRESSIONENGINE ➡ Blank canvas - assumes nothing ➡

    Templates ➡ Channels ➡ Custom fields ➡ Segment variables ➡ Conditionals So as we look at some of the core features of ExpressionEngine: immediately it gives us a blank canvas. It assumes nothing on install, no code, no data and no structure. It has a lovely template syntax which I loved as a front-end guy. It stores its data in channels which contain custom fields. We can access URL segments in code, run conditionals and have pretty solid member management as standard.
  9. TEMPLATES IN EXPRESSIONENGINE ➡ Templates are in groups ➡ Kind

    of like folders on server ➡ Builds url structure (natively): http://domain.com/ template_group/template/ url_title Templates in ExpressionEngine, by default, help define our URL structure. Templates are organised into groups which create the 1st segment of our URLs. They're a bit like folders on the web server. Our 2nd segment is generally the template within the group. There are some advanced techniques for templating but this is the general starting point for newbies.
  10. TEMPLATES IN EXPRESSIONENGINE ➡ Building blocks ➡ Contain global vars,

    snippets & other templates ➡ Can contain HTML, JS, PHP etc ➡ pass dynamic vars into code The templates themselves can be accessed and edited via the control panel (which we never do). It's generally accepted best practise to save templates as files for editing in your code editor. Templates themselves contain HTML, JS, ExpressionEngine tags and even PHP but we'd always recommend extrapping that to an addon for security.
  11. TEMPLATE TYPES OF EXPRESSIONENGINE ➡ Page ➡ CSS ➡ RSS

    ➡ JavaScript ➡ Static ➡ XML ExpressionEngine has 6 different template types. We have a page which is what we use mainly, CSS which we generally don't run through EE, RSS for feed syndication, JavaScript which again we don't usually run through EE (there are exceptions), Static files which can be useful for embedding in other templates and finally, XML which we have used historically to content manage a website built in Flash - don't hold that against me - I did say it was a while ago!
  12. TEMPLATES IN EXPRESSIONENGINE ➡ global vars ➡ just over 30

    standard global vars ➡ create user defined global vars - reusable code ➡ snippets ➡ user defined - EE tags & PHP ExpressionEngine has 2 other types of templates in Global Variables and Snippets. Both are kind of the same although Snippets are parsed earlier than Global Variables and can contain ExpressionEngine tags and PHP. Global Variables are better for reusable content and there are just over 30 standard Global Variables by default.
  13. CHANNELS & CUSTOM FIELDS IN EXPRESSIONENGINE ➡ Biggest strength ➡

    Custom data models (no addons) ➡ Many fieldtypes ➡ text, file, relationships, wysiwyg, grid, form input + loads of 3rd party For us, ExpressionEngine's biggest strength lies in Channels, Custom Fields and Custom Statuses. Channels are effectively your database tables and the Custom Fields would be the columns in those tables. Your Custom Fields are 100% - out of the box, no PHP or other tools required. Natively we have text, file, relationship, grid and form input Fieldtypes. There are also a ton of 3rd party fieldtypes that extend their capacity even further.
  14. CONDITIONALS & SEGMENTS EXPRESSIONENGINE http://domain.com/blog/article/entry http://domain.com/blog/article/entry http://domain.com/blog/article/entry {exp:channel:entries   url_title=”{segment_3}”}

      {cf_news_body} {/exp:channel:entries} As I touched upon earlier, we can use parts of our URLs in template code. In this example, "blog" is segment 1, "article" is segment 2 and the "entry" is segment 3. We can access all of these segments in our template code which can give us great power on the front-end for dynamic filtering, vanity URLs and more.
  15. CONDITIONALS & SEGMENTS EXPRESSIONENGINE {if  logged_in} <h1>Hi  {username}</h1> {/if} {if

     logged_out} <h1  style=”color:red”>Please  login</h1> {/if} ExpressionEngine's syntax makes it real easy for us run conditional logic within our template code. Within conditional logic we can things including Global Variables and Segment Variables. Using conditional logic can be used for many things from detecting a logged-in user or detecting how many entries are being returned from a particular channel/channels.
  16. CONDITIONALS & SEGMENTS EXPRESSIONENGINE Parse order WTH!!! http://d.pr/9fJO Low Schutte

    One thing that can be frustrating with ExpressionEngine at times is the Parse Order. Unlike PHP, ExpressionEngine doesn't parse top-down for some reason which can trip you up at times, and certainly did for me 8 years ago and still now from time to time. Thankfully though, this guy, Low Schutte from The Netherlands put together this handy PDF on the Parse Order and is still pinned on my office wall.
  17. ADDONS IN EXPRESSIONENGINE One of ExpressionEngine's other strengths is its

    capacity for 3rd party addons. It's been built to be extendible and there are many developers, who make a good living just building addons for ExpressionEngine that enhance our toolbelt. You can of course build your own addons if you have some PHP chops and some CodeIgniter knowledge. It's very often quicker to buy a $100 addon than re-invent the wheel - and your aim should be to be productive & profitable - but sometimes you need something completely custom.
  18. LEARN EXPRESSIONENGINE If you're interested in learning ExpressionEngine, there are

    a number of solid resources I'd point you in the direction of. Train-EE.com was my goto way back. We now have EE Stack Exchange, EE Insider, Devot-EE and Mijingo. EllisLab also offer a core ExpressionEngine license which offers a stripped down version of the software, but with enough to get to grips with the basics. You could also join me in Portland in October for the US ExpressionEngine Conference - but you'd need to cover your own conf ticket and flights.
  19. USE THE TOOLS THAT MAKE YOU PROFITABLE ➡ ExpressionEngine ➡

    Statamic ➡ WordPress ➡ Rails ➡ Django ➡ Craft While ExpressionEngine is the most used tool in our belt, it is one of many. It has its strengths and its weaknesses. Generally though, it allows our business to be profitable and productive while enjoying the work we're doing. Bottom line, use the tools that make you productive and profitable: Statamic, Craft, Rails, WordPress, Django, whatever.
  20. EXPRESSIONENGINE SWAG GIVEAWAY what music celebrity did EllisLab owner Rick

    Ellis build the first version of ‘ExpressionEngine’ for? In closing, EllisLab have given me an ExpressionEngine license to give away, and some of my addon developer friends have kindly donated some addons too. This package is worth over $400. To win, just Tweet me the name of the musical celebrity that EllisLab founder Rick Ellis built a website for that kicked off ExpressionEngine as a product. Thank you for listening - are there any questions.