Sign Up! Login: Password: New User? Forgot? Support
Top Mods!
Wowhead Search
by sonofsamedi
Digital Clock
by Wolfar15
Admin Forums
Welcome to the GuildPortal Help Community! These forums are for admin-to-admin help.
Available Forums
Forums : Pimp My Site! > Guild Progression box
erraziB (New Admin) 4/24/2009 7:38 PM EST : RE: WoW Guild Progression box version 2.2
erraziB
Posts: 335
Fingers of Fury!

Woot. Kay that works. But now I want to replace the images that are there for my own, the dimensions are 100x50, but when I try and change it it only allows me to do 50x50. 
TopBottom

Mottie (MVP) 4/25/2009 3:53 AM EST : RE: WoW Guild Progression box version 2.2
GuildPortal MVP
Mottie
Posts: 3884
Zomgawsh Poster

Ok ErraziB!

I edited my previous post. I added an iconWidth variable. All changes that I made are in blue, so you don't have to replace everything.
TopBottom

erraziB (New Admin) 4/25/2009 9:25 AM EST : RE: WoW Guild Progression box version 2.2
erraziB
Posts: 335
Fingers of Fury!

Woot! Thanks so much. I'll be back to bug you more.
TopBottom

Mottie (MVP) 4/25/2009 2:26 PM EST : RE: WoW Guild Progression box version 2.2
GuildPortal MVP
Mottie
Posts: 3884
Zomgawsh Poster

I found this new Ulduar icon... you can replace it with the one I made on photoshop if you want.

Original Icon
 http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/Uld.gif
Alternate Icon
 http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/ulduar.gif
TopBottom

Mottie (MVP) 4/27/2009 2:16 PM EST : RE: WoW Guild Progression box version 2.2
GuildPortal MVP
Mottie
Posts: 3884
Zomgawsh Poster

I updated Guild Progression Box v2.2 with a new variable to ignore the 10 man boss count and only display the 25 man boss count... if you want to update your existing code, the only new & updated parts I added are shown below, make sure you add them into the script in the right place:

New:
// The displayed count will default to 10 man bosses until the instance is 100% completed,
// it will then switch to the 25 man boss count. If the variable below is true, the count
// will start and display only the 25 man progression.
var ignore10manCount = false;

Updated (near the bottom of the script):

   pb += (!ignore10manCount && killed10 < ex[inst].length-2) ? killed10 : killed25;
TopBottom

Rykkan (New Admin) 4/27/2009 4:54 PM EST : RE: WoW Guild Progression box version 2.2

Rykkan
Posts: 25
Becoming Adept!

Is there anyway to make it so it shows only 10 man? like to make a raid25manenable=true/false
so if we ever go into 25 man's i can enable it so it'll show up then?

Also i added Emalon to Killed, and the number still shows as 1/2, but with your code it should of went to 0/2 cause hes the last boss in VoA. I can't post the code, cause it gives me errors of HTML. So i am not sure how to post it. Thanks.
TopBottom

Mottie (MVP) 4/30/2009 2:20 PM EST : WoW Guild Progression box version 2.21
GuildPortal MVP
Mottie
Posts: 3884
Zomgawsh Poster


Progression Box v2.21



Hey Rykkan, sorry it took me so long to post, but this version took abit of debugging to make it work properly. If anyone finds anyproblems, please post it in these forums.

This update has these changes from version 2.2:
  1. Added an icon width variable to adjust both height and width of the icon displayed.
  2. Added variables to choose which progress count you want to display (ignore 10 or 25 man counts)
  3. Added variables to choose to hide a boss status column in the tooltip (either the 10 or 25 man column)
  4. Added a variable to hide the icons across the top. If set to true, you can ignore/delete the expansion variables you aren't using (e.g. wowOrig, wowTBC or wowWotLK)
  5. All boss status variables are now blank. I removed them so you don't have to edit what I had already put in there. If you want to see examples of what can be put into the instance/boss status, check out the previous versions of this progression box. But don't forget you can add any HTML or text you want into the status - bold, italic, change color, or even add images.
Content Box
<style type="text/css">
/* Progression box */
#progBox { font-size:90%; color:#ffffff; text-align:center; padding:4px; }
#progBox tr, #progSelect { cursor:pointer; }

