Wenatchee Valley College System Developer Notes


Include Files

This include files are global so when publishing it will affect all the pages in all pages.

Headcode Include

Analytics Include

Footcode Include

Search Include

Mobile Search Include

Blog Subscribe Include


Alert PCF

Quick Links Include

Page Parameters:
Editable regions:
   <li><a href="#">Student Email</a></li>
   <li><a href="#">Student Handbook</a></li>
   <li><a href="#">Campus Maps</a></li>

Header Include

Page Parameters:
Editable Regions

Meganav Include

Page Parameters:
Editable Regions:

Footer Include

Page Parameters:
Editable regions:

Athletics Header Include

Editable Regions:

Athletics Footer Include


Interior Page

Page properties
Editable Regions:

Area of Study

Editable Regions

Faculty Directory

Editable Regions

Home Page

Page properties
Editable Regions

Omak Home Page

Page properties
Editable Regions:

Foundation Home Page

Page properties
Editable Regions:

Athletic Homepage

Page properties
Multiedit Content
Editable Regions:


Styles Dropdown

_props.pcf file

Directory Variables

Side navigation

<li><a href="/index.html">Home</a></li>
<li><a href="/section_a/index.html">About Wenatchee Valley College</a></li>
<li><a href="/about.html">About</a></li>

The script will simply render out the first link, then see the link to a sub-section on the second link and attempt to load the navigation file for that section.

<li><a href="/section_a/freshmen_college.html">Why college?</a></li>
<li><a href="/section_a/freshmen_ready.html">Get ready</a></li>
<li><a href="/">Home</a></li>
<li><a href="/section_a/">About Wenatchee Valley College</a></li>
<ul><li><a href="/_zz-test/test-directory1/index.html">ZZ-dir</a></li><li><a href="/_zz-test/test1.html">ZZ-dir1</a></li><li><a href="/_zz-test/test1-1.html"> ZZ-dir1.1</a></li><li><a href="/_zz-test/test1-2.html">ZZ-dir2</a></li><li><a href="/_zz-test/test1-3.html">ZZ-dir3</a></li><li><a href="/_zz-test/test1-4.html">ZZ-dir4</a></li><li><a href="/_zz-test/test1-5.html">ZZ-dir5</a></li></
<li><a href="http://ad-wb-wvc01.wvc.edu/untitled.html">Test Page</a></li>


_/resources/snippets/ There are four categories of snippets:

Area of Study Table Transformation

<p>Computer Science</p>
   <li>Programming I</li>
   <li>Programming II</li>
- Add new rows to add new subjects.

Faculty Listing Table Transformation

Content Accordion

Content Block Text

Content Block Image

Content Accordion



Widget blocks




Other Assets


Social Media - Assets to insert social media. They are three different size. Small, medium or large. User can copy and edit the links and social media icons to display

<ul class="social sm">
<li class="facebook"><a href="#"></a></li>
<li class="vimeo"><a href="#"><i class="fa fa-vimeo-square"></i></a></li>
<li class="twitter"><a href="#"></a></li>
<li class="instagram"><a href="#"></a></li>
<li class="youtube"><a href="#"></a></li>
<li class="linked-in"><a href="#"></a></li>
<li class="google-plus"><a href="#"></a></li>
<li class="tumblr"><a href="#"></a></li>
<li class="sellsy"><a href="#"></a></li>
<li class="stack-overflow"><a href="#"></a></li>




A blog consists of three main parts, listing pages/assets, post files, and scripts. The blog listing page is a PCF which OUCampus outputs as an ASPX page with function calls to internal scripts, based on page parameters. See Blog Listing Template below for specific page params. OUCampus holds each post as a PCF, XSL outputs two types of files, content (HTML) and data (XML). This data is taken upon page creation (ou-blog-post.tcf) and manually input via page properties and multi-edit. Scripts are XSL and C#. XSL handles the XML output (.blog extension) and to a lesser extent the HTML - it’s mostly just boring content. Blog Assets are handled with a template-match, see Assets for more detail. C# is used for server side query string based pagination, splitting up the full list. C# does the grunt work by crawling a given directory structure for XML post files, and displaying content with a bunch of different functions, more below.


This is only a suggested structure, change it to suit your implementation.


PCF options

<a name=“assets”>Assets</a>

Are meant to compliment the main listing of blog posts, with list of tags/categories, or recent posts, etc. They can be dropped on to any blog page and function.

Each asset is a single blog node with attributes defining it’s output: type, dir, and limit. Example:

<blog type"tags" dir="/" limit="0"/>

A template match converts this node as help text, for staging, and a C# statement for production. Each output is a simple <ul><li> list.

Types available: (all gather posts from defined dir, with respect to limit)

  1. “tags” - posts by tags found in posts.
  2. “recent” - posts by pubDate.
  3. “featured” - posts marked as featured.
  4. “related” - for posts only, takes current PCF tags and displays all posts with matching tag.

Example: you want to display the five most recent posts from the academics blog:

<blog type"recent" dir="/academics/blog/" limit="5"/>


Response.Write(OUC.Blog.DisplayRecentPosts("/academics/blog/", "5"));


Each post PCF is processed by XSL to output only the essential data as XML. C# scripts combine to output different lists of posts, featured, recent, related, etc.


pubDate = dateTime

To prep the date variable “pudDate” an XSL function (ou:toDateTime) converts the date given by the OU property type=“datetime” to a valid XSL dateTime object. This allows us to use XSL functions for dateTimes, namely format-dateTime().

Note: post.tmpl uses the OU System Variable $CurrentDate to output “Friday, January 30, 2015 3:17:33 PM PST”. However accessing and saving via parameters converts this date format to “01/30/2015 03:17:33 PM”. (ou:toDateTime) accounts for both formats.

Once we have a dateTime object we use ou:pubDate() to output a valid “RFC822” pubDate string. This is required for a valid RSS string and can be interpreted by C# easily. There are also smaller functions available to convert dates and times to friendly formats, ou:displayLongDate(), ou:dayOfWeekAbbrevEn(), etc.

C# Classes in OUBlog.cs and the RSS WebHandler get-blog-rss.ashx

Your XSL should only be concerned with calling the approriate Display functions within class Blog.


Display functions take parameters from XSL to crawl defined directories and extract data from posts XMLs.


Used to maintain a total count of available blog posts necessary for pagination


A blog post data model/view class initialized by the root post node of the blog files on the server. Blog posts can render themselves depending on the passed in conditions.


Output a valid RSS feed based of URL parameters. By default, will return all blog posts. Valid URL params:

OU Mashup