[geeklog-cvs] geeklog: Gave the Groups editor a facelift

geeklog-cvs at lists.geeklog.net geeklog-cvs at lists.geeklog.net
Sun Jan 25 14:25:52 EST 2009


details:   http://project.geeklog.net/cgi-bin/hgweb.cgi/rev/744c064938a0
changeset: 6726:744c064938a0
user:      Dirk Haun <dirk at haun-online.de>
date:      Sun Jan 25 20:25:40 2009 +0100
description:
Gave the Groups editor a facelift

diffstat:

11 files changed, 98 insertions(+), 33 deletions(-)
language/english.php                                     |    3 
language/english_utf-8.php                               |    3 
language/german.php                                      |    3 
language/german_formal.php                               |    3 
language/german_formal_utf-8.php                         |    3 
language/german_utf-8.php                                |    3 
public_html/admin/group.php                              |   70 +++++++++-----
public_html/docs/history                                 |    2 
public_html/docs/theme.html                              |    3 
public_html/layout/professional/admin/lists/inline.thtml |   14 ++
system/lib-admin.php                                     |   24 +++-

diffs (truncated from 335 to 300 lines):

diff -r 51b1f7bf224c -r 744c064938a0 language/english.php
--- a/language/english.php	Sun Jan 25 17:28:17 2009 +0100
+++ b/language/english.php	Sun Jan 25 20:25:40 2009 +0100
@@ -924,7 +924,8 @@
     82 => "Your account on {$_CONF['site_name']} has not been accesssed since %s and will be disabled if not accessed in the next 30 days.",
     83 => "Your account on {$_CONF['site_name']} has not been used since it was created and will be deleted soon if not accessed.",
     84 => "Your login name is: %s  for our site: {$_CONF['site_url']}",
-    85 => 'If you have forgotten the password use the following link: %s'
+    85 => 'If you have forgotten the password use the following link: %s',
+    86 => 'Include'
 );
 
 ###############################################################################
diff -r 51b1f7bf224c -r 744c064938a0 language/english_utf-8.php
--- a/language/english_utf-8.php	Sun Jan 25 17:28:17 2009 +0100
+++ b/language/english_utf-8.php	Sun Jan 25 20:25:40 2009 +0100
@@ -924,7 +924,8 @@
     82 => "Your account on {$_CONF['site_name']} has not been accesssed since %s and will be disabled if not accessed in the next 30 days.",
     83 => "Your account on {$_CONF['site_name']} has not been used since it was created and will be deleted soon if not accessed.",
     84 => "Your login name is: %s  for our site: {$_CONF['site_url']}",
-    85 => 'If you have forgotten the password use the following link: %s'
+    85 => 'If you have forgotten the password use the following link: %s',
+    86 => 'Include'
 );
 
 ###############################################################################
diff -r 51b1f7bf224c -r 744c064938a0 language/german.php
--- a/language/german.php	Sun Jan 25 17:28:17 2009 +0100
+++ b/language/german.php	Sun Jan 25 20:25:40 2009 +0100
@@ -926,7 +926,8 @@
     82 => "Ihr Account auf der Seite {$_CONF['site_name']} wurde nicht benutzt seit %s und wird innerhalb  30 .",
     83 => "Ihr Account auf der Seite {$_CONF['site_name']} wurde seit der Einrichtung nicht benutzt \und wird gelöscht, wenn Sie nicht in Kürze einloggen.",
     84 => "Ihr Einlogname ist: %s  auf der Site: {$_CONF['site_url']}",
-    85 => 'Wenn Du das Passwort vergessen hast, benutze folgenden Link: %s'
+    85 => 'Wenn Du das Passwort vergessen hast, benutze folgenden Link: %s',
+    86 => 'Enthalten'
 );
 
 ###############################################################################
diff -r 51b1f7bf224c -r 744c064938a0 language/german_formal.php
--- a/language/german_formal.php	Sun Jan 25 17:28:17 2009 +0100
+++ b/language/german_formal.php	Sun Jan 25 20:25:40 2009 +0100
@@ -927,7 +927,8 @@
     82 => "Ihr Account auf der Seite {$_CONF['site_name']} wurde nicht benutzt seit %s und wird innerhalb  30 .",
     83 => "Ihr Account auf der Seite {$_CONF['site_name']} wurde seit der Einrichtung nicht benutzt \und wird gelöscht, wenn Sie nicht in Kürze einloggen.",
     84 => "Ihr Einlogname ist: %s  auf der Site: {$_CONF['site_url']}",
