Index: members/members.install =================================================================== --- members/members.install (revision 195) +++ members/members.install (working copy) @@ -93,6 +93,14 @@ return $ret; } +function members_update_3() { + $ret = array(); + + db_add_column($ret, 'members_page', 'page_type', 'varchar(20)'); + + return $ret; +} + function members_uninstall() { if (db_table_exists('members_page')) { db_query("DROP TABLE {members_page}"); Index: members/contrib/membersuser/membersuser.info =================================================================== --- members/contrib/membersuser/membersuser.info (revision 0) +++ members/contrib/membersuser/membersuser.info (revision 197) @@ -0,0 +1,4 @@ +name = Members User +description = Provides members module with fields from user information +dependencies = members + Index: members/contrib/membersuser/membersuser.module =================================================================== --- members/contrib/membersuser/membersuser.module (revision 0) +++ members/contrib/membersuser/membersuser.module (revision 197) @@ -0,0 +1,81 @@ + 'User ID (UID)','type'=>'textfield'); + $fields['has_posted'] = array('title'=> 'Has Posted Content','type'=>'bool','searchable'=>true); + return $fields; + break; + + case 'process': + if($a == 'has_posted') { + db_query("CREATE TEMPORARY TABLE {%s} (uid int, %s int, INDEX (uid), INDEX(%s))",$b,$a,$a); + db_query('INSERT INTO {%s} SELECT uid,uid FROM {node} GROUP BY uid',$b); + return true; + } else { + return false; + } + + + break; + } +} + +/** + * hook_theme + * + * @param $account row from table join + * @param $field_id id of field for profile module reference + * @param $row_value value of the join in the current members row + * @return string with better representation of the row + * + * because we are using profile module for the data, we just need to pass + * the account and the field_id (name) and it will return the value for us + * + */ +function theme_membersuser_field($account, $field_id) { + static $node_uids; + + if($field_id == 'uid') { + return $account->uid; + } elseif ($field_id == 'has_posted') { + // get all the results of users in one shot and use for later + if( ! is_array($node_uids) ) { + $result=db_query('SELECT uid,count(*) as c FROM {node} group by uid'); + while($row = db_fetch_object($result)) { + $node_uids[$row->uid]=$row->c; + } + } + + if (!$node_uids[$account->uid]) { + return 'No'; + } else { + return 'Yes'; + } + + } + + return $data; + +} 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) 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']) { @@ -1120,12 +1128,13 @@ else { $data = $account->$field; } - + if (stristr($field, 'name')) { $data = l($data, 'user/'.$account->uid); } $row[] = array('data' => $data); } + $rows[] = $row; } @@ -1145,7 +1154,11 @@ } // Render main content - $output .= '