MOD download & history

You'll automatically gain access to this forum when you will post your first post in another forum. That way it will demonstrate how the Auto Group MOD works.
Forum rules
The content in this forum is dated Dec. 21 2005 and can be used as Archive only. This Forum is LOCKED and READ ONLY !

Postby Niels on Thu 17. Oct, 2002 15:17

I have now upgraded this mod, new version is 0.10.2.
this upgrade fixes a isue about users added to a group when register

here are how to upgrade
in file usercp_register.php
Code: Select all
[FIND]
$sql = "SELECT ug.user_id, g.group_id as g_id, g.group_name , u.user_posts, g.group_count FROM " . GROUPS_TABLE . " g, ".USERS_TABLE." u
   LEFT JOIN ". USER_GROUP_TABLE." ug ON g.group_id=ug.group_id AND ug.user_id=$user_id
   WHERE u.user_id=$user_id
AND ug.user_id is NULL
AND u.user_posts>= g.group_count
AND g.group_single_user=0
AND g.group_count_enable=1
AND g.group_moderator<>$user_id";

[REPLACE WITH]
if ( $mode == "register" )
{
   $sql = "SELECT ug.user_id, g.g_id as g_id, g.group_name , u.user_posts, g.group_count FROM " . GROUPS_TABLE . " g, ".USERS_TABLE." u
      LEFT JOIN ". USER_GROUP_TABLE." ug ON g.group_id=ug.group_id AND ug.user_id=$user_id
      WHERE u.user_id=$user_id
AND ug.user_id is NULL
AND g.group_count=0
AND g.group_single_user=0
AND g.group_moderator<>$user_id";
} else
{
   $sql = "SELECT ug.user_id, g.g_id as g_id, g.group_name , u.user_posts, g.group_count FROM " . GROUPS_TABLE . " g, ".USERS_TABLE." u
      LEFT JOIN ". USER_GROUP_TABLE." ug ON g.group_id=ug.group_id AND ug.user_id=$user_id
      WHERE u.user_id=$user_id
AND ug.user_id is NULL
AND u.user_posts>= g.group_count
AND g.group_single_user=0
AND g.group_count_enable=1
AND g.group_moderator<>$user_id";
}
User avatar
Niels
Poster
Poster
 
Posts: 4390
Joined: Sat 27. Jul, 2002 15:46

Postby Niels on Thu 17. Oct, 2002 15:28

there was a error in the above posted upgrade instruction, I have corrected this
User avatar
Niels
Poster
Poster
 
Posts: 4390
Joined: Sat 27. Jul, 2002 15:46

Postby Niels on Tue 12. Nov, 2002 21:10

I have changed this mod slightly
new version is 1.0.1, here are how to upgrade

in file usercp_register.php
Code: Select all
[FIND AND REMOVE]
if ( $mode == "register" )
{
   $sql = "SELECT ug.user_id, g.group_id as g_id, g.group_name , u.user_posts, g.group_count FROM " . GROUPS_TABLE . " g, ".USERS_TABLE." u
      LEFT JOIN ". USER_GROUP_TABLE." ug ON g.group_id=ug.group_id AND ug.user_id=$user_id
      WHERE u.user_id=$user_id
AND ug.user_id is NULL
AND g.group_count=0
AND g.group_single_user=0
AND g.group_moderator<>$user_id";
} else
{
   $sql = "SELECT ug.user_id, g.group_id as g_id, g.group_name , u.user_posts, g.group_count FROM " . GROUPS_TABLE . " g, ".USERS_TABLE." u
      LEFT JOIN ". USER_GROUP_TABLE." ug ON g.group_id=ug.group_id AND ug.user_id=$user_id
      WHERE u.user_id=$user_id
AND ug.user_id is NULL
AND u.user_posts>= g.group_count
AND g.group_single_user=0
AND g.group_count_enable=1
AND g.group_moderator<>$user_id";
}
   if ( !($result = $db->sql_query($sql)) )
   {
      message_die(GENERAL_ERROR, 'Error geting users post stat', '', __LINE__, __FILE__, $sql);
   }
   while ($group_data = $db->sql_fetchrow($result))
   {
      //user join a autogroup
      $sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending)
         VALUES (".$group_data['g_id'].", $user_id, 0)";
      if ( !($db->sql_query($sql)) )
      {
         message_die(GENERAL_ERROR, 'Error inserting user group, group count', '', __LINE__, __FILE__, $sql);
      }
   }

[FIND]
if ( !$user_active )

[BEFORE ADD]
$sql = "SELECT ug.user_id, g.group_id as g_id, g.group_name , u.user_posts, g.group_count FROM " . GROUPS_TABLE . " g, ".USERS_TABLE." u
      LEFT JOIN ". USER_GROUP_TABLE." ug ON g.group_id=ug.group_id AND ug.user_id=$user_id
      WHERE u.user_id=$user_id
         AND ug.user_id is NULL
         AND u.user_posts>= g.group_count
         AND g.group_single_user=0
         AND g.group_count_enable=1
         AND g.group_moderator<>$user_id";

