- crucial: lazy load expensive variables (nav pane!)
- allow parameters for skinning $this->html('variable', $var1, $var2)
- split up tagging output into tags / related
- return items as a list element, not a comma separated list
- convert table outputs to DomTable
- maxm: convert any extensions which use tables to domtable format
- deprecate styles which use old classes
prefix functionality id attributes with dw- to prevent collisions - use classes for editor callbacks for hiding/editing/adding classes
change #topic to #dw-pagetext (fck updated, need to update tinymce + xinha) - update all skin styles
new interface
use cases for skinvars:
- need to know if it exists ($this->exists('var'))
- need to grab its value ($this->html('var'))
- need to get value ($this->get('var')) - used for lazy loading?
- need to grab it's textual value ($this->text('var')) - this would be htmlspecialchared() so it's safe to output (where is it useful? titles ...)
considerations: should we always return strings? (i think, yes. forces consistency and reduces the # of interfaces)
- register skinning variables as callbacks (g's idea)
sample code:
function html($key, $ereturn= '', /* $var3, $var4, $var5 */)
{
$val = $this->get($key, /* $var3, $var4, $var5 */ );
return empty($val) ? $ereturn: $val;
}
function text($key, $ereturn= '', /* $var3, $var4, $var5 */)
{
return htmlspecialchars($this->html($key, /* $var3, $var4, $var5 */);
}
function exists($key, $strict = true)
{
if (!$strict) {
return !empty($this->get($key));
}
return !is_null($this->get($key));
}
function get($key, /* $var3, $var4, $var5 */)
{
if (is_loaded($key)) {
return cached($key);
}
return executed($key);
}