Rainbow Portal

Rainbow Portal - Features of the project

Feature Overview

Rainbow's core architecture provides user authentication, internationalization (there are currently 29 supported languages), and a customizable roles-based authorization system that allows content authoring to be safely delegated to multiple team members who need little or no knowledge of HTML.  Rainbow also supports a two step approval process where content is first posted to a staging server and then migrated to the production server after approval. 

The Rainbow architecture provides an easy mechanism to add new functionality as portal 'modules'.  More than 45 modules are included in the standard release.

The initial Rainbow design, based on Microsoft's IBuySpy (IBS) portal kit, has been significantly enhanced and improved by a global team of volunteers.  Most IBS users either quickly outgrow its simple functionality, or become frustrated finding and applying the various patches and enhancements available on the net.  Migration to Rainbow is a natural evolution. 

Anatomy of a Rainbow Web Site (Portal)

A Rainbow site collection can include multiple web sites
Multiple portals can be supported using a single code base and a single database.  All portals are configured through single portal web.config file.  Each portal has its own dedicated directory for storing uploaded images and documents.  New portals are created through a simple ‘admin all’ page.

Rainbow sites are made from pages
Pages are arranged in a hierarchical fashion, of unlimited depth.  Navigation to pages is performed through menus.  Many different menu styles are available, including traditional drop-down hierarchical menus, ‘tabs’, and various combinations. Custom menu styles can be plugged in to the framework. Individual pages can also be hidden from classes of users based on the user's Rainbow-assigned role(s).

Rainbow pages are made from modules
Every piece of content (text, images, discussion topics, news items, documents,…) is contained within a module.   Modules usually provide a specific type of functionality, e.g. an eStore, a news feed, threaded discussions, surveys, etc.  Rainbow includes 45 pre-built modules.  Additional modules are available for download.

Users can independently be given permission to view, edit, add, or delete content in a module, based on their role. Module properties can be set from a central admin page or directly from within in the module itself.  Modules can be easily positioned on a page or moved between pages.

End User Features

More than 45 pre-built modules
Rainbow includes many free pre-built modules that cover a wide range of common web site functionality. Compare Rainbow's breadth of modules to the limited functionality in IBuySpy or other open source projects and you'll understand why users are switching to Rainbow.

Search
Most of the built-in Rainbow modules are integrated with Rainbow's free-text search module.  Rainbow Search allows you to search for content in a class of modules (e.g. all news articles), or across all modules.  The search framework is role/permission sensitive, automatically filtering the search results to only show content from modules the current user is authorized to view

HTML WYSIWYG Editing
Many modules use of Rainbow's built-in WYSIWYG editors to allow users with no knowledge of HTML to produce well formatted content.  The site administrator can choose from several different HTML editors.  All modules can use the same editor, or individual modules can be assigned to a different editor.

Administrative Features

Optionally force new content to be approved before publishing
Many of the modules that come with Rainbow support a 2-step publishing process.  Content approval can be enabled or disabled for each individual module

When workflow is enabled the user first creates content and the content is stored in special staging tables in the database.  After the new content is approved the data items are automatically migrated to the production tables.

Use one of the 15 predefined languages, or define your own
Rainbow is built on a flexible architecture that includes custom ‘internationalized’ web controls and other classes that make localizing Rainbow to a particular language, culture, and region relatively simple.  An auto-learning translation function simplifies future translations.  Rainbow is currently available in 15 different languages.  Included is a set of tools for managing translations in the database.

Customize a sites layout and appearance
Each portal site can have a custom skin (layout), including the site header, body layout, menu style, footer, style sheet (css), logo and more.  The default 3-pane design can be customized in the site’s .css style sheet.  Icons and other graphical elements can be easily replaced.

The layout of modules on each page is defined on the "admin this" page and the layout is stored in the database. 

A collection of standard themes is provided with Rainbow.  Each module can use either the sites default theme, or an alternate theme to highlight their appearance.  Themes can be public or private.  The location of the main Themes directory can be changed from within the configuration file

Flexible and fine grained user and role management
Control the ability for users in a specific role to view, edit, add, or delete content either by individual module or by page. Use either Windows authentication (username/password in Active Directory or NT SAM) or web Forms authentication (username/password stored in SQL Server).   

Assign individual users to roles (e.g. admin, editor, publisher, power users, developer, etc.) for site content management in Windows Forms mode, or use predefined Windows NT/AD groups as your roles.  Special permissions are also available for Workflow Support

Support for “short” and “full” user registration options.  Pre-defined roles for “Authenticated Users” and “Unauthenticated Users” allow you to easily restrict the visibility of individual modules and pages to users that are logged on to the site.