if ( !($result = $db->sql_query($sql)) )
{
   message_die(GENERAL_ERROR, 'Error geting users post stat', '', __LINE__, __FILE__, $sql);
}
while ($group_data = $db->sql_fetchrow($result))
{
   //user join a autogroup
   $sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending)
      VALUES (".$group_data['g_id'].", $user_id, 0)";
   if ( !($db->sql_query($sql)) )
   {
      message_die(GENERAL_ERROR, 'Error inserting user group, group count', '', __LINE__, __FILE__, $sql);
   }
}

[FIND]
$email_template = 'user_welcome';
}

[AFTER ADD]
$sql = "SELECT ug.user_id, g.group_id as g_id, g.group_name , u.user_posts, g.group_count FROM " . GROUPS_TABLE . " g, ".USERS_TABLE." u
      LEFT JOIN ". USER_GROUP_TABLE." ug ON g.group_id=ug.group_id AND ug.user_id=$user_id
      WHERE u.user_id=$user_id
         AND ug.user_id is NULL
         AND g.group_count=0
         AND g.group_single_user=0
         AND g.group_moderator<>$user_id";
if ( !($result = $db->sql_query($sql)) )
{
   message_die(GENERAL_ERROR, 'Error geting users post stat', '', __LINE__, __FILE__, $sql);
}
while ($group_data = $db->sql_fetchrow($result))
{
   //user join a autogroup
   $sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending)
      VALUES (".$group_data['g_id'].", $user_id, 0)";
   if ( !($db->sql_query($sql)) )
   {
      message_die(GENERAL_ERROR, 'Error inserting user group, group count', '', __LINE__, __FILE__, $sql);
   }
}
User avatar
Niels
Poster
Poster
 
Posts: 4390
Joined: Sat 27. Jul, 2002 15:46

security update

Postby Niels on Thu 21. Nov, 2002 10:09

I have now updated this mod, new version is 1.0.2

I have discovered that guest users was added to autogroups when a guest was posting... this could be how some poeple would like this mod to work, and it could also be what they do not expect, for security reasoons I have choise to change the behaivier - if would like to keep this functionallity, then simply skip this upgrade instruction

in file functions_post.php
Code: Select all
[FIND]
$user_already_added = (!empty($group_data['user_id'])) ? TRUE : FALSE;
$user_add = ($group_data['group_count']<=$group_data['user_posts']) ? TRUE : FALSE;

[REPLACE WITH]
$user_already_added = (!empty($group_data['user_id']) || $user_id==ANONYMOUS) ? TRUE : FALSE;
$user_add = ($group_data['group_count']<=$group_data['user_posts'] && $user_id!=ANONYMOUS) ? TRUE : FALSE;


First time a guest user is posting, there (correct) membership of usergroups will be updated, or you may open all autogroups made (use the link on index page), and remove the user manual "Anonumous" at your choise - easyes way is ofcouse to logout and post as a user, thereby forcing the guest user out of the autogroups
User avatar
Niels
Poster
Poster
 
Posts: 4390
Joined: Sat 27. Jul, 2002 15:46

Postby Niels on Fri 27. Dec, 2002 01:32

I have updated this mod, to behavie more presice, new version is
1.0.4

here are how to upgrade
in file functions_posts.php
Code: Select all
[FIND]
      $user_already_added = (!empty($group_data['user_id']) || $user_id==ANONYMOUS) ? TRUE : FALSE;
      $user_add = ($group_data['group_count']<=$group_data['user_posts'] && $user_id!=ANONYMOUS) ? TRUE : FALSE;

      if ($user_add && !$user_already_added)
      {
         //user join a autogroup
         $sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending)
            VALUES (".$group_data['g_id'].", $user_id, 0)";
         if ( !($db->sql_query($sql)) )
         {
            message_die(GENERAL_ERROR, 'Error inserting user group, group count', '', __LINE__, __FILE__, $sql);
         }
      } else
      if ( $user_already_added && !$user_add)

[REPLACE WITH]
      $user_already_added = (!empty($group_data['user_id']) || $user_id==ANONYMOUS) ? TRUE : FALSE;
      $user_add = ($group_data['group_count'] == $group_data['user_posts'] && $user_id!=ANONYMOUS) ? TRUE : FALSE;
      $user_remove = ($group_data['group_count'] > $group_data['user_posts'] && $user_id!=ANONYMOUS) ? TRUE : FALSE;
      if ($user_add && !$user_already_added)
      {
         //user join a autogroup
         $sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending)
            VALUES (".$group_data['g_id'].", $user_id, 0)";
         if ( !($db->sql_query($sql)) )
         {
            message_die(GENERAL_ERROR, 'Error insert users, group count', '', __LINE__, __FILE__, $sql);
         }
      } else
      if ( $user_already_added && $user_remove)


