Hi Chris,
Here are my comments. Overall it's looking really good.
Chris Davenport wrote:
Introduction to Joomla! templates
What is the purpose of a template?
What can you do with a template?
Templates supplied with Joomla!
How to switch templates
How to install templates
Understanding Joomla! templates
Where are templates located?
What is the typical template directory structure?
What is the purpose of the templateDetails.xml file?
What is the purpose of the index.php file?
Upgrading a Joomla! 1.0.x template
Legacy mode
Upgrading your index.php file
Upgrading your templateDetails.xml file
Changes to CSS classes
Replacing patTemplate
New features introduced in Joomla! 1.5 templates
I would place New Features in Joomla 1.5 templates at the top of this list. I think in general it helps to go broadview then specifics, and if you are upgrading from a 1.0 template, you will want to know what's new and why one should upgrade, before actually learning how to do it?
Upgrading a Joomla! 1.0.x templateNew features introduced in Joomla! 1.5 templates
What is Legacy mode?
Upgrading your index.php file
Upgrading your templateDetails.xml file
Changes to CSS classes
Replacing patTemplate
Quote:
Customising the Milkyway template
Customising the Beez template
I would create this list like this:
Customizing Default Joomla Templates>Pro's and con's of table layout<
>Understanding the Milkyway template (what makes it special and unique from Beez and commercial templates?)<
>Understanding the Beez template (what makes it special and unique from Milkyway and commercial templates?)<
Customizing the Milkyway template
Customizing the Beez template
>Troubleshooting modified templates<
>What to avoid when modifying a template<
Quote:
Creating a basic Joomla! template
Setting up a directory structure
How to edit the files
Creating a basic templateDetails.xml file (not needed???)
Creating a basic index.php file
Testing the template
I think the Creating a basic templateDetails.xml file is needed, especially if the designer is going to create other positions or wants to relabel to suit his or her working style. How about this:
Creating a basic Joomla! templateSetting up a directory structure
>Verifying permissions<
How to edit the files
Creating a basic templateDetails.xml file
Creating a basic index.php file
Testing the template
Quote:
More advanced Joomla! templates
Quirks mode and how to avoid it
Which DocType header to use
Setting up page width
About CSS page layouts
Source ordering
Horizontal centering
PHP essentials (eg. echo, if-then-else)
Adding images
Declaring module positions
Finding module positions on any given page
Changing the site favicon
More advanced Joomla! templatesQuirks mode and how to avoid it
Which DocType header to use
Setting up page width
About CSS page layouts
Source ordering
>Horizontal and vertical centering<
PHP essentials (eg. echo, if-then-else)
Adding images
>Changing image paths of default system images<
Declaring module positions
Finding module positions on any given page
Changing the site favicon
Quote:
Cascading Style Sheets (CSS)
Where to put CSS files
List of core CSS classes with explanations
Page class suffixes
Module class suffixes
I'd make this clearer, something like:
Cascading Style Sheets (CSS)Where to put CSS files
>Using multiple CSS files in Joomla<
>List of Joomla generated core CSS classes (with explanations)<
>Suggested CSS methods to introduce new declarations or alter generated ones<
Page class suffixes
Module class suffixes
I'd like to clarify this: Basically it seem there are users who may not understand CSS and how to cascade properly and from what I've looked at in the generated code, it seems to use stylesheets without cascading them. What I mean is that the declarations are specific rather than contextual. What isn't clear to me is whether this is out of necessity because of the code base, or because people are lazy or misunderstanding more elegant methods of using css?
This new list item will refer to a designer how to add class suffixes in the admin backend as listed in Page class suffixes & Module class suffixes, but also recommend other methods. I think it would also be useful to explain what CANNOT be done in Joomla with style sheets, like add id's to particular list elements (something I'm wishing for). I think it is VERY useful to explicitly state these kinds of things, because often people trawl looking to do something and they can't find it. If we state the limitations in comparison to what people know, then it communicates. For example, Joomla isn't CSS-centric like Dreamweaver. Templates mean something different in Joomla than DW. What I mean is that there are no tools to manipulate CSS from the backend. One must edit the entire file. The other thing is that there are different discrete places to inject css declarations into the generated code. The foremost being the template and the next being different parameters in a module, component, or plugin, or even in global settings.
I do not mean that stating what cannot be done is a failing, but actually an acknowledgement that if a designer is going to use joomla, the approach is going to be far far different then the work methods designers typically are used to. If we address that, a lot of anxiety can be thwarted and not make designers feel like they are decoding the Rosetta Stone. :)
If enough designers speak up, of what they need of Joomla then that can be addressed at that point, but if we give a "state of the union" at least it helps people orient themselves and enable them to make better decisions.
Quote:
More on Joomla! modules
Counting modules in a given module position
Counting modules in multiple module positions
Collapsing columns
Creating rounded corners
What is module chrome?
Applying custom module chrome
Cascading module chrome styles
I am completely in the dark why modules need to be counted. If someone could explain this to me, I'd appreciate it. Rather than encase HTML in PHP, why not just let the CMS generate the code and then use CSS to lay it all out?
Ideally, Joomla should spit out relatively unstructured divs with the appropriate HMTL inside them, with the placement of those divs layed out with CSS.
The holy grail at this point need not be whether the HTML looks the same in all browsers anymore (since if one is using webstandards methods to code templates, it will all work), but rather to optimize content for SE's. Meaning place your important content at the top of a page and then use CSS to place it where you want it on the page. That is, Joomla should be able to spit out content in any order and the CSS does all the work presenting it. Again, this is a holy grail, but I think a worthy one to stretch to.
I'm wondering if this counting of modules is a residue of creating layouts with table tags. If this is the case, I suppose then it's relevant, but CSS div layouts can do it all. I'd also like to propose a section on web standards:
Web StandardsWhat are web standards?
Why follow them?
Considering about future browsers and new devices
Considering about backwards compatibility
Web standards resources
Quote:
Web content accessibility
Introduction to web content accessibility
Accessibility standards
Validating against accessibility standards
Source ordering
I'd like to see a fragument added in Web Content Accessibility on Section 508. Of course, it's only relevant to those people creating sites in the States, but I think having a link and an explanation of what it is, serves all of the Joomla community, if only to be aware of disability issues. If there are other laws in effect in other countries about disability access, they should be posted here as well.
Web content accessibilityIntroduction to web content accessibility
>Section 508 and other laws about disability access<
Accessibility standards
Validating against accessibility standards
Source ordering
Quote:
Template parameters
Defining a parameter in templateDetails.xml
Parameter types supported
Page for each parameter type
Retrieving parameter data in a template file
Fonts and typography
Font families
Font metrics
Text resizing
Template overrides
How to override the output from the Joomla! core
Now this needs to be fleshed out far more than one list item ! :)
Is there a way of learning from the community, what are the most likely things people want to do with overrides and the best methods to do that?
I think there should be a definition for each component and module, how the code is structured and suggested ways of manipulating the code. I'd also like to see there be something here that shows different ways others who have come before have created overrides.
That is, examples of a module or component with a before and after override. This will allow others to see how to do overrides properly and stimulate conversations on what can be done with overrides, where before one thought one had to write an entirely new extension. Does it make sense?
Quote:
Template translations
Creating a language definition (INI) file
Adding a language file to the templateDetails.xml file
Embedding translatable strings in the template file
Does something need to be mentioned here about how translation works to give an overview and context of the inner workings? I propose this:
Template translations>Overview of Joomla's translation engine<
Creating a language definition (INI) file
Adding a language file to the templateDetails.xml file
Embedding translatable strings in the template file
Quote:
Distributing Joomla! templates
How to choose a suitable license
How does template installation work?
File structure for packaging
Creating a thumbnail preview image
Packaging the template
Advanced topics
How are templates executed?
Customising the 403 and 404 error pages
Adding JavaScript
Enhancing template performance
Administrator (back-end) templates
How about adding something about mootools?
Advanced topicsHow are templates executed?
Customising the 403 and 404 error pages
Adding JavaScript
>What is Mootools<
>A few simple mootools implementations<
>Links to mootools tutorials<
>Joomla implementations of mootools in the community<
Enhancing template performance
Administrator (back-end) templates
Quote:
Appendix
What jdoc:include types are available?
Standard module chrome styles
Default CSS classes
Configuration variables deprecated in Joomla! 1.5
Where can you learn about HTML?
Where can you learn about CSS?
Operators for use with the countModules function
Objects
Security do's and don't's
AJAX
Glossary
How about adding the following to the Appendix? Most template designers know something about HTML and CSS, they have their resources. In this way the templates are centric to programmers who may not understand HTML and CSS nuances. I understand perhaps placing links in the Appendix about PHP and mySQL isn't directly about making templates, but if a template designer is looking for what PHP's foreach() function does and what its arguments are, then having some resources in the Appendix is not a bad thing.
Again this is thinking about user goals, and not features. Scenarios, not implementations.
AppendixWhat jdoc:include types are available?
Standard module chrome styles
Default CSS classes
Configuration variables deprecated in Joomla! 1.5
Where can you learn about HTML?
Where can you learn about CSS?
>Where can you learn about Javascript?<
>Where can you learn about Mootools<
>Where can you learn more about PHP<
>Where can you learn more about mySQL?<
>Where can you learn more about server configuration<
>Where can you learn more about UNIX?<
Operators for use with the countModules function
Objects
Security do's and don't's
AJAX
Glossary
My last comment is that I'd like to see rich interlinking from the template wiki to other joomla wiki's so if there is encouragement when writing documentation for people to offer links to other related topics housed at other websites and wiki's this would make the source incredibly valuable. This may be obvious, but I'm not sure if anyone was explicitly stated that.
I hope this is helpful!
Best,