int i, j;
char *tab;
char *shared_with;
- char *not_shared_with;
+ char *not_shared_with = NULL;
int roompolicy = 0;
int roomvalue = 0;
int floorpolicy = 0;
wc_printf("</div>");
}
- free (not_shared_with);
+ if (not_shared_with != NULL)
+ free (not_shared_with);
+
/* Mailing list management */
if (!strcmp(tab, "listserv")) {
room_states RoomFlags;
}
+int ConditionalCurrentRoomHas_QRFlag2(StrBuf *Target, WCTemplputParams *TP)
+{
+ long QR2_CheckFlag;
+ wcsession *WCC = WC;
+
+ QR2_CheckFlag = GetTemplateTokenNumber(Target, TP, 2, 0);
+ if (QR2_CheckFlag == 0)
+ LogTemplateError(Target, "Conditional", ERR_PARM1, TP,
+ "requires one of the #\"QR2*\"- defines or an integer flag 0 is invalid!");
+
+ return ((WCC!=NULL) &&
+ ((WCC->CurRoom.QRFlags2 & QR2_CheckFlag) != 0));
+}
+
+int ConditionalRoomHas_QRFlag2(StrBuf *Target, WCTemplputParams *TP)
+{
+ long QR2_CheckFlag;
+ folder *Folder = (folder *)(TP->Context);
+
+ QR2_CheckFlag = GetTemplateTokenNumber(Target, TP, 2, 0);
+ if (QR2_CheckFlag == 0)
+ LogTemplateError(Target, "Conditional", ERR_PARM1, TP,
+ "requires one of the #\"QR2*\"- defines or an integer flag 0 is invalid!");
+ return ((Folder->QRFlags2 & QR2_CheckFlag) != 0);
+}
+
+
int ConditionalHaveRoomeditRights(StrBuf *Target, WCTemplputParams *TP)
{
wcsession *WCC = WC;
int ConditionalIsRoomtype(StrBuf *Target, WCTemplputParams *TP)
{
wcsession *WCC = WC;
+ int whichtype;
if ((WCC == NULL) ||
- (TP->Tokens->nParameters < 3) ||
- (TP->Tokens->Params[2]->Type != TYPE_STR)||
- (TP->Tokens->Params[2]->len < 7))
+ (TP->Tokens->nParameters < 3))
return 0;
-
+ whichtype = GetTemplateTokenNumber(Target, TP, 2, VIEW_BBS);
switch(WCC->CurRoom.view) {
case VIEW_BBS:
- return (!strcasecmp(TP->Tokens->Params[2]->Start, "VIEW_BBS"));
+ return whichtype == VIEW_BBS;
case VIEW_MAILBOX:
- return (!strcasecmp(TP->Tokens->Params[2]->Start, "VIEW_MAILBOX"));
+ return whichtype == VIEW_MAILBOX;
case VIEW_ADDRESSBOOK:
- return (!strcasecmp(TP->Tokens->Params[2]->Start, "VIEW_ADDRESSBOOK"));
+ return whichtype == VIEW_ADDRESSBOOK;
case VIEW_TASKS:
- return (!strcasecmp(TP->Tokens->Params[2]->Start, "VIEW_TASKS"));
+ return whichtype == VIEW_TASKS;
case VIEW_NOTES:
- return (!strcasecmp(TP->Tokens->Params[2]->Start, "VIEW_NOTES"));
+ return whichtype == VIEW_NOTES;
case VIEW_WIKI:
- return (!strcasecmp(TP->Tokens->Params[2]->Start, "VIEW_WIKI"));
+ return whichtype == VIEW_WIKI;
case VIEW_JOURNAL:
- return (!strcasecmp(TP->Tokens->Params[2]->Start, "VIEW_JOURNAL"));
+ return whichtype == VIEW_JOURNAL;
case VIEW_CALENDAR:
- return (!strcasecmp(TP->Tokens->Params[2]->Start, "VIEW_CALENDAR"));
+ return whichtype == VIEW_CALENDAR;
case VIEW_CALBRIEF:
- return (!strcasecmp(TP->Tokens->Params[2]->Start, "VIEW_CALBRIEF"));
+ return whichtype == VIEW_CALBRIEF;
default:
return 0;
}
RegisterConditional(HKEY("COND:THISROOM:FLAG:QR"), 0, ConditionalCurrentRoomHas_QRFlag, CTX_NONE);
RegisterConditional(HKEY("COND:ROOM:FLAG:QR"), 0, ConditionalRoomHas_QRFlag, CTX_ROOMS);
+ RegisterConditional(HKEY("COND:THISROOM:FLAG:QR2"), 0, ConditionalCurrentRoomHas_QRFlag2, CTX_NONE);
+ RegisterConditional(HKEY("COND:ROOM:FLAG:QR2"), 0, ConditionalRoomHas_QRFlag2, CTX_ROOMS);
+
REGISTERTokenParamDefine(QR_PERMANENT);
REGISTERTokenParamDefine(QR_INUSE);
REGISTERTokenParamDefine(QR_PRIVATE);
REGISTERTokenParamDefine(US_USER_SET);
+ REGISTERTokenParamDefine(VIEW_BBS);
+ REGISTERTokenParamDefine(VIEW_MAILBOX);
+ REGISTERTokenParamDefine(VIEW_ADDRESSBOOK);
+ REGISTERTokenParamDefine(VIEW_CALENDAR);
+ REGISTERTokenParamDefine(VIEW_TASKS);
+ REGISTERTokenParamDefine(VIEW_NOTES);
+ REGISTERTokenParamDefine(VIEW_WIKI);
+ REGISTERTokenParamDefine(VIEW_CALBRIEF);
+ REGISTERTokenParamDefine(VIEW_JOURNAL);
+ REGISTERTokenParamDefine(VIEW_BLOG);
+
RegisterConditional(HKEY("COND:ROOMAIDE"), 2, ConditionalRoomAide, CTX_NONE);
RegisterConditional(HKEY("COND:ACCESS:DELETE"), 2, ConditionalRoomAcessDelete, CTX_NONE);