/* Instance name text */
.instance { color:#cccccc; font-size: 10pt; }

/* Instance image and image cell */
.instanceImgCell { width:30px; }
.instance img { vertical-align: middle; border:0px; }

/* bosses killed "(5/6)" in the progression box */
.bossCount { color:#cccccc; vertical-align:middle; }

/* Tooltip styles */
#dhtmltooltip table { color:#ffffff; }
.tooltipHeader { color:#0080ff; font-weight:bold; vertical-align:top; }
.killedBoss { color:#888888; text-decoration:line-through; }
.toKillBoss { color:#dddddd; text-decoration:none; }
.killedText { color:#ff0000; }
.attemptedBoss { color: #00ff00; }

.hide { display: none; }
.show { display: inline; }
</style>
<div style="text-align:center">
<span id="progSelect">
<img src="http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/wow-1.png" title="World of Warcraft" onclick="pickExp(wowOrig);">
<img src="http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/wow-2.png" title="The Burning Crusade" onclick="pickExp(wowTBC);">
<img src="http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/wow-3.png" title="Wrath of the Lich King" onclick="pickExp(wowWotLK);">
</span>
<div id="progBox"></div>
</div>

<script type="text/javascript">
var wowOrig = new Array();
var wowTBC = new Array();
var wowWotLK = new Array();

// Tooltip width and progression icon size
var tooltipWidth = 300;
var tooltipBossWidth = 250;
var tooltipKilledWidth = 80;
var iconHeight = 30;
var iconWidth = 30;

// Text in progression box and tooltip, see CSS for color
var raidingKeyWord = "No|closed";
var bossKilledKeyWord = "Killed";
var bossAttemptedKeyWord = "Attempted|%";

// The displayed count will default to 10 man bosses until the instance is 100% completed,
// it will then switch to the 25 man boss count. If either of the variables below are true,
// the count will start and display only that progression.
var ignore10manCount = false;
var ignore25manCount = false;

// The 10 man or 25 man column can be hidden using the variables below, these variables
// will override the ignore10manCount and ignore25manCount variables above
var hide10manColumn = false;
var hide25manColumn = false;

// Setting this to true will show ALL rows, even if you have never been there
// setting it to false will hide rows with nothing entered into the boss variables
var showAllRows = true;

// Setting this to true will only hide the selector bar, but you can ignore or delete the
// variables below for wowOrig or wowTBC or wowWotLK if they aren't selected by the defaultWoW below
var hideExpansionSelector = false;

// Default displayed progression: choose "wowOrig", "wowTBC" or "wowWotLK"
var defaultWoW = wowWotLK;

/*
 Boss Information
 ********************************************
- Each progression variable is set up as follows:
   progress.push ([
    ["Thumbnail Image URL"]
   ,["Instance Name", "Instance Status"]
   ,["Instance Boss #1", "Boss #1 Status"]
   ,["Instance Boss #2", "Boss #2 Status"]
   ,   ...
   ,["Last Instance Boss", "Last Boss Status"]
   ]);
 ******************************************** */

/* ********************************************
   Original WoW
   ******************************************** */
// Zul'Gurub
wowOrig.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/zg.gif"]
,["Zul'Gurub", ""]
,["High Priestess Jeklik (Bat)", ""]
,["High Priest Venoxis (Snake)", ""]
,["High Priestess Mar'li (Spider)", ""]
,["High Priest Thekal (Tiger)", ""]
,["High Priestess Arlokk (Panther)", ""]
,["Hakkar the Soulflayer", ""]
,["Bloodlord Mandokir", ""]
,["Jin'do the Hexxer", ""]
,["Gahz'ranka", ""]
,["Edge of Madness", ""]
]);

// AQ20
wowOrig.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/aq20.gif"]
,["Ruins of Ahn'Qiraj", ""]
,["Kurinnaxx", ""]
,["General Rajaxx", ""]
,["Moam", ""]
,["Buru the Gorger", ""]
,["Ayamiss the Hunter", ""]
,["Ossirian the Unscarred", ""]
]);

// Onyxia
wowOrig.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/onx.gif"]
,["Onyxia", ""]
,["Onyxia", ""]
]);

// Molten Core
wowOrig.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/mc.gif"]
,["Molten Core", ""]
,["Lucifron", ""]
,["Magmadar", ""]
,["Gehennas", ""]
,["Garr", ""]
,["Baron Geddon", ""]
,["Shazzrah", ""]
,["Sulfuron Harbinger", ""]
,["Golemagg the Incinerator", ""]
,["Majordomo Executus", ""]
,["Ragnaros", ""]
]);

// Black Wing Lair
wowOrig.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/bwl.gif"]
,["Black Wing Lair", ""]
,["Razorgore the Untamed", ""]
,["Vaelastrasz", ""]
,["Broodlord Lashlayer", ""]
,["Firemaw", ""]
,["Ebonroc", ""]
,["Flamegor", ""]
,["Chromaggus", ""]
,["Nefarian", ""]
]);

