Page 1 of 1

Combining 2 scripts

Posted: Sat Jul 19, 2008 10:47 am
by IG88
Hey everyone. I am very glad I found this forum. I have been having problems with taking 2 different scripts and combining them. These were built for Modx but it is still php. Basically what I have is that both scripts are pretty identical, but I need to take one variable from one script and put it in another.

The first script is called
MemberCheck. It checks to see if a member of a certain group is logged in and if so then it displays a template chunk to them. If they are not logged in then it displays the default template chunk.

The other script is called
extMemberCheck. It checks to see if a member of a certain group is logged in and will allow for checks of multiple groups and multiple corresponding template chunks. However, this one was not coded with the default variable. That is what I am trying to accomplish. To get the default variable into the extMembercheck.

You would think that this would be pretty straight forward.... not for a php noob like me.

MemberCheck.

Code: Select all

<?php
#::::::::::::::::::::::::::::::::::::::::
# Snippet name: MemberCheck
# Short Desc: checks logged in groups and displays a chunk
# Version: 1.1
# Created By Ryan Thrash (vertexworks.com)
# Sanitized By Jason Coward (opengeek.com)
# Addition Of &default Param By Jason W. Falk (jason@falkicon.com)
#
# Date: April 03, 2007
#
# Changelog: 
# Nov 29, 05 -- initial release
# Jul 13, 06 -- adjusted Singleton to work under PHP4, added placeholder code (by: garryn)
# Apr 02, 07 -- added &default peram code (by: Jason W. Falk (Whitefen))
#
#::::::::::::::::::::::::::::::::::::::::
# Description:  
#   Checks to see if users belong to a certain group and 
#   displays the specified chunk if they do. Performs several
#   sanity checks and allows to be used multiple times on a page.
#
# Params:
#   &groups [array] (REQUIRED)
#       array of webuser group-names to check against
#
#   &chunk [string] (REQUIRED)
#       name of the chunk to use if passes the check
#
#   &default [string] (optional)
#       name of the chunk to use if no webuser group-names match
#
#   &ph [string] (optional)
#       name of the placeholder to set instead of directly retuning chunk
#
#   &debug [boolean] (optional | false) 
#       turn on debug mode for extra troubleshooting
#
# Example Usage:
#
#   [[MemberCheck? &groups=`siteadmin, registered users` &chunk=`privateSiteNav` &default=`publicSiteNav` &ph=`MemberMenu` &debug=`true`]]
#
#   This would place the 'members-only' navigation store in the chunk 'privateSiteNav'
#   into a placeholder (called 'MemberMenu'). It will only do this as long as the user 
#   is logged in as a webuser and is a member of the 'siteadmin' or the 'registered users'
#   groups. Otherwise, it will place the default chunk 'publicSiteNav' into the 'MemberMenu'
#   placeholder. The optional debug parameter can be used to display informative error messages 
#   when configuring this snippet for your site. For example, if the developer had 
#   mistakenly typed 'siteowners' for the first group, and none existed with debug mode on, 
#   it would have returned the error message: The group siteowners could not be found....
#
#::::::::::::::::::::::::::::::::::::::::
 
# debug parameter
$debug = isset ($debug) ? $debug : false;
 
# check if inside manager
if ($m = $modx->insideManager()) {
    return ''; # don't go any further when inside manager
}
 
if (!isset ($groups)) {
    return $debug ? '<p>Error: No Group Specified</p>' : '';
}
 
if (!isset ($chunk)) {
    return $debug ? '<p>Error: No Chunk Specified</p>' : '';
}
 
# check if default is set, if not sets value
$default = (isset($default))? $default : '';
 
 
# turn comma-delimited list of groups into an array
$groups = explode(',', $groups);
 