-    85 => 'Wenn Sie Ihr Passwort vergessen haben, benutzen Sie folgenden Link: %s'
+    85 => 'Wenn Sie Ihr Passwort vergessen haben, benutzen Sie folgenden Link: %s',
+    86 => 'Enthalten'
 );
 
 ###############################################################################
diff -r 51b1f7bf224c -r 744c064938a0 language/german_formal_utf-8.php
--- a/language/german_formal_utf-8.php	Sun Jan 25 17:28:17 2009 +0100
+++ b/language/german_formal_utf-8.php	Sun Jan 25 20:25:40 2009 +0100
@@ -927,7 +927,8 @@
     82 => "Ihr Account auf der Seite {$_CONF['site_name']} wurde nicht benutzt seit %s und wird innerhalb  30 .",
     83 => "Ihr Account auf der Seite {$_CONF['site_name']} wurde seit der Einrichtung nicht benutzt \und wird gelöscht, wenn Sie nicht in Kürze einloggen.",
     84 => "Ihr Einlogname ist: %s  auf der Site: {$_CONF['site_url']}",
-    85 => 'Wenn Sie Ihr Passwort vergessen haben, benutzen Sie folgenden Link: %s'
+    85 => 'Wenn Sie Ihr Passwort vergessen haben, benutzen Sie folgenden Link: %s',
+    86 => 'Enthalten'
 );
 
 ###############################################################################
diff -r 51b1f7bf224c -r 744c064938a0 language/german_utf-8.php
--- a/language/german_utf-8.php	Sun Jan 25 17:28:17 2009 +0100
+++ b/language/german_utf-8.php	Sun Jan 25 20:25:40 2009 +0100
@@ -926,7 +926,8 @@
     82 => "Ihr Account auf der Seite {$_CONF['site_name']} wurde nicht benutzt seit %s und wird innerhalb  30 .",
     83 => "Ihr Account auf der Seite {$_CONF['site_name']} wurde seit der Einrichtung nicht benutzt \und wird gelöscht, wenn Sie nicht in Kürze einloggen.",
     84 => "Ihr Einlogname ist: %s  auf der Site: {$_CONF['site_url']}",
-    85 => 'Wenn Du das Passwort vergessen hast, benutze folgenden Link: %s'
+    85 => 'Wenn Du das Passwort vergessen hast, benutze folgenden Link: %s',
+    86 => 'Enthalten'
 );
 
 ###############################################################################
diff -r 51b1f7bf224c -r 744c064938a0 public_html/admin/group.php
--- a/public_html/admin/group.php	Sun Jan 25 17:28:17 2009 +0100
+++ b/public_html/admin/group.php	Sun Jan 25 20:25:40 2009 +0100
@@ -2,13 +2,13 @@
 
 /* Reminder: always indent with 4 spaces (no tabs). */
 // +---------------------------------------------------------------------------+
-// | Geeklog 1.5                                                               |
+// | Geeklog 1.6                                                               |
 // +---------------------------------------------------------------------------+
 // | group.php                                                                 |
 // |                                                                           |
 // | Geeklog group administration page.                                        |
 // +---------------------------------------------------------------------------+
-// | Copyright (C) 2000-2008 by the following authors:                         |
+// | Copyright (C) 2000-2009 by the following authors:                         |
 // |                                                                           |
 // | Authors: Tony Bibbs        - tony AT tonybibbs DOT com                    |
 // |          Mark Limburg      - mlimburg AT users DOT sourceforge DOT net    |
@@ -31,8 +31,6 @@
 // | Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.           |
 // |                                                                           |
 // +---------------------------------------------------------------------------+
