Index: better_formats.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/better_formats/better_formats.module,v retrieving revision 1.23.2.18 diff -u -r1.23.2.18 better_formats.module --- better_formats.module 2 May 2010 15:26:34 -0000 1.23.2.18 +++ better_formats.module 5 Aug 2010 14:55:23 -0000 @@ -227,7 +227,7 @@ } /** - * Creates base format default entry for a newly created role. + * Creates base format default entry for a newly created role from role from. * * @see better_formats_form_alter() */ @@ -237,14 +237,22 @@ FROM {role} ORDER BY rid DESC"; $row = db_fetch_object(db_query_range($sql, 0, 1)); - $rid = $row->rid; - // Create stubs in per role table. - $sql = "INSERT INTO {better_formats_defaults} - VALUES (%d, '%s', %d, %d, %d)"; - db_query($sql, $rid, 'node', 0, 1, 25); - db_query($sql, $rid, 'comment', 0, 1, 25); - db_query($sql, $rid, 'block', 0, 1, 25); + better_formats_create_role($row->rid); +} + +/** + * Creates base format default entry for a newly created role. + * + * @see better_formats_new_role() + */ +function better_formats_create_role($rid) { + // Create format default stubs for a role. + $types = array('node', 'comment', 'block'); + foreach ($types as $type) { + $values = array($rid, $type, 0, 1, 25); + drupal_write_record('better_formats_defaults', $values); + } } /** @@ -260,6 +268,23 @@ } /** + * Ensure that all roles have Better Format entries in the database. + */ +function better_formats_check_roles() { + // Get all roles that do not have BF entries. + $sql = "SELECT r.rid + FROM {role} r + LEFT JOIN {better_formats_defaults} bf + ON r.rid = bf.rid + WHERE bf.type_weight IS NULL"; + $result = db_query($sql); + while ($role = db_fetch_object($result)) { + // Add BF entries. + better_formats_create_role($role->rid); + } +} + +/** * Implementation of hook_node_type(). */ function better_formats_node_type($op, $info) { Index: better_formats_defaults.admin.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/better_formats/better_formats_defaults.admin.inc,v retrieving revision 1.3.2.11 diff -u -r1.3.2.11 better_formats_defaults.admin.inc --- better_formats_defaults.admin.inc 5 Feb 2010 13:52:48 -0000 1.3.2.11 +++ better_formats_defaults.admin.inc 5 Aug 2010 14:52:04 -0000 @@ -17,6 +17,10 @@ * @see better_formats_defaults_admin_form_submit() */ function better_formats_defaults_admin_form() { + // Ensure all roles have a BF default entries in the database. + better_formats_check_roles(); + + // Build defaults form. $form = array( '#tree' => TRUE, );