convention. To respond to the "photo_created" event in the gmaps
module, you create modules/gmaps/helpers/gmaps_event.php containing
class gmaps_event which has function photo_created.
Renamed all events from gallery.foo.bar to foo_bar
Updated tag module to use new convention.
1) Generate the form in Tags_Controller::_form_add()
2) Process the form submit in Tags_Controller::_create()
3) Create the tag properly
This required me to limit our scope to adding one tag at a time, which
I think is fine if we're doing Ajax style tag addition.
Create the concept of "page types" which let us specify the kind of
page that we're rendering in high level terms. Currently there are
three page types: album, photo and tag.
The tag page type uses slightly different variables. It has a $tag
but no $item. Adjust all sidebar_block() functions to avoid printing
stuff that's dependent on the item if there is no item.
Simplify the tag code to stop trying to fake an item.
Update the theme slightly to use $item and $tag where appropriate
(notably, for making the <title> element).
1) change buckets to be 1-7 not 0-6.. zero-based indicies don't make sense in the
real world and are liable to confuse themers.
2) Change tag API to popular_tags($count) which just returns the popular tags. Let
the block code massage it into the right format for the view.
3) Move alphasort into the block code, simplify it and rename it to sort_by_name so
that it's more descriptive
4) Do the bucketing in the view; this allows the themer to override it and create their
own bucketing algorithm to go with the theme's CSS.
5) Don't create any temporary objects.
multiple items, so don't create a confusing API where we don't need
one. The caller can just as easily loop over items and tags.
Use ORM::has() instead of manually looping over items, which would be
wildly inefficient on large installs. Document that we're calling
ORM::has() a second time just so that we can update the count
correctly.
Avoid using restrictions on our data in the database; let's design the
system to keep integrity in the app (and make the app robust against
minor integrity issues like duplicate tags, etc).
$theme->block_type() so that the themer has a consistent interface.
Also added a bunch more callbacks and normalized the names so that the
module author has plenty of options for where stuff gets put on the
page. Especially renamed album/photo/sidebar to be album_blocks()
photo_blocks() and sidebar_blocks() to make it clear that those are
going to be larger content sections and not just basic insertion
points.
Used __call() to collapse all functions in the theme, which
incidentally makes it trivially easy to add a new insertion point.