remove Gallery3 concepts from ORM_MPTT.
The following API methods:
ORM_MPTT::children
ORM_MPTT::children_count
ORM_MPTT::descendants
ORM_MPTT::descendants_count
All now take a $where clause that allow you to pass through additional
field parameters.
old API:
$album->children(10, 0, "photos")
$album->children_count("photos")
new API:
$album->children(10, 0, array("type" => "photos"))
$album->children_count(array("type" => "photos"))
This gives us a more flexible API and simplifies the code. While I
was in there, I changed the way we deal with default orderby values so
that we just assign the default value in the function definition,
which allows us to get rid of all conditionals in the implementation
which results in simpler code.
specify a type parameter, so tht we can filter the children based
on type (i.e. album, photo, etc).
In addition, expose the sort order, so that we can specify the order
we want to return the children.
Old API: $obj->original("field_name")
New API: $obj->original()->field_name
This allows us to revert the varous xxx_updated events back to passing
an original ORM as well as the the updated one. This makes for a
cleaner event API.
Old API: comment_updated($comment) { $comment->original("field_name") }
Old API: comment_updated($old, $new) { $old->field_name }
Add a weight index to the item table and changed the retrieval of the maximum
weight to select weight from items order by weight desc limit 1.
Upgrades the gallery module to version 10
Signed-off-by: Tim Almdal <tnalmdal@shaw.ca>
get_position(), and instead apply an ORDER BY on `id` in the 2nd query
so that we have stability among the equal elements. This should
result in cheaper (and more sensible) queries.
1) Change access_Core::user_can to return true for all permissions if the
owner is the specified user.
2) Change Item_Model::viewable to set the owner_id is the first view_restriction
This allowed simplification of the generating the where clause to a single
$this->orwhere instead of a where and an orwhere.
old ORM relationships from hanging around, which was causing problems
when doing MPTT manipulations (resulting in incorrect permission
propagation-- very bad!)
related events from within the model handling code. The only
exception to this currently is item_created which is challenging
because we have to save the item using ORM_MPTT::add_to_parent()
before the object itself is fully set up. When we get that down to
one call to save() we can publish that event from within the model
also.
1) The item_updated event no longer takes the old and new items.
Instead we overload ORM to track the original data and make
that available via the item. This will allow us to move event
publishing down into the API methods which in turn will give us
more stability since we won't require each controller to remember
to do it.
2) ORM class now tracks the original values. It doesn't track
the original relationships (no need for that, yet)
3) Added new events:
item_deleted
group_deleted
user_deleted
instead of parent::save. :-) Also change admin_maintenance_controller to delete
via looping over all of the completed tasks and delete individually, so we can
delete the associated cache entries at the same time.
stored in the persistant cache for 30 days. On the admin_maintenance page
there is a new link for completed tasks "browse log". Clicking this will
open a dialog box that has the the contents of the log displayed.
The user can then view the log and close the dialog, or press the save button
to download the log to their local machine.
Created a new view "movieplayer.html.php", which is rendered by
Item_Model::movie_img(). Changed movie.html.php to use movie_img to render
the movie player link.
grandparent id. Oops. This caused navigation from photo back up to
album to be broken.
Also update Photos_Controller to use the active sort order.. it was
still hardcoded to use the id. It's more efficient now, yay.
Fixes ticket #340.
Kohana makes this type of transition fairly straightforward in that
all controllers/helpers/etc are still located in the cascading
filesystem without any extra effort, except that I've temporarily
added a hack to force modules/gallery into the module path.
Rename what's left of "core" to be "application" so that it conforms
more closely to the Kohana standard (basically, just
application/config/config.php which is the minimal thing that you need
in the application directory)
There's still considerable work left to be done here.