<!--- Def Routine Template:
http://joelie.org/j:/routinetype-def --->
<var GLOBAL.Def = DeSerializeJSON('{
"Style": {
"layout": {
"width": "720"
},
"color": {
"back": "##fff",
"back_accent": "##f3f3f3",
"fore": "##000",
"text": "##222",
"link": "##69e",
"alert": "##ff9",
"pri": "##69e",
"pri_light": "##e0e9ff",
"sec": "##8b2",
"sec_light": "##ecffe0",
"ter": "##fc5",
"ter_light": "##fff3e0",
"g1": "##222",
"g2": "##555",
"g3": "##999",
"g4": "##aaa",
"g5": "##ccc",
"g6": "##eee"
}
}
}')>
<var GLOBAL.Def.CLIENT = QueryNew('id')>
<var _uid = client_id><fake_person><var _uid = 0></fake_person>
<set j="/user-#_uid#.sites.iqtpi_protected.dob_datetime.users.goodquestions.badquestions" maxrows="1">
<var GLOBAL.Def.CLIENT = set>
</set>
<tag.jparse_parse>
<var GLOBAL.Def.jParse = return>
<if client_id LTE 1 OR (isdefined("att.basic_only") AND att.basic_only EQ 1)> <BREAK> </if>
<!--- completing welcome steps --->
<if isdefined("get.complete") AND isValidGutitle(get.complete) EQ 1>
<var _new = reReplaceNoCase(GLOBAL.Def.CLIENT.iqtpi_protected,"[[:space:]]*\|#get.complete#\|","","all")>
<var _new = _new & CHR(10) & "|" & get.complete & "|">
<update orb="user" where="user.id = #client_id#"
iqtpi_protected="#_new#">
<var QuerySetCell(GLOBAL.Def.CLIENT,"iqtpi_protected",_new)>
</if>
<var C = GLOBAL.Def.CLIENT>
<!--- very basic info --->
<var GLOBAL.Def.did_finish_vbi = 1>
<if trim(C.gutitle) EQ "" OR trim(C.dob_datetime) EQ "">
<var GLOBAL.Def.did_finish_vbi = 0>
</if>
<!--- message count --->
<tag.m task="accept">
<tag.m task="count">
<var GLOBAL.Def.unread_messages = return>
<!--- questions created by logged in user MUST be on their "gotta know" list. --->
<var _good_ints = "," & makeValidIntList(replace(C.goodquestions,CHR(10),",","all")) & ",">
<var _good_ints_original = _good_ints>
<var _bad_ints = "," & makeValidIntList(replace(C.badquestions,CHR(10),",","all")) & ",">
<var _bad_ints_original = _bad_ints>
<set orb="question" select="question.id" where="question.user_id = #client_id#">
<setcrawl>
<if listFind(_good_ints,set.id) EQ 0>
<var _good_ints = _good_ints & set.id & ",">
</if>
<if listFind(_bad_ints,set.id) GT 0>
<var _bad_ints = replace(_bad_ints,",#set.id#,",",","all")>
</if>
</setcrawl>
</set>
<if _good_ints NEQ _good_ints_original OR _bad_ints NEQ _bad_ints_original>
<var _new_good = "">
<loop list="#_good_ints#" index="i">
<var _new_good = _new_good & CHR(10) & "|/question-#i#|">
</loop>
<var _new_bad = "">
<loop list="#_bad_ints#" index="i">
<var _new_bad = _new_bad & CHR(10) & "|/question-#i#|">
</loop>
<update orb="user" where="user.id = #client_id#"
goodquestions="#_new_good#"
badquestions="#_new_bad#">
<var QuerySetCell(GLOBAL.Def.Client,"goodquestions",_new_good)>
<var QuerySetCell(GLOBAL.Def.Client,"badquestions",_new_bad)>
<var C = GLOBAL.Def.Client>
</if>
<!--- any sites? any people? --->
<var GLOBAL.Def.any_sites = 0>
<if trim(replace(C.sites,"|","","all")) NEQ ""><var GLOBAL.Def.any_sites = 1></if>
<var GLOBAL.Def.any_users = 0>
<if trim(replace(C.users,"|","","all")) NEQ ""><var GLOBAL.Def.any_users = 1></if>
<!--- friends, following, followers --->
<tag.qi_get_social_data user_id="#client_id#">
<var GLOBAL.Def.Friends = return.Friends>
<var GLOBAL.Def.Following = return.Following>
<var GLOBAL.Def.Followers = return.Followers>