360 likes | 446 Views
Learn how to transform images and matrices into web portfolios using XSL templates. This workshop covers building XSL style sheets, understanding algorithms, and utilizing XSL for web development. Gain hands-on experience to create personalized portfolios.
E N D
Getting Started with XSL Templates Will TrillichEPortfolio Wonk, Serensoftwill.trillich@serensoft.com Attribution Share Alike
What’s This Workshop About? • Turning an image-and-a-matrix-with-some-forms into a “portfolio” web page…by getting OSP to reveal its XML structure so we can build HTML using XSL
Who This Is For • Skills needed to build XSL style sheets: • Demented Computer-Science type, Web-Developer (not Designer) brain • Willing to sling <xml>trees</xml> around • Understand algorithms • For-each <xsl:for-each>loops</xsl:for-each> • If-then-else <xsl:choose>conditionals</xsl:choose> • And then be willing to dig into a totally different, declarative programming language: XSL 10th Sakai Conference - Boston, MA, U.S.A.
Prerequisites • Today you’ll need a sandbox worksite • You can create one on your own campus Sakai instance (Needs Resources, Matrix, Portfolio, Portfolio Templates) • Or I can hook you up on our Serensoft sandbox for today’s session • Have (or create) a matrix, usually • A simple form or two • Own a good XML editor (OxygenXML?)
Where Do We Begin? With all that out of the way July 2009 10th Sakai Conference - Boston, MA, U.S.A. 5
First, Choose Your Target • You’ll go through quite a process…
Cultural/Political Steps • Get your stakeholders together and discuss everything • Deliberate about the portfolio objectives • Deliberate about what content it should include—and exclude • Deliberate about its structure • Deliberate about layout • Deliberate about the branding and design
After The Committee Meetings • You’ll arrive at a sketch something like this
Your Designer Creates HTML • Web designer takes the sketch and makes HTML magic accordingly (or purloin some from www.oswd.org et al) • Then you take that HTML and break it up into repeating sections • Forms X and Y fill this part out over here • Matrix cells go here, columns and rows go there • Portrait image shows up over yonder
The Web Developer Makes It Happen • So how do we make this template work? • How do we take a matrix with some forms and conjure up a web page from that?
The Steps To Build A Template These are July 2009 10th Sakai Conference - Boston, MA, U.S.A. 11
MECHANICAL STEPS • Have something to work with(Matrix, Forms) • Create a “pass-through” template • Create a portfolio based on the template, using your content, and save the XML • Build your XSL to do magic with that XML(return to step 1 as needed, for the content you forgot) • When it’s ready, replace the pass-through XSL in the template with your magical XSL • Bask in the accolades
MECHANICAL ITERATION • Update something to work with(Matrix, Forms) • Create a “pass-through” template • Refresh your portfolio, and save the updated XML • Tweak your XSL to do magic with that XML(return to step 1 as needed, for the content you forgot) • When it’s ready, replace the pass-through XSL in the template with your updated XSL • Bask in the accolades
Back On Campus… • The following slides are what you’ll need to do back on campus
Have Some Forms Available • Build forms to collect data from your users • Nice, repeatable structured artifacts • Forms were previouslycalled “structuredartifact definitions”or SADs
Start with a Matrix • Build your matrix • Couple of rows • Columns as needed
Attach Forms to your cells • Matrix “edit” > pick-a-cell • Specify Forms for Reflection, Feedback, Evaluation or whatever
Or just nab a pre-set matrix • …but for today’s workshop, just import OSP-Matrix.zip • From www.serensoft.net/sakai09 • Create some data for OSP to deliver • Open matrix as user, dive into cells and: • Fill out some forms • Attach some files
Now what? • We’ve got a matrix because that’s a convenient way to structure our portfolio • We’ve got forms attached to the matrix so we can collect data at predictable spots • We’ve got some sample data from filled-out forms • Now we build a template.
So create a template already • Let’s say our stakeholders want a portfolio based on: • Matrix for structure • Head-shot/portrait independent of the matrix • That means our template will require two ingredients from the student • “matrix” element will be a matrix • “portrait” element will be an uploaded image
The first thing a template needs… • (After its name) • Is an XSL stylesheet • Which we need to build from scratch, and thus we don’t have one • So we pull in the granddaddy of all XSL stylesheets: passthrough.xsl (also available at serensoft.net/sakai09 )
PassThrough.xsl • Finds the root object and copies it to the output <?xml version="1.0" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:copy-of select="." /> </xsl:template> </xsl:stylesheet> • Upload that to your resources (mime type text/xml)
Now Create Your Template • Portfolio Template Tool > New • Give it a name/description • Basic Template Outline (stylesheet) is passthrough.xsl • Two items needed: Matrix, Image • More info on step 3, next 2 slides • No supporting files, for today • Easy!
Details on Template Building, Step 3 • Add Type “Matrix” • Name (XML Element name) ‘matrix’ • Title (for human-readability) ‘Pick a Matrix’ • Description may also be useful • Don’t forget to click “Add to List”! Becomes the XML Element Name
Template Building, Detail Step 3 Still • Add Type “uploaded file” • Name (XML Element name) ‘portrait’ • Mime type ‘image’ • Don’t forget to click “Add to List”! Becomes the XML Element Name
Save Your New Template • Now you can create a portfolio based on your pass-through template!
Now Create A Portfolio • You’ve filled out some forms in the matrix, so you’ve got something to work with • Create a portfolio on your new template • Portfolio tool > Add/Create (2.5 vs 2.6) • Include your matrix • Include/upload an image, too • Now save it… and then view your portfolio
Yikes! • It’s garbage in my browser! Eww! • It’s exactly what we want! It’s not formatted for HTML viewing, it’s just naked XML • Save it to your desktop as a viewPresentation.xml file
Perfect! • In your local copy of the XML, add line 2: • <?xml version="1.0" encoding="UTF-8"?> • <?xml-stylesheet type="text/xsl" href="your-template-here.xsl"?> • <xml-here> • ... • </xml-here> • Make the href refer to the magical XSL style sheet you’re working on
How XSL Works(The fun part!) A Quick Overview Of July 2009 10th Sakai Conference - Boston, MA, U.S.A. 30
www.Serensoft.Net/sakai09 • Check out the Person.xml file there • View source, and… where does all the formatting come from? The branding? The header and the footer? Not to mention the presentation of the data itself!
Person.xml view-source • It’s just the data, so where does the formatting come from? • It’s the <?xml-stylesheet> directive!
Without the XSL stylesheet • In Firefox the default XML rendering would look like this • But we can specify an XSL stylesheet to render it, instead • Now we know the secret to “No style information”!
Open the linked stylesheet • Click to view the stylesheet itself • Then view-source to “see” it for real • Save these files (.xml, .xsl) to your local filesystem and tinker with them to get the idea
Same idea with the XML from OSP • Have the XML refer to your XSL stylesheet • Open the XML in your browser • Then: • Tweak your XSL • Refresh your browser • Repeat as needed • Upload your XSL and point the template to it – and you’re off to the races!
Have Fun Tinkering With Your Newfound OSP Template Savvy 10th Sakai Conference - Boston, MA, U.S.A.