// AQ40
wowOrig.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/aq40.gif"]
,["Temple of Ahn'Qiraj", ""]
,["The Prophet Skeram", ""]
,["Vem, Yaul and Kri", ""]
,["Battleguard Sartura", ""]
,["Fankriss the Unyeilding", ""]
,["Viscidus", ""]
,["Princess Huhuran", ""]
,["The Twin Emperors", ""]
,["Ouro the Sandworm", ""]
,["C'Thun", ""]
]);

// Nax
wowOrig.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/nax.gif"]
,["Naxxramas", ""]
,["AW:Patrchwerk", ""]
,["AW:Grobbulus", ""]
,["AW:Gluth", ""]
,["AW:Thaddius", ""]
,["PW:Noth the Plaguebringer", ""]
,["PW:Heigan the Unclean", ""]
,["PW:Loatheb", ""]
,["SW:Anub'Rekhan", ""]
,["SW:Grand Widow Faerlina", ""]
,["SW:Maexxna", ""]
,["DW:Instructor Razuvious", ""]
,["DW:Gothik the Harvester", ""]
,["DW:The Four Horsemen", ""]
,["FL:Sapphiron", ""]
,["KC:Kel'Thuzad", ""]
]);

/* ********************************************
   The Burning Crusade
   ******************************************** */
// KARAZHAN
wowTBC.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/Kar.gif"]
,["Karazhan", ""]
,["Animal Boss", ""]
,["Attumen the Huntsman", ""]
,["Moroes", ""]
,["Maiden of Virtue", ""]
,["Opera Event", ""]
,["Nightbane", ""]
,["The Curator", ""]
,["Shade of Aran", ""]
,["Terestian Illhoof", ""]
,["Netherspite", ""]
,["Chess Event", ""]
,["Prince Malchezaar", ""]
]);

// ZUL'AMAN
wowTBC.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/ZA.gif"]
,["Zul'Aman", ""]
,["Nalorakk", ""]
,["Akil'Zon", ""]
,["Jan'Alai", ""]
,["Halazzi", ""]
,["Malacrass", ""]
,["Zul'jin", ""]
]);

// DOOM LORD KAZZAK
wowTBC.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/DLK.gif"]
,["Doom Lord Kazzak", ""]
,["Doom Lord Kazzak", ""]
]);

// DOOMWALKER
wowTBC.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/DW.gif"]
,["Doomwalker", ""]
,["Doomwalker", ""]
]);

// GRUUL'S LAIR
wowTBC.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/GL.gif"]
,["Gruul's Lair", ""]
,["High King Maulgar", ""]
,["Gruul", ""]
]);

// MAGTHERIDON'S LAIR
wowTBC.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/Mag.gif"]
,["Magtheridon's Lair", ""]
,["Magtheridon", ""]
]);

// SERPENTSHRINE CAVERN
wowTBC.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/SSC.gif"]
,["Serpentshrine Cavern", ""]
,["Lurker", ""]
,["Hydross", ""]
,["Morogrim", ""]
,["Leotheras", ""]
,["Karathress", ""]
,["Lady Vashj", ""]
]);

// THE EYE, TEMPEST KEEP
wowTBC.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/TK.gif"]
,["The Eye", ""]
,["Void Reaver", ""]
,["Al'ar", ""]
,["Solarian", ""]
,["Kael'thas", ""]
]);

// BATTLE FOR MOUNT HYJAL
wowTBC.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/MH.gif"]
,["Battle for Mount Hyjal", ""]
,["Rage Winterchill", ""]
,["Anetheron", ""]
,["Kaz'rogal", ""]
,["Azgalor", ""]
,["Archimonde", ""]
]);

// BLACK TEMPLE
wowTBC.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/BT.gif"]
,["Black Temple", ""]
,["High Warlord Naj'entus", ""]
,["Supremus", ""]
,["Shade of Akama", ""]
,["Teron Gorefiend", ""]
,["Gurtogg Bloodboil", ""]
,["Reliquary of Souls", ""]
,["Mother Shahraz", ""]
,["The Illidari Council", ""]
,["Illidan Stormrage", ""]
]);

// SUNWELL PLATEAU
wowTBC.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/SP.gif"]
,["Sunwell Plateau", ""]
,["Kalecgos", ""]
,["Brutallus", ""]
,["Felmyst", ""]
,["Eredar Twins", ""]
,["M'uru", ""]
,["Kil'jaeden", ""]
]);

/* ********************************************
   Wrath of the Lich King
   ******************************************** */
