!7 cmodule2 NoilandVIP > GazelleExamples { switchable long favIconID; void init { super.init(); botName = heading = adminName = "Noiland.VIP"; //templateID = #1030430; //cssID = "396"; set enableVars; set enableAvatars; set showTalkToBotLink; timeZone = germanTimeZone_string(); unset phoneNumberSpecialInputField; } Set hiddenCrudClasses() { ret litset(); } L botCmdClasses() { ret dynNewBot2_botCmdClasses(); } S authFormHeading() { ret h3("Noiland.VIP"); } void makeFramer(Req req) { super.makeFramer(req); req.framer.renderTitle = () -> h1(ahref(baseLink + "/", "Noiland.VIP") + " " + htmlEncode2(req.framer.title)); } O serveFavIcon() { if (favIconID == 0) ret super.serveFavIcon(); UploadedFile f = getConcept UploadedFile(favIconID); if (f != null) ret serveFile(f.theFile(), faviconMimeType()); ret serve404(); } S calcVar(Conversation conv, S var) { if (eqic(var, "hasUserName")) ret str(nempty(calcVar(conv, "userName"))); ret super.calcVar(conv, var); } /*S cssURL() { ret "https://pays5.com/text/" + cssID; }*/ } !include early #1029913 // gazelle.rocks