-//
-// $Id: group.php,v 1.103 2008/06/07 12:41:44 dhaun Exp $
 
 /**
 * This file is the Geeklog Group administration page
@@ -178,9 +176,9 @@
     if (!empty($grp_id)) {
         $tmp = DB_query("SELECT ug_main_grp_id FROM {$_TABLES['group_assignments']} WHERE ug_grp_id = $grp_id");
         $num_groups = DB_numRows($tmp);
-        for ($x = 1; $x <= $num_groups; $x++) {
+        for ($x = 0; $x < $num_groups; $x++) {
             $G = DB_fetchArray($tmp);
-            if ($x > 1) {
+            if ($x > 0) {
                 $selected .= ' ' . $G['ug_main_grp_id'];
             } else {
                 $selected .= $G['ug_main_grp_id'];
@@ -192,8 +190,8 @@
         $group_templates->set_var('hide_adminoption',' style="display:none;"');
 
         if (!empty($selected)) {
-            $inclause = str_replace(' ',',',$selected);
-            $result= DB_query("SELECT grp_id,grp_name FROM {$_TABLES['groups']} WHERE grp_id <> $grp_id AND grp_id in ($inclause) ORDER BY grp_name");
+            $inclause = str_replace(' ', ',', $selected);
+            $result = DB_query("SELECT grp_id,grp_name FROM {$_TABLES['groups']} WHERE grp_id <> $grp_id AND grp_id in ($inclause) ORDER BY grp_name");
             $nrows = DB_numRows($result);
         } else {
             $nrows = 0;
@@ -204,14 +202,17 @@
             $group_templates->set_var('group_options', $LANG_ACCESS['nogroupsforcoregroup']);
         } else {
             $groupoptions = '';
-            for ($i = 1; $i <= $nrows; $i++) {
+            for ($i = 0; $i < $nrows; $i++) {
                 $GRPS = DB_fetchArray($result);
                 $groupoptions .= $GRPS['grp_name'] . '<input type="hidden" name="groups[]" value="' . $GRPS['grp_id'] . '"' . XHTML . '><br' . XHTML . '>' .LB;
             }
             $group_templates->set_var('group_options', $groupoptions);
         }
     } else {
-        $group_templates->set_var('lang_securitygroupmsg', $LANG_ACCESS['groupmsg']);
+        require_once $_CONF['path_system'] . 'lib-admin.php';
+
+        $group_templates->set_var('lang_securitygroupmsg',
+                                  $LANG_ACCESS['groupmsg']);
         $group_templates->set_var('hide_adminoption','');
         if ($VERBOSE) {
             COM_errorLog("SELECTED: $selected");
@@ -221,13 +222,38 @@
         // is a member
         $whereGroups = '(grp_id IN (' . implode (',', $thisUsersGroups) . '))';
 
-        // You can no longer give access to the Root group....
-        // it's pointless and doesn't make any sense
-        if (!empty($grp_id)) {
-            $group_templates->set_var ('group_options', COM_checkList ($_TABLES['groups'], 'grp_id,grp_name', "(grp_id <> $grp_id) AND (grp_name <> 'Root') AND " . $whereGroups, $selected));
-        } else {
-            $group_templates->set_var ('group_options', COM_checkList ($_TABLES['groups'], 'grp_id,grp_name', "(grp_name <> 'Root') AND " . $whereGroups, ''));
+        $header_arr = array(
+                        array('text' => $LANG28[86], 'field' => 'checkbox', 'sort' => false),
+                        array('text' => $LANG_ACCESS['groupname'], 'field' => 'grp_name', 'sort' => true),
+                        array('text' => $LANG_ACCESS['description'], 'field' => 'grp_descr', 'sort' => true)
+        );
+
+        $defsort_arr = array('field' => 'grp_name', 'direction' => 'asc');
+
+        $form_url = $_CONF['site_admin_url']
+                  . '/group.php?mode=edit&grp_id=' . $grp_id;
+        $text_arr = array('has_menu' => false,
+                          'title' => '', 'instructions' => '',
+                          'icon' => '', 'form_url' => $form_url,
+                          'inline' => true);
+
+        $xsql = '';
+        if (! empty($grp_id)) {
+            $xsql = " AND (grp_id <> $grp_id)";
         }
+        $sql = "SELECT grp_id, grp_name, grp_descr FROM {$_TABLES['groups']} WHERE (grp_name <> 'Root')" . $xsql . ' AND ' . $whereGroups;
+        $query_arr = array('table' => 'groups',
+                           'sql' => $sql,
+                           'query_fields' => array('grp_name'),
+                           'default_filter' => '',
+                           'query' => '',
+                           'query_limit' => 0);
+
+        $options = ADMIN_list('groups', 'ADMIN_getListField_groups',
+                              $header_arr, $text_arr, $query_arr, $defsort_arr,
+                              '', explode(' ', $selected));
+        $group_templates->set_var('group_options', $options);
+
     }
     $group_templates->set_var('lang_rights', $LANG_ACCESS['rights']);
 
@@ -237,7 +263,8 @@
         $group_templates->set_var('lang_rightsmsg', $LANG_ACCESS['rightsdescr']);
     }
 
-    $group_templates->set_var('rights_options', printrights($grp_id, $A['grp_gl_core']));
+    $group_templates->set_var('rights_options',
+                              printrights($grp_id, $A['grp_gl_core']));
     $group_templates->set_var('gltoken_name', CSRF_TOKEN);
     $group_templates->set_var('gltoken', SEC_createToken());
     $group_templates->parse('output','editor');
@@ -308,7 +335,7 @@
 * @return   string      HTML for rights
 *
 */
