SMF2 Gallery2 Integration Problem

I have a SMF2 forum site, where the gallery is implemented through Gallery2 using Oldiesmann’s SMF + G2 Integration Project.

For 2 years, I’ve had the SMF and Gallery work properly together with linked member groups (a mod option), such that member groups auto-synchronized with ones in Gallery. At some point, either with a Gallery or SMF upgrade, users reported that the Gallery part of the site threw cryptic security warnings for non-admins. I explored the issue and figured users were missing in two required groups “Everybody” and “Registered Users”. I had reported it to Oldiesmann, but he claimed he had no control over those required groups and Gallery was self-managing them.

After about a year, I delved into the code and found that in order to sync the groups that a user had in SMF with the groups that a user had in Gallery, the integration code was removing all groups and adding the shared groups. This of course meant that the user was being removed from the required groups: “Everybody” and “Registered Users”. Users with privileged groups did not see the problem.

Here’s the fix that I’ve also submitted to Oldiesmann. But his forum complains when I added the code, so I had to create this post here. It says it does not allow external links (haha).

My fix will ensure that we do not remove the user from required groups and also add the users back into required groups (if necessary). Please note that the cleanup code is necessary because anyone who has ever visited the buggy gallery will have the groups removed, so there’s a lot of cleanup to do. The code provided below should auto-correct this issue.


commit 97075cd4e20d2807011b38cd293ccc38c728db9a
Author: Inderpreet Singh <inderpreet99gmail>
Date:   Sat Jul 28 10:33:40 2012 -0500

    PJ fix for SMF Gallery2 Integration:
    Avoid g2 required groups: Everybody and Registered Users groups from getting removed
    Add user to the required groups (cleanup our mess)

diff --git a/Sources/Gallery.php b/Sources/Gallery.php
index 74652fe..c289678 100755
--- a/Sources/Gallery.php
+++ b/Sources/Gallery.php
@@ -1348,10 +1348,32 @@ function groupCheck()
 	}
 	else
 	{
+
+		// Avoid g2 required groups: Everybody and Registered Users groups from getting removed!
+		$groupstoignore = array('Everybody', 'Registered Users');
+		$groupstoadd = $groupstoignore;
+		foreach($galgroups as $gid => $gname)
+		{
+			if(in_array($gname, $groupstoignore))
+			{
+				unset($galgroups[$gid]);
+				$groupstoadd = array_diff($groupstoadd, array($gname));
+			}
+		}
+		
+		// Add user to the required groups (cleanup our mess)
+		foreach($groupstoadd as $gname) {
+			list($ret, $group) = GalleryCoreApi::fetchGroupByGroupName($gname);
+			if($ret)
+			{
+				fatal_error($ret->getAsText(), 'gallery');
+			}
+			GalleryCoreApi::addUserToGroup($context['user']['g2_uid'], $group->getId());
+		}
+
 		// array_diff will give us an array of all the values in $galgroups that aren't in $galsmfgroups
 		// $galgroups uses the group IDs as the keys, and the group names as the values. We only want the group IDs...
 		$groupstoremove = array_diff(array_keys($galgroups), $galsmfgroups);
-
 		// Remove them from any group(s) they no longer belong to
 		if(count($groupstoremove) > 0)
 		{

Profile Visitors 4.1 Mod for SMF 2.0

Profile Visitors mod description:

This modifications logs the visitors for all members’ profile with the time of their last visit. Additionally it gives you the ability to see the total visit count for the profile.

Version 4.1

At last, version 4.1, which is an SMF 2.0 only package is released. This version does not log 20, but all visitors of a user. Also it keeps the total visit count for each visitor and total visit count for each profile.

It, as usual, has own/any profile view option and improved remove visitor permissions. Also it includes “Avoid logging permission”, which allows users to select if they want to be logged or not. User can set it from “Look and Layout” area of their profile.

And some bad news… There won’t be any updates for the SMF 1.x version, but I’ll continue supporting that too.

-Blue Dream

This mod is one of the most requested features on my social networking site, Punjabi Janta. So when I went to look for the mod (http://custom.simplemachines.org/mods/index.php?mod=1150), I noticed that the mod coder, [SiNaN], had ended development for a lot of his mods. A couple of users reuploaded the mod to the forum on user’s requests, but moderators were quick to remove it claiming that mods can’t be distributed without owner’s permission.

Anyhow, I had requested a copy from MasterD, and he was helpful in sharing it with me. Here’s an archived copy of it, you won’t find it on Simple Machine’s Forum.

Download:
http://rapidshare.com/files/452804270/ProfileVisitors4.1.zip

PS: The Profile.template.php edit may fail. Just replace the leading spaces with tabs on the following lines:

 
      <div id="detailedinfo">
         <div class="windowbg2">   

Edit June 4, 2011: Here’s the edited version to work with SMF 2.0 with the above fix: ProfileVisitors4.1-IPS