in file usercp_register.php
[ROLL BACK]
#
#-----[ FIND ]------------------------------------------
#
if ( !$user_active )

#
#-----[ BEFORE,ADD ]------------------------------------------
#
$sql = "SELECT ug.user_id, g.group_id as g_id, g.group_name , u.user_posts, g.group_count FROM " . GROUPS_TABLE . " g, ".USERS_TABLE." u
LEFT JOIN ". USER_GROUP_TABLE." ug ON g.group_id=ug.group_id AND ug.user_id=$user_id
WHERE u.user_id=$user_id
AND ug.user_id is NULL
AND u.user_posts>= g.group_count
AND g.group_single_user=0
AND g.group_count_enable=1
AND g.group_moderator<>$user_id";

if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error geting users post stat', '', __LINE__, __FILE__, $sql);
}
while ($group_data = $db->sql_fetchrow($result))
{
//user join a autogroup
$sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending)
VALUES (".$group_data['g_id'].", $user_id, 0)";
if ( !($db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error inserting user group, group count', '', __LINE__, __FILE__, $sql);
}
}

you must also do the changes into modcp.php as described in the how-to
User avatar
Niels
Poster
Poster
 
Posts: 4390
Joined: Sat 27. Jul, 2002 15:46

Postby Niels on Mon 06. Jan, 2003 13:55

auto group mod is now updated , new version is 1.1.0

This version allow users to re-subscribe to a auto group, if the group is hidden / closed - ofcouse only if the user holds the post count required

to upgrade do the groupcp.php, as described in the how-to
User avatar
Niels
Poster
Poster
 
Posts: 4390
Joined: Sat 27. Jul, 2002 15:46

Postby Niels on Sat 12. Apr, 2003 17:06

due to a bug in groupcp.php, users could not re-join a group, if this was a hidden group

if a users post count meet the group count creteria, the user should be able to re-join this group - e.g. after unsubscribe.

new version is 1.1.2

here are how to upgrade

in file groupcp.php
Code: Select all
#
#-----[ FIND ]------------------------------------------
#
$sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending)
VALUES ($group_id, " . $userdata['user_id'] . ", 1)";

#
#-----[ IN-LINE FIND ]------------------------------------------
#
, 1

#
#-----[ IN-LINE REPLACE WITH ]------------------------------------------
#
".(($is_autogroup_enable)? 0 : 1)."

#
#-----[ FIND ]------------------------------------------
#
$sql = "SELECT ug.user_id, g.group_type, group_count
FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
WHERE g.group_id = $group_id

#
#-----[ IN-LINE FIND ]------------------------------------------
#
AND g.group_type <> " . GROUP_HIDDEN . "

#
#-----[ IN-LINE REPLACE WITH ]------------------------------------------
#
AND ( g.group_type <> " . GROUP_HIDDEN . " OR g.group_count <= '".$userdata['user_posts']."')

#
#-----[ FIND ]------------------------------------------
#
$emailer->reset();
$template->assign_vars(array(
   'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("index.$phpEx") . '">')

#
#-----[ IN-LINE FIND ]------------------------------------------
#
$emailer->reset();

#
#-----[ AFTER ADD ]------------------------------------------
#
}

#
#-----[ FIND ]------------------------------------------
#
$message = $lang['Group_joined'] . '<br /><br />' . sprintf($lang['Click_return_group'], '<a href="' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');

#
#-----[ IN-LINE FIND ]------------------------------------------
#
$lang['Group_joined']

#
#-----[ IN-LINE REPLACE WITH ]------------------------------------------
#
($is_autogroup_enable) ? $lang['Group_added'] : $lang['Group_joined']


at same time, please make this in your language file (lang_main.php), it should have been there even in the original 2.0.4
Code: Select all
$lang['Usub_success'] ='You have succesfully been removed from the usergroup';
User avatar
Niels
Poster
Poster
 
Posts: 4390
Joined: Sat 27. Jul, 2002 15:46

Postby Niels on Sun 13. Apr, 2003 13:44

In my previous upgrade info, I did corrct a bug in the original files, but the correction should have been done differently

so please remove this line from lang_main.php
Code: Select all
$lang['Usub_success'] ='You have succesfully been removed from the usergroup';


and preform this in groupcp.php
Code: Select all
#
#-----[ FIND ]------------------------------------------
#
# Correct a bug in original < 2.0.4 code
$lang['Usub_success']

#
#-----[ REPLACE WITH ]------------------------------------------
#
$lang['Unsub_success']
User avatar
Niels
Poster
Poster
 
Posts: 4390
Joined: Sat 27. Jul, 2002 15:46

PreviousNext

Return to Auto group [2.0.8/EM]

Who is online

Users browsing this forum: No registered users and 1 guest

cron