[theme] - [smoothsailing] - [mood icon to left of metadata]

Aug 19, 2006 19:01


# add colons because hard-coding it is silly
set text_meta_location = "Location:";
set text_meta_mood = "Mood:";
set text_meta_music = "Music:";
set layout_arrangement_metadata = "block";

function Entry::print_metadata() {
var string tags_header = "Tags"; # text for tags header, "Current Tags"
var string tags_joiner = ":"; # text for tags joiner, ":"
var string tags_sep = ", "; # text for tags separator, ", "
var bool show_edit_tags_link = false; # set to true if you want edit tags link as tags header

var string currents_open = """
    """; # html for opening of currents container
    var string currents_close = """
"""; # html for closing of currents container

var bool loc_after_mood = false; # set to true to print location after mood
var bool vanilla_loc = false; # set to true to delinkify location

# if you need data specific to the meta to be in these strings you'll have to set those individually down further
# one example is provided with meta_label_open
var string meta_label_open = """
  • """; # html for opening of metadata label
    var string meta_label_close = """"""; # html for closing of metadata label
    var string meta_val_open = """"""; # html for opening of metadata value
    var string meta_val_close = """
  • """; # html for closing of metadata value

    var Link edit_tags = $this->get_link("edit_tags"); # helper var to see if remote user can edit tags

    if (((size $.metadata > 0) or ((size $.tags > 0) and ($*tags_aware))) and ($.itemid != int($*layout_guestbook_entryid))) {
    if($.metadata{"mood"} == "" and $loc_after_mood) {
    # if we're printing loc after mood but we have no mood, set loc_after_mood to false
    $loc_after_mood = false;
    }
    var string currents = ""; # make var for printing

    if(defined $.mood_icon) {
    var Image i = $.mood_icon;
    $currents = $currents + """
    """;
    }

    $currents = $currents + $currents_open; # add opening of currents container

    foreach var string k ($.metadata){ # step thru metadata
    var string text = $k; # set text to key
    var string val = $.metadata{$k}; # get val
    if ($k == "mood"){ # if mood, set text to mood property
    $text = $*text_meta_mood;
    }
    elseif ($k == "music") { # if music, set text to music property
    $text = $*text_meta_music;
    } elseif ($k == "location") { # if location, set text to loc variable
    $text = $*text_meta_location;
    if($vanilla_loc) { # if vanilla loc, striphtml() it
    $val = striphtml($val);
    }
    }
    if(not ($k == "location" and $loc_after_mood)) {
    # if we're doing loc right now and printing loc after mood, skip it
    # if we're doing loc right now and we're not printing loc after mood, print it now
    # if we're not doing loc right now, print this piece of meta

    # add the meta
    $currents = $currents + """$meta_label_open$text$meta_label_close$meta_val_open$val$meta_val_close""";
    }

    if($k == "mood" and $loc_after_mood) {
    # if we just now did the mood and we're printing loc after mood, print the loc
    $k = "location"; # set meta key to "location"
    $text = $*text_meta_location; # set text to loc variable
    $val = $.metadata{$k}; # get val

    # if we have a loc, do stuff
    if($val != "") {

    # if vanilla loc, striphtml() it
    if($vanilla_loc) {
    $val = striphtml($val);
    }

    # in this layout, each piece of meta gets its own class
    $meta_label_open = """
    """;

    # add the meta
    $currents = $currents + """$meta_label_open$text$meta_label_close$meta_val_open$val$meta_val_close""";
    }
    }
    }
    if ((size $.tags > 0) and ($*tags_aware) and ($*layout_position_entrytags == "metadata")) {
    var string k = "tags"; # set key to "tags"

    var int tcount = 0; # set counter for tags
    if($edit_tags.url != "" and $show_edit_tags_link) { # if remote user can edit tags, let's give them a link
    $tags_header = """ $tags_header""";
    }

    # add text, open val container
    $currents = $currents + """$meta_label_open$tags_header$tags_joiner$meta_label_close$meta_val_open""";

    # build tag list
    foreach var Tag t ($.tags) {
    $currents = $currents + """ $t.name""";
    $tcount++;

    # if we haven't hit the last tag, add a separator
    if ($tcount != size $.tags) { $currents = $currents + $tags_sep; }
    }

    # close val container
    $currents = $currents + $meta_val_close;
    }

    # close currents container
    $currents = $currents + $currents_close;

    if(defined $.mood_icon) {
    $currents = $currents + """""";
    }

    # print currents
    println "$currents";
    }
    }

    function print_metadata, class entry, layout smoothsailing

    Previous post Next post
    Up