Skip to content

Instantly share code, notes, and snippets.

@nickdunn
Created June 16, 2010 16:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nickdunn/440926 to your computer and use it in GitHub Desktop.
Save nickdunn/440926 to your computer and use it in GitHub Desktop.

Article/tutorial ideas

Caching

  • performance gains in 2.0.7
  • some DSs simply take a while, abstractions, ORMS. We can mitigate
  • ?profile: query count, time. Check profile as often as debug!
  • keep fields to a minimum in DSs. use required url params. danger of filters fallback
  • 2.0.7 option to disable entry counts
  • mysql query caching in config
  • memcached?
  • DS XML caching (fragment) extension
  • dynamic DS XML caching (hack)
  • page output caching (CacheLite), Digg effect. Not when fragments need to be dynamic.

"Using Git and Github"

  • Series of screencasts e.g. http://subsonicproject.com/docs/Submit_Patch?
  • what git is, what Github is
  • installing git on Windows and Mac OS
  • pulling Symphony rather than downloading a Zip
  • Gity client!
  • contributing, forking, branches, pull requests
  • extensions, pulling into projects, updating, contributing

Creating an RSS feed

Symphony, AJAX and JSON

  • pages, DS and Events are an API
  • use copy-of and "XML" page type to create consumable XML page
  • same for Event response
  • convert to JSON with a single template

Pagination

Using Dates

  • the Date field, accepts any PHP string e.g. "today", pre-populating
  • filter types (BETWEEN, LATER THAN etc)
  • default XML format in Symphony
  • formatting using date-time.xsl
  • sorting XML using dates (strip all but numbers inside xsl:sort/)

XSLT template basics (apply-templates vs. call-template)

  • subtle and not-so-subtle differences
  • matching vs. naming
  • mode
  • priority
  • page XSLT approach, master applies "data" and pages match with modes for page regions

Master/Detail views

Recursive XSLT tutorial

SE-friendly URLs

  • out of the box feature with Pages
  • URL Parameters (/foo = $foo) vs GET parameters (?foo = $url-foo)
  • strategy for URL Parameters for pages that filter AND paginate. Use GET for filters on permalinks...
  • adding canonical meta element to when filtering/paging

Using Events

  • simple form POST example
  • creating and editing existing entries
  • making sense of the XML response
  • pre-populating form values on post-back
  • Allow Multiple

Using Form Controls

Consuming Twitter feeds with Dynamic XML Datasources

  • overview of Dynamic DS
  • overview of Twitter API methods, e.g. /:user/timeline.xml
  • build Dynamic DS, attach to a page
  • XSLT to iterate
  • community utilities: Twitter date formatter, Twitterlinkahashify

Consuming Last.fm feed

EXSLT

  • what is it, when to use it
  • not fully supported with LibXML, list of supported functions?
  • importing EXSLT namespaces, excluding prefixes
  • common examples: tokenize, node-set, date-difference

Developing in teams using Symphony

  • Airlock workflow tutorial
  • local web-server, files through SVN
  • local network web-server for DB and internal review
  • using Database Synchroniser extension
  • deployments using SVN and DB_sync

Book reviews

The UX Architect's Toolbox

  • define data model, validation schema (Section/Fields). Deliverable: Entity Diagram extension
  • define URL model (Pages). Deliverable: Sitemap extension
  • rapid prototyping using XSLT and a CSS framework (Blueprint/960). Deliverable: interactive prototype
  • tweak backend UI for usability (drag/drop ordering, table columns, main/secondary columns). Deliverable: a usable CMS UI
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment