<if isdefined("att.orb")>
<elseif isdefined("caller.o") AND isValidOrb(caller.o) EQ 1>
<ensure variable="att.orb" value="#caller.o#">
<else>
<ensure variable="att.orb" value="">
</if>
<if isdefined("caller.set") AND isQuery(caller.set)>
<if isdefined("caller.set.currentrow")>
<var att.set = queryNew(caller.set.columnlist)>
<var queryAddRow(att.set)>
<loop list="#caller.set.columnlist#" index="i">
<var querySetCell(att.set,i,caller.set[i][caller.set.currentrow],1)>
</loop>
<else>
<ensure variable="att.set" value="#caller.set#">
</if>
<else>
<ensure variable="att.set" value="#queryNew('id')#">
</if>
<var Q = att.set>
<ensure variable="att.chars" value="140">
<var D = structNew()>
<var D.id = 0>
<if isdefined("Q.id") AND isnumeric(Q.id)>
<var D.id = Q.id>
</if>
<var D.user_id = 0>
<if isdefined("Q.user_id") AND isnumeric(Q.user_id)>
<var D.user_id = Q.user_id>
</if>
<var D.site_id = 0>
<if isdefined("Q.site_id") AND isnumeric(Q.site_id)>
<var D.site_id = Q.site_id>
</if>
<var D.otype = att.orb>
<if att.orb EQ "iqtpi" AND isdefined("Q.tbl")>
<var D.otype = Q.tbl>
</if>
<var D.idnum = D.id>
<if att.orb EQ "iqtpi" AND isdefined("Q.id")>
<var D.idnum = Q.id>
</if>
<var D.idstr = D.idnum>
<var D.title = "(untitled)"><if att.orb EQ "user"><var D.title = "(anonymous)"></if>
<if att.orb EQ "site" AND isdefined("Q.domain") AND trim(Q.domain) NEQ "">
<var D.title = trim(lcase(escapeMarkup(Q.domain)))>
</if>
<if isdefined("Q.gutitle") AND trim(Q.gutitle) NEQ "">
<var D.idstr = trim(lcase(Q.gutitle))>
<var D.title = D.idstr>
</if>
<if att.orb EQ "user" AND isdefined("Q.name") AND trim(Q.name) NEQ "">
<var D.title = escapeMarkup(Q.name)>
<elseif isdefined("Q.title") AND trim(Q.title) NEQ "">
<var D.title = escapeMarkup(Q.title)>
</if>
<var D.src = "http://#this_domain#/?&f=site-#site_id#">
<if isValidOrb(att.orb) EQ 1 AND isdefined("Q.extension") AND listFindNoCase("jpg,png,gif",Q.extension) NEQ 0>
<var D.src = "http://#this_domain#/?&f=#att.orb#-#D.id#&f2=site-#site_id#">
</if>
<var D.notes = "">
<if isdefined("Q.notes") AND trim(Q.notes) NEQ "">
<tag.clean_shortstring str="#replaceMarkup(Q.notes)#" chars="#att.chars#">
<var D.notes = return>
</if>
<var D.href = "http://#this_domain#/#D.idstr#">
<var D.uname = "">
<if att.orb EQ "iqtpi" AND isdefined("Q.uname") AND trim(Q.uname) NEQ "">
<var D.uname = escapeMarkup(Q.uname)>
</if>
<var D.extension = "">
<if isdefined("Q.extension") AND att.orb EQ "iqtpi">
<var D.extension = Q.extension>
<elseif isdefined("Q.extension")>
<var D.extension = Q.extension>
</if>
<return D>