BBCMF was created and developed by c.k.lester. BBCMF was made possible by the simplicity, functionality, and performance of the Euphoria programming language from Rapid Deployment Software, as well as these Euphoria libraries:
The BBCMF system consists of three primary components:
These three components sit atop a foundation of Apache web server and the Euphoria programming language, so these two items must be installed before BBCMF will work. (I have not tested BBCMF with other web servers, but there is no Apache-specific functionality that would prevent it from working with, say, IIS. I will support any effort getting BBCMF to work with other servers.)
To set up a site, configure the following directories in your base documents directory:
htdocs <- base documents directory name for Apache; yours might be different +- cgi-bin +- bbcmf-system +- bbcmf-plugins +- your_website_directory <- you can use any valid filesystem name here
The BBCMF System Base Code (component #1) needs to be placed in the bbcmf-system directory and can be obtained via SVN from the following URL:
http://tools.assembla.com/svn/bbcmf/trunk
The BBCMF System Base Plugins (component #2) need to be placed in the bbcmf-plugins directory and can be obtained via SVN from the following URL:
http://svn2.assembla.com/svn/bbcmf-plugins/trunk
The BBCMF site files (component #3) need to be placed in your_website_directory and can be obtained via SVN from the following URL:
http://svn2.assembla.com/svn/bbcmf-site/trunk/
You will need to have the Euphoria 4.0 interpreter installed somewhere. This will depend on your web host. Once it is installed, you will need to modify the euinc.conf file to include paths to the following:
euphoria_includes -- put the standard Euphoria include files here euslibs -- put the Euphoria Unofficial Standard Libraries here eusql -- put EuSQL files here matheval -- put MathEval files here bbcmf-system -- the BBCMF base system files go here bbcmf-plugins -- the BBCMF base plugin files go here
The paths to bbcmf-system and bbcmf-plugins are fixed. The other includes can be named whatever you want, as long as they point to the required file set.
In index.esp, change the first line of the text to point to your Euphoria interpreter. So, for instance, I have my Euphoria interpreter installed in cgi-bin, so the first line of index.esp will be
#!../cgi-bin/exu
On Linux- and FreeBSD-based web hosts, make sure the exu interpreter and the index.esp files have file permissions of 755.
I tried using several content management systems, but they were either too bulky or too slow or they did not allow total design customization of displayed pages (or all three!). So, Building Blocks Content Management System (later to become a Framework) was conceived, designed, and implemented using a fast interpreter language, Euphoria. BBCMF would have to be easy to use on the backend (meaning easy to manage content), fast to display, and utilize HTML and CSS technologies for total control of the display of content. Ajax technologies (in the form of Javascript libraries from Yahoo! and Jack Slocum (ExtJS)) would be employed to add usability enhancements.
Like any web site development projcet, the first thing you want to do is design the look of the site. Figure out where everything is going to be. As an example, consider a basic blog site. At the least, it needs a place for blog entries to display. A simple site can also include a menu, a footer, and a links list. These things can be positioned on the page in a million different ways using an uncountable combination of colors and styles. You just have to find the combination that you like best.
Once that's done, you build the structure in BBCMF. In this first step, you are basically building a skeletal framework onto which you will hang- or into which you will insert- your content. This is very easy to do and you have two options: 1) import a template into BBCMF (TBD), or 2) Build your template in BBCMF.
Import a TemplateIf you have a pre-built template ready to go, you can simply import it into BBCMF. A pre-built template should only include structure tags (like <div> and <span>). All other tags will be stripped. Invalid markup will be rejected with an error message letting you know about any problems.
Building a TemplateYou can use BBCMF to build and edit your structure template(s). Click on the link, which takes you to the Modify Site Structures page.
Plug-ins reside in their own directory in the plugins directory. To use a plug-in, you have to copy the files to the plug-ins directory, then 'Import' the plug-in, after which you can 'Activate' it. Once imported, a plug-in can be removed. Once activated, a plug-in can be deactivated.
Developing Plug-InsAll plugins go in their own directory in the plugins directory. The plugin's directory should include a file that is named the same as the directory into which the plugin resides. So, for instance, the 'blog' plugin resides in the directory 'plugin/blog/' and contains a file called 'blog.e.'
If your plugin needs to initialize (for instance, if it needs to add a stylesheet or menu items to the system), create a function called 'plugin_name_init.' Return true if everything goes okay.
If your plugin requires tables in the database, you will need to create those in the plug-ins 'plugin-name_activate' function. Likewise, a 'plugin-name_deactivate' function will be required for dropping tables.
BBCMF can be used to put together any kind of web site. Once you get the basics of site development, you can move to more advanced structures. We provide some examples of simple sites below.
Building a Simple Blog SiteA simple blog site will need the base BBCMF installation, plus the BBBlog plug-in.
A simple blog site will need at least one Structure Block to hold the blog entries. A more advanced blog site will need additional Structure Blocks to show full blog entry texts. You might also want a sidebar for browsing different blog entry categories, dates, etc. The BBComments plug-in is a nice addition if you want to be able to interact with your readers.