// NAXXRAMAS II
wowWotLK.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/Nax2.gif"]
,["Naxxramas II", "(10 man)", "(25 man)"]
,["AW:Patchwerk", "", ""]
,["AW:Grobbulus", "", ""]
,["AW:Gluth", "", ""]
,["AW:Thaddius", "", ""]
,["PW:Noth the Plaguebringer", "", ""]
,["PW:Heigan the Unclean", "", ""]
,["PW:Loatheb", "", ""]
,["SW:Anub'Rekhan", "", ""]
,["SW:Grand Widow Faerlina", "", ""]
,["SW:Maexxna", "", ""]
,["DW:Instructor Razuvious", "", ""]
,["DW:Gothik the Harvester", "", ""]
,["DW:The Four Horsemen", "", ""]
,["FL:Sapphiron", "", ""]
,["KC:Kel'Thuzad", "", ""]
]);

// VAULT OF ARCHAVON
wowWotLK.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/VoA.gif"]
,["Vault of Archavon", "(10 man)", "(25 man)"]
,["Archavon the Stone Watcher", "", ""]
,["Emalon the Storm Watcher", "", ""]
]);

// CHAMBER OF ASPECTS - OBSIDIAN SANCTUM
wowWotLK.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/OS.gif"]
,["Chamber of Aspects", "(10 man)", "(25 man)"]
,["Sartharion the Onyx Guardian", "", ""]
,["Sartharion + 1 Drake", "", ""]
,["Sartharion + 2 Drakes", "", ""]
,["Sartharion + 3 Drakes", "", ""]
]);

// THE EYE OF ETERNITY
wowWotLK.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/EoE.gif"]
,["The Eye of Eternity", "(10 man)", "(25 man)"]
,["Malygos", "", ""]
]);

// ULDUAR
wowWotLK.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/ulduar.gif"]
,["Ulduar", "(10 man)", "(25 man)"]
,["Flame Leviathan", "", ""]
,["Ignis the Furnace Master", "", ""]
,["Razorscale", "", ""]
,["XT-002 Deconstructor", "", ""]
,["The Iron Council", "", ""]
,["Kologarn", "", ""]
,["Auriya", "", ""]
,["Mimiron", "", ""]
,["Watcher Freya", "", ""]
,["Watcher Thorim", "", ""]
,["Watcher Hodir", "", ""]
,["General Vezax", "", ""]
,["Yogg-Saron", "", ""]
,["Algalon the Observer", "", ""]
]);

// AZJOL-NERUB RAID
wowWotLK.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/Unk-10.gif"]
,["Azjol-Nerub Raid", "(10 man)<br>-closed-", "(25 man)<br>-closed-"]
,["-unknown-", "", ""]
]);

// ICECROWN CITADEL
wowWotLK.push ([
 ["http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/Unk-10.gif"]
,["Icecrown Citadel", "(10 man)<br>-closed-", "(25 man)<br>-closed-"]
,["-unknown-", "", ""]
,["The Lich King", "", ""]
]);

// ******************************************************
// Don't change anything below this line
// ******************************************************
pickExp(defaultWoW);
function pickExp(ex) {
 if (String(top.name).substring(0,4) == "Edit") { return; }
 if (hideExpansionSelector) $('#progSelect').css('display','none');
 var tmp;
 var sQ = "&#92;&#39;";
 var pb = "<center><table class=progBox border=0 width='100%'><tbody>";
 raidClassic = (ex[0][1][0].match("Zul'Gurub|Karazhan")) ? true : false;
 if (hide10manColumn && !raidClassic){ ignore10manCount=true; ignore25manCount=false; }
 if (hide25manColumn){ ignore25manCount=true; ignore10manCount=false; }
 for (var inst=0; inst < ex.length; inst++) {
  var killed10 = 0;
  var killed25 = 0;
  pb += "<tr =\"hideddrivetip()\"";
  if (!showAllRows&&(ex[inst][1][1].match(raidingKeyWord)||(ex[inst][1][1].replace(/\(10 man\)/,'')==""&&ex[inst][2][1]==""))) pb += " class=hide";
  pb += " =\"ddrivetip('<table><tr><td class=tooltipHeader width=" + tooltipBossWidth + "px>" + ex[inst][1][0].replace(/\'/g,sQ);
  pb += (hide10manColumn&&!raidClassic) ? "" : "</td><td align=center valign=top nowrap width=" + tooltipKilledWidth + "px>" + ex[inst][1][1].replace(/\'/g,sQ);
  pb += (raidClassic||hide25manColumn) ? "" : "</td><td align=center valign=top nowrap width=" + tooltipKilledWidth + "px>" + ex[inst][1][2].replace(/\'/g,sQ);
  pb += "</td></tr>";
  for (var boss=2; boss<(ex[inst].length); boss++) {
   pb += "<tr><td";
   var tmp2 = " class=killedBoss";
   var boss10 = (ex[inst][boss][1].match(bossKilledKeyWord)) ? true : false;
   if (boss10) killed10++;
   if (!raidClassic){
    var boss25 = (ex[inst][boss][2].match(bossKilledKeyWord)) ? true : false;
    if (boss25) killed25++;
   }
   if ( raidClassic || hide25manColumn ) {
    pb += (boss10) ? tmp2 : "";
   } else {
    tmp = (boss10&&boss25) ? tmp2 : "";
    if (hide10manColumn&&boss25||hide25manColumn&&boss10) tmp = tmp2;
    if (ignore10manCount&&boss25||ignore25manCount&&boss10) tmp = tmp2;
    pb += tmp;
   }
   pb += ">" + ex[inst][boss][0].replace(/\'/g,sQ) + "</td>";
   if (raidClassic||!hide10manColumn){
    pb += "<td align=center";
    pb += (boss10) ? " class=killedText" : "";
    pb += (ex[inst][boss][1].match(bossAttemptedKeyWord)) ? " class=attemptedBoss" : "";
    pb += ">" + ex[inst][boss][1] + "</td>";
   }
   if (!raidClassic&&!hide25manColumn){
    pb += "<td align=center";
    pb += (boss25) ? " class=killedText" : "";
    pb += (ex[inst][boss][2].match(bossAttemptedKeyWord)) ? " class=attemptedBoss" : "";
    pb += ">" + ex[inst][boss][2] +"</td>";
   }
   pb += "</tr>";
  }
  pb += "</table>', '', '" + (tooltipBossWidth + tooltipKilledWidth) + "');\" >"
  pb += "<td><img src=\"" + ex[inst][0] + "\" height=\"" + iconHeight + "\" width=\"" + iconWidth;
  pb += "\"></td><td class=\"instance\">" + ex[inst][1][0] + "</td><td class=bossCount>(";
  tmp = (raidClassic||!ignore10manCount||ignore25manCount) ? killed10 : killed25;
  if (!raidClassic&&(killed10 == ex[inst].length-2)&&!ignore25manCount) tmp = killed25;
  pb += tmp + "/" + (ex[inst].length-2) + ")</td></tr>";
 }
 pb += "</table>";
 $('#progBox').html(pb);
}
</script>
Customizing the Script

  • Please refer back to the previous versions on how to customize this script. Here are the changes made to this version when compared to version 2.2.

    1. A new variable "iconWidth" was added to adjust both height and width of the icon displayed.

      var iconWidth = 30;
    2. Added "ignore10manCount" and "ignore25manCount" to choose which progress count you want to display, if you set both to true, it will default to the 10 man count.

      var ignore10manCount = false;
      var ignore25manCount = false;
    3. Added "hide10manColumn" and "hide25manColumn" to hide that column in the tooltip. If you set both to true, you won't see any status for the boss but the count will still work.

      var hide10manColumn = false;
      var hide25manColumn = false;
    4. Added "hideExpansionSelector" to hide the icons across the top. If set to true, you can ignore/delete the expansion variables you aren't using (e.g. wowOrig, wowTBC or wowWotLK)

      var hideExpansionSelector = false;
TopBottom

Rykkan (New Admin) 4/30/2009 2:53 PM EST : RE: WoW Guild Progression box version 2.21

Rykkan
Posts: 25
Becoming Adept!

Thank you so much. This worked beautifully. And it worked completely. I no longer have Arch at 1/2 or Naxx at 0/15 cause of 25 man. What coding language is this coded in if i may ask?
TopBottom

Mottie (MVP) 4/30/2009 4:39 PM EST : RE: WoW Guild Progression box version 2.21
GuildPortal MVP
Mottie
Posts: 3884
Zomgawsh Poster

Hi Rykkan!

It's written in javascript, which is supported by all browsers. And some of it is written in jQuery which is sort of like an addon for javascript but it needs to be loaded with the page in order to work - this is supported by GuildPortal, so you don't really have to do anything.
TopBottom

Putin_ (New Admin) 5/11/2009 11:31 AM EST : RE: WoW Guild Progression box version 2.21
Putin_
Posts: 587
Zomgawsh Poster

Trying to get this setup and I cannot get anything to display other then the WoW version icons.


Created a new content box, as free form text/html. Clicked on the <> icon and pasted the code. Updated the code to indicate our boss kills.

I'm sure I am missing something dumb, but I just cant find it.

Putin
TopBottom

Admins Online
There are   members online.
So-and-so has logged on!
%title%
%message%