if (!class_exists('MemberCheck')) {
    class MemberCheck {
        var $allGroups = NULL;
        var $debug;
 
        function getInstance($debug) {
            static $instance;
            if (!isset ($instance)) {
                $instance = new MemberCheck($debug);
            }
            return $instance;
        }
 
        function MemberCheck($debug = false) {
            global $modx;
 
            $this->debug = $debug;
            if ($debug) {
                $this->allGroups = array ();
                $tableName = $modx->getFullTableName('webgroup_names');
                $sql = "SELECT name FROM $tableName";
                if ($rs = $modx->db->query($sql)) {
                    while ($row = $modx->db->getRow($rs)) {
                        array_push($this->allGroups, stripslashes($row['name']));
                    }
                }
            }
        }
 
        function isValidGroup($groupName) {
            $isValid = !(array_search($groupName, $this->allGroups) === false);
            return $isValid;
        }
 
        function getMemberChunk(& $groups, $chunk, $default) {
            global $modx;
            $o = '';
            if (is_array($groups)) {
                for ($i = 0; $i < count($groups); $i++) {
                    $groups[$i] = trim($groups[$i]);
                    if ($this->debug) {
                        if (!$this->isValidGroup($groups[$i])) {
                            return "<p>The group <strong>" . $groups[$i] . "</strong> could not be found...</p>";
                        }
                    }
                }
                $check = $modx->isMemberOfWebGroup($groups);
                $chunkcheck = $modx->getChunk($chunk);
                $defaultcheck = $modx->getChunk($default);
                if ( $check ) {
                    $o .= ($check && $chunkcheck) ? $chunkcheck : '';
                    if (!$chunkcheck)
                        $o .= $this->debug ? "<p>The chunk <strong>$chunk</strong> not found...</p>" : '';
                }
                else
                {
                    if ($defaultcheck && (strlen($default) >= 1)) {
                        $o .= ($defaultcheck) ? $defaultcheck : '';
                    }
                    if (!$defaultcheck && (strlen($default) >= 1)) {
                        $o .= $this->debug ? "<p>The default chunk <strong>$default</strong> not found...</p>" : '';
                    }
                }
            } else {
                $o .= "<p>No valid group names were specified!</p>";
            }
            return $o;
        }
    }
}
 
$memberCheck = MemberCheck :: getInstance($debug);
 
if (!isset ($ph)) {
    return $memberCheck->getMemberChunk($groups, $chunk, $default);
} else {
    $modx->setPlaceholder($ph, $memberCheck->getMemberChunk($groups, $chunk, $default));
    return '';
}
?>

extMemberCheck

Code: Select all

<?php
#::::::::::::::::::::::::::::::::::::::::
# Snippet name: extMemberCheck
# Short Desc: checks logged in groups and displays a chunk
# Version: 1.0
# Created By Richard Pugh from the MemberCheck 1.0 snippet
# MemberCheck Created By    Ryan Thrash (vertexworks.com)
#             Sanitized By  Jason Coward (opengeek.com)
#
# Date: February 5th, 2007
#
# Changelog:
# Feb 05, 07 -- initial release
#
#::::::::::::::::::::::::::::::::::::::::
# Description:
#   Checks to see if users belong to a certain group and
#   displays the specified chunk if they do. Performs
#   several sanity checks and allows multiple uses on a page.
#
#   Two modes of use are possible, if only one output chunk
#   is specified then this snippet functions as the original
#   MemberCheck returning the chunk if the user is in ANY
#   of the groups specified.
#
#   If several chunks are specified there must be a one to one
#   correspondence between groups and chunks, i.e. there must be
#   as many values specified in groups as in chunks. The snippet
#   then checks if the user is in the groups one by one and
#   outputs the corresponding chunk, i.e. if the user is part of
#   group2 then chunk2 will be output. If you have a hierarchy
#   of user groups please ensure that they are placed in
#   descending order of importance in the group array as the
#   first matching value found is always returned.
#
# Params:
#   &groups [array] (REQUIRED)
#       array of webuser group-names to check against
#
#   &chunk [array] (REQUIRED)
#       name of the chunk to use if passes the check
#
#   &ph [string] (optional)
#       name of the placeholder to set instead of directly returning chunk
#
#   &debug [boolean] (optional | false)
#       turn on debug mode for extra troubleshooting
#
# Example Usage:
#
#   [[extMemberCheck? &groups=`group1, group2` &chunk=`chunk1, chunk2` &ph=`putItHere` &debug=`true`]]
#
#   This would place the chunk 'chunk1' into a placeholder (called 'putItHere') if the user
#   is logged in as a webuser and is a member of the 'group1' group. If he is a member of the
#   'group2' group, then 'chunk2' will be returned.
#
#   If the chunk array contains only one value, then if the user is in either 'group1' OR 'group2'
#   then the value of 'chunk1' is returned ( as in the original MemberCheck ).
#
#   The optional debug parameter can be used to display informative error messages
#   when configuring this snippet for your site. For example, if the developer had
#   mistakenly typed 'groupX' for the first group, and none existed with debug mode on,
#   it would have returned the error message: The group 'groupX' could not be found....
#
#::::::::::::::::::::::::::::::::::::::::
 
