Commit Graph
85 Commits
Author SHA1 Message Date
Bharat Mediratta bfca0c7903 Refactor the install/upgrade code to be more flexible.
Add xxx_installer::upgrade($version) method so that upgrade stanzas
are separate from install stanzas.  In the old code, to do an upgrade
meant that you had to re-evolve everything from the initial install
because we'd step through each version's changes.  But what we really
want is for the initial install to start off in the perfect initial
state, and the upgrades to do the work behind the scenes.  So now the
install() function gets things set up properly the first time, and the
upgrade() function does any work to catch you up to the latest code.
See gallery_installer.php for a good example.
2009-06-23 12:00:49 -07:00
Bharat Mediratta 6029c2bf7a Catch exceptions from tag::add() that can be caused by character
encoding issues resulting from embedded keywords in encodings we can't
decipher.  This can lead to weird truncation issues which in turn can
lead to multiple tags getting truncated to the same value in MySQL
which leads to mysql complaining that we're adding a duplicate tag.
2009-06-19 12:03:35 -07:00
Bharat Mediratta 1b656be713 Create a sidebar for tag pages
Move the <link> for the container feed (either gallery/album/<id> or
tag/tag/<id>) back into gallery_theme
2009-06-14 22:27:26 -07:00
Bharat Mediratta 32ea4406c8 Refactor the way that the rss module works so that we're not allowing
the url to dictate arbitrary static method calls.

* Each xxx_rss helper has a single feed() call which takes an id as the argument

* xxx_rss::available_feedS() only returns feeds when they're applicable (ie
  if you're viewing a tag, it won't show you an item feed).

* Feed urls are now in the module/feed_id form so that we can bind a
  feed id to a given module

* Tightened up the Rss_Controller by using url::merge and some other tricks.

* Made the slideshow module express its own feed.
2009-06-14 21:51:54 -07:00
Bharat Mediratta 00fad54c0b Refactor feed code to use stdClass everywhere. Fix bugs in the
max-pages calculation code.  Move feed related data into the $feed
variable and only pass that to the view.
2009-06-14 16:40:57 -07:00
Tim Almdal 8b7f7a2fbe Don't use stdClass to return the feed data. Just use an array. 2009-06-14 12:38:57 -07:00
Tim Almdal 76b89556fc Remove the sidebar flag from the feed definition returned by available_feeds and
replace with a type field with one of two values (head and block).  We need to
do this to determine what fields go in the rss block so we can ignore the
definitions that are related to the page head when creating the rss block that
goes into the sidebar.
2009-06-14 12:09:47 -07:00
Tim Almdal 484796e7cc Remove rss:item_feed, rss::tag_fead and rss_theme::head and move that
functionality in the <module_name>_theme::head function. Created rss::feed_link
to wrap the module supplied uri in the html link element.
2009-06-14 11:39:53 -07:00
Tim Almdal 30bdaa8123 Continue refactoring the rss module and distribute the creation of album and
tag feeds to the gallery and tag modules respectively.  This chould close
ticket #388
2009-06-12 11:48:13 -07:00
Bharat Mediratta ebb0761b8d Label the tag input field according to the item type.
Fixes ticket #176.
2009-05-28 00:32:24 -07:00
Tim Almdal 908618960b Since organize is now in the preview stage and will probably be
rewritten by beta2, pull all of its "tenticles" back into itself and
out of core or tags module.
2009-05-26 14:43:31 +00:00
Bharat Mediratta 7aed923908 Restructure the module lifecycle.
Install: <module>_installer::install() is called, any necessary tables
are created.

Activate: <module>_installer::activate() is called.  Module
controllers are routable, helpers are accessible, etc.  The module is
in use.

Deactivate: <module>_installer::deactivate() is called.  Module code
is not accessible or routable.  Module is *not* in use, but its tables
are still around.

Uninstall: <module>_installer::uninstall() is called.  Module is
completely removed from the database.

