Grzesiek [ www eRepublik com PL ]
Własne forum dyskusyjne (ASP.Net, VB/C#, SQL) i ikonka nowych wiadomości :)
Postanowiłem zmodyfikować swoje forum dyskusyjne, które napisałem jakiś czas temu - nie potrzebuje dużych kombajnów, ale wzoruję się trochę na Yet Another Forum.
Wszystko szło dobrze i zatrzymałem się w pewnym momencie.
Chodzi mianowicie o ikonki nowych wiadomości w kategoriach/forach/na liście wątków.
W YAF rozegrane jest to przez sesję, do której wrzuca się HashTable.
Testując YAF wszystko ok. U mnie prawie też.
Dlaczego prawie? Otóż jeśli sesja wygaśnie - albo skasuję ciastko sesji - to przy powonym wejściu na stronie, wszystko się resetuje.
Niby normalne, ale o dziwo YAF pomimo czyszczenia pamięci,ciastek,sesji przeglądarki dalaj
"trzyma" stan - tzn. wie kiedy i które wątki były odwiedzane przeze mnie.
Najlepsze jest to, że nie używa do tego bazy danych.
Jestem w kropce teraz, bo nie mam pomysłu.
Może ktoś naprowadzi mnie na rozwiązanie?
BlackBolt [ Senator ]
Nie mam ZIELONEGO pojęcia o ASP, ale...
if (DataRow["LastPosted"] != DBNull.Value)
this.LastPosted.Text = YafServices.DateTime.FormatDateTimeTopic(DataRow["LastPosted"]);
this.topicLink.NavigateUrl = YafBuildLink.GetLinkNotEscaped(ForumPages.posts, "t=0", DataRow["LastTopicID"]);
this.topicLink.Text = StringHelper.Truncate(YafServices.BadWordReplace.Replace(DataRow["LastTopicName"].ToString()), 50);
this.ProfileUserLink.UserID = Convert.ToInt32(DataRow["LastUserID"]);
this.ProfileUserLink.UserName = DataRow["LastUser"].ToString();
this.LastTopicImgLink.ToolTip = PageContext.Localization.GetText("GO_LAST_POST");
this.LastTopicImgLink.NavigateUrl = YafBuildLink.GetLinkNotEscaped(ForumPages.posts, "m=0#post0", DataRow["LastMessageID"]);
this.Icon.ThemeTag = (DateTime.Parse(Convert.ToString(DataRow["LastPosted"])) > Mession.GetTopicRead((int) DataRow["LastTopicID"]))
? "ICON_NEWEST"
: "ICON_LATEST";
this.LastPostedHolder.Visible = true;
this.NoPostsLabel.Visible = false;
Czy ta funkcja nie odpowiada za ustawienie odpowiedniej ikonki?
Gdyby GOL rozwalił kod:
Grzesiek [ www eRepublik com PL ]
To to ja wiem :)
Przestudiowałem kod od a do z :P
Jak widzisz korzysta się tutaj z klasy Mession, która jest po prostu zbiorem funkcji operujących na sesji.
Mój problem polega na wygaszeniu sesji - pomimo wyczyszczenia stanu przeglądarki, etc. YAF dalej pamięta, który wątek odwiedziłem i kiedy, a przecież nie powinien.
Nie korzysta on przy tym z bazy danych.