# debug parameter
$debug = isset ($debug) ? $debug : false;
 
# check if inside manager
if ($m = $modx->insideManager()) {
    return ''; # don't go any further when inside manager
}
 
if (!isset ($groups)) {
    return $debug ? '<p>Error: No Group(s) Specified</p>' : '';
}
 
if (!isset ($chunk)) {
    return $debug ? '<p>Error: No Chunk(s) Specified</p>' : '';
}
 
# turn comma-delimited list of groups into an array
$groups = explode(',', $groups);
$chunk = explode(',', $chunk);
 
if (!class_exists('extMemberCheck')) {
    class extMemberCheck {
        var $allGroups = NULL;
        var $debug;
 
        function getInstance($debug) {
            static $instance;
            if (!isset ($instance)) {
                $instance = new extMemberCheck($debug);
            }
            return $instance;
        }
 
        function extMemberCheck($debug = false) {
            global $modx;
 
            $this->debug = $debug;
            if ($debug) {
                $this->allGroups = array ();
                $tableName = $modx->getFullTableName('webgroup_names');
                $sql = "SELECT name FROM $tableName";
                if ($rs = $modx->db->query($sql)) {
                    while ($row = $modx->db->getRow($rs)) {
                        array_push($this->allGroups, stripslashes($row['name']));
                    }
                }
            }
        }
 
        function isValidGroup($groupName) {
            $isValid = !(array_search($groupName, $this->allGroups) === false);
            return $isValid;
        }
 
        function getMemberChunk(&$groups, $chunk) {
            global $modx;
            $o = '';
            if (!is_array($chunk)) {
                $o .= "<p>No chunk names were specified!</p>";
                return $o;
            }
            if (!is_array($groups)) {
                $o .= "<p>No group names were specified!</p>";
                return $o;
            }
            if (count($groups) != count($chunk)) {
                if (count($chunk) != 1) {
                    $o .= "<p>Number of group names and chunks must be the same!</p>";
                    return $o;
                }
            }
 
            for ($i = 0; $i < count($groups); $i++) {
                $groups[$i] = trim($groups[$i]);
                $chnk = trim($chunk[$i]);
                if ($this->isValidGroup($groups[$i])) {
                    if (count($chunk) != 1) {
                        $group = array($groups[$i]);
                        $check = $modx->isMemberOfWebGroup($group);
                        if ($check) {
                            $chunkcheck = $modx->getChunk($chnk);
                            $o = ($chunkcheck) ? $chunkcheck : '';
                            if (!$chunkcheck)
                                $o .= $this->debug ? "<p>The chunk <strong>$chnk</strong> not found...</p>" : '';
                            return $o;
                        } 
                    } else {
                        $check = $modx->isMemberOfWebGroup($groups);
                        $chunkcheck = $modx->getChunk($chnk);
                        $o .= ($check && $chunkcheck) ? $chunkcheck : '';
                        if (!$chunkcheck)
                            $o .= $this->debug ? "<p>The chunk <strong>$chnk</strong> not found...</p>" : '';
                        return $o;
                    }
                } else {
                    if ($this->debug) {
                        return "<p>The group <strong>" . $groups[$i] . "</strong> could not be found...</p>";
                    }
                }
            }
        }
    }
}
 
