// // execute method is the only public // public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { string returnHtml = ""; DateTime dateLastEmail; DateTime rightNow = DateTime.Now ; DateTime today = rightNow.Date; DateTime yesterday = today.AddDays(-1); //string sqlCriteria = ""; string sqlDateLastEmail = ""; // try { dateLastEmail = cp.Site.GetDate("Forums Notification Last Sent", yesterday.ToString() ); sqlDateLastEmail = cp.Db.EncodeSQLDate(dateLastEmail); if (dateLastEmail < today) { cp.Utils.ExecuteAddon(sendUpdatesGuid); } } catch (Exception ex) { errorReport(cp, ex, "execute"); } return returnHtml; }
// // execute method is the only public // public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { string returnHtml = ""; try { returnHtml = "Visual Studio add-on assembly - OK response"; } catch (Exception ex) { cp.Site.ErrorReport( "There was a unexpected exception, " + ex.ToString() ); returnHtml = "Visual Studio add-on assembly - error response"; } return returnHtml; }
// // // void loadForm(Contensive.BaseClasses.CPBaseClass cp) { CPCSBaseClass cs = cp.CSNew(); // if (cs.Open("People", "ID=" + cp.User.Id, "", false, "", 1, 1)) { cp.Doc.set_Var("panelAccountFirstName", cs.GetText("firstName")); cp.Doc.set_Var("panelAccountLastName", cs.GetText("lastName")); cp.Doc.set_Var("panelAccountEmail", cs.GetText("email")); cp.Doc.set_Var("panelAccountUsername", cs.GetText("username")); cp.Doc.set_Var("panelAccountPassword", cs.GetText("password")); } cs.Close(); }
// // =============================================================================================== // performs all housekeeping when a thread record is changed (add,mod,del) // =============================================================================================== // public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { //int sourceFormId = 0; //int formId = 0; //int forumId = 0; int threadId = 0; string s = ""; string sql = ""; CPCSBaseClass cs = cp.CSNew(); // threadId = cp.Utils.EncodeInteger( cp.Doc.GetProperty("recordId","")); if (threadId == 0) { // // re count 'threads' in all forums // sql = "select ccforums.id as forumId" + ",(select count(ccforumthreads.id) from ccforumthreads where forumId=ccForums.id) as threadCnt" + ",(select count(p.id) from ccforumPosts p left join ccforumThreads t on t.id=p.threadid where t.forumId=ccforums.id) as postCnt" + ",(select max(p.id) from ccforumPosts p left join ccforumThreads t on t.id=p.threadid where t.forumId=ccforums.id) as lastPostId" + " from ccforums" + ""; } else { // // update forum for thread provided // sql = "select ccforums.id as forumId" + ",(select count(ccforumthreads.id) from ccforumthreads where forumId=ccForums.id) as threadCnt" + ",(select count(p.id) from ccforumPosts p left join ccforumThreads t on t.id=p.threadid where t.forumId=ccforums.id) as postCnt" + ",(select max(p.id) from ccforumPosts p left join ccforumThreads t on t.id=p.threadid where t.forumId=ccforums.id) as lastPostId" + " from ccforums" + " where ccforums.id in (select forumid from ccforumthreads where id=" + threadId + ")" + ""; } // if (cs.OpenSQL2(sql, "", 1000, 1)) { while (cs.OK()) { sql = "update ccforums set threads=" + cs.GetInteger("threadCnt") + ",posts=" + cs.GetInteger("postCnt") + ",lastPostId=" + cs.GetInteger("lastPostId") + " where id=" + cs.GetInteger("forumId"); cp.Db.ExecuteSQL(sql, "", "1", "1", "1"); cs.GoNext(); } } cs.Close(); // return s; }
public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { string s = ""; string js = ""; bool updated = cp.Utils.EncodeBoolean(cp.Doc.get_Var("acctUpdated")); bool errFlag = cp.Utils.EncodeBoolean(cp.Doc.get_Var("errFlag")); bool allowEmailLogin = cp.Utils.EncodeBoolean(cp.Site.GetProperty("ALLOWEMAILLOGIN","0")); CPBlockBaseClass lO = cp.BlockNew(); // loadForm(cp); // lO.OpenLayout("Default Account Form"); // if (updated||errFlag) { if (errFlag) { lO.SetInner(".panelInstructionContainer", cp.Html.p(cp.Doc.get_Var("errMessage"),"","ccError","")); } else { lO.SetInner(".panelInstructionContainer", cp.Content.GetCopy("Default Profile Form Updated", "Your profile has been updated.")); } } else { lO.SetInner(".panelInstructionContainer", cp.Content.GetCopy("Default Account Form Instructions", "Use the form below to update your account information.")); } // if (allowEmailLogin) { lO.SetOuter("#panelRowUsername", ""); } s = lO.GetHtml(); // js += "$(document).ready(function(){"; js += " $('#panelAccountFirstName').val('" + cp.Doc.get_Var("panelAccountFirstName") + "');"; js += " $('#panelAccountLastName').val('" + cp.Doc.get_Var("panelAccountLastName") + "');"; js += " $('#panelAccountEmail').val('" + cp.Doc.get_Var("panelAccountEmail") + "');"; js += " $('#panelAccountUsername').val('" + cp.Doc.get_Var("panelAccountUsername") + "');"; js += " $('#panelAccountPassword').val('" + cp.Doc.get_Var("panelAccountPassword") + "');"; js += "});"; // cp.Doc.AddHeadJavascript(js); // return s; }
// public override Object public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { string returnHtml = ""; try { // all form classes inherit from formBase, so this one form object can be used for every form type required // refresh query string is everying needed on the query string to refresh this page. Used for links, etc to always submit to the same page. // rightNow is convenient when you need to test time dependant options, you can force the rightNow with a site property, etc // srcFormId is the form number that submitted the request (if it was a form submission) and should be a hidden on all forms // dstFormId is a way to force a form to display without a form submission string body = ""; formBaseClass form; string rqs = cp.Doc.GetProperty("multiformAjaxCsFrameRqs"); DateTime rightNow = commonModule.getRightNow(cp); int srcFormId = cp.Utils.EncodeInteger(cp.Doc.GetProperty(commonModule.rnSrcFormId)); int dstFormId = cp.Utils.EncodeInteger(cp.Doc.GetProperty(commonModule.rnDstFormId)); formHandlerClass formHandler = new formHandlerClass(); applicationClass application; //get previously started application application = commonModule.getApplication(cp, false); // if there is no application, only allow form one if (application.id == 0) { if (srcFormId != commonModule.formIdOne) { srcFormId = 0; } dstFormId = commonModule.formIdOne; } // process forms if (srcFormId != 0) { switch (srcFormId) { case commonModule.formIdOne: // form = new form1Class(); dstFormId = form.processForm(cp, srcFormId, rqs, rightNow, application); break; case commonModule.formIdTwo: // form = new form2Class(); dstFormId = form.processForm(cp, srcFormId, rqs, rightNow, application); break; case commonModule.formIdThree: // form = new form3Class(); dstFormId = form.processForm(cp, srcFormId, rqs, rightNow, application); break; case commonModule.formIdFour: // form = new form4Class(); dstFormId = form.processForm(cp, srcFormId, rqs, rightNow, application); break; } } // get the next form that should appear on the page. // put the default form as the else case - to display if nothing else is selected switch (dstFormId) { case commonModule.formIdFour: // // // form = new form4Class(); body = form.getForm(cp, dstFormId, rqs, rightNow, application); break; case commonModule.formIdThree: // // // form = new form3Class(); body = form.getForm(cp, dstFormId, rqs, rightNow, application); break; case commonModule.formIdTwo: // // // form = new form2Class(); body = form.getForm(cp, dstFormId, rqs, rightNow, application); break; default: // // default form // dstFormId = commonModule.formIdOne; form = new form1Class(); body = form.getForm(cp, dstFormId, rqs, rightNow, application); break; } commonModule.saveApplication(cp, application, rightNow); // assemble body returnHtml = body; } catch (Exception ex) { cp.Site.ErrorReport(ex, "error in formHandlerClass.execute"); } return returnHtml; }
// // =============================================================================================== // execute method is the only public // =============================================================================================== // public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { int sourceFormId = 0; int formId = 0; int forumId = 0; int threadId = 0; string interceptForm; string s = ""; string email = ""; bool isEditing = cp.User.IsEditingAnything; string forceInterceptForm = ""; CPBlockBaseClass block = cp.BlockNew(); string qs = ""; string rqs = ""; string copy = ""; CPCSBaseClass cs = cp.CSNew(); // cp.Site.SetProperty("forum last display qs", cp.Doc.RefreshQueryString); // sourceFormId = cp.Utils.EncodeInteger(cp.Doc.get_Var(rnSourceForm)); // formId = cp.Utils.EncodeInteger(cp.Doc.get_Var(rnFormId)); forumId = cp.Utils.EncodeInteger(cp.Doc.get_Var(rnForumId)); threadId = cp.Utils.EncodeInteger(cp.Doc.get_Var(rnThreadId)); interceptForm = cp.Doc.GetProperty(rnIntercept, ""); if ((forumId == 0) & (threadId != 0)) { cs.OpenSQL("select forumId from ccforumThreads where id=" + threadId); if (cs.OK()) { forumId = cs.GetInteger("forumId"); } else { threadId = 0; } } // //cp.Doc.AddRefreshQueryString(rnFormId, formId.ToString()); cp.Doc.AddRefreshQueryString(rnForumId, forumId.ToString()); cp.Doc.AddRefreshQueryString(rnThreadId, threadId.ToString()); //cp.Doc.AddRefreshQueryString(rnIntercept, interceptForm.ToString()); rqs = cp.Doc.RefreshQueryString; // // handle intercept forms // if (interceptForm != "") { switch (interceptForm) { case "register": if (processRegister(cp)) { cp.Response.Redirect("?" + rqs); } break; case "login": if ( cp.User.Login( cp.Doc.GetProperty("username", ""), cp.Doc.GetProperty("password", ""), false) ) { cp.Response.Redirect("?" + rqs); } break; case "logout": cp.User.Logout(); cp.Response.Redirect("?" + rqs); break; case "password": email = cp.Doc.GetProperty("email", ""); if (email == "") { cp.UserError.Add("You must include an email address to have your username and password sent."); } else { cp.Email.sendPassword(email); } break; } } // // process current form // if (sourceFormId != 0) { switch (sourceFormId) { case formIdProfile: formId = processProfile(cp); break; case formIdNewForum: formId = processNewForum(cp); break; case formIdForumList: formId = processForumList(cp); break; case formIdThreadList: formId = processThreadList(cp); break; case formIdNewThread: formId = processNewThread(cp, forumId); break; case formIdNewPost: formId = processNewPost(cp, threadId); break; default: formId = formIdForumList; break; } } // // determine next form if not set // if (formId == 0) { if ( threadId!=0 ) { formId = formIdPostList; } else if ( forumId != 0 ) { formId = formIdThreadList; } else { formId = formIdForumList ; } } // // Intercept login and register - but leave the formId as-is // forceInterceptForm = cp.Doc.GetProperty("forceInterceptForm",""); if ( forceInterceptForm == "login" ) { s = getLogin(cp, formId, forumId, threadId); } else if (forceInterceptForm == "register") { s = getRegister(cp, formId, forumId, threadId); } else if ( ( (forumId != 0) & !userHasAccess(cp, forumId) ) | ( (!cp.User.IsAuthenticated) & ( (formId == formIdNewThread) | (formId == formIdNewPost) | (formId == formIdNewForum) ) ) ) { // // accessing a forum that is closed and you have no permissions // or accessing a form that requires you to login // if (cp.Utils.EncodeBoolean(cp.Doc.GetProperty("register", ""))) { s = getRegister(cp, formId, forumId, threadId); } else if ( !cp.User.IsAuthenticated ) { s = getLogin(cp, formId, forumId, threadId); } else { block.OpenLayout("forum - not in group page"); s = block.GetHtml(); qs = rqs; qs = cp.Utils.ModifyQueryString(qs, rnFormId , formIdForumList.ToString(), false); qs = cp.Utils.ModifyQueryString(qs, rnForumId, "", false); s = s.Replace("$forumList$", "?" + qs); qs = rqs; qs = cp.Utils.ModifyQueryString(qs, rnIntercept, "logout", true); s = s.Replace("$forumlogin$", "?" + qs); } } else { if ((!cp.User.IsAdmin) && (formId == formIdNewForum)) { // // you must be an administrator for these forms // cp.UserError.Add("You must be an administrator to create a new forum."); formId = formIdForumList; } // // verify form requirements // switch (formId) { case formIdPostList: if (threadId == 0) formId = formIdForumList; break; case formIdThreadList: if (forumId == 0) formId = formIdForumList; break; case formIdNewThread: if (forumId == 0) formId = formIdForumList; break; case formIdNewPost: if (threadId == 0) formId = formIdForumList; break; //default: // s = getForumList(cp, isEditing); // break; } // // get next form // switch (formId) { case formIdProfile: s = getProfile(cp); break; case formIdNewForum: s = getNewForum(cp); break; case formIdPostList: s = getPostList(cp, threadId, isEditing); break; case formIdThreadList: s = getThreadList(cp, forumId, isEditing); break; case formIdNewThread: s = getNewThread(cp, forumId); break; case formIdNewPost: s = getNewPost(cp, threadId); break; default: s = getForumList(cp, isEditing); break; } } // // update login, logout, register buttons // rqs = cp.Doc.RefreshQueryString; block.Load(s); if (!cp.User.IsAuthenticated) { // // not authenticated - block anything marked block // qs = rqs; qs = cp.Utils.ModifyQueryString(qs, "forceInterceptForm", "login", true); copy = "<a class=\"loginLightbox\" href=\"?" + qs + "\">Login</a>"; block.SetOuter(".foButtonLogin", copy); qs = cp.Utils.ModifyQueryString(qs, "forceInterceptForm", "register", true); copy = "<a href=\"?" + qs + "\">Register</a>"; block.SetOuter(".foButtonRegister", copy); block.SetOuter(".foButtonLogout", ""); block.SetOuter(".foButtonProfile", ""); } else { // // authenticated // qs = rqs; qs = cp.Utils.ModifyQueryString(qs, rnIntercept, "logout", true); copy = "<a href=\"?" + qs + "\">Logout</a>"; block.SetOuter(".foButtonLogout", copy); block.SetOuter(".foButtonLogin", ""); block.SetOuter(".foButtonRegister", ""); qs = rqs; qs = cp.Utils.ModifyQueryString(qs, rnFormId, formIdProfile.ToString(), true); copy = "<a href=\"?" + qs + "\">Update/Edit Profile</a>"; block.SetOuter(".foButtonProfile", copy); } s = block.GetHtml(); // // return result // return s; }
public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { string s = ""; string username = cp.Doc.get_Var("panelLoginUsername"); string password = cp.Doc.get_Var("panelLoginPassword"); string email = cp.Doc.get_Var("panelLoginEmail"); bool autoLogin = cp.Utils.EncodeBoolean(cp.Doc.get_Var("panelLoginAuto")); string reqEmail = cp.Doc.get_Var("panelEmailEmail"); CPCSBaseClass cs = cp.CSNew(); string login = ""; // if (reqEmail != "") { if (cs.Open("People", "email=" + cp.Db.EncodeSQLText(reqEmail), "", false, "", 1, 1)) { cp.Doc.set_Var("Email Flag", "1"); cp.Email.sendPassword(reqEmail); } else { cp.Doc.set_Var("Email Error Flag", "1"); } cs.Close(); // s = cp.Utils.ExecuteAddon("{37B7EDB3-7BE0-4E89-8012-16F0CDEED218}"); } else { // if (!cp.Utils.EncodeBoolean(cp.Site.GetProperty("ALLOWEMAILLOGIN", ""))) { login = username; } else { login = email; } // if (!cp.User.Login(login, password, autoLogin)) { cp.Doc.set_Var("Error Flag", "1"); s = cp.Utils.ExecuteAddon("{37B7EDB3-7BE0-4E89-8012-16F0CDEED218}"); } } // return s; }
public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { string s = cp.Utils.ExecuteAddon("{37B7EDB3-7BE0-4E89-8012-16F0CDEED218}"); // s = cp.Html.div(s, "", "", "panelFormContainer"); // return s; }
public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { bool errFlag = false; string s = ""; string firstName = cp.Doc.get_Var("panelAccountFirstName"); string lastName = cp.Doc.get_Var("panelAccountLastName"); string email = cp.Doc.get_Var("panelAccountEmail"); string username = cp.Doc.get_Var("panelAccountUsername"); string password = cp.Doc.get_Var("panelAccountPassword"); CPCSBaseClass cs = cp.CSNew(); string sql = ""; // if allowEmailLogin -- then ignore username input, it is not valid bool allowEmailLogin = cp.Utils.EncodeBoolean(cp.Site.GetProperty("ALLOWEMAILLOGIN", "")); // // check input // if ((firstName == "") | (lastName == "") | (email == "") | (password == "") | ((username == "") & (!allowEmailLogin))) { // // missing fields // errFlag = true; cp.Doc.set_Var("errFlag", "1"); cp.Doc.set_Var("errMessage", "One or more required fields were empty."); } else { // // check for duplicate in username if account requires username // if (allowEmailLogin) { // // email loging, check email provided against email and username fields // sql = "(ID<>" + cp.User.Id + ")" + "and(" + "(username="******")" + "or(email=" + cp.Db.EncodeSQLText(email) + ")" + ")" + ""; } else { // // check username and email provided against both email and username fields // sql = "(ID<>" + cp.User.Id + ")" + "and(" + "(username="******")" + "or(email=" + cp.Db.EncodeSQLText(email) + ")" + "or(username="******")" + "or(email=" + cp.Db.EncodeSQLText(username) + ")" + ")" + ""; } if (cs.Open("People", sql, "", false, "", 1, 1)) { errFlag = true; cp.Doc.set_Var("errFlag", "1"); cp.Doc.set_Var("errMessage", "The login requested is not available, please enter an alternate username."); } cs.Close(); } // if (!errFlag) { if (cs.Open("People", "ID=" + cp.User.Id, "", false, "", 1, 1)) { cs.SetField("name", firstName + " " + lastName); cs.SetField("firstName", firstName); cs.SetField("lastName", lastName); cs.SetField("email", email); cs.SetField("password", password); if (!allowEmailLogin) { cs.SetField("username", username); } } cs.Close(); cp.Doc.set_Var("acctUpdated", "1"); } // s = cp.Utils.ExecuteAddon("{7A057715-5CDD-4D9F-A12A-5CCB61F93974}"); // return s; }
public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { string s = ""; //string js = ""; bool errFlag = cp.Utils.EncodeBoolean(cp.Doc.get_Var("Error Flag")); // problem with login bool emailFlag = cp.Utils.EncodeBoolean(cp.Doc.get_Var("Email Flag")); // email password sent bool errEmailFlag = cp.Utils.EncodeBoolean(cp.Doc.get_Var("Email Error Flag")); // problem with email password CPBlockBaseClass lO = cp.BlockNew(); //string defaultLoginInstructions = "You are attempting to enter an access controlled area. Continue only if you have authority to enter this area. Information about your visit will be recorded for security purposes."; //string defaultEmailInstructions = "If you are a member of the system and can not remember your password, enter your email address below and we will email your matching username and password."; string hiddenString = ""; // lO.OpenLayout("Default Login Form"); // // Login Instructions // if (errFlag) { lO.SetInner(".panelInstructionContainer", cp.Content.GetCopy("Default Login Form Error", "<p class=\"ccError\">There was a problem with your login - please try again.</p>")); } else { //lO.SetInner(".panelInstructionContainer", cp.Content.GetCopy("Default Login Form Instructions", defaultLoginInstructions)); } // // ALLOWEMAILLOGIN check // if (cp.Utils.EncodeBoolean(cp.Site.GetProperty("ALLOWEMAILLOGIN", ""))) { lO.SetOuter("#panelRowUsername", ""); hiddenString += cp.Html.Hidden("reqEmail", "1", "", "reqEmail"); hiddenString += cp.Html.Hidden("reqUsername", "0", "", "reqUsername"); } else { lO.SetOuter("#panelRowEmail", ""); hiddenString += cp.Html.Hidden("reqUsername", "1", "", "reqUsername"); hiddenString += cp.Html.Hidden("reqEmail", "0", "", "reqEmail"); } // // ALLOWMEMBERJOIN (include the register button) // if (!cp.Utils.EncodeBoolean(cp.Site.GetProperty("ALLOWMEMBERJOIN", "0"))) { string loginLink = lO.GetOuter("#tpLoginFormSubmit"); lO.SetInner(".panelLoginFormList .buttonRow", loginLink); } // // ALLOWNOPASSWORDLOGIN check // if (cp.Utils.EncodeBoolean(cp.Site.GetProperty("ALLOWNOPASSWORDLOGIN", ""))) { lO.SetInner("#tpPasswordLabel", "Password"); //optional hiddenString += cp.Html.Hidden("reqPassword", "0", "", "reqPassword"); } else { hiddenString += cp.Html.Hidden("reqPassword", "1", "", "reqPassword"); } // // ALLOWAUTOLOGIN check // if (!cp.Utils.EncodeBoolean(cp.Site.GetProperty("ALLOWAUTOLOGIN", ""))) { lO.SetOuter("#panelRowAuto", ""); } // // add email form instrutions // if (errEmailFlag) { lO.SetInner(".panelLowerInstructionContainer", cp.Content.GetCopy("Default Email Form Error", "<p class=\"ccError\">The email address provided was not found.</p>")); } else if (emailFlag) { lO.SetInner(".panelLowerInstructionContainer", cp.Content.GetCopy("Default Email Form Email Sent", "<p class=\"ccError\">Your login has been sent the email address provided.</p>")); } else { //lO.SetInner(".panelLowerInstructionContainer", cp.Content.GetCopy("Default Email Form Instructions", defaultEmailInstructions)); } // // ALLOWPASSWORDEMAIL check // if (! cp.Utils.EncodeBoolean(cp.Site.GetProperty("ALLOWPASSWORDEMAIL", ""))) { lO.SetOuter("#emailSendContainer", ""); } // // make a list of fields present so field validator can alert required fields if missing // lO.SetOuter("#hiddenRow", hiddenString); // s = lO.GetHtml(); //// //js += "$(document).ready(function(){"; //// //js += " var containerHeight = $('#panelFormContainer').height();"; //// //js += " $('#loginSubmit').click(function(){"; //js += " if (!validateLoginForm())"; //js += " {"; //js += " return false;"; //js += " };"; //// //js += " var varString;"; //js += " var username = $('#panelLoginUsername').val();"; //js += " var email = $('#panelLoginEmail').val();"; //js += " var password = $('#panelLoginPassword').val();"; //js += " var auto = $('#panelLoginAuto').val();"; //// //js += " varString = 'panelLoginUsername='******'&panelLoginPassword='******'&panelLoginEmail='+email;"; //js += " varString += '&panelLoginAuto='+auto;"; //// //js += " cj.ajax.addonCallback('toolPanelLoginFormHandler', varString, tpRedirectHome, 'panelFormContainer');"; //// //js += " tpSetSpinner('panelFormContainer', 'Authenticating Account....', containerHeight);"; //js += " });"; //js += " $('#emailSubmit').click(function(){"; //js += " if (!validateEmailForm())"; //js += " {"; //js += " return false;"; //js += " };"; //js += " cj.ajax.addon('toolPanelLoginFormHandler', '', 'panelLoginForm', 'panelFormContainer', '', '');"; //js += " tpSetSpinner('panelFormContainer', 'Gathering Account Information....', containerHeight);"; //js += " });"; //js += " $('#registrationClick').click(function(){"; //js += " cj.ajax.addon('toolPanelDefaultRegistrationForm','', '', 'panelFormContainer', '', '');"; //js += " tpSetSpinner('panelFormContainer', 'Building Registration Form....', containerHeight);"; //js += " });"; //// //js += " return false;"; //js += "});"; //// //cp.Doc.AddHeadJavascript(js); // return s; }
public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { string s = cp.Utils.ExecuteAddon("{7A057715-5CDD-4D9F-A12A-5CCB61F93974}"); // s = cp.Html.div(s, "", "", "panelFormContainer"); // return s; }
// public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { string jsOnReady = ""; string doc; string copy; bool isDebugging = false; CPBlockBaseClass block = cp.BlockNew(); //string buttonLeftDown = "<a class=\"tpButtonDown\" href=\"?ccFormSN=1&1Type=do30a8vl29&1mb=%20%20Apply%20"; //string buttonLeftUp = "<a class=\"tpButtonUp\" href=\"?ccFormSN=1&1Type=do30a8vl29&1mb=%20%20Apply%20"; //string buttonRight = "\">"; //string debugState = ""; string editHidden = ""; string footer = ""; string formOpen = ""; string formClose = ""; string debugHidden = ""; string buttonState = ""; string buttonClass=""; string previewHidden = ""; bool isPreviewing = false; bool isAccountTabLocked = false; bool isLoginTabPinned = false; bool isLoginTabDefaultPinned = false; bool isAccountTabDefaultPinned = false; // block.OpenLayout("Tool Panel - Top"); // if (cp.User.GetProperty(upLoginTabIsPinned, "", 0)=="") { // // if new user, set the default state of the login tab pin (pinned down or autohide) // isLoginTabDefaultPinned = cp.Utils.EncodeBoolean(cp.Site.GetProperty(spLoginTabIsPinnedByDefault, "0")); cp.User.SetProperty(upLoginTabIsPinned, isLoginTabDefaultPinned.ToString().ToLower(), 0); } // // set default for login tab // jsOnReady += cr + "isLockedAccountTab=" + cp.Utils.EncodeBoolean(cp.Site.GetProperty("toolPanelDisableAutoHideAccountTab", "0")).ToString().ToLower() + ";"; //jsOnReady += cr + "var isLockedAccountTab=" + cp.Utils.EncodeBoolean(cp.Site.GetProperty("toolPanelDisableAutoHideAccountTab", "0")).ToString().ToLower() + ";"; isAccountTabDefaultPinned = cp.Utils.EncodeBoolean(cp.Site.GetProperty("toolPanelPinAccountTab", "0")); if (cp.User.GetProperty("isLockedAccountTab", "", 0)=="") { cp.User.SetProperty("isLockedAccountTab", isAccountTabDefaultPinned.ToString().ToLower(), 0); } // if (!cp.User.IsAuthenticated) { // // not logged in, return with just the login // block.SetOuter("#tpAccountPanel", ""); block.SetOuter("#tpAccountTab", ""); block.SetOuter("#tpEditTab", ""); // // check if login tab allowed via settings page // if (!cp.Utils.EncodeBoolean(cp.Site.GetProperty(spLoginTabAllowed, ""))) { block.SetOuter("#tpLoginTab", ""); } else { isLoginTabPinned = cp.Utils.EncodeBoolean(cp.User.GetProperty(upLoginTabIsPinned, "0", 0)); if (isLoginTabPinned) { jsOnReady += cr + "tpAbortLoginTabClose=true;"; jsOnReady += cr + "tpLoginTabIsPinned=true;"; jsOnReady += cr + "jQuery('#tpLoginLock').html('<img src=\"/toolPanel/lockClosed.png\" width=\"10\" height=\"10\">');"; } else { jsOnReady += cr + "tpLoginTabIsPinned=false;"; } } } else { // // logged in, block the login // block.SetOuter("#tpLoginPanel", ""); block.SetOuter("#tpLoginTab", ""); // // check if account tab allowed via settings page // if (cp.Utils.EncodeBoolean(cp.Site.GetProperty("toolPanelShowAccountTab", ""))) { // // Account Tab // isAccountTabLocked = cp.Utils.EncodeBoolean(cp.User.GetProperty("isLockedAccountTab", "0", 0)); if (isAccountTabLocked) { copy = "true"; jsOnReady += cr + "jQuery('#tpAccountLock').html('<img src=\"/toolPanel/lockClosed.png\" width=\"10\" height=\"10\">');"; } else { copy = "false"; } jsOnReady += cr + "isLockedAccountTab=" + copy + ";"; } else { block.SetOuter("#tpAccountTab", ""); } // // // Edit Tab // if (!cp.User.IsContentManager("")) { block.SetOuter("#tpEditTab", ""); } else { // footer = "" + cr + "<div class=\"tpInner\">" + "<span>Contensive " + cp.Version + "</span>" + "|<span>" + cp.Doc.StartTime + "</span>" + "|<span><a href=\"http://support.Contensive.com/\" target=\"_blank\" class=\"ccAdminLink\">Support</a></span>" + "|<span><a href=\"" + cp.Site.GetProperty("adminurl","") + "\" class=\"ccAdminLink\">Admin Home</a></span>" + "|<span><a href=\"/\" class=\"ccAdminLink\">Public Home</a></span>" + "</div>" + ""; footer = cp.Html.div(footer, "", "", "toolPanelFooter"); // formOpen = "" + "<form method=\"post\" action=\"?" + cp.Doc.RefreshQueryString + "\" style=\"display:inline;\">" + "<input type=\"hidden\" name=\"ccFormSN\" value=\"1\">" + "<input type=\"hidden\" name=\"1type\" value=\"do30a8vl29\">" + "<input type=\"hidden\" name=\"1mb\" value=\" Apply \">" + ""; formClose = "</form>"; editHidden = ""; isDebugging = cp.Utils.EncodeBoolean(cp.Visit.GetProperty("allowDebugging", "0", 0)); isPreviewing = cp.Utils.EncodeBoolean(cp.Visit.GetProperty("AllowWorkflowRendering", "0", 0)); // if (isDebugging) { debugHidden = cr + "<input type=\"hidden\" name=\"1allowDebugging\" value=\"1\">"; } if (isPreviewing) { previewHidden = cr + "<input type=\"hidden\" name=\"1allowWorkflowRendering\" value=\"1\">"; } // // Edit button // buttonState = "1"; buttonClass = "tpButtonUp"; if (cp.Utils.EncodeBoolean(cp.Visit.GetProperty("allowEditing", "0", 0))) { buttonState = "0"; buttonClass = "tpButtonDown"; editHidden = "<input type=\"hidden\" name=\"1allowEditing\" value=\"1\">"; } copy = "" + debugHidden + previewHidden + cr + "<input type=\"hidden\" name=\"1allowEditing\" value=\"" + buttonState + "\">" + cr + "<a id=\"tpButtonEdit\" href=\"#\">Edit</a>"; copy = "" + cr + formOpen + cp.Html.Indent( copy, 1 ) + cr + formClose; block.SetInner("#tpEditTabEdit", copy); jsOnReady += cr + "jQuery('#tpButtonEdit').click( function () { jQuery(this).parents('form:first').submit(); return false });"; jsOnReady += cr + "jQuery('#tpButtonEdit').addClass('" + buttonClass + "');"; // // Quick Edit button // buttonState = "1"; buttonClass = "tpButtonUp"; if (cp.Utils.EncodeBoolean(cp.Visit.GetProperty("allowQuickEditor", "0", 0))) { buttonState = "0"; buttonClass = "tpButtonDown"; editHidden = "<input type=\"hidden\" name=\"1AllowQuickEditor\" value=\"1\">"; } copy = "" + debugHidden + previewHidden + cr + "<input type=\"hidden\" name=\"1AllowQuickEditor\" value=\"" + buttonState + "\">" + cr + "<a id=\"tpButtonQuick\" href=\"#\">Quick Edit</a>"; copy = "" + cr + formOpen + cp.Html.Indent( copy, 1 ) + cr + formClose; block.SetInner("#tpEditTabQuick", copy); jsOnReady += cr + "jQuery('#tpButtonQuick').click( function () { jQuery(this).parents('form:first').submit(); return false });"; jsOnReady += cr + "jQuery('#tpButtonQuick').addClass('" + buttonClass + "');"; // // Advanced button // buttonState = "1"; buttonClass = "tpButtonUp"; if (cp.Utils.EncodeBoolean(cp.Visit.GetProperty("AllowAdvancedEditor", "0", 0))) { buttonState = "0"; buttonClass = "tpButtonDown"; editHidden = "<input type=\"hidden\" name=\"1AllowAdvancedEditor\" value=\"1\">"; } copy = "" + debugHidden + previewHidden + cr + "<input type=\"hidden\" name=\"1AllowAdvancedEditor\" value=\"" + buttonState + "\">" + cr + "<a id=\"tpButtonAdvanced\" href=\"#\">Advanced</a>"; copy = "" + cr + formOpen + cp.Html.Indent(copy, 1) + cr + formClose; block.SetInner("#tpEditTabAdv", copy); jsOnReady += cr + "jQuery('#tpButtonAdvanced').click( function () { jQuery(this).parents('form:first').submit(); return false });"; jsOnReady += cr + "jQuery('#tpButtonAdvanced').addClass('" + buttonClass + "');"; // // Preview button // if (!cp.Utils.EncodeBoolean( cp.Site.GetProperty("allowWorkflowAuthoring","0"))) { block.SetOuter("#tpEditTabPreview", ""); } else { buttonState = "1"; buttonClass = "tpButtonUp"; if (isPreviewing) { buttonState = "0"; buttonClass = "tpButtonDown"; previewHidden = "<input type=\"hidden\" name=\"1AllowWorkflowRendering\" value=\"1\">"; } copy = "" + cr + editHidden + cr + debugHidden + cr + "<input type=\"hidden\" name=\"1AllowWorkflowRendering\" value=\"" + buttonState + "\">" + cr + "<a id=\"tpButtonPreview\" href=\"#\">Preview</a>"; copy = "" + cr + formOpen + cp.Html.Indent(copy, 1) + cr + formClose; block.SetInner("#tpEditTabPreview", copy); jsOnReady += cr + "jQuery('#tpButtonPreview').click( function () { jQuery(this).parents('form:first').submit(); return false });"; jsOnReady += cr + "jQuery('#tpButtonPreview').addClass('" + buttonClass + "');"; } // // Debug Button // if (cp.User.IsDeveloper) { buttonState = "1"; buttonClass = "tpButtonUp"; if (isDebugging) { buttonState = "0"; buttonClass = "tpButtonDown"; //editHidden = "<input type=\"hidden\" name=\"1AllowAdvancedEditor\" value=\"1\">"; } copy = "" + editHidden + previewHidden + cr + "<input type=\"hidden\" name=\"1allowDebugging\" value=\"" + buttonState + "\">" + cr + "<a id=\"tpButtonDebug\" href=\"#\">Debug</a>"; copy = "" + cr + formOpen + cp.Html.Indent(copy, 1) + cr + formClose; block.SetInner("#tpEditTabDebug", copy); jsOnReady += cr + "jQuery('#tpButtonDebug').click( function () { jQuery(this).parents('form:first').submit(); return false });"; jsOnReady += cr + "jQuery('#tpButtonDebug').addClass('" + buttonClass + "');"; //copy = "0"; //if (allowDebugging) //{ // copy = "1"; //} //copy = "" // + formOpen // + "<a href=\"#\" class=\"tpButtonUp\">Debug</a>" // + editHidden // + "<input type=\"hidden\" name=\"1allowDebugging\" value=\"" + copy + "\">" // + formClose; //block.SetInner("#tpEditTabDebug", copy); } else { block.SetOuter("#tpEditTabDebug", ""); } // // Admin button // copy = "<a href=\"" + cp.Site.GetProperty("adminUrl","/admin") + "\">Admin</a>"; block.SetInner("#tpEditTabAdmin", copy); } } doc = "" + cp.Html.div(block.GetHtml(), "", "", "toolPanel") + cp.Html.div(cp.Doc.Body, "", "", "toolPanelContent") //+ footer + ""; cp.Doc.Body = doc; cp.Doc.AddBodyEnd(cr + "<script type=\"text/javascript\" language=\"javascript\">jQuery(document).ready(function(){" + jsOnReady + "})</script>"); //cp.Doc.AddBodyEnd(cr + "<script type=\"text/javascript\" language=\"javascript\">" + jsOnReady + cr + "</script>"); return ""; }
// // execute method is the only public // public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { const string forumNotificationBody = "" + "<h2>Forum Notification</h2>" + "<p>The following forums have had changes over the past day.<p>" + ""; string returnHtml = ""; DateTime dateLastEmail; DateTime rightNow = DateTime.Now ; DateTime today = rightNow.Date; DateTime yesterday = today.AddDays(-1); CPCSBaseClass cs = cp.CSNew(); int memberId; bool memberMatch; string sqlCriteria = ""; string forumIdChangedList = ""; int forumId; Hashtable forumNamesRef = new Hashtable(); string emailBody = ""; string sql; string testSrc; int testId = 0; string qs = ""; string forumQs = cp.Site.GetText("forum last display qs", ""); string sqlDateLastEmail = ""; string emailDomain = cp.Site.DomainPrimary; // try { dateLastEmail = cp.Site.GetDate("Forums Notification Last Sent", yesterday.ToString() ); cp.Site.SetProperty("Forums Notification Last Sent", rightNow.ToString()); sqlDateLastEmail = cp.Db.EncodeSQLDate(dateLastEmail); // // verify Forum Notification email // testId = cp.Content.GetRecordID("system email", "Forum Notification"); if (testId == 0) { if (emailDomain.IndexOf(".") < 0) { emailDomain = "kma.net"; } cs.Insert("system Email"); cs.SetField("name", "Forum Notification"); cs.SetField("subject", cp.Site.DomainPrimary + " Daily Forum Updates"); cs.SetField("fromAddress", "ForumNotification@" + emailDomain); cs.SetField("copyFilename", forumNotificationBody); cs.Close(); } // // make a list of forums with changes // sql = "select distinct f.id as forumId,f.name as forumName" + " from ((ccForums f" + " left join ccforumThreads t on t.forumId=f.id)" + " left join ccforumPosts p on p.threadid=t.id)" + " where" + " (t.dateAdded>" + sqlDateLastEmail + ")" + " or(p.dateAdded>" + sqlDateLastEmail + ")" + " order by f.id"; cs.OpenSQL(sql); while (cs.OK()) { forumId = cs.GetInteger("forumId"); testSrc = "," + forumIdChangedList + ","; if (testSrc.IndexOf("," + forumId.ToString() + ",") < 0) { forumIdChangedList += "," + forumId; sqlCriteria += "or(forumId=" + forumId + ")"; forumNamesRef.Add(forumId, cs.GetText("forumName")); } cs.GoNext(); } cs.Close(); // // check for people who want notifications for these forums // if (sqlCriteria != "") { sqlCriteria = "(" + sqlCriteria.Substring(2) + ")"; if (cs.Open("forum notification rules", sqlCriteria, "memberId,forumId", true, "memberId,forumId", 999, 1)) { do { // // send this member a list of forums that changed and are on his list // memberId = cs.GetInteger("memberId"); emailBody = ""; do { memberMatch = (memberId == cs.GetInteger("memberId")); if (memberMatch) { forumId = cs.GetInteger("forumId"); testSrc = "," + forumIdChangedList + ","; if (testSrc.IndexOf("," + forumIdChangedList.ToString() + ",") >= 0) { qs = cp.Utils.ModifyQueryString(forumQs, "forumId", forumId.ToString(), true); emailBody += "<li><a href=\"http://" + cp.Site.DomainPrimary + cp.Site.AppRootPath + cp.Site.PageDefault + "?" + qs + "\">" + forumNamesRef[forumId].ToString() + "</a></li>"; } cs.GoNext(); } } while (cs.OK() && memberMatch); if (emailBody != "") { emailBody = "<ul>" + emailBody + "</ul>"; cp.Email.sendSystem("Forum Notification", emailBody, memberId); } } while (cs.OK()); } } } catch (Exception ex) { errorReport(cp, ex, "execute"); } return returnHtml; }
public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { string s = cp.Utils.ExecuteAddon("{E31F7A5B-FE69-4CF5-BD16-7F368192D956}"); // s = cp.Html.div(s, "", "", "panelFormContainer"); // return s; }
public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { bool errFlag = false; string s = ""; string firstName = cp.Doc.GetText("panelRegistrationFirstName"); string lastName = cp.Doc.GetText("panelRegistrationLastName"); string email = cp.Doc.GetText("panelRegistrationEmail"); string username = cp.Doc.GetText("panelRegistrationUsername"); string password = cp.Doc.GetText("panelRegistrationPassword"); bool usernameValid = !cp.Site.GetBoolean("ALLOWEMAILLOGIN", ""); CPCSBaseClass cs = cp.CSNew(); // // check for duplicate in username if account requires username // if (usernameValid) { if (cs.Open("People", "(ID<>" + cp.User.Id + ") and (username="******")", "", false, "", 1, 1)) { errFlag = true; cp.Doc.set_Var("errFlag", "1"); cp.Doc.set_Var("errMessage", "The username requested is not available, please enter an alternate username."); } cs.Close(); } if (!errFlag) { if (cs.Open("People", "(ID<>" + cp.User.Id + ") and (email=" + cp.Db.EncodeSQLText(email) + ")", "", false, "", 1, 1)) { errFlag = true; cp.Doc.set_Var("errFlag", "1"); cp.Doc.set_Var("errMessage", "The email entered is already registered. Please verify you have not already registered or enter an alternate email address."); } cs.Close(); } // if (!errFlag) { if ((cp.User.IsRecognized )&&( !cp.User.IsAuthenticated )) { cp.User.Logout(); } if (cs.Open("People", "ID=" + cp.User.Id, "", false, "", 1, 1)) { cs.SetField("name", firstName + " " + lastName); cs.SetField("firstName", firstName); cs.SetField("lastName", lastName); cs.SetField("email", email); cs.SetField("password", password); if (usernameValid) { cs.SetField("username", username); } } cs.Close(); // // authenticate the user // cp.User.LoginByID(cp.User.Id.ToString() ); // s = ""; } else { s = cp.Utils.ExecuteAddon("{E31F7A5B-FE69-4CF5-BD16-7F368192D956}"); } // return s; }
public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { string s = ""; string sS = ""; bool updated = cp.Utils.EncodeBoolean(cp.Doc.get_Var("acctUpdated")); bool errFlag = cp.Utils.EncodeBoolean(cp.Doc.get_Var("errFlag")); CPBlockBaseClass lO = cp.BlockNew(); string hiddenString = ""; // //loadForm(cp); // lO.OpenLayout("Default Registration Form"); // if (updated || errFlag) { if (errFlag) { lO.SetInner(".panelInstructionContainer", cp.Html.p(cp.Doc.get_Var("errMessage"), "", "ccError", "")); } else { lO.SetInner(".panelInstructionContainer", cp.Content.GetCopy("Default Profile Form Updated", "Your profile has been updated.")); } } else { lO.SetInner(".panelInstructionContainer", cp.Content.GetCopy("Default Account Registration Instructions", "To register, complete and submit this form.")); } // // ALLOWEMAILLOGIN check // if (cp.Utils.EncodeBoolean(cp.Site.GetProperty("ALLOWEMAILLOGIN", ""))) { lO.SetOuter("#panelRowUsername", ""); hiddenString += cp.Html.Hidden("reqUsername", "0", "", "reqUsername"); } else { hiddenString += cp.Html.Hidden("reqUsername", "1", "", "reqUsername"); } // // // ALLOWNOPASSWORDLOGIN check // if (cp.Utils.EncodeBoolean(cp.Site.GetProperty("ALLOWNOPASSWORDLOGIN", ""))) { lO.SetInner(".passwordRequired", ""); hiddenString += cp.Html.Hidden("reqPassword", "0", "", "reqPassword"); } else { hiddenString += cp.Html.Hidden("reqPassword", "1", "", "reqPassword"); } // // make a list of fields present so field validator can alert required fields if missing // lO.SetInner("#hiddenRow", hiddenString); // s = lO.GetHtml(); // sS += "$(document).ready(function(){"; // sS += " var containerHeight = $('#panelFormContainer').height();"; // sS += " $('#panelRegistrationFirstName').val('" + cp.Doc.get_Var("panelRegistrationFirstName") + "');"; sS += " $('#panelRegistrationLastName').val('" + cp.Doc.get_Var("panelRegistrationLastName") + "');"; sS += " $('#panelRegistrationEmail').val('" + cp.Doc.get_Var("panelRegistrationEmail") + "');"; sS += " $('#panelRegistrationUsername').val('" + cp.Doc.get_Var("panelRegistrationUsername") + "');"; sS += " $('#panelRegistrationPassword').val('" + cp.Doc.get_Var("panelRegistrationPassword") + "');"; // sS += " $('#accountSubmit').click(function(){"; sS += " if (!validateRegistrationForm())"; sS += " {"; sS += " return false;"; sS += " };"; // sS += " var varString;"; // sS += " var firstName = $('#panelRegistrationFirstName').val();"; sS += " var lastName = $('#panelRegistrationLastName').val();"; sS += " var email = $('#panelRegistrationEmail').val();"; sS += " var username = $('#panelRegistrationUsername').val();"; sS += " var password = $('#panelRegistrationPassword').val();"; // sS += " varString = 'panelRegistrationFirstName='+firstName;"; sS += " varString += '&panelRegistrationLastName='+lastName;"; sS += " varString += '&panelRegistrationEmail='+email;"; sS += " varString += '&panelRegistrationUsername='******'&panelRegistrationPassword='******'toolpanelRegistrationFormHandler', varString, tpRedirectHome, 'panelFormContainer');"; sS += " tpSetSpinner('panelFormContainer', 'Updating Account....', containerHeight);"; sS += " });"; // sS += " $('#logoutClick').click(function(){"; sS += " cj.ajax.addonCallback('toolPanelLogoutHandler', '', tpRedirectHome, 'panelFormContainer');"; sS += " tpSetSpinner('panelFormContainer', 'Logging Out....', containerHeight);"; sS += " });"; // sS += " return false;"; sS += "});"; // cp.Doc.AddHeadJavascript(sS); // return s; }
// // execute method is the only public // public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { string returnHtml = "Hello World"; try { // rqs defined once and passed so when we do ajax integration, the rqs will be passed from // from the ajax call so it can be the rqs of the original page, not the /remoteMethod rqs // you get from cp.doc.RefreshQueryString. // srcFormId - passed from a submitting form. Otherwise 0. // dstFormId - the next for to display. used for links to new pages. Will be over-ridden // by the formProcessing of srcFormId if it is present. // appId - Forms typically save data back to the Db. The 'application' is the table // when the data is saved. // rightNow - the date and time when the page is hit. Set once and passed as argument to // enable a test-mode where the time can be hard-coded. // int srcFormId = cp.Utils.EncodeInteger(cp.Doc.GetProperty(statics.rnSrcFormId, "")); int dstFormId = cp.Utils.EncodeInteger(cp.Doc.GetProperty(statics.rnDstFormId, "")); int appId = cp.Utils.EncodeInteger(cp.Doc.GetProperty(statics.rnAppId, "")); string rqs = cp.Doc.RefreshQueryString; DateTime rightNow = DateTime.Now; CPCSBaseClass cs = cp.CSNew(); adminFramework.pageWithNavClass page = new adminFramework.pageWithNavClass(); blankClass blank = new blankClass(); // //------------------------------------------------------------------------ // add common page elements //------------------------------------------------------------------------ // page.title = "Manager Sample Addon"; page.description = "This is the visual studio c# addon template called Manager Sample. A manager addon is a set of forms that together manage a feature."; // //------------------------------------------------------------------------ // process submitted form //------------------------------------------------------------------------ // if (srcFormId != 0) { switch (srcFormId) { // add a case for each form process needed case statics.formIdBlank: dstFormId = blank.processForm(cp, srcFormId, rqs, rightNow, ref appId); break; } } // //------------------------------------------------------------------------ // add page navigation //------------------------------------------------------------------------ // page.addNav(); page.navCaption = "Home"; page.navLink = "?" + cp.Utils.ModifyQueryString(rqs, statics.rnDstFormId, "0", true); // page.addNav(); page.navCaption = "Blank Form"; page.navLink = "?" + cp.Utils.ModifyQueryString(rqs, statics.rnDstFormId, statics.formIdBlank.ToString(), true); // switch (dstFormId) { case (statics.formIdBlank): page.body = blank.getForm(cp, dstFormId, rqs, rightNow, ref appId); break; default: page.body = "<p>Welcome to the default form.</p>"; break; } // //------------------------------------------------------------------------ // output the page //------------------------------------------------------------------------ // returnHtml = page.getHtml(cp); cp.Doc.AddHeadStyle(page.styleSheet); } catch (Exception ex) { errorReport(cp, ex, "execute"); } return returnHtml; }
// // execute method is the only public // public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { return "Hello World"; }
// // =============================================================================================== // performs all housekeeping when a post record is changed (add,mod,del) // =============================================================================================== // public override object Execute(Contensive.BaseClasses.CPBaseClass cp) { //int sourceFormId = 0; //int formId = 0; //int forumId = 0; int threadId = 0; int postId = 0; string s = ""; string sql = ""; CPCSBaseClass cs = cp.CSNew(); // postId = cp.Utils.EncodeInteger(cp.Doc.GetProperty("recordId","")); if ( postId==0 ) { // // re count posts for all threads // sql = "select ccforumThreads.id as threadId" + ",(select count(p.id) from ccforumPosts p where p.threadId=ccforumThreads.id) as postCnt" + ",(select max(p.id) from ccforumPosts p where p.threadId=ccforumThreads.id) as lastPostId" + " from ccforumThreads" + ""; } else { // // recount posts for just the thread effected // sql = "select ccforumThreads.id as threadId" + ",(select count(p.id) from ccforumPosts p where p.threadId=ccforumThreads.id) as postCnt" + ",(select max(p.id) from ccforumPosts p where p.threadId=ccforumThreads.id) as lastPostId" + " from ccforumThreads" + " where ccforumThreads.id in (select threadid from ccforumPosts where id=" + postId + ")" + ""; } if (cs.OpenSQL2(sql, "", 1000, 1)) { threadId = cs.GetInteger("threadId"); while (cs.OK()) { sql = "update ccforumthreads" + " set replyCnt=" + cs.GetInteger("postCnt") + "" + ",lastPostId=" + cs.GetInteger("lastPostId") + "" + " where id=" + cs.GetInteger("threadId"); cp.Db.ExecuteSQL(sql, "", "1", "1", "1"); cs.GoNext(); } if (postId != 0) { // // this only affected one post, so only housekeep one thread // cp.Doc.SetProperty("recordId", threadId.ToString()); } } cs.Close(); // // this effects lastPostId, so housekeep threads also // threadHousekeepClass threadHousekeep = new threadHousekeepClass(); threadHousekeep.Execute(cp); // return s; }