From 607d9589775dc79afd4e7295ce00bcf3eeb84d04 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 3 Nov 2010 12:20:25 -0700 Subject: UserFlag fixes to prevent PHP notices breaking AJAX submissions when display_errors is on. Key & seq defs weren't quite right, which caused accesses to unset array indices in DB_DataObject. --- plugins/UserFlag/User_flag_profile.php | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'plugins/UserFlag/User_flag_profile.php') diff --git a/plugins/UserFlag/User_flag_profile.php b/plugins/UserFlag/User_flag_profile.php index 69fe0f356..f4e9844df 100644 --- a/plugins/UserFlag/User_flag_profile.php +++ b/plugins/UserFlag/User_flag_profile.php @@ -79,21 +79,36 @@ class User_flag_profile extends Memcached_DataObject /** * return key definitions for DB_DataObject * - * @return array key definitions + * @return array of key names */ function keys() { - return array('profile_id' => 'K', 'user_id' => 'K'); + return array_keys($this->keyTypes()); } /** * return key definitions for DB_DataObject * - * @return array key definitions + * @return array map of key definitions */ function keyTypes() { - return $this->keys(); + return array('profile_id' => 'K', 'user_id' => 'K'); + } + + /** + * Magic formula for non-autoincrementing integer primary keys + * + * If a table has a single integer column as its primary key, DB_DataObject + * assumes that the column is auto-incrementing and makes a sequence table + * to do this incrementation. Since we don't need this for our class, we + * overload this method and return the magic formula that DB_DataObject needs. + * + * @return array magic three-false array that stops auto-incrementing. + */ + function sequenceKey() + { + return array(false, false, false); } /** -- cgit v1.2.3-54-g00ecf