$memberCheck = extMemberCheck :: getInstance($debug);
 
if (!isset ($ph)) {
    return $memberCheck->getMemberChunk($groups, $chunk);
} else {
    $modx->setPlaceholder($ph, $memberCheck->getMemberChunk($groups, $chunk));
    return '';
}
?>
and here is my attempt at integrating the default variable into the extMemberCheck.

Code: Select all

<?php
#::::::::::::::::::::::::::::::::::::::::
# Snippet name: extMemberCheck
# Short Desc: checks logged in groups and displays a chunk
# Version: 1.0
# Created By Richard Pugh from the MemberCheck 1.0 snippet
# MemberCheck Created By    Ryan Thrash (vertexworks.com)
#             Sanitized By  Jason Coward (opengeek.com)
#
# Date: February 5th, 2007
#
# Changelog:
# Feb 05, 07 -- initial release
#
#::::::::::::::::::::::::::::::::::::::::
# Description:
#   Checks to see if users belong to a certain group and
#   displays the specified chunk if they do. Performs
#   several sanity checks and allows multiple uses on a page.
#
#   Two modes of use are possible, if only one output chunk
#   is specified then this snippet functions as the original
#   MemberCheck returning the chunk if the user is in ANY
#   of the groups specified.
#
#   If several chunks are specified there must be a one to one
#   correspondence between groups and chunks, i.e. there must be
#   as many values specified in groups as in chunks. The snippet
#   then checks if the user is in the groups one by one and
#   outputs the corresponding chunk, i.e. if the user is part of
#   group2 then chunk2 will be output. If you have a hierarchy
#   of user groups please ensure that they are placed in
#   descending order of importance in the group array as the
#   first matching value found is always returned.
#
# Params:
#   &groups [array] (REQUIRED)
#       array of webuser group-names to check against
#
#   &chunk [array] (REQUIRED)
#       name of the chunk to use if passes the check
#
#   &ph [string] (optional)
#       name of the placeholder to set instead of directly returning chunk
#
#   &debug [boolean] (optional | false)
#       turn on debug mode for extra troubleshooting
#
# Example Usage:
#
#   [[extMemberCheck? &groups=`group1, group2` &chunk=`chunk1, chunk2` &ph=`putItHere` &debug=`true`]]
#
#   This would place the chunk 'chunk1' into a placeholder (called 'putItHere') if the user
#   is logged in as a webuser and is a member of the 'group1' group. If he is a member of the
#   'group2' group, then 'chunk2' will be returned.
#
#   If the chunk array contains only one value, then if the user is in either 'group1' OR 'group2'
#   then the value of 'chunk1' is returned ( as in the original MemberCheck ).
#
#   The optional debug parameter can be used to display informative error messages
#   when configuring this snippet for your site. For example, if the developer had
#   mistakenly typed 'groupX' for the first group, and none existed with debug mode on,
#   it would have returned the error message: The group 'groupX' could not be found....
#
#::::::::::::::::::::::::::::::::::::::::
 
# debug parameter
$debug = isset ($debug) ? $debug : false;
 
# check if inside manager
if ($m = $modx->insideManager()) {
    return ''; # don't go any further when inside manager
}
 
if (!isset ($groups)) {
    return $debug ? '<p>Error: No Group(s) Specified</p>' : '';
}
 
