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.
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
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
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
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
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
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?
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?
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?
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?
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?
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?
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?
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)
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).
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.
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.