-
Notifications
You must be signed in to change notification settings - Fork 7.6k
Trees
Information about SQL trees: http://dev.e-taller.net/dbtree/
=> a bit of inspiration...
To install, just unzip the file into your app dir. (you can delete the manual folder if you want, it isn't needed, neither is the custom loader (can be handy though)).
Load the model with $this->load->model(’MPTtree’), and then set the table name with $this->MPTtree->set_table(’tablename’)
Check the comments in file or the accompanying html manual on how to use the model.
File:MPTtree_0_1_6-fix.zip
Thread: http://codeigniter.com/forums/viewthread/74114/
A simple admin interface (supports moving, deleting and insertion of nodes (editing you have to implement yourselves)):
File:MPTtree_admin_0_1.zip
MPTtree is licensed under LGPL
Release Date: March 27, 2008Fixed error with call to db::get_where() in move_node() Corrected return values from move_node(), now it returns a normal array, just like insert_node() tree2array() now returns false if the root node cannot be found Added some debug messages Renamed MPTtree.php to mpttree.php to avoid include errors under linux Minor corrections in the manual
Release Date: March 22, 2008Added tree2array() Added get_descendants_wlevel() Added has_children() Added has_children() to ORM object Added command swith to get_descendants() to make it call get_descendants_wlevel() instead, thus returning a level column get_ORM() can now also accept a path (string or array doesn't matter) to the node which to load.
Release Date: March 13, 2008Introducing an ORM wrapper for MPTtree Added a MPTtreeIterator, to iterate over descendants in the tree Added a MPTtreeORMIterator, to iterate over descendants in the tree, returning ORM objects Added get_node_byid() Added an (optional) custom MY_Loader.php, to make it easier to have multiple instances at the same time (no need extending classes). Improved get_parent() Improved count_children(), not as much database traffic and counting is done in database Improved xpath(), more accurate (doesn't need xpath2() anymore) Changed the return values from the insert and move methods to return the new lft and rgt values instead of true. xpath() and xpath2() can now also accept an array as path (no need using separators)
Release Date: February 26, 2008Added a few methods to be used with Active Record, see Active Record helpers Added calls to db::protect_identifiers() in set_opts() and in set_table() Replaced the method xpath() with a much more efficient xpath variant. The old xpath() method have been renamed to path2(). HCG: Replaced use of transactions with locks
Release Date: February 20, 2008Added the method xpath() Remade set_opts() to accept an array with the parameters Added a sanitation of the data to update_node() and to the insert methods. This to prevent damage to the tree.
Release Date: February 18, 2008Added transaction support Added the method get_descendants_where() Added the method get_children_where() Changed algohrithm for get_children(), the new is almost twice as fast as the old one! Renamed some internal properties to address some conflicts with different CI libraries Changed name of get_decendants() to get_descendants(), a bad misspelling by me.
Release Date: February 9, 2008Initial Release
Hamish Guthrie <hamish at prodigi dot ch> (Table locking)