if (!isset ($chunk)) {
    return $debug ? '<p>Error: No Chunk(s) Specified</p>' : '';
}
 
# check if default is set, if not sets value
$default = (isset($default))? $default : '';
 
# turn comma-delimited list of groups into an array
$groups = explode(',', $groups);
$chunk = explode(',', $chunk);
 
if (!class_exists('extMemberCheck')) {
    class extMemberCheck {
        var $allGroups = NULL;
        var $debug;
 
        function getInstance($debug) {
            static $instance;
            if (!isset ($instance)) {
                $instance = new extMemberCheck($debug);
            }
            return $instance;
        }
 
        function extMemberCheck($debug = false) {
            global $modx;
 
            $this->debug = $debug;
            if ($debug) {
                $this->allGroups = array ();
                $tableName = $modx->getFullTableName('webgroup_names');
                $sql = "SELECT name FROM $tableName";
                if ($rs = $modx->db->query($sql)) {
                    while ($row = $modx->db->getRow($rs)) {
                        array_push($this->allGroups, stripslashes($row['name']));
                    }
                }
            }
        }
 
        function isValidGroup($groupName) {
            $isValid = !(array_search($groupName, $this->allGroups) === false);
            return $isValid;
        }
 
        function getMemberChunk(& $groups, $chunk, $default) {
            global $modx;
            $o = '';
            if (!is_array($chunk)) {
                $o .= "<p>No chunk names were specified!</p>";
                return $o;
            }
            if (!is_array($groups)) {
                $o .= "<p>No group names were specified!</p>";
                return $o;
            }
    
            if (count($groups) != count($chunk)) {
                if (count($chunk) != 1) {
                    $o .= "<p>Number of group names and chunks must be the same!</p>";
                 return $o;
                }
            }
 
            for ($i = 0; $i < count($groups); $i++) {
                $groups[$i] = trim($groups[$i]);                $chnk = trim($chunk[$i]);
                       if ($this->isValidGroup($groups[$i])) {
                    if (count($chunk) != 1) {
                        $group = array($groups[$i]);
                        $check = $modx->isMemberOfWebGroup($group);
                        if ($check) {
                            $chunkcheck = $modx->getChunk($chnk);
                            $o = ($chunkcheck) ? $chunkcheck : '';
                            if (!$chunkcheck)
                                $o .= $this->debug ? "<p>The chunk <strong>$chnk</strong> not found...</p>" : '';
                            return $o;
                        } 
                    } 
                        $check = $modx->isMemberOfWebGroup($groups);
                        $chunkcheck = $modx->getChunk($chnk);
                        $defaultcheck = $modx->getChunk($default);
                        
                        $o .= ($check && $chunkcheck) ? $chunkcheck : '';
                        if (!$chunkcheck)
                            $o .= $this->debug ? "<p>The chunk <strong>$chnk</strong> not found...</p>" : '';
                    }
                else
                {
                    if ($defaultcheck && (strlen($default) >= 1)) {
                        $o .= ($defaultcheck) ? $defaultcheck : '';
                    }
                    if (!$defaultcheck && (strlen($default) >= 1)) {
                        $o .= $this->debug ? "<p>The default chunk <strong>$default</strong> not found...</p>" : '';
                    }
                }
            
               {
                    if ($this->debug) {
                        return "<p>The group <strong>" . $groups[$i] . "</strong> could not be found...</p>";
                    }
                    return $o;
                }
            }
        }
    }
}
 
$memberCheck = extMemberCheck :: getInstance($debug);
 
if (!isset ($ph)) {
    echo htmlentities(var_dump($memberCheck));
    return $memberCheck->getMemberChunk($groups, $chunk, $default);
} else {
    $modx->setPlaceholder($ph, $memberCheck->getMemberChunk($groups, $chunk, $default));
    return '';
}
?>
I would really appreciate any help. Thank you.

Re: Combining 2 scripts

