I'm now using ListboxPlugin <http://visualtw.ouvaton.org/VisualTW.html>to 
change custom field values to change per-tiddler themes using the 
"ThemedTiddlerPlugin" (Link no longer works so I added it to the bottom of 
this post.)

The issue I"m running into is that as I change the values with 
ListboxPlugin it simply compounds the new classes without removing the old 
ones, until I close the tiddler and re-open it than It'll just have the 
last value. 

So there seems to be a differnce between simply "refreshing" a tiddler 
using javascript and closing and re-opening. 

Which is as far as I can seem to get on my own.


====Plugin====

/***
|''Name:''|ThemedTiddlerPlugin |
|''Description:''|Per-Tiddler Mini-Themes |
|''Author:''|PaulDowney (psd (at) osmosoft (dot) com) |
|''Source:''|http://whatfettle.com/2008/07/ThemedTiddlerPlugin/ |
|''CodeRepository:''|http://svn.tiddlywiki.org/Trunk/contributors/PaulDowney/plugins/ThemedTiddlerPlugin/
 
|
|''Version:''|0.1|
|''License:''|[[BSD 
License|http://www.opensource.org/licenses/bsd-license.php]] |
|''Comments:''|Please make comments at 
http://groups.google.co.uk/group/TiddlyWikiDev |
|''~CoreVersion:''|2.4|
!!Documentation
The extended field "theme" is used to reference a tiddler containing a 
"mini-theme"

A mini-theme is a tiddler containing a [[ViewTemplate]], [[EditTemplate]] 
and [[StyleSheet]] sections which are applied when the tiddler is 
displayed. 

In addition, a CSS class of the theme name is added to the tiddler which 
may be useful when writing a mini-theme [[StyleSheet]]. 
!!Code
***/
//{{{
/*jslint onevar: false nomen: false plusplus: false */
/*global Story, store, setStylesheet, addClass */
if (!version.extensions.ThemedTiddlerPlugin) {
    version.extensions.ThemedTiddlerPlugin = {installed: true};

    Story.prototype.__chooseTemplateForTiddler = 
Story.prototype.chooseTemplateForTiddler;
    Story.prototype.chooseTemplateForTiddler = function (title, n)
    {
        // translate number into template name
        var template = ["ViewTemplate", "EditTemplate"][n ? n - 1 : 0];

        var tiddler = store.getTiddler(title);

        if (tiddler) {
            var theme = tiddler.fields.theme;
            if (theme) {

                // assert stylesheet
                var style = store.getTiddlerText(theme + '##StyleSheet');
                if (style) {
                    setStylesheet(style, theme);
                }

                // return theme template
                var slice = theme + '##' + template;
                if (store.getTiddlerText(slice)) {
                    return slice;
                }
            }
        }

        // default template
        return this.__chooseTemplateForTiddler.apply(this, arguments);
    };

    // assert theme name as a class on the tiddler
    Story.prototype.__refreshTiddler = Story.prototype.refreshTiddler;
    Story.prototype.refreshTiddler = function (title, template, force, 
customFields, defaultText)
    {
        var tiddlerElem = this.__refreshTiddler.apply(this, arguments);
        var tiddler = store.getTiddler(title);
        if (tiddler) {
            addClass(tiddlerElem, store.getTiddler(title).fields.theme);
        }
        return tiddlerElem;
    };
}
//}}}

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to tiddlywiki+unsubscr...@googlegroups.com.
To post to this group, send email to tiddlywiki@googlegroups.com.
Visit this group at http://groups.google.com/group/tiddlywiki.
For more options, visit https://groups.google.com/d/optout.

Reply via email to