History of Some Notes on Developing With Bitweaver
Version 3
Some Notes on Developing With Bitweaver
This is very rough information about what I have learned while developing the GmapPackage
Some General Useful Stuff
Bitweaver Stuff
- Bitweaver Class Tree
- List of BW tables and structures
- Built-in Database Query functions available from bw kernel
Programming Stuff
- PrototypeDocumentation
- ADODB Data Dictionary for PHP
- Javascript and Navigating the Dom Tree
- Using Javascript with Smarty and elegant solution.
- DB JOIN FAQ on Wikipedia
- Code Paste Board
- Creating Indeces for your database tables as declaired in schema_inc.php
- Modifying Smarty for Debugging HTML
- Guide to HTML Forms
- Opera 9 beta
- Opera Tools for Web Dev
- Another Opera tool bar and more
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:
{CODE()}{ include file="bitpackage:yourpackagename/subheader.tpl"}
{CODE}
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>
?>
General Bitweaver Information
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:
<?php
DELETE FROM `tiki_preferences` WHERE name ='cookie_domain';
?>
If those don't work, then try resetting the admin password to 'foobar' using this query:
<?php
UPDATE users_users SET hash = md5( 'foobar' ) WHERE login = 'admin';
?>