Bulk Email Admin Module based on Roles with “black list” feature included

Architectural Features

Modern n-tier architecture
Rainbow C# classes extend standard ASP.NET objects providing a consistent method for developing custom pages and custom controls.  For example, a lot of the drudgery needed to create a custom module in IBuySpy  is replaced by Rainbow core objects that inherit from ASP.NET's Page.

All pages are constructed from dynamically-loaded user controls.  Server controls provide clean code/html content separation

Uses ADO.NET data access with Microsoft SQL Server stored procedures.  Includes a tool to automatically create the stored procedures and C# data access layer for new modules

Configurable caching of portal page regions and portal settings provides excellent scalability.

Supports a wide range of clients
Rainbow supports Internet Explorer v.5.0 and later and Netscape v4.7 and later.  Rainbow also supports mobile devices through WAP/WML.  Most modules allow for customized (abbreviated) content to be delivered to mobile modules.

Module Overview

The following modules are included in the standard Rainbow installation. Additional free modules are also available from the download page on this web site.

User Modules

Amazon

by Charles Carroll

Announcements

title, link, description, automatic expiring date

Articles

Starting, expiring date, title, abstract, html module encapsulated for article body.

Blog

The Blog module provides capabilities for creating an online journal. Your journal can be distributed to other web sites using RSS syndication and readers can apply comments to your blog (journal) entries.

Breadcrumbs

Used for creating breadcrumb style navigation links

Component Module

by José Viladiu

This module allows you to quickly create a little program directly and show the results in a module. You can use them for little programs without needing compilation.

Contacts

Standard IBS features

Daily Dilbert

by Christopher S Judd. Ported to Rainbow by Jakob Hansen

Displays a new Dilbert comic strip each day. The size of the comic strip can be adjusted.

Database Table Edit

by Uwe Lesta [lesta@sbs-softwaresysteme.de]

Thanks to TripleASP for a nice table editor control. Jakob Hansen did the module makeover. Using this module you can browse and edit any table in any SQL Server database.

The interface is very user-friendly - not raw SQL.

Features:

  • Dumping table data (records) by selecting the table
  • Create, Edit and Delete record

Database Tool

by Jakob Hansen (Sreedhar Koganti for inspiration)

Using this this module you can browse and edit any SQL Server database (all object types: User table, View, Trigger Stored proc etc. etc.) .

Features:

  • Dumping table data by selecting the table
  • A box for executing SQL statements: SELECT, UPDATE, INSERT, DELETE, DROP....
  • Display/hide SQL box and set size of the box
  • Show some or all object info. Can be configured (table sysobjects)
  • Object properties. E.g.: See the source of the stored proc
  • Object properties. E.g.: see complete table layout (Type, size, null/ not null etc.)

Discussion

by Mark McFarlane

  • You can expand a thread to view all of the replies within the discussion module, i.e. you do not need to open a new browser window and see each reply one at a time.
  • Each top-level discussion topic shows the number of responses next to the + - icon
  • Unexpanded top-level discussion topics show the date of the most recent post
  • Top-level discussions topics are sorted with the most recent reply at the top of the list.
  • Replys are properly organised and indented when a top-level topic is expanded
  • The message body text can contain HTML tags.

Documents

The Documents module provides a simple yet powerful document management system. Documents can either be stored on the Rainbow server, using the upload command, or links to external documents can be provided. Users can download the document files.

Like all other Rainbow modules, role permissions can be applied to each document module to control which users have permissions to view, add, or update documents.

Event Logs

by Jakob Hansen (Hervé LE ROY did the original IBuySpy VB module)

An event viewer that (basically) does the same job as Windows 2000 Event viewer.

The user can control:

  • Machine name
  • Log type (Application, IExplorer, Security, System)
  • Log Source, which depend on the Log type.
  • Clicking the table headers provides sort ascending/descending.

Events

Title, short/long description, expiring date

Enhanced HTML

by José Viladiu

This module is able to show multiple pages of localized content inside a single module. The pages are normal Text/Html pages that can be edited with the graphical editors which come bundled with your Rainbow installation.

The module provides access to the multiple pages using a horizontal list of index links and using a standard next/previous command bar. The navigation indexes are build dynamically, and the edit options screen provides you with control over their layout.

You are able to hide or show any of the navigation items, if they should be shown over, under, at the left, or at the right side of the page content. The module has a site wide option where the user can select to see all the content from all pages within the module as a single page. The selection is stored in a cookie, so the preference is preserved between visits.

Enhanced Links

