Index: members/members.module =================================================================== --- members/members.module (revision 195) +++ members/members.module (working copy) @@ -375,6 +375,14 @@ '#description' => t('Enter the URL to use for this members page. Do not begin or end the URL with a /. Example: \'members/premium\'.'), ); + $form['page-info']['page_type'] = array( + '#type' => 'select', + '#title' => t('Page type'), + '#default_value' => $member->page_type, + '#options' => array("table"=>"Table","list"=>"List") + ); + + $form['page-info']['page_title'] = array( '#type' => 'textfield', '#title' => t('Title'), @@ -764,10 +772,10 @@ if ($form['mid']) { - db_query("UPDATE {members_page} SET name='%s', description='%s', access='%s', page=%d, page_title='%s', url='%s', use_pager=%d, page_header='%s', page_header_format=%d, page_footer='%s', page_footer_format=%d, page_empty='%s', page_empty_format=%d, menu=%d, menu_title='%s', block=%d, block_title='%s', users_per_block=%d, block_more=%d, block_use_page_header=%d, block_header='%s', block_header_format=%d, block_use_page_footer=%d, block_footer='%s', block_footer_format=%d, block_use_page_empty=%d, block_empty='%s', block_empty_format=%d, roles='%s', `searchables`='%s', `fields`='%s', encode_mailto=%d, field_length=%d, users_per_page=%d WHERE mid=%d LIMIT 1", $form['name'], $form['description'], $access, $form['page'], $form['page_title'], $form['url'], $form['use_pager'], $form['page_header'], $form['page_header_format'], $form['page_footer'], $form['page_footer_format'], $form['page_empty'], $form['page_empty_format'], $form['menu'], $form['menu_title'], $form['block'], $form['block_title'], $form['users_per_block'], $form['block_more'], $form['block_use_page_header'], $form['block_header'], $form['block_header_format'], $form['block_use_page_footer'], $form['block_footer'], $form['blocker_footer_format'], $form['block_use_page_empty'], $form['block_empty'], $form['block_empty_format'], $roles, $searchables, $fields, $form['encode_mailto'], $form['field_length'], $form['users_per_page'], $form['mid']); + db_query("UPDATE {members_page} SET name='%s', description='%s', access='%s', page=%d, page_title='%s', url='%s', use_pager=%d, page_header='%s', page_header_format=%d, page_footer='%s', page_footer_format=%d, page_empty='%s', page_empty_format=%d, menu=%d, menu_title='%s', block=%d, block_title='%s', users_per_block=%d, block_more=%d, block_use_page_header=%d, block_header='%s', block_header_format=%d, block_use_page_footer=%d, block_footer='%s', block_footer_format=%d, block_use_page_empty=%d, block_empty='%s', block_empty_format=%d, roles='%s', `searchables`='%s', `fields`='%s', encode_mailto=%d, field_length=%d, users_per_page=%d, page_type='%s' WHERE mid=%d LIMIT 1", $form['name'], $form['description'], $access, $form['page'], $form['page_title'], $form['url'], $form['use_pager'], $form['page_header'], $form['page_header_format'], $form['page_footer'], $form['page_footer_format'], $form['page_empty'], $form['page_empty_format'], $form['menu'], $form['menu_title'], $form['block'], $form['block_title'], $form['users_per_block'], $form['block_more'], $form['block_use_page_header'], $form['block_header'], $form['block_header_format'], $form['block_use_page_footer'], $form['block_footer'], $form['blocker_footer_format'], $form['block_use_page_empty'], $form['block_empty'], $form['block_empty_format'], $roles, $searchables, $fields, $form['encode_mailto'], $form['field_length'], $form['users_per_page'],$form['page_type'], $form['mid']); } else { - db_query("INSERT INTO {members_page} (name, description, access, page, page_title, url, use_pager, page_header, page_header_format, page_footer, page_footer_format, page_empty, page_empty_format, menu, menu_title, block, block_title, users_per_block, block_more, block_use_page_header, block_header, block_header_format, block_use_page_footer, block_footer, block_footer_format, block_use_page_empty, block_empty, block_empty_format, roles, `fields`, `searchables`, encode_mailto, field_length, users_per_page) VALUES ('%s', '%s', '%s', %d, '%s', '%s', %d, '%s', %d, '%s', %d, '%s', %d, %d, '%s', %d, '%s', %d, %d, %d, '%s', %d, %d, '%s', %d, %d, '%s', %d, '%s', '%s', '%s', %d, %d, %d)", $form['name'], $form['description'], $access, $form['page'], $form['page_title'], $form['url'], $form['use_pager'], $form['page_header'], $form['page_header_format'], $form['page_footer'], $form['page_footer_format'], $form['page_empty'], $form['page_empty_format'], $form['menu'], $form['menu_title'], $form['block'], $form['block_title'], $form['users_per_block'], $form['block_more'], $form['block_use_page_header'], $form['block_header'], $form['block_header_format'], $form['block_use_page_footer'], $form['block_footer'], $form['block_footer_format'], $form['block_use_page_empty'], $form['block_empty'], $form['block_empty_format'], $roles, $fields, $searchables, $form['encode_mailto'], $form['field_length'], $form['users_per_page']); + db_query("INSERT INTO {members_page} (name, description, access, page, page_title, url, use_pager, page_header, page_header_format, page_footer, page_footer_format, page_empty, page_empty_format, menu, menu_title, block, block_title, users_per_block, block_more, block_use_page_header, block_header, block_header_format, block_use_page_footer, block_footer, block_footer_format, block_use_page_empty, block_empty, block_empty_format, roles, `fields`, `searchables`, encode_mailto, field_length, users_per_page, page_type) VALUES ('%s', '%s', '%s', %d, '%s', '%s', %d, '%s', %d, '%s', %d, '%s', %d, %d, '%s', %d, '%s', %d, %d, %d, '%s', %d, %d, '%s', %d, %d, '%s', %d, '%s', '%s', '%s', %d, %d, %d, '%s')", $form['name'], $form['description'], $access, $form['page'], $form['page_title'], $form['url'], $form['use_pager'], $form['page_header'], $form['page_header_format'], $form['page_footer'], $form['page_footer_format'], $form['page_empty'], $form['page_empty_format'], $form['menu'], $form['menu_title'], $form['block'], $form['block_title'], $form['users_per_block'], $form['block_more'], $form['block_use_page_header'], $form['block_header'], $form['block_header_format'], $form['block_use_page_footer'], $form['block_footer'], $form['block_footer_format'], $form['block_use_page_empty'], $form['block_empty'], $form['block_empty_format'], $roles, $fields, $searchables, $form['encode_mailto'], $form['field_length'], $form['users_per_page'],$form['page_type']); } if ($form['mid']) { @@ -791,20 +799,34 @@ * Load the members page settings in an object */ function members_load_settings($name = "") { + + static $members_settings; $settings = new stdClass(); - if(!empty($name)) { - if(!is_numeric($name)) { - $settings = db_fetch_object(db_query("SELECT * FROM {members_page} WHERE name='%s' LIMIT 1", $name)); - } - else { - $settings = db_fetch_object(db_query("SELECT * FROM {members_page} WHERE mid=%d LIMIT 1", $name)); - } - $settings->access = explode(",", $settings->access); - $settings->roles = explode(",", $settings->roles); - $settings->searchables =explode(",", $settings->searchables); - $settings->fields = explode(",", $settings->fields); + if(!is_array($members_settings)) { + $members_settings=array(); } + + if(!key_exists($name,$members_settings)) { + + if(!empty($name)) { + if(!is_numeric($name)) { + $settings = db_fetch_object(db_query("SELECT * FROM {members_page} WHERE name='%s' LIMIT 1", $name)); + } + else { + $settings = db_fetch_object(db_query("SELECT * FROM {members_page} WHERE mid=%d LIMIT 1", $name)); + } + $settings->access = explode(",", $settings->access); + $settings->roles = explode(",", $settings->roles); + $settings->searchables = strlen($settings->searchables) ? explode(",", $settings->searchables) : array(); + $settings->fields = explode(",", $settings->fields); + } + $members_settings[$name]=$settings; + } else { + $settings = $members_settings[$name]; + } + + return $settings; } @@ -1116,16 +1138,19 @@ } } $data = implode (', ', $data); + } elseif ($field == 'picture') { + $data = theme('user_picture',$account); } else { $data = $account->$field; } - + if (stristr($field, 'name')) { $data = l($data, 'user/'.$account->uid); } $row[] = array('data' => $data); } + $rows[] = $row; } @@ -1133,7 +1158,11 @@ $rows[] = array(array("data" => $pager, "colspan" => count($header))); } - $output = drupal_get_form('members_search_form',$mid); + if ( sizeof($member->searchables) > 0 ) { + $output = drupal_get_form('members_search_form',$mid); + } else { + $output = ''; + } // Render header @@ -1145,7 +1174,11 @@ } // Render main content - $output .= '