[geeklog-cvs] geeklog-1.3/public_html/admin group.php,1.31,1.32

blaine at geeklog.net blaine at geeklog.net
Sun Nov 16 20:40:33 EST 2003


Update of /usr/cvs/geeklog/geeklog-1.3/public_html/admin
In directory geeklog_prod:/tmp/cvs-serv30687/public_html/admin

Modified Files:
	group.php 
Log Message:
Added feature to be able to edit group membership from the Group Editor. Using a Javascript based functions to move members from one list box to another. Able to View/Add/Remove group members. Added new library.js file to public_html for common Javascript functions.

Index: group.php
===================================================================
RCS file: /usr/cvs/geeklog/geeklog-1.3/public_html/admin/group.php,v
retrieving revision 1.31
retrieving revision 1.32
diff -C2 -d -r1.31 -r1.32
*** group.php	20 Sep 2003 16:36:05 -0000	1.31
--- group.php	17 Nov 2003 01:40:31 -0000	1.32
***************
*** 445,448 ****
--- 445,450 ----
      $group_templates->set_var('lang_description', $LANG_ACCESS['description']);
      $group_templates->set_var('lang_coregroup', $LANG_ACCESS['coregroup']);
+     $group_templates->set_var('lang_action', $LANG_ACCESS['action']);
+     $group_templates->set_var('lang_edit', $LANG_ACCESS['edit']);
      $group_templates->set_var('lang_list_users', $LANG_ACCESS['listusers']);
  
***************
*** 585,588 ****
--- 587,650 ----
  }
  
+ function grp_selectUsers($group_id = "0", $allusers=false) {
+     global $_USER,$_TABLES;
+     $retval = '';
+     if($allusers) {    // Show all site members - else users in selected group
+         $result = DB_query( "SELECT uid,username from {$_TABLES['users']} ORDER BY username" );
+         while(list($uid,$username) = DB_fetchArray($result)) {
+             if( DB_count($_TABLES['group_assignments'], array('ug_uid','ug_main_grp_id'), array($uid,$group_id)) == 0 ) {
+                 $retval .= '<option value="' . $uid . '">'. $username . '</option>';
+             }
+         }
+     } else {
+         $groups = getGroupList ($group_id);
+         $groupList = implode (',', $groups);
+         $sql = "FROM {$_TABLES['users']},{$_TABLES['group_assignments']} 
+             WHERE {$_TABLES['users']}.uid > 1 AND {$_TABLES['users']}.uid = {$_TABLES['group_assignments']}.ug_uid AND ({$_TABLES['group_assignments']}.ug_main_grp_id IN ({$groupList}))";
+         $result = DB_query ("SELECT DISTINCT uid,username " . $sql . " ORDER BY username");
+         while(list($uid,$username) = DB_fetchArray($result)) {
+             $retval .= '<option value="' . $uid . '">'. $username . '</option>';
+         }
+     }
+     return $retval;
+ }
+ 
+ 
+ function editusers($group) {
+     global $_CONF, $LANG_ACCESS;
+ 
+     $retval .= COM_startBlock ($LANG_ACCESS['usergroupadmin'] , '',
+                        COM_getBlockTemplate ('_admin_block', 'header'));
+     $groupmembers = new Template($_CONF['path_layout'] . 'admin/group');
+     $groupmembers->set_file (array ('groupmembers'=>'groupmembers.thtml'));
+     $groupmembers->set_var ('site_url',$_CONF['site_url']);
+     $groupmembers->set_var ('phpself',$PHP_SELF);
+     $groupmembers->set_var ('LANG_sitemembers',$LANG_ACCESS['availmembers']);
+     $groupmembers->set_var ('LANG_grpmembers',$LANG_ACCESS['groupmembers']);
+     $groupmembers->set_var ('sitemembers', grp_selectUsers($group,true) );
+     $groupmembers->set_var ('group_list', grp_selectUsers($group) );
+     $groupmembers->set_var ('LANG_add',$LANG_ACCESS['add']);
+     $groupmembers->set_var ('LANG_remove',$LANG_ACCESS['remove']);
+     $groupmembers->set_var('lang_save', $LANG_ACCESS['save']);
+     $groupmembers->set_var('lang_cancel', $LANG_ACCESS['cancel']);
+     $groupmembers->set_var ('group_id',$group);
+     $groupmembers->parse ('output', 'groupmembers');
+     $retval .= $groupmembers->finish($groupmembers->get_var('output'));
+     $retval .= COM_endBlock (COM_getBlockTemplate ('_admin_block', 'footer'));
+     Return $retval;
+ 
+ }
+ 
+ function savegroupusers($groupid,$groupmembers) {
+     global $_CONF, $_TABLES;
+ 
+     // Delete all the current buddy records for this user and add all the selected ones
+     DB_query("DELETE FROM {$_TABLES['group_assignments']} WHERE ug_main_grp_id={$groupid} AND ug_uid != 'NULL' ");
+     $adduser = explode("|",$groupmembers);
+     for( $i = 0; $i < count($adduser); $i++ )    {
+         DB_query("INSERT INTO {$_TABLES['group_assignments']} (ug_main_grp_id, ug_uid) VALUES ('$groupid', '$adduser[$i]')");
+     }
+     echo COM_refresh($_CONF['site_admin_url'] . '/group.php?msg=49');
+ }
  // MAIN
  if (($mode == $LANG_ACCESS['delete']) && !empty ($LANG_ACCESS['delete'])) {
***************
*** 600,603 ****
--- 662,667 ----
      $display .= savegroup($grp_id,$grp_name,$grp_descr,$grp_gl_core,$features,
              $HTTP_POST_VARS[$_TABLES['groups']]);
+ } else if ($mode == "savegroupusers") {
+     $display .= savegroupusers($grp_id, $HTTP_POST_VARS['groupmembers']);
  } else if ($mode == 'edit') {
      $display .= COM_siteHeader('menu');
***************
*** 608,613 ****
      $display .= listusers ($grp_id, $page);
      $display .= COM_siteFooter ();
! }
! else { // 'cancel' or no mode at all
      $display .= COM_siteHeader('menu');
      if (isset ($msg)) {
--- 672,680 ----
      $display .= listusers ($grp_id, $page);
      $display .= COM_siteFooter ();
! } else if ($mode == 'editusers') {
!     $display .= COM_siteHeader ('menu');
!     $display .= editusers ($grp_id, $page);
!     $display .= COM_siteFooter ();
! } else { // 'cancel' or no mode at all
      $display .= COM_siteHeader('menu');
      if (isset ($msg)) {





More information about the geeklog-cvs mailing list