by José Viladiu

  • Build list of links to external sites, internal sites, or files
  • View lists in columns
  • View list as a dropdown listbox
  • Add an image to each link
  • Auto expand all descriptions
  • Use ViewOrder to order the links
  • Use image separators for groups of links

External HTML

by Manudea and Jakob Hansen

FAQ

by Christopher S Judd (Moved from original IBS and VB into Rainbow by Jakob Hansen)

Your typical Frequently Asked Questions module.

File Directory Tree

by Josue de la Torre

This module traverses and displays files and directories as an HTML-representation of a nested file tree. The file links can then be set to have the client browser download a local copy of the file or have the client launch the files directly from a shared resource (such as a network file share or local drive.)

Other settings include choosing from expanded or collapsed directory views, defining the STYLE parameter for the tree, and specifying the indentation length for subdirectories.

Flash Module

Google Search

by James Melvin. Ported to Rainbow by Jakob Hansen

Search module that passes search requests to Google. Output can be controlled by displaying/hiding fields:

  • Snippet
  • Summary
  • URL
  • Max-result can be set.

HTML Document

Customizable and powerful HTML editors. The editors included are:

  • FreeTextBox - standard html editor
  • ActiveUp HTML text box - Commercial product released in a special version for Rainbow
  • Spellchecker

Iframe Module

by Jakob Hansen

Displays a URL source in an IFRAME

Language Switcher

Links

Links/QuickLinks replaced with single module with option to Open In New Window (target).

Mapquest

by Shaun Walker. Ported to Rainbow by Jakob Hansen

This solution goes beyond the "smart hyperlinking" concept described by allowing you to show the actual map on your own site. This is accomplished by scraping the URL of the Response to extract the map image link which can then be used to display the map image on your site - This module leverages the MapQuest LinkFree web service.

Newsletter

The Newsletter module is a great tool for getting information out to subscribers. The module recognizes users who have subscribed to receive a newsletter and automatically adds them to a distribution list. Sender and subject are just a few of the properties that can be predefined. Newsletters can even be personalized with the user's name rather than a generic greeting.

Key Feature List:

  • Distribution List is automatically generated from Rainbow user profiles
  • HTML or Plain Text Formatting
  • Preview Option
  • Automated Name Insertion

One File Module Kit

by Jakob Hansen

Inheriting from this module kit allows you to quickly create new modules using a single source file module (no codebehind) and with no need for compiling.

The One File Module Kit comes with 5 examples (in folder DesktopModules\OneFileModule). For each example there is a readme.txt file that explains the few steps involved in creating a module based on the One File Module Kit. The Kit provides a system for saving and retrieving settings.

A new list-type module with custom fields can be created in 1 hour!

