In order to figure out which file contains the code responsible for displaying the post date/time for a Community Server blog posting, I used .NET Reflector to load all the assemblies that made up the code for Community Server. At the same time, I also used a text editor and search through all the source files.
Based on the word "posted", I found what appeared to be the tag that configures the date/time in a blog entry as follows:.
<CSBlog:WeblogPostData Property="UserTime" LinkTo="Post" IncludeTimeInDate="true" runat="server" />
Using Reflector, I then located the class declaration for WeblogPostData to be in the CommunityServer.Blog.Controls namespace, implemented in the CommunityServer.Blogs assembly. Further examining the various methods listed, I found the FormatProperty method checking for a "usertime" property, which ties to the tag above and the code checked for a FormatString property.
I therefore modified the tag above to read as follows:
<CSBlog:WeblogPostData Property="UserTime" LinkTo="Post" FormatString="ddd, d MMM yyyy @ h:mm tt" IncludeTimeInDate="true" runat="server" />
And that is how I traced the logic for Community Server, and customized Community Server 2008.5 to display the date/time in a format I desired.
Within a Community Server blog, there is a list of blog entries. Sometimes, it is not easy to know which
In 2017, with the release of Delphi 10.2 Tokyo, Embarcadero introduced a specialized implementation of the Observer pattern into the System.Classes unit. While it has been in the wild for 9 years, it remains a "hidden" architecture for many, primarily because it serves as the invisible engine behind LiveBindings. Other than live bindings, you can also use the Observer pattern as a way to update component settings to the Windows registry, an .ini file, or persist it elsewhere.
System.Classes