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

EEUK.13 - Boundaries & Ideas

EEUK.13 - Boundaries & Ideas

Finale of EEUK.13 in Manchester. I talk about how you should remember that ExpressionEngine is part of a larger system (CodeIgniter) and stepping out into it can yield interesting results.

Christopher Imrie

May 17, 2013
Tweet

More Decks by Christopher Imrie

Other Decks in Programming

Transcript

  1. • Aerospace Engineer • Ex-freelancer • Adobe Certified Instructor •

    PHP, JS, MySQL • CodeIgniter, ExpressionEngine • Problem Solver Christopher Imrie Lead Developer, Moresoda Tuesday, 21 May 13
  2. Composer • Works with all fields • Third party JS

    rewritten & packaged on the fly • Fast: On demand field loading • JS Framework, Lifecycle API & JS Fieldtype Tuesday, 21 May 13
  3. EE Developer Toolbar On demand JS & CSS loading function

    loadScript(/** string */ name, /** Function*/ cb) { var loaded = false, url = String(name), eed = document.createElement('script'); eed.type = 'text/javascript'; eed.async = true; eed.src = url; //Listen for script load eed.onload = eed.onreadystatechange = function () { if ((eed.readyState && eed.readyState !== "complete" && eed.readyState !== "loaded") || loaded) { return false; } eed.onload = eed.onreadystatechange = null; loaded = true; //Fire callback on script load if supplied if (typeof cb === "function") cb(); }; document.getElementsByTagName('head')[0].appendChild(eed); } function loadCss(name, cb) { var def = new jQuery.Deferred(), " " url = String(name), " " eed = document.createElement('link'); " eed.type = 'text/css'; " eed.rel = 'stylesheet'; " eed.href = url; " //Listen for script load " eed.onload = eed.onreadystatechange = function () { " " if (typeof cb === "function") { " " " cb(); " " } " }; " document.getElementsByTagName('head')[0].appendChild(eed); } https://gist.github.com/ckimrie/5587884 https://gist.github.com/ckimrie/5587857 Tuesday, 21 May 13
  4. RequireJS-for-EE var files = [ 'path/to/moduleA', 'path/to/moduleB', 'css!path/to/styles.css' ]; require(files,

    function(moduleA, moduleB){ //Callback }); AMD Script Loading Tuesday, 21 May 13
  5. EE Developer Toolbar • Completely Open Source https://github.com/mithra62/ee_debug_toolbar • Runs

    in a hostile EE enviroment Post EE shutdown • Debug panel API Tuesday, 21 May 13
  6. Site Manager • Completely Open Source http://github.com/ckimrie/Site-Manager • Migrate channel

    & category data • AES Encrypted communication • No ‘Line of sight’ problem Tuesday, 21 May 13
  7. Ideas breed ideas “ e harder I work, the luckier

    I get” - Samuel Goldwyn Tuesday, 21 May 13
  8. Entry Analytics An Idea: What if you could see the

    performance of a single entry? Tuesday, 21 May 13
  9. Entry Analytics • Unobtrusive • Focussed on entries • Relevant

    metrics • Flexible dates • Smart Weekday Comparison Tuesday, 21 May 13
  10. Template Tags <h2>Popular Right Now</h2> <ul> {exp:entry_analytics:entries sort="pageviews" past_days="2 days"

    limit="10"} <li>{title} - {ga:visits} Hits</li> {/exp:entry_analytics:entries} </ul> Entries Tag All Channel Entries tag parameters available Tuesday, 21 May 13
  11. Template Tags <h2>Something to read?</h2> <p>Try some of these</p> <ul>

    {exp:entry_analytics:entries sort="avgTimeOnPage" past_days="6 month" limit="5"} <li><a href="{url_title_path=article}">{title}</li> {/exp:entry_analytics:entries} </ul> Interesting Possibilities Tuesday, 21 May 13
  12. Template Tags <h2>Site Visits</h2> <ul> {exp:entry_analytics:query past_days="30" metrics="ga:visitors, ga..."} <li>Total

    Visits: {ga:visits}</li> <li>...</li> {/exp:entry_analytics:query} </ul> Query Tag All Google Analytics metrics & dimensions available Tuesday, 21 May 13
  13. Template Tags Plus many more... Hits Page Speed Traffic Sources

    Desktop/Mobile Country Page Depth System Details Tuesday, 21 May 13