C# Examples:

  1. Lyris 1: settings in xml file
  2. Lyris 2: Settings as module properties
  3. No Settings (not using the settings system)
  4. Simple (2 settings, a first and a last name (also as xml file)

VB.NET Examples:

  1. Simple (2 settings, a first and a last name (also as xml file)

Pictures

by Ender Malkoc

This module allows to upload almost any kind of image format (bmp, gif, tiff ...) and transforms it into jpg

  • customisable image size
  • customisable thumbnail size
  • customisable number of columns and rows
  • resizing method for thumbnail
  • page management (nr of rows per page)
  • resize method for thumbnails (fixed, width&height, width only, height only)

Portal Search

by Jakob Hansen

Portal Search is a powerful module that can perform broad or refined searches. It can search either the entire site or within specific modules types. Many different modules (but not all) support search. The result of a search can be adjusted to fit site design. Hit returns can be limited and the return fields have a show and hide properties.

Some of the fields that can be returned:

  • Module Name
  • Search Title
  • Item Abstract
  • Created By User
  • Creation Date
  • Link
  • Tab Name

The results of a search can also be sorted.

Products

by Thierry (tiptopweb)

Includes all nice features of picture album (Product Layout, Paging, Thumbnail generation). Menu is used to browse products categories (3 levels). Check out process in a secured directory.

Quiz

by Oliver Draskovic and ported to Rainbow by Jakob Hansen

An easy to use, multiple choice quiz engine that dynamically generates a Pie Chart showing the user how well they did and text based results on whether the response to a question was right or wrong.

Key Features List:

  • Text and Graphical Results
  • Answer Hiding - users can't "view source" to get the answer
  • Quizzes are created by working with a simple XML document

Rainbow Version

Displays the version of Rainbow running on the server.

SendThoughts

by Vlado. Ported to Rainbow by Jakob Hansen

Input from user to webmaster via form/email

Shortcut

Allows you to publish in one page a module maintained in another page of the same portal

Shortcut all

Allows you to publish in one page a module maintained in another page of one of the portals hosted on a server. (e.g. the tourist office maintains the events, the town police maintains information about roads, the home page of the municipality publish both without wasteing time)

Signin

Simple Menu

by Mario Hartmann

Simple Menu generates a static text tree-view or multi-level DHTML menu for browsers that support DHTML. This menu can be placed like any other page module and can show links for the whole site or only pages beneath a particular tab. The menu is displayed vertically.

Sitemap

by Michel Barneveld

Sitemap creates an expanded tree-view of your entire Rainbow site. The tree is identical in structure to the defined menu hierarchy. Each leaf (node) in the tree represents one page of the web site. This clickable interface resembles Windows Explorer.

Survey

by www.sysdatanet.com. Ported to Rainbow by Jakob Hansen

Typical vote/survey module

Tasks

by Jakob Hansen

This module renders a list of tasks. Individual tasks can be viewed by clicking the task title. Includes an edit page, which allows authorized users to edit the Tasks data stored in the SQL database.

User Defined Table

by Shaun Walker. Ported to Rainbow by Jakob Hansen

The User Defined Table allows the portal administrator to create custom tables of information. The administrator can dynamically add as many fields as they require to a table. In addition they can specify the data types of the fields for validation. The order in which the fields are displayed can be controlled as well as the default sort order. Fields can be flagged as Hidden so that they do not appear in the table view but exist behind the scenes in the database. The main table view features dynamically sortable columns.

Weather German

by Jason Schaitel. Ported to Rainbow by Jakob Hansen

Setting includes forecast or today. Many design layout settings.

Weather US

by Jason Schaitel. Ported to Rainbow by Jakob Hansen

The weather module displays an image of current conditions or a local radar image. The image shown is based on the zip code entered into the module's properties. Weather data is provided from WX.com, a service of meteorlogix.

Summary of information displayed:

  • Local Weather Conditions
  • Current Conditions
  • Temp
  • Humidity
  • Barometer
  • Wind Speed/Direction
  • Local Radar

Webpartmodule

by damacco. Ported to Rainbow by Jakob Hansen

Digital Dashboard WebPart Wrapper. This module works only with these webparts types: XML and HTML (scripts not supported).

XML/XSL

XMLfeed

by Manu and Jakob Hansen

This module includes the funtionality previously found in

  • XmlModule
  • XmlDataFeed
  • RSSNewsClient Module

Include 5 predefined RSS stylesheets (more can be added) or user defined xslt files. Supports feed access through a proxyserver.

Admin Modules

Blacklist

Manage Portals

Manage Users

Manage Users allows the administrator to manage each user's information including what Role or Roles the user belongs to. New users can also be created, or existing users deleted from the site using the Manage Users module.

Module Definitions

Module Types

Roles

The Roles module allows for the creation of additional Roles or "permission groups". Roles are used to control which users have Add, Edit, and Delete permissions to the content in specific modules.

For example, suppose you want a certain group of users to be allowed to add new announcements to your site in a specific instance of the announcements module, e.g. an announcements module on your Home page. By default, Add rights would fall only to the Admins Role. But the site administrator does not want to give "add" access to the whole site, only to one specific Announcements module.

Here's how to assign permissions:

1) Create a new role called "HomePageAnnouncementEditors"

2) Add the desired users to this new role

3) Give the HomePageAnnouncementEditors role permission to "Add" and "Edit" content in the announcements module on the home page

They will be allowed to add and edit this one announcements module and not the rest of the site.

Site Settings

Site Settings is where it all begins. This is the main interface for naming the site, setting registration rules, theme and layout settings, language preferences and more.

Major Settings available in the module:

  • Site Title - name of the site
  • Theme and Layout - the look of the site
  • User Registration Rules - allow or deny user registration, terms of service
  • Cultural Settings - site language settings
  • Site Meta Tags - keywords, descriptions, meta-encoding

Tabs

Rainbow Tabs are the pages that appear in your menu structure. Every tab is represented by a page in your web site. There are also some non-tab page types, used for reporting errors, or entering content into a module, but these non-tab pages are not represented in the site's menus or site map.

Using the Tabs module, administrators can add, remove and reorder tabs, thereby changing the navigational structure of the web site. Links to modify an individual tab's settings are also available. Tabs can loosely be defined as page containers into which modules are placed.

Rainbow logo

This site is, of course, built using Rainbow.

Feel free to add the new logo to your sites powered by Rainbow.

Powered by Rainbow - open source asp.net website/portal engine

powered by Rainbow with Rainbow.Zen