Admin > Modules will install and activate modules, but will only
deactivate (will NOT uninstall modules).
2009-05-26 05:28:59 +00:00
Tim Almdal ee0bd765b6 Implement a basic tag management interface with the organize drawer 2009-05-22 16:14:42 +00:00
Tim Almdal a9e3692027 1) This provides the editting functionality for albums and photos in the
organize feature.
2) Remove the tag functionality at this point
3) Added a callback to handle validating conflicting names (only used
by organize at this point.
4) Closes #231
2009-05-21 01:31:29 +00:00
Tim Almdal 762ca22544 This takes us the next step closer to providing bulk edit. We still
can't edit, but we are getting closer :-).
This change sets up a framework for modules to contribute edit panels
to the organize drawer. Currently implemented General (albums and
photos), Sort Order (albums only) and Manage Tags
2009-05-18 19:34:03 +00:00
Bharat Mediratta 5495037a3d Gee it's May already. Update copyright to 2009. 2009-05-13 20:04:58 +00:00
Bharat Mediratta 99c26f30c6 Allow users to enter multiple tags at once, split by space, semicolon
or comma.

Fixes ticket #193.
2009-05-13 01:43:47 +00:00
Bharat Mediratta 99b7cdeee1 Fix a copy/paste typo. 2009-05-10 00:13:39 +00:00
Bharat Mediratta d1a9138925 Don't try to use mb_detect_encoding if the module isn't loaded. Not sure if this is a great solution, but it'll probably cut down on a big class of errors opportunistically 2009-05-08 19:16:48 +00:00
Bharat Mediratta 13f8a0dd7b Detect input encodings from EXIF/IPTC data and convert to utf-8 as
appropriate.  This allows us to switch the exif value column back to
varchar and improves the way that we deal with non-utf8 data in our
embedded EXIF/IPTC data.
2009-05-05 03:30:49 +00:00
Bharat Mediratta fde7073886 Strip trailing nulls off of some tags. 2009-04-05 04:08:24 +00:00
Bharat Mediratta c81ee12411 Don't allow empty tag names 2009-03-17 20:57:51 +00:00
Bharat Mediratta 8786ee3ffb Initialize $tags properly 2009-03-17 05:25:38 +00:00
Bharat Mediratta 2dba075e8a Fix typo: tag_block -> tag_theme
Overlooked when I renamed this class.
2009-03-17 00:37:39 +00:00
Bharat Mediratta 6a2e8ec1cc Set $item and $tag in the Theme_View so that calls like $theme->item()
which fall through to calling &View::__get() have an lvalue to return,
else you can't return them by reference.