-function printrights ($grp_id = '', $core = 0)
+function printrights($grp_id = '', $core = 0)
 {
     global $_TABLES, $_USER, $LANG_ACCESS, $VERBOSE;
 
@@ -371,8 +398,8 @@
     $ftcount = 0;
     $retval = '<tr>' . LB;
     for ($i = 1; $i <= $nfeatures; $i++) {
-        if ($i > 0 AND ($i % 3 == 1)) {
-            $retval .= "</tr>\n<tr>";
+        if ($i > 0 AND (($ftcount + 1) % 3 == 1)) {
+            $retval .= '</tr>' . LB . '<tr>';
         }
         $A = DB_fetchArray($features);
 
@@ -390,7 +417,8 @@
             // either this is an indirect right OR this is a core feature
             if ((($core == 1) AND (isset ($grpftarray[$A['ft_name']]) AND (($grpftarray[$A['ft_name']] == 'indirect') OR ($grpftarray[$A['ft_name']] == 'direct')))) OR ($core != 1)) {
                 $ftcount++;
-                $retval .= '<td>     (<i title="'
+                $retval .= '<td><input type="checkbox" disabled="disabled" '
+                        . 'checked="checked"' . XHTML . '>(<i title="'
                         . $A['ft_descr'] . '">' .  $A['ft_name'] . '</i>)</td>';
             }
         }
diff -r 51b1f7bf224c -r 744c064938a0 public_html/docs/history
--- a/public_html/docs/history	Sun Jan 25 17:28:17 2009 +0100
+++ b/public_html/docs/history	Sun Jan 25 20:25:40 2009 +0100
@@ -11,6 +11,8 @@
 + (TBD) Comment moderation and editable comments, by Jared Wenerd
 
 Other changes:
+- Gave the Groups editor a facelift. Requires a new template file,
+  admin/lists/inline.thtml [Dirk]
 - Add new permissions plugin.install and plugin.upload for more fine-grained
   control to the plugin admin panel (bug #0000637) [Dirk]
 - Introduced new plugin API function PLG_itemDeleted [Dirk]
diff -r 51b1f7bf224c -r 744c064938a0 public_html/docs/theme.html
--- a/public_html/docs/theme.html	Sun Jan 25 17:28:17 2009 +0100
+++ b/public_html/docs/theme.html	Sun Jan 25 20:25:40 2009 +0100
@@ -207,6 +207,9 @@
     version of the directory name) when using the new variable
     <code>{pi_display_name}</code> in <tt>admin/plugins/editor.thtml</tt>.
     This is a purely cosmetic change.</li>
+<li>New template file <tt>admin/lists/inline.thtml</tt>, used when embedding
+    lists into an existing HTML <code><form></code> (e.g. the new Groups
+    editor).</li>
 </ul>
 
 <h3>Plugins</h3>
diff -r 51b1f7bf224c -r 744c064938a0 public_html/layout/professional/admin/lists/inline.thtml
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/public_html/layout/professional/admin/lists/inline.thtml	Sun Jan 25 20:25:40 2009 +0100
@@ -0,0 +1,14 @@
+                            {search_menu}
+                            {formfields_top}
+                            <table class="admin-list-table">
+                                <tr style="background:#FFFFFF;">
+                                 {header_row}
+                                </tr>
+                                {item_row}
+                            </table>
+                            <div>
+                                <input style="padding:5px 0px 0px 9px;{show_deleteimage}" name="delbutton" alt="delbutton" type="image" src="{layout_url}/images/deleteitem.png" title="{lang_deleteall}" onclick="return confirm('{lang_delconfirm}');"{xhtml}>
+                                {formfields_bottom}
+                            </div>
+                            <p class="aligncenter" style="{show_message}"><b>{message}</b></p>
+                            {google_paging}
diff -r 51b1f7bf224c -r 744c064938a0 system/lib-admin.php
--- a/system/lib-admin.php	Sun Jan 25 17:28:17 2009 +0100
+++ b/system/lib-admin.php	Sun Jan 25 20:25:40 2009 +0100
@@ -263,14 +263,19 @@
         $title = $text_arr['title'];
     }
 
+    $inline_form = false;
+    if (isset($text_arr['inline'])) {
+        $inline_form = $text_arr['inline'];
+    }
+
     # get all template fields.
     $admin_templates = new Template($_CONF['path_layout'] . 'admin/lists');
     $admin_templates->set_file (array (
         'search' => 'searchmenu.thtml',
-        'list' => 'list.thtml',
+        'list'   => ($inline_form ? 'inline.thtml' : 'list.thtml'),
         'header' => 'header.thtml',
-        'row' => 'listitem.thtml',
-        'field' => 'field.thtml'
+        'row'    => 'listitem.thtml',
+        'field'  => 'field.thtml'



More information about the geeklog-cvs mailing list