public static void Show(Core core, TPage page, Primitive owner, int year, int month, int day) { core.Template.SetTemplate("Calendar", "viewcalendarday"); // 15 year window if (year < DateTime.Now.Year - 10 || year > DateTime.Now.Year + 5) { core.Functions.Generate404(); } if (month < 1 || month > 12) { core.Functions.Generate404(); } if (day < 1 || day > DateTime.DaysInMonth(year, month)) { core.Functions.Generate404(); } /* pages */ core.Display.ParsePageList(owner, true); core.Template.Parse("PAGE_TITLE", day.ToString() + " " + core.Functions.IntToMonth(month) + " " + year.ToString()); core.Template.Parse("CURRENT_DAY", day.ToString()); core.Template.Parse("CURRENT_MONTH", core.Functions.IntToMonth(month)); core.Template.Parse("CURRENT_YEAR", year.ToString()); long startTime = core.Tz.GetUnixTimeStamp(new DateTime(year, month, day, 0, 0, 0)); long endTime = startTime + 60 * 60 * 24; Calendar cal = null; try { cal = new Calendar(core, owner); } catch (InvalidCalendarException) { cal = Calendar.Create(core, owner); } if (cal.Access.Can("CREATE_EVENTS")) { core.Template.Parse("U_NEW_EVENT", core.Hyperlink.BuildAccountSubModuleUri(owner, "calendar", "new-event", true, string.Format("year={0}", year), string.Format("month={0}", month), string.Format("day={0}", day))); } List<Event> events = cal.GetEvents(core, owner, startTime, endTime); bool hasAllDaysEvents = false; foreach (Event calendarEvent in events) { if (calendarEvent.AllDay) { hasAllDaysEvents = true; VariableCollection eventVariableCollection = core.Template.CreateChild("event"); eventVariableCollection.Parse("TITLE", calendarEvent.Subject); eventVariableCollection.Parse("URI", calendarEvent.Uri); } } if (hasAllDaysEvents) { core.Template.Parse("ALL_DAY_EVENTS", "TRUE"); } VariableCollection[] hours = new VariableCollection[24]; for (int hour = 0; hour < 24; hour++) { VariableCollection timeslotVariableCollection = core.Template.CreateChild("timeslot"); DateTime hourTime = new DateTime(year, month, day, hour, 0, 0); timeslotVariableCollection.Parse("TIME", hourTime.ToString("h tt").ToLower()); hours[hour] = timeslotVariableCollection; } showHourEvents(core, owner, year, month, day, hours, events); List<string[]> calendarPath = new List<string[]>(); calendarPath.Add(new string[] { "calendar", core.Prose.GetString("CALENDAR") }); calendarPath.Add(new string[] { year.ToString(), year.ToString() }); calendarPath.Add(new string[] { month.ToString(), core.Functions.IntToMonth(month) }); calendarPath.Add(new string[] { day.ToString(), day.ToString() }); owner.ParseBreadCrumbs(calendarPath); }
public static void Show(Core core, TPage page, Primitive owner, int year, int month) { core.Template.SetTemplate("Calendar", "viewcalendarmonth"); if (month < 1 || month > 12) { core.Functions.Generate404(); } // 15 year window if (year < DateTime.Now.Year - 10 || year > DateTime.Now.Year + 5) { core.Functions.Generate404(); } /* pages */ core.Display.ParsePageList(owner, true); core.Template.Parse("PAGE_TITLE", core.Functions.IntToMonth(month) + " " + year.ToString()); core.Template.Parse("CURRENT_MONTH", core.Functions.IntToMonth(month)); core.Template.Parse("CURRENT_YEAR", year.ToString()); core.Template.Parse("U_PREVIOUS_MONTH", Calendar.BuildMonthUri(core, owner, YearOfPreviousMonth(year, month), PreviousMonth(month))); core.Template.Parse("U_NEXT_MONTH", Calendar.BuildMonthUri(core, owner, YearOfNextMonth(year, month), NextMonth(month))); Calendar cal = null; try { cal = new Calendar(core, owner); } catch (InvalidCalendarException) { cal = Calendar.Create(core, owner); } if (cal.Access.Can("CREATE_EVENTS")) { core.Template.Parse("U_NEW_EVENT", core.Hyperlink.BuildAccountSubModuleUri(owner, "calendar", "new-event", true, string.Format("year={0}", year), string.Format("month={0}", month), string.Format("day={0}", ((month == core.Tz.Now.Month) ? core.Tz.Now.Day : 1)))); } int days = DateTime.DaysInMonth(year, month); DayOfWeek firstDay = new DateTime(year, month, 1).DayOfWeek; int offset = Calendar.GetFirstDayOfMonthOffset(firstDay); int weeks = (int)Math.Ceiling((days + offset) / 7.0); int daysPrev = DateTime.DaysInMonth(YearOfPreviousMonth(year, month), PreviousMonth(month)); long startTime = 0; if (offset > 0) { // the whole month including entry days startTime = core.Tz.GetUnixTimeStamp(new DateTime(YearOfPreviousMonth(year, month), PreviousMonth(month), daysPrev - offset + 1, 0, 0, 0)); } else { // the whole month startTime = core.Tz.GetUnixTimeStamp(new DateTime(year, month, 1, 0, 0, 0)); } // the whole month including exit days long endTime = startTime + 60 * 60 * 24 * weeks * 7; List<Event> events = cal.GetEvents(core, owner, startTime, endTime); /*if (startTime == -8885289600 || startTime == 11404281600 || endTime == -8885289600 || endTime == 11404281600) { Functions.Generate404(); return; }*/ for (int week = 0; week < weeks; week++) { VariableCollection weekVariableCollection = core.Template.CreateChild("week"); weekVariableCollection.Parse("WEEK", (week + 1).ToString()); /* lead in week */ if (week + 1 == 1) { int daysPrev2 = DateTime.DaysInMonth(YearOfPreviousMonth(year, month), PreviousMonth(month)); /* days in month prior */ for (int i = offset - 1; i >= 0; i--) { int day = daysPrev2 - i; Calendar.showDayEvents(core, owner, YearOfPreviousMonth(year, month), PreviousMonth(month), day, weekVariableCollection, events); } /* first days in month */ for (int i = offset; i < 7; i++) { int day = i - offset + 1; Calendar.showDayEvents(core, owner, year, month, day, weekVariableCollection, events); } } /* lead out week */ else if (week + 1 == weeks) { /* last days in month */ for (int i = week * 7 - offset; i < days; i++) { int day = i + 1; Calendar.showDayEvents(core, owner, year, month, day, weekVariableCollection, events); } /* days in month upcoming */ for (int i = 0; i < weeks * 7 - days - offset; i++) { int day = i + 1; Calendar.showDayEvents(core, owner, YearOfNextMonth(year, month), NextMonth(month), day, weekVariableCollection, events); } } else { for (int i = 0; i < 7; i++) { int day = week * 7 + i + 1 - offset; Calendar.showDayEvents(core, owner, year, month, day, weekVariableCollection, events); } } } List<string[]> calendarPath = new List<string[]>(); calendarPath.Add(new string[] { "calendar", core.Prose.GetString("CALENDAR") }); calendarPath.Add(new string[] { year.ToString(), year.ToString() }); calendarPath.Add(new string[] { month.ToString(), core.Functions.IntToMonth(month) }); owner.ParseBreadCrumbs(calendarPath); }
public static void Show(Core core, TPage page, Primitive owner, int year) { core.Template.SetTemplate("Calendar", "viewcalendaryear"); // 15 year window if (year < DateTime.Now.Year - 10 || year > DateTime.Now.Year + 5) { core.Functions.Generate404(); } /* pages */ core.Display.ParsePageList(owner, true); core.Template.Parse("PAGE_TITLE", year.ToString()); core.Template.Parse("CURRENT_YEAR", year.ToString()); if (year - 1 >= DateTime.Now.Year - 10) { core.Template.Parse("U_PREVIOUS_YEAR", Calendar.BuildYearUri(core, owner, year - 1)); } if (year + 1 <= DateTime.Now.Year + 5) { core.Template.Parse("U_NEXT_YEAR", Calendar.BuildYearUri(core, owner, year + 1)); } for (int i = 1; i <= 12; i++) { DisplayMiniCalendar(core, core.Template.CreateChild("month"), owner, year, i); } List<string[]> calendarPath = new List<string[]>(); calendarPath.Add(new string[] { "calendar", core.Prose.GetString("CALENDAR") }); calendarPath.Add(new string[] { year.ToString(), year.ToString() }); owner.ParseBreadCrumbs(calendarPath); }
public static void ShowAll(Core core, TPage page, Primitive owner) { core.Template.SetTemplate("Calendar", "viewcalendartasks"); long startTime = core.Tz.GetUnixTimeStamp(new DateTime(core.Tz.Now.Year, core.Tz.Now.Month, core.Tz.Now.Day, 0, 0, 0)) - 60 * 60 * 24 * 7; // show tasks completed over the last week long endTime = startTime + 60 * 60 * 24 * 7 * (8 + 1); // skip ahead eight weeks into the future Calendar cal = null; try { cal = new Calendar(core, owner); } catch (InvalidCalendarException) { cal = Calendar.Create(core, owner); } if (cal.Access.Can("CREATE_TASKS")) { core.Template.Parse("U_NEW_TASK", core.Hyperlink.BuildAccountSubModuleUri(owner, "calendar", "new-task", true, string.Format("year={0}", core.Tz.Now.Year), string.Format("month={0}", core.Tz.Now.Month), string.Format("day={0}", core.Tz.Now.Day))); } List<Task> tasks = cal.GetTasks(core, owner, startTime, endTime, true); /* pages */ core.Display.ParsePageList(owner, true); core.Template.Parse("PAGE_TITLE", core.Prose.GetString("TASKS")); VariableCollection taskDaysVariableCollection = null; string lastDay = core.Tz.ToStringPast(core.Tz.Now); if (tasks.Count > 0) { core.Template.Parse("HAS_TASKS", "TRUE"); } foreach (Task calendarTask in tasks) { DateTime taskDue = calendarTask.GetDueTime(core.Tz); if (taskDaysVariableCollection == null || lastDay != core.Tz.ToStringPast(taskDue)) { lastDay = core.Tz.ToStringPast(taskDue); taskDaysVariableCollection = core.Template.CreateChild("task_days"); taskDaysVariableCollection.Parse("DAY", lastDay); } VariableCollection taskVariableCollection = taskDaysVariableCollection.CreateChild("task_list"); taskVariableCollection.Parse("DATE", taskDue.ToShortDateString() + " (" + taskDue.ToShortTimeString() + ")"); taskVariableCollection.Parse("TOPIC", calendarTask.Topic); taskVariableCollection.Parse("ID", calendarTask.Id.ToString()); taskVariableCollection.Parse("URI", Task.BuildTaskUri(core, calendarTask)); taskVariableCollection.Parse("U_MARK_COMPLETE", Task.BuildTaskMarkCompleteUri(core, calendarTask)); if (calendarTask.Status == TaskStatus.Overdue) { taskVariableCollection.Parse("OVERDUE", "TRUE"); taskVariableCollection.Parse("CLASS", "overdue-task"); } else if (calendarTask.Status == TaskStatus.Completed) { taskVariableCollection.Parse("COMPLETE", "TRUE"); taskVariableCollection.Parse("CLASS", "complete-task"); } else { taskVariableCollection.Parse("CLASS", "task"); } // TODO: fix this if (calendarTask.Priority == TaskPriority.High) { taskDaysVariableCollection.ParseRaw("PRIORITY", "[<span class=\"high-priority\" title=\"High Priority\">H</span>]"); } else if (calendarTask.Priority == TaskPriority.Low) { taskDaysVariableCollection.ParseRaw("PRIORITY", "[<span class=\"low-priority\" title=\"Low Priority\">L</span>]"); } } List<string[]> calendarPath = new List<string[]>(); calendarPath.Add(new string[] { "calendar", core.Prose.GetString("CALENDAR") }); calendarPath.Add(new string[] { "*tasks", core.Prose.GetString("TASKS") }); owner.ParseBreadCrumbs(calendarPath); }
public static void Show(Core core, TPage page, Primitive owner, long taskId) { core.Template.SetTemplate("Calendar", "viewcalendartask"); try { Task calendarTask = new Task(core, owner, taskId); if (!calendarTask.Access.Can("VIEW")) { core.Functions.Generate403(); return; } if (calendarTask.Calendar.Access.Can("CREATE_TASKS")) { core.Template.Parse("U_NEW_TASK", core.Hyperlink.BuildAccountSubModuleUri(owner, "calendar", "new-task", true, string.Format("year={0}", core.Tz.Now.Year), string.Format("month={0}", core.Tz.Now.Month), string.Format("day={0}", core.Tz.Now.Day))); } if (calendarTask.Access.Can("EDIT")) { core.Template.Parse("U_EDIT_TASK", core.Hyperlink.BuildAccountSubModuleUri(owner, "calendar", "new-task", "edit", taskId, true)); } /* pages */ core.Display.ParsePageList(owner, true); core.Template.Parse("PAGE_TITLE", calendarTask.Topic); core.Template.Parse("TOPIC", calendarTask.Topic); core.Template.Parse("DESCRIPTION", calendarTask.Description); core.Template.Parse("DUE_DATE", calendarTask.GetDueTime(core.Tz).ToString()); List<string[]> calendarPath = new List<string[]>(); calendarPath.Add(new string[] { "calendar", core.Prose.GetString("CALENDAR") }); calendarPath.Add(new string[] { "*tasks", core.Prose.GetString("TASKS") }); calendarPath.Add(new string[] { "task/" + calendarTask.TaskId.ToString(), calendarTask.Topic }); owner.ParseBreadCrumbs(calendarPath); } catch (InvalidTaskException) { core.Display.ShowMessage("Invalid submission", "You have made an invalid form submission."); } }
private static void Show(Core core, Primitive owner, Page thePage) { core.Template.SetTemplate("Pages", "viewpage"); core.Display.ParsePageList(owner, true, thePage); if (!thePage.Access.Can("VIEW")) { core.Functions.Generate403(); return; } BoxSocial.Internals.Classification.ApplyRestrictions(core, thePage.Classification); core.Template.Parse("PAGE_TITLE", thePage.Title); if (!string.IsNullOrEmpty(thePage.BodyCache)) { core.Display.ParseBbcodeCache("PAGE_BODY", thePage.BodyCache); } else { core.Display.ParseBbcode(core.Template, "PAGE_BODY", thePage.Body, thePage.Owner, true, null, null); } if (core.Session.LoggedInMember != null) { if (owner is User && owner.Id != core.Session.LoggedInMember.UserId) { core.Db.UpdateQuery(string.Format("UPDATE user_pages SET page_views = page_views + 1 WHERE page_item_id = {0} AND page_item_type_id = {1} AND page_id = '{2}';", owner.Id, owner.TypeId, thePage.PageId)); } else { core.Db.UpdateQuery(string.Format("UPDATE user_pages SET page_views = page_views + 1 WHERE page_item_id = {0} AND page_item_type_id = {1} AND page_id = '{2}';", owner.Id, owner.TypeId, thePage.PageId)); } } ItemView.LogView(core, thePage); if (thePage.License != null) { if (!string.IsNullOrEmpty(thePage.License.Title)) { core.Template.Parse("PAGE_LICENSE", thePage.License.Title); } if (!string.IsNullOrEmpty(thePage.License.Icon)) { core.Template.Parse("I_PAGE_LICENSE", thePage.License.Icon); } if (!string.IsNullOrEmpty(thePage.License.Link)) { core.Template.Parse("U_PAGE_LICENSE", thePage.License.Link); } } switch (thePage.Classification) { case Classifications.Everyone: core.Template.Parse("PAGE_CLASSIFICATION", "Suitable for Everyone"); core.Template.Parse("I_PAGE_CLASSIFICATION", "rating_e.png"); break; case Classifications.Mature: core.Template.Parse("PAGE_CLASSIFICATION", "Suitable for Mature Audiences 15+"); core.Template.Parse("I_PAGE_CLASSIFICATION", "rating_15.png"); break; case Classifications.Restricted: core.Template.Parse("PAGE_CLASSIFICATION", "Retricted to Audiences 18+"); core.Template.Parse("I_PAGE_CLASSIFICATION", "rating_18.png"); break; } DateTime pageDateTime = thePage.GetModifiedDate(core.Tz); core.Template.Parse("PAGE_LAST_MODIFIED", core.Tz.DateTimeToString(pageDateTime)); core.Template.Parse("PAGE_VIEWS", thePage.Views.ToString()); core.Template.Parse("LAST_MODIFIED_PAGE_VIEWS", string.Format(core.Prose.GetString("LAST_MODIFIED_PAGE_VIEWS"), core.Tz.DateTimeToString(pageDateTime), thePage.Views.ToString())); List<string[]> breadCrumbParts = new List<string[]>(); if (thePage.Parents != null) { foreach (ParentTreeNode ptn in thePage.Parents.Nodes) { breadCrumbParts.Add(new string[] { ptn.ParentSlug, ptn.ParentTitle }); } } if (thePage.Id > 0) { breadCrumbParts.Add(new string[] { thePage.Slug, thePage.Title }); } owner.ParseBreadCrumbs(breadCrumbParts); if (thePage.Access.Can("EDIT")) { core.Template.Parse("U_EDIT", core.Hyperlink.BuildAccountSubModuleUri(owner, "pages", "write", "edit", thePage.PageId, true)); } }