Also, don't show sidebar blocks for pages that don't have an item so
that the rss and tag modules don't break the search page.
2009-03-16 11:17:27 +00:00
Tim Almdal c04ff8e02f Change the pattern to identify tables that need prefix substitution to
mirror the drupal pattern of using braces {}.
2009-02-28 06:37:28 +00:00
Tim Almdal ad56995baf Correct a type and missed a table name 2009-02-28 03:34:03 +00:00
Tim Almdal bd15853708 This implements table prefix for all the queries in core, user, exif,
tag, search, comment and notification modules (Ticket #68)
2009-02-27 21:07:18 +00:00
Tim Almdal 2b1f68a654 Continue the journey of replacing raw sql with ORM or Database method
calls (Ticket #68)
2009-02-27 00:19:12 +00:00
Bharat Mediratta 11226bdd3a Simplify delete into guaranteed 3 queries. 2009-02-10 04:34:34 +00:00
Tim Almdal f97dedf3e4 Fix for Trac Ticket #30 2009-02-02 16:37:09 +00:00
Tim Almdal 7ef2dae070 There doesn't seem to be a photo_created event anymore so change it to
item_created and check for a type of photo before trying to extract tags.
2009-01-31 17:38:20 +00:00
Tim Almdal a8233ed979 Undo the adding underscores to the id on forge generated forms 2009-01-25 06:28:04 +00:00
Tim Almdal cbff78daa8 Supply a form id on all forms. This id can be used by modules other
than the originating module to provide additional functionality to the form.
2009-01-24 17:26:47 +00:00
Bharat Mediratta 3d1ea2904d Rename theme callback helpers from xxx_block to xxx_theme to make room
for us to rename the dashboard helper to be a block helper since
sidebar blocks are not just in the dashboard.
2009-01-18 05:01:00 +00:00
Andy Staudacher e4a9b19bf9 Changing t() placeholder syntax from {{replace_me}} to %replace_me. 2009-01-15 10:02:41 +00:00
Bharat Mediratta f3ba69c1d6 Make sure that helper functions are all static. Add new
File_Structure_Test to make sure we don't regress.

According to the PHP docs, the "public" keyword is implied on static
functions, so remove it.  Also, require private static functions to
start with an _.

http://php.net/manual/en/language.oop5.visibility.php
2009-01-14 04:12:02 +00:00
Bharat Mediratta bc421a615a Implement deleting dashboard blocks.
* Refactor blocks so that they have a separate id vs css_id.  This way
  we can have a unique identifier for each visual block.

* Store blocks with a random id as their unique identifier

* Add Admin_Dashboard::remove_block() and modify
  themes/admin_default/views/block.html.php to call it when you click the
  remove box.
2009-01-12 08:26:38 +00:00
Bharat Mediratta ae73ef3d57 Updated for new Form_Submit API.
OLD:
  $form->submit("Foo")  -->  <input type="submit" value="Foo">

New:
  $form->submit("foo_button")->("Foo") --> <input type="submit" name="foo_button" value="Foo">

Mostly we don't care what the button is so we leave the name blank.
2009-01-12 07:50:04 +00:00
Andy Staudacher a631fe29f3 i18n refactoring: Rename all _() (reserved by gettext) calls to t().
- And refactor printf to our string interpolation / pluralization syntax
- Also, a slight change to the translations_incomings table, using binary(16) instead of char(32) as message key.
2009-01-08 17:13:06 +00:00
Bharat Mediratta fa1ccbd86d Fix up all the various little forms to have submit buttons, fieldset legends, etc etc. 2009-01-06 09:22:29 +00:00
Bharat Mediratta 3381f1d01a Put up an error if you try to reuse an existing tag name 2009-01-04 22:58:18 +00:00
Bharat Mediratta 92ceef27da Allow renaming of tags using a modal dialog. Put up a confirmation
dialog for deleting tags.  Remove the 4 character restriction on tags
(it was getting ignored by the add form anyway since it was mistakenly
referred to as tag_name there).
2009-01-04 08:44:06 +00:00
Bharat Mediratta 2c27469412 Simple admin tags interface. 2009-01-04 01:55:59 +00:00
Bharat Mediratta d36996fb14 Remove unnecessary comments. 2009-01-04 00:39:54 +00:00
Bharat Mediratta f29aad03a6 Make some columns smaller so that multi-column keys don't exceed 1024
bytes on some systems.
2008-12-30 01:37:09 +00:00
Bharat Mediratta 3c0be5156b url::site is implicit in Forge actions, don't specify it a 2nd time 2008-12-29 18:38:40 +00:00
Bharat Mediratta fdc0f83024 Big round of normalization of the way that our controllers
communicate.  Almost all controllers now use JSON to speak to the
theme when we're dealing with form processing.  This means tht we only
send the form back and forth, but we use a JSON protocol to tell the
browser success/error status as well as the location of any newly
created resources, or where the browser should redirect the user.

Lots of small changes:
1) Admin -> Edit Profile is gone.  Instead I fixed the "Modify Profile" link
   in the top right corner to be a modal dialog

2) We use json_encode everywhere.  No more Atom/XML for now.  We can bring those
   back later, though.  For now there's a lot of code duplication but that'll be
   easy to clean up.

3) REST_Controller is no longer abstract.   All methods its subclasses should create
   throw exceptions, which means that subclasses don't have to implement stubs for
   those methods.

4) New pattern: helper method get_add_form calls take an Item_Model,
   not an id since we have to load the Item_Model in the controller
   anyway to check permissions.

5) User/Groups REST resources are separate from User/Group in the site
   admin.  They do different things, we should avoid confusing overlap.
2008-12-25 05:12:46 +00:00
Bharat Mediratta c67234974d Refactor site admin menu into a theme function and build the menus in
the various modules.  In the process, rename xxx_menu::site_navigation() to just
xxx_menu::site().  And add xxx_menu::admin().

The menus are the same as before, but I changed the HTML to be
consistent with the way that we do it in the regular site, and this
broke the superfish styles.  I don't know how to fix this.. help me
Chad!
2008-12-18 07:32:34 +00:00
Chad Kieffer 9fa566a1c9 Added label to add tag form input 2008-12-17 01:19:13 +00:00