Posted: Sat Jul 19, 2008 7:52 pm
by IG88
Can some one please help me with this?

Re: Combining 2 scripts

Posted: Sat Jul 19, 2008 8:35 pm
by WebbieDave
IG88 wrote:this one was not coded with the default variable
Do you mean the variable that contains the default template chunk?

I'm not going to be able to sift through all that code at the moment, so any analysis you've already gathered would be useful.

Re: Combining 2 scripts

Posted: Sun Jul 20, 2008 12:47 pm
by IG88
Yes, I am having the problem at the getmemberchunk

MemberChunk

Code: Select all

       function getMemberChunk(& $groups, $chunk, $default) {
            global $modx;
            $o = '';
            if (is_array($groups)) {
                for ($i = 0; $i < count($groups); $i++) {
                    $groups[$i] = trim($groups[$i]);
                    if ($this->debug) {
                        if (!$this->isValidGroup($groups[$i])) {
                            return "<p>The group <strong>" . $groups[$i] . "</strong> could not be found...</p>";
                        }
                    }
                }
                $check = $modx->isMemberOfWebGroup($groups);
                $chunkcheck = $modx->getChunk($chunk);
                $defaultcheck = $modx->getChunk($default);
                if ( $check ) {
                    $o .= ($check && $chunkcheck) ? $chunkcheck : '';
                    if (!$chunkcheck)
                        $o .= $this->debug ? "<p>The chunk <strong>$chunk</strong> not found...</p>" : '';
                }
                else
                {
                    if ($defaultcheck && (strlen($default) >= 1)) {
                        $o .= ($defaultcheck) ? $defaultcheck : '';
                    }
                    if (!$defaultcheck && (strlen($default) >= 1)) {
                        $o .= $this->debug ? "<p>The default chunk <strong>$default</strong> not found...</p>" : '';
                    }
                }
            } else {
                $o .= "<p>No valid group names were specified!</p>";
            }
            return $o;
        }
    }
}
 
$memberCheck = MemberCheck :: getInstance($debug);
 
if (!isset ($ph)) {
    return $memberCheck->getMemberChunk($groups, $chunk, $default);
} else {
    $modx->setPlaceholder($ph, $memberCheck->getMemberChunk($groups, $chunk, $default));
    return '';
}
?>

extMemberChunk

Code: Select all

       function getMemberChunk(&$groups, $chunk) {
            global $modx;
            $o = '';
            if (!is_array($chunk)) {
                $o .= "<p>No chunk names were specified!</p>";
                return $o;
            }
            if (!is_array($groups)) {
                $o .= "<p>No group names were specified!</p>";
                return $o;
            }
            if (count($groups) != count($chunk)) {
                if (count($chunk) != 1) {
                    $o .= "<p>Number of group names and chunks must be the same!</p>";
                    return $o;
                }
            }
 
            for ($i = 0; $i < count($groups); $i++) {
                $groups[$i] = trim($groups[$i]);
                $chnk = trim($chunk[$i]);
                if ($this->isValidGroup($groups[$i])) {
                    if (count($chunk) != 1) {
                        $group = array($groups[$i]);
                        $check = $modx->isMemberOfWebGroup($group);
                        if ($check) {
                            $chunkcheck = $modx->getChunk($chnk);
                            $o = ($chunkcheck) ? $chunkcheck : '';
                            if (!$chunkcheck)
                                $o .= $this->debug ? "<p>The chunk <strong>$chnk</strong> not found...</p>" : '';
                            return $o;
                        } 
                    } else {
                        $check = $modx->isMemberOfWebGroup($groups);
                        $chunkcheck = $modx->getChunk($chnk);
                        $o .= ($check && $chunkcheck) ? $chunkcheck : '';
                        if (!$chunkcheck)
                            $o .= $this->debug ? "<p>The chunk <strong>$chnk</strong> not found...</p>" : '';
                        return $o;
                    }
                } else {
                    if ($this->debug) {
                        return "<p>The group <strong>" . $groups[$i] . "</strong> could not be found...</p>";
                    }
                }
            }
        }
    }
}
 
$memberCheck = extMemberCheck :: getInstance($debug);
 
if (!isset ($ph)) {
    return $memberCheck->getMemberChunk($groups, $chunk);
} else {
    $modx->setPlaceholder($ph, $memberCheck->getMemberChunk($groups, $chunk));
    return '';
}
?>

Re: Combining 2 scripts

Posted: Sun Jul 20, 2008 10:43 pm
by IG88
Also,

Code: Select all

#         function getMemberChunk(& $groups, $chunk, $default) {
#             global $modx;
#             $o = '';
#             if (!is_array($chunk)) {
#                 $o .= "<p>No chunk names were specified!</p>";
#                 return $o;
#             }
#             if (!is_array($groups)) {
#                 $o .= "<p>No group names were specified!</p>";
#                 return $o;
#             }
#    
#             if (count($groups) != count($chunk)) {
#                 if (count($chunk) != 1) {
#                     $o .= "<p>Number of group names and chunks must be the same!</p>";
#                  return $o;
#                 }
#             }
#  
#             for ($i = 0; $i < count($groups); $i++) {
#                 $groups[$i] = trim($groups[$i]);                $chnk = trim($chunk[$i]);
#                        if ($this->isValidGroup($groups[$i])) {
#                     if (count($chunk) != 1) {
#                         $group = array($groups[$i]);
#                         $check = $modx->isMemberOfWebGroup($group);
#                         if ($check) {
#                             $chunkcheck = $modx->getChunk($chnk);
#                             $o = ($chunkcheck) ? $chunkcheck : '';
#                             if (!$chunkcheck)
#                                 $o .= $this->debug ? "<p>The chunk <strong>$chnk</strong> not found...</p>" : '';
#                             return $o;
#                         }
#                     }
#                         $check = $modx->isMemberOfWebGroup($groups);
#                         $chunkcheck = $modx->getChunk($chnk);
#                         $defaultcheck = $modx->getChunk($default);
#                        
#                         $o .= ($check && $chunkcheck) ? $chunkcheck : '';
#                         if (!$chunkcheck)
#                             $o .= $this->debug ? "<p>The chunk <strong>$chnk</strong> not found...</p>" : '';
#                     }
#                 else
#                 {
#                     if ($defaultcheck && (strlen($default) >= 1)) {
#                         $o .= ($defaultcheck) ? $defaultcheck : '';
#                     }
#                     if (!$defaultcheck && (strlen($default) >= 1)) {
#                         $o .= $this->debug ? "<p>The default chunk <strong>$default</strong> not found...</p>" : '';
#                     }
#                 }
#            
#                {
#                     if ($this->debug) {
#                         return "<p>The group <strong>" . $groups[$i] . "</strong> could not be found...</p>";
#                     }
#                     return $o;
#                 }
#             }
#         }
#     }
# }
#  
# $memberCheck = extMemberCheck :: getInstance($debug);
#  
# if (!isset ($ph)) {
#     echo htmlentities(var_dump($memberCheck));
#     return $memberCheck->getMemberChunk($groups, $chunk, $default);
# } else {
#     $modx->setPlaceholder($ph, $memberCheck->getMemberChunk($groups, $chunk, $default));
#     return '';
# }
# ?>
In my attempt I posted echo htmlentities(var_dump($memberCheck)); in hopes of seeing seomthing. Here is all it shows...
object(extmembercheck)(2) { ["allGroups"]=> array(5) { [0]=> string(11) "Blank Group" [1]=> string(6) "Brides" [2]=> string(7) "Editors" [3]=> string(7) "Vendors" [4]=> string(8) "VendorsB" } ["debug"]=> string(4) "true" }

The group Vendors could not be found...