From 1b1c47025a0ab84f6dcf8cce9650f3af03415905 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Sun, 27 Jun 2004 19:10:52 +0000 Subject: I refactored quite a bit of the user.module: $ diffstat user.patch database/database.mysql | 4 database/database.pgsql | 2 database/updates.inc | 10 - modules/block.module | 20 +- modules/locale.module | 9 modules/profile.module | 108 +++++++---- modules/system.module | 8 modules/user.module | 456 +++++++++++++++++++----------------------------- 8 files changed, 289 insertions(+), 328 deletions(-) More functionality, less code. Here is a list of the changes: - Some user API changes: + When $type is 'form', you have to return an associative array of groups. In turn, each group is an array with a 'title', 'data' and 'weight'. + A new $type has been added, namely 'categories'. User settings can be organized in categories. Categories can be sorted, as can the groups within a category. (Ordering 'categories' is somewhat broken due to a bug in the menu system.) - The 'my account > edit' page will use subtabs for each 'category'. Read: you can break down the account settings into multiple subpages. - Profile module improvements: + Added support for private fields to the profile module! + Improved workflow of profile administration pages. + Improved the form descriptions. - Code improvements: + Unified user_edit() and user_admin_edit(). + Unified and cleaned up the validation code. Fixed some validation glitches too. --- modules/block.module | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'modules/block.module') diff --git a/modules/block.module b/modules/block.module index 455380f12..358654a01 100644 --- a/modules/block.module +++ b/modules/block.module @@ -357,20 +357,22 @@ function block_admin() { * Allow users to decide which custom blocks to display when they visit * the site. */ -function block_user($type, $edit, &$user) { +function block_user($type, $edit, &$user, $category = NULL) { switch ($type) { case 'form': - $result = db_query('SELECT * FROM {blocks} WHERE custom = %d ORDER BY module, delta', 1); - - while ($block = db_fetch_object($result)) { - $data = module_invoke($block->module, 'block', 'list'); - if ($data[$block->delta]['info']) { - $form .= form_checkbox($data[$block->delta]['info'], "block][$block->module][$block->delta", 1, isset($user->block[$block->module][$block->delta]) ? $user->block[$block->module][$block->delta] : $block->status); + if ($category == 'account') { + $result = db_query('SELECT * FROM {blocks} WHERE custom = %d ORDER BY module, delta', 1); + + while ($block = db_fetch_object($result)) { + $data = module_invoke($block->module, 'block', 'list'); + if ($data[$block->delta]['info']) { + $form .= form_checkbox($data[$block->delta]['info'], "block][$block->module][$block->delta", 1, isset($user->block[$block->module][$block->delta]) ? $user->block[$block->module][$block->delta] : $block->status); + } } - } - if (isset($form)) { - return array(t('Block configuration') => $form); + if (isset($form)) { + return array(array('title' => t('Block configuration'), 'data' => $form, 'weight' => 2)); + } } break; -- cgit v1.2.3