Some Notes on Developing With Bitweaver

This is very rough information about what I have learned while developing the GmapPackage

Created by: Will, Last modification: 01 May 2009 (21:15 UTC) by Daniel Sutcliffe

Some General Useful Stuff


Bitweaver Stuff

Programming Stuff


How to set up your own custom package


The easiest way to learn how to set up your own package is to start with the SamplePackage, which you can download or checkout from cvs. It has examples of most things described below.

Setting up your database tables


Database (DB) Tables are defined in schema_inc.php This file goes in your admin folder. Each package has one of these.

Some conventions to follow when building tables:

  • use single quotes on DB table scheme defaults
  • underscore between each word in table names, e.g. bit_gmaps

Setting up Smarty templates


Including tpl files in the html HEAD

The bitweaver Kernel is set up to automatically include header information from all packages. Any information you want included in the HTML HEAD you put in a file named header_inc.tpl which goes in your package's templates folder.

To create conditional header includes simply nest tpl files in the header_inc.php file. You can do this by using the this include code:


<?php
{ include file="bitpackage:yourpackagename/subheader.tpl"}
?>


Setting Up Package Permissions


  • Default permissions are set in your schema_inc.php file
  • Permissions can only be 30 characters long

Creating Package Dropdown and SidePanel Menus


Each package has template file for its menus. You need to explicitly declair what you want in a menu in your own template file. For an example see the wiki package menu_wiki.tpl which you can find at: /wiki/templates/menu_wiki.tpl

Creating Package Preferences


Preferences are automatically created the first time you submit a value for one. This means that a preference can be created for the first time by simply submiting one via a form on the admin_sample.tpl. For more advanced preferences examples look at admin_wiki.tpl or admin_articles.tpl.

If you want to set default 'y' values for your package preferences during install, you declare these in the schema_inc.php file in admin. You do not need to set a preference for any that you would give a 'n' value to.

The admin preferences panel is displayed via /admin/admin_sample_inc.php usng the template /templates/admin_sample.tpl

Any prefereces set can be checked with isFeatureActive()

The admin menu is shown via templates/menu_sample_admin.tpl

Interface ( HTML ) Development

Add Animated Warnings

This explination is not perfect, and needs reworking. But it is close.
The animated warnings you sometimes see when you tell bitweaver to do something stupid can be easily added to any page. The necessary javascript is usually added to all bitweaver pages. It comes from the file: util/javascript/libs/fat.js

To add an alert div you can call kernel/smarty_bit/function.formfeedback.php or just include a div something like this:


<?php
    
<div class="clear formfeedback"><ul><li id="fat4046" class="fade-000000 warning"><img src="/bw/liberty/icons/warning.png" alt="warning" title="warning" class="icon" /> This is a Warning.</li></ul></div>
?>


Using Wiki Syntax and Parsing for HTML

Enabling Syntax support in your package is easy as is parsing it for HTML display. Nothing special needs to be done to use a particular syntax, you just insert it into your database table as is. When you want to display it in a HTML page, you parse the data using a built in parser. In your load() function you include this line:


<?php
$this
->mInfo['parsed_data'] = $this->parseData$this->mInfo['data'], $this->mInfo['format_guid'] );
?>


the first value is the raw data, and the second value is the syntax type. The site's defualt, as set in admin->liberty is used if none is specified for the individual object. Each object can have a specific syntax specified for it. Take a look at the Sample Package, and also look at the Wiki Editing html page and note the syntax options. You can find all parsers included with Bitweaver in liberty/plugins/; look for files like format.*.php

Browser Detection

Bitweaver includes built in browser detection. Browser information is available in smarty templates via:

{$browserInfo}

Browser type is reported in:

{$browserInfo.browser}

Other properties that are avialable are:
  • .ua
  • .version
  • .maj_ver
  • .min_ver
  • .letter_ver
  • .javascript
  • .platform
  • .os
  • .ip
  • .cookies
  • .ss_cookies
  • .st_cookies
  • .language
  • .long_name

General Bitweaver Information


Some things about security

Use of "tk" value

  • tk in forms is generated in kernel/BitSmarty.php add_link_ticket();
  • the current tk value should be in $gBitUser->mTicket

Troublshooting Your Bitweaver Install

Admin Locked Out

Try deleting your bowser cache and cookies for the site. Also try deleting from the database using the following:

DELETE FROM `tiki_preferences` WHERE name ='cookie_domain';
Do the same for cookie_path.

If those don't work, then try resetting the admin password to 'foobar' using this query:

UPDATE users_users SET hash = md5( 'foobar' ) WHERE login = 'admin';