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

ExpressionEngine Conference Recap

ExpressionEngine Conference Recap

Detroit, MI was home of the 2016 ExpressionEngine Conference. Our developers attended the conference and presented a recap to our team over lunch. Here's some thoughts from back-end developer, Jason Boothman.

Reusser Design

October 11, 2016
Tweet

More Decks by Reusser Design

Other Decks in Technology

Transcript

  1. ExpressionEngine Conference • Making Volume Work: How I Built My

    Agency Making Small Projects Profitable. • Give clients a discount if they provide content on time. • Add a revision limit to your contracts [add deadlines] • Using EE For SEO • SEO should play a part in the site hierarchy/structure. • Provide a way to hide pages from search engines (cart, results, etc.) • Leverage rich snippets / structured data / schema. • Each vendor should own their own Google properties • Selling Without Selling: Persuasive Communication for the Freelancer • Always schedule next steps, no matter the stage of the process. Day 1
  2. ExpressionEngine Conference • Automatic Testing: Ship with Confidence • Multiple

    resources for testing: CircleCI, browserstack.com, applitools • Client Retainers: Holy grail or Route to Fail • Creates problems in project based environments • Including (at least minor) upgrades in retainers can be a good value add. • Full-Stack is Overrated: Why We Care More About Expertise • Don’t hand off to dev until design is 100% done. • Developers should be involved in every stage of the process (including design). Day 1
  3. ExpressionEngine Conference • ExpressionEngine and Marketing Automation: The Future of

    Content Customization • Open source marketing management such as Mautic and drip.co. • Tracking pixels on a contact form is a great place to start. • Partnerships Not Projects: How to Cultivate Long-Term Client Relationships • Be proactive, not reactive. Day 1
  4. ExpressionEngine Conference • How to Create a Culture that Boosts

    Growth • Culture is a business decision that is continually reaffirmed. • Find creative ways to appreciate those you work with or for. • Finding Your High with Low Search • The more granular your content the more control you have. • Smart field search options only apply field filters in the channels where they exist. • Can calculate the distance between two lat/lon points. • Pots, Meet the Kettles: Integrating Developers with a Creative Team • Benefits: feasibility checks, creativity, blend skills, efficiency and scope • Involve developers from day one • Have frequent, short, project check-in meetings Day 2
  5. ExpressionEngine Conference • Image Workflow & Management for ExpressionEngine •

    Use the image srcset tag for responsive image replacements. • CE Lossless for optimizing images • Surviving a Flood: Moving Your Tools to the Cloud • The cloud is cool. • Put Down the Add-On and Back Away From the Pink CP: Getting the Best from ExpressionEngine 3. • License changes for non-profit organizations. • EE 3.5 is the last version of 3. • Gitflow: Making Git Work For You (And Your CMS) • Commit early, commit often. • “When applied, this commit will…” Day 2
  6. ExpressionEngine Tips & Best Practices In ExpressionEngine each field must

    have a unique name. Because of this it is imperative to use proper variable prefixing to avoid naming conflicts. 1. Add prefixes to channel fields. The prefix should be based off the channel name. Page -> page_ News -> news_ Job Opportunity -> job_ Etc. How? Why?
  7. ExpressionEngine Tips & Best Practices Prefixing variables based off their

    type will provide a way for the developer, current or future, to easily distinguish where it comes from. In other words it saves time and headaches. 2. Add prefixes to variables. • snp_ for Snippets (tp_ for Template Partials in EE3) • gv_ for Global Variables (tv_ for Template Variables in EE3) • lr_ for Low Reorder Sets • lv_ for Low Variables How? Why?
  8. ExpressionEngine Tips & Best Practices If ExpressionEngine finds an existing

    template group for segment_1 it will not redirect the user to a 404 page. Requiring an entry on dynamic pages (such as in the page/index template) will help 404s show more predictably. 3. Require an entry on dynamic pages. • Add the parameter require_entry=“yes” to the channel entries tag. • Redirect to the 404 page using the no_results conditional. How? Why?
  9. ExpressionEngine Tips & Best Practices Because sometimes we only want

    to only display code if categories exist. 4. Check to see if categories exist inside a Channel Entries tag. • Use the categories tag in a conditional and set it to a static value. • Note: ExpressionEngine 3 has add the no_results conditional to the categories tag pair. How? Why? Because the {categories} tag pair does not have a count variable, and I didn’t know how. Why not before?
  10. ExpressionEngine Tips & Best Practices Because “a picture is worth

    a thousand words”. 5. Add Images to Instruction Fields. • Create the image in whatever program suits your fancy. • Save image in a web-safe format and upload to the server. • Add the HTML code for the image in the instruction field. How? Why?
  11. ExpressionEngine Tips & Best Practices Because Low Search is awesome.

    6. Use Low Search for greater category control when displaying channel entries. • Use the {exp:low_search:url} tag pair to build the link • Use colons to define category groups. • Use the “toggle:” prefix to allow toggling of categories rather than justing viewing one at a time. • The {exp:low_search:results} tag will automatically take these into account. • I have found best results when not encoding the search string How? Why?
  12. ExpressionEngine Tips & Best Practices Because Low Search is awesome.

    6.5 You can also use the require_all parameter to require all categories in the url. How? Why?
  13. ExpressionEngine Tips & Best Practices Because Low Search is awesome.

    7. Use Low Search for searching entries in the backend of ExpressionEngine. • Navigate to the Low Search module. • Click “Find & Replace”. • Select the fields you want to search. • Search. How? Why?
  14. ExpressionEngine Tips & Best Practices BE CAREFUL Internal Low Search

    is very powerful and you can override data you don’t want to if you’re not careful. Note: It does not currently search within Blocks.
  15. ExpressionEngine 3 New menus. • Top menu dynamically based off

    permissions. • Left is for content builders. • Right is for site builders. • Second menu manually managed.
  16. ExpressionEngine 3 • Semi-Customizable control panel landing pages. • CP

    Overview • All Entries Edit • Publish Form • Custom URI (such as for Structure) • Customizable title field. • Non-Destructive field type changing. • Three new field types. • Email Address (validated) • Toggle (on/off) • URL (validated)
  17. ExpressionEngine 3 • Channel Sets • Import/export sets • Includes

    all related categories, relationships, etc. • Can add a maximum number of entries per channel. • Category management straight from publish form. • “Save templates as files” now saves snippets (template partials) and global variables (template variables).
  18. ExpressionEngine 3 New Folder Structure • system/ee for ExpressionEngine system

    files. • system/user for all user overrides. • add-ons • cache • config • templates • etc. • themes/ee for ExpressionEngine system files. • themes/user for add-on and custom cp themes.
  19. ExpressionEngine 3 Easier Updating • Replace system/ee folder. • Replace

    themes/ee folder. • Navigate to http://domain.com/admin.php and click Update. • Installer directory automatically renamed. • Add-Ons updated separately in the cp. • All user folders are not touched.