I thought I’d write up a thread that contained all the little tweaks and hacks that I've used to set up our Community Server site – hopefully it will be useful to other newbies.
If you're interested in seeing the site (though much is closed off for visitors), check out www.fuquapartners.org.
Customizing Home Page
Overall
Steps
Following posts will explain how. In the meantime, this is what the page looks like...
jdc:We modified the Basic theme to use our preferred colors, logo, and text
Changing the look and feel
This one's pretty easy...
Also, since we were going to do a bunch of customization, we didn't want users changing themes. In Theme Options, we set Enable User... to no, and disabled unused themes.
jdc:We modified the Main Menu to change/add entries
Modifying the menu
This one was a little more work, and I didn't do the cleanest job, but it works. I think you're supposed to use a SiteURLs override file, but I'm not entirely clear how to do it (haven't bothered to figure it out). Perhaps someone can reply with appropriate adjustments to my strategy. Note we were adding new items and renaming existing ones.
Adding items to menu (simple version)
The following adds a single entry that points to a calendar page within our CS site...
A few notes on what's happening here...
Now, you may notice that the lines that specify the standard CS entries are a bit different. Specifically, they include...
Essentially, these are indirect methods of specifying the same information. To accomplish the same thing as above, but using the indirect means, you'd do the following...
Adding items to menu (sophisticated version)
Now, to be honest I don't exactly know what all of that line does (I copied and tweaked on of the exsting entries). However, as I understand it, it does the following...
Controlling Access
You may want to control who can visit the sections noted by your new meny entries. One option is to use the role attribute, which will hide the menu option from certain folks. I don't think this really secures the area, just hides it (still might be appropriate for your use). In our case, we wanted the menus to show (so people who know what's on the site), but not allow visitors to see the calendar page.
To secure this area, we did the following:
This denies calendar access to the anonymous user - the user can see the menu and click on it, but is then presented a logon dialog.
Next post - modifying the main content area...
jdc:We removed all the main panel content and replaced with a single ContentArea
We wanted a relatively simple home page, with some static text. Not too difficult...
next post, embedding Picasa slideshow
jdc:We added a Picasa Albums slideshow
So, we have a Picasa web account, with lots of photos stored in a variety of albums. We wanted visitors to see a bunch of these pictures on our home page.
Setup
Positioning - we wanted the slideshow centered above the main body text, so we wrapped the Google-provided HTML in a <div align="center"> </div> block.
Timing - Google doesn't provide an obvious way to change the slideshow timing, but it can be done. You need to add an additional flashvars entry. So change
...flashvars="host=picasaweb.google.com&interval=4&RGB=0x000000&feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2FFuquaPartners%2Falbumid%2F5103184194409824033%3Fkind%3Dphoto%26alt%3Drss" pluginspage="http://www.macromedia.com/go/getflashplayer" align="middle" height="192" width="288">
to
...flashvars="host=picasaweb.google.com&interval=4&interval=4&RGB=0x000000&feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2FFuquaPartners%2Falbumid%2F5103184194409824033%3Fkind%3Dphoto%26alt%3Drss" pluginspage="http://www.macromedia.com/go/getflashplayer" align="middle" height="192" width="288">
with interval indicating the number of seconds between slides.
Repeat - I haven't been able to find a way to force the slideshow to repeat. We just put enough photos in that no normal person would actually sit through the whole thing!
jdc:We modified the Recent threads content area so it shows only posts in a single forum (announcements)We modified the title of the tag cloud content area
Organizing the sidebar - conceptual overview
We wanted to accomplish the following with our sidebar
Removing the default verbiage
Adding rounded rectangle content areas
Rather than include multiple areas within a single content part (as CS does out of the box), we decided to use separate content parts for each (makes sense given the changes in rounded-rect formatting we implement below).
Showing a contentpart for only certain users
<DisplayConditions><CSControl:UserInRoleCondition UseAccessingUser="true" Role="Visitor" runat="server" /></DisplayConditions>
Showing a list of posts from a single forum
We didn’t want to show all recent posts, just those made to our Announcements forum. Also, we wanted to have them show only for registered users. To do this, we did the following…
<CSForum:ThreadList ID="ThreadList-homepage" runat="server"><DisplayConditions><CSControl:UserInRoleCondition UseAccessingUser="true" Role="Registered Users" runat="server" /></DisplayConditions> <QueryOverrides GroupID="6" ForumID="7" PageSize="5" /> <HeaderTemplate><div class="CommonSidebarArea"><div class="CommonSidebarRoundTop"><div class="r1"></div><div class="r2"></div><div class="r3"></div><div class="r4"></div></div><div class="CommonSidebarInnerArea"><CSControl:SiteUrl ID="SiteUrl1" UrlName="post_Active" Parameter1="-1" ResourceName="Utility_ForumAnchorType_ActiveAnnouncements" Tag="H4" CssClass="CommonSidebarHeader" runat="server" /><div class="CommonSidebarContent"><ul class="CommonSidebarList"></HeaderTemplate> <ItemTemplate><CSForum:ThreadData ID="ThreadData-homepage" runat="server" LinkTo="Thread" Property="Subject" TruncateAt="35" Tag="Li" /></ItemTemplate> <FooterTemplate></ul></div></div><div class="CommonSidebarRoundBottom"><div class="r1"></div><div class="r2"></div><div class="r3"></div><div class="r4"></div></div></div></FooterTemplate> </CSForum:ThreadList>
Note we’re using DisplayConditions again to control who see’s the list – this time only registered users. The query override controls which posts get shown – here we’re specifying the group and forum ids for our announcements forum.
Adding the tag cloud
We wanted a tag cloud with a customized title and tags from all forum and blog posts, so here’s what we did…
<CSControl:TagCloud ID="TagCloud-homepage" runat="server" TagCssClasses="CommonTag6,CommonTag5,CommonTag4,CommonTag3,CommonTag2,CommonTag1" MaximumNumberOfTags="25" ShowTagCounts