ASP Nuke
>
Member Login
Username
Password

Don't have an account yet, register now it's free!
I forgot my password


Article Search

Message Forums
ASP Nuke  (221/420)
ASP Development  (19/25)
SQL Server Development  (5/12)

Suggestion Box

Have a suggestion on how we can improve this application?

Please send us your suggestions, we would love to hear what you have to say!


Help ASP Nuke

Help support "ASP Nuke" and free software by donating now


Task List

ASP Nuke Tasks:


Module Framework

Orvado Technologies

Introduction

This document outlines the structure and layout of modules which are written for the ASP Nuke Content Management System. These guidelines will dictate how modules should be built and managed by the web portal software.

For information on developing and customizing existing modules, please see the module development documentation. This document contains the second revision of the module framework and is subject to change in the future.

Folder Structure

The "folder" or directory structure is used to organize the various modules which will be used by the ASP Nuke system. There can be anywhere from 10 to 100 different modules being used on your site. We need an intelligent way to organize the various modules.

A base folder named "module" contains all of the module code and resource files (such as images specific to the module). Underneath this folder are two more levels which serve to organize modules even further. The first level contains the category name (eg: "support" and "account") The next level beneath this contains the module folder (eg: "FAQ" or "register")

The top-level folder structure containing the categories will also be used for site operators who are browsing all of the available modules. It is better pick a category of modules rather than viewing all of the modules all lumped into one big list. Shown below is an example of the current module category folder structure:

Module
+-- Account
+-- Article
+-- Discuss
+-- Menu
+-- Other
+-- Support
+-- Survey

Remember that the structure above shows only the module categories. To create a registration module, you might create a "module folder" named "register" under the "Account" folder. For this reason, all modules will be placed three folders deep from the root of the ASP Nuke installation.

Module Contents

Within each module, we will define all of the necessary scripts that will be used to install, configure and execute the module. In order to make the modules truly modular, we need to define some naming conventions that will standardize how the module is used.

First let's discuss the folder structure. An outline of the folders within the "module folder" are listed below:

  • admin - Administration scripts
  • css - Cascading Style-Sheet library code
  • images - Graphics and other necessary media
  • js - Javascript library code
  • lib - Library code (ASP include files)
  • setup - Setup and configuration scripts
  • sql - Database schema and data records

Also within the module folder, we will have some standardized scripts which are used to integrate the module with the site layout. These are discussed in detail below:

capsule.asp - Used to display the narrow (~140 pixels wide) boxes which appear in the left-hand or right-hand column of the pages. Typically, these boxes are consistant throughout all of the pages on the site.

content.asp - This script is used to fill the main content area (middle column) for the ASP Nuke layout. For now, this is only used on the home page and only by the article module.

index.asp - This should be the main entry point for your module. In many cases, this will be the main menu, an overview of the section, a search tool or an introduction to your module.

Remember that these scripts and folders are only the standard files and folders. A module developer may create additional files and folder to support their application. Some modules may be so complex, they may be like a web site of their own.

Navigation Elements

Typically, a visitor to your ASP Nuke site will get to your module scripts through links found in the capsule. The capsule will be placed on your web pages when you configure the module group layouts. Alternatively, you can place links to the module in your dynamic menu or the site links module.

Basically, each module should be completely independant of the others. You should never have two modules so closely related and intertwined that the operation of one is totally dependent on the operation of another. For this reason, all navigation for a module should only link to pages within the "module folder".

Using Shared Resources

One thing to keep in mind about modules, is that you are not totally restricted to the resources defined within the "module folder". A module can also draw upon the excellent features of the ASP Nuke portal. Examples of this are the CSS style sheet (defined under /css/style.asp and the standard images and common code libraries.

Any module author should study the library code (found under the /lib folder to learn how they can use this code to improve their applications. Documentation will be forthcoming describing all of the libraries and how they should be used.

Dependencies

As discussed before in the Navigation Elements section, one module should not depend on another module. We will, however, allow module code to be dependent on a specific version of ASP Nuke. This way, when a user goes to install a particular module, the installer can check the required version of ASP Nuke and make sure the module will work correctly before installing.

We will not make any guarantees about backward compatibility. This means that if you have a module that works with version 0.50, we are not guaranteeing that it will always work as new versions (0.55 and 0.6) are released. The beauty of open source code is that any incompatible modules will be patched quickly and made available to everybody.

Database Schema

We are currently working on a standard way of defining a database schema and then loading data records into the database. As soon as documentation is available for this, we will make it available on the site. Here is what we know so far:

Under the sql, you will define two control files. A folder named schema.sql will contain the database schema definition and a folder named data.sql will contain the data records that need to be inserted into the database.

Last Updated: Nov 18, 2003


FAQ

Web Links
Download
Sponsors

Poll

What's Your Favorite Browser?

Mozilla Firefox
Internet Explorer
Netscape
Safari
Opera
Other

View Results . Archive


Other Languages

Join the language translation project  to translate ASP Nuke into other languages


Hit Counter
Total page views since
Sept 19, 2003

694663

Valid CSS!
Valid HTML 4.01!

   Damn the torpedoes! Full speed ahead! -- David G. Farragut   
© 2002 Orvado Technologies, All Rights Reserved - Site Map - CSS - HTML - 15.6250 msec