This is a BASIC tutorial that will show you how to make a quick package that loops through a table and displays its data. I wrote this because I am starting from the VERY beginning here in bitweaver, and want to make tutorials as I go to help new opensource developers who are joining the project and need a booster seat to sit at the table! I hope it is useful to you!
Thanks for your help Spiderr
!!1) Create a New bitweaverPackage
* Go to the root of your bitweaver installation and make a directory:
-{CODE source='php' num='off'}$ mkdir newPackage
+{CODE source='php' num='off'}
+$ mkdir newPackage
$ mkdir newPackage/modules
$ mkdir newPackage/templates{CODE}
!!2) Create your table
-* In your bitweaver database, create a table called ''test_table'', and add two colums: ''test_table_id'', and ''memo'', or use the sql below
+* In your bitweaver database, create a table called ''test_table'', and add two colums: ''test_table_id'', and ''memo'', or use the sql below. Later we shall see how such tables can be created during plugin installation.
{CODE source='php' num='off'}-- Note: This first CREATE statement works for postgreSQL
// ... maybe do some initialization stuff if your package is turned on
}
@@ -62,6 +79,7 @@
</tr>
{/section}
</table>{CODE}
+Bitweaver uses the Smarty template engine, enriched with some custom functions. Read more about that on ((Smarty Functions)).
!!6) Activate your new package
*Click Administration -> Kernel -> Packages
@@ -72,7 +90,7 @@
!Voila!
Go to __http://yourbitweaverURL/newPackage/__ and your table should be displayed!
-!!7) Now, create a Module
+!!7a) Now, create a Module
* To create a module (a little box that you can display in the left or right columns) with a pointer to your awesome new package, we will use the modules directory you created in step 1
* Create a file using pico, or whatever text editor you use, called ''mod_newPackage.tpl''.
* The file name must be formated like this so bitweaver can include it in the __Administration / Modules__ dropdown list.
- {biticon ipackage=newPackage iname=iconname iexplain="this is a cool icon"}My New Package</a></td>
+ { biticon ipackage=newPackage iname=iconname iexplain="this is a cool icon"}My New Package</a></td>
</tr>
</table>{CODE}
(:exclaim:) __$smart.const.whatever_PKG_URL__ is a pointer to a folder called whatever in the root...
to use icons check out our cool new icon system called ((function_biticon|biticon))
+
+!!7b) Add menu entries
+Maybe you chose your package be no module. Maybe you have additional functionality that shall plugin into Bitweaver's menu bar. This is a two step procedure.
+
+First create your templates/menu_newPackage.tpl file with the menu items you want to add.
-and the schema information to chack the database with which comes in the form of a ))''schema_inc.php''(( file
+and the schema information to chack the database with which comes in the form of a schema_inc.php file. In case you want to create columns with other data types, see ((DataDict)).
The sample for this package is
{CODE source='php' num='off'}
<?php
@@ -145,3 +191,14 @@
) );
?>
{CODE}
+To add a nice looking icon besides the package name, simply create an icons folder inside your newpackage directory and drop a file named newpackage.png there.
+
+!!10)Populate database
+By providing sample data you can populate the database during module install time. See ((Installer Data Pump)) for more information.
+
+!!11)Further reading
+*Have a look at the ((SamplePackage)) and its explanation ((SamplePackageDissection)).
+*If you want to add automated testing, read ((TestingSuites)).
+*Become a template whizard by reading ((Smarty Functions)).
+*Think of sorting your list results? Consider using ((function_smartlink)) as column header.
+*Missing: Search integration. How does the search engine know about the new tables?