This change to the mod instructions to includes/functions_user.php (was after, add)Code: › #
#-----[ FIND ]------------------------------------------
#
// Delete group
$sql = 'DELETE FROM ' . GROUPS_TABLE . "
WHERE group_id = $group_id";
$db->sql_query($sql);
#
#-----[ BEFORE, ADD ]------------------------------------------
#
// Delete group in Gallery
require($phpbb_root_path . 'g2helper.inc');
$g2h = new g2helper($db);
$g2h->deleteGroup($group_id);
Replace these functions in g2helper.incCode: › function createGroup($groupName) {
global $user;
$this->_initAdmin();
$ret = GalleryEmbed::isExternalIdMapped($groupName, 'GalleryGroup');
if (isset($ret) && $ret->getErrorCode() & ERROR_MISSING_OBJECT) {
$ret = GalleryEmbed::createGroup($groupName, $groupName);
if (isset($ret)) {
msg_handler(E_G2_ERROR, sprintf($user->lang['G2_CREATEGROUP_FAILED'], $groupName) . $user->lang['G2_ERROR'] . $ret->getAsHtml(), __FILE__, __LINE__);
}
}
elseif (empty($ret)) {
/*
* Group already exists in gallery, so do nothing!
*/
}
else {
msg_handler(E_G2_ERROR, sprintf($user->lang['G2_ISEXTERNALIDMAPPED_FAILED'], $groupName), __FILE__, __LINE__);
}
$this->done();
}
function updateGroup($group_id, $newGroupName) {
global $db, $user;
$this->_initAdmin();
$sql = 'SELECT group_name FROM ' . GROUPS_TABLE . " WHERE group_id = $group_id";
if (!$row = $db->sql_fetchrow($db->sql_query_limit($sql, 1))) {
msg_handler(E_G2_ERROR, $user->lang['FETCH_GROUPDATA_FAILED'], __FILE__, __LINE__);
}
$ret = GalleryEmbed::isExternalIdMapped($row['group_name'], 'GalleryGroup');
if (empty($ret)) {
$ret = GalleryEmbed::updateGroup($row['group_name'], array('groupname' => $newGroupName));
if (isset($ret)) {
msg_handler(E_G2_ERROR, sprintf($user->lang['G2_UPDATEGROUP_FAILED'], $newGroupName) . $user->lang['G2_ERROR'] . $ret->getAsHtml(), __FILE__, __LINE__);
}
$ret = GalleryCoreApi::updateMapEntry('ExternalIdMap', array('externalId' => $row['group_name']) , array('externalId' => $newGroupName));
if (isset($ret)) {
msg_handler(E_G2_ERROR, sprintf($user->lang['G2_UPDATEMAPENTRY_FAILED'], $row['group_name']) . $user->lang['G2_ERROR'] . $ret->getAsHtml(), __FILE__, __LINE__);
}
}
elseif (isset($ret) && $ret->getErrorCode() & ERROR_MISSING_OBJECT) {
/*
* Group does not exist in gallery, so do nothing!
*/
}
else {
msg_handler(E_G2_ERROR, sprintf($user->lang['G2_ISEXTERNALIDMAPPED_FAILED'], $row['group_name']), __FILE__, __LINE__);
}
$this->done();
}
function deleteGroup($groupId) {
global $db, $user;
$this->_initAdmin();
$sql = 'SELECT group_name FROM ' . GROUPS_TABLE . " WHERE group_id = $groupId";
if (!$row = $db->sql_fetchrow($db->sql_query_limit($sql, 1))) {
msg_handler(E_G2_ERROR, $user->lang['FETCH_GROUPDATA_FAILED'], __FILE__, __LINE__);
}
$ret = GalleryEmbed::isExternalIdMapped($row['group_name'], 'GalleryGroup');
if (empty($ret)) {
$ret = GalleryEmbed::deleteGroup($row['group_name']);
if (isset($ret)) {
msg_handler(E_G2_ERROR, sprintf($user->lang['G2_DELETEGROUP_FAILED'], $row['group_name']) . $user->lang['G2_ERROR'] . $ret->getAsHtml(), __FILE__, __LINE__);
}
}
elseif (isset($ret) && $ret->getErrorCode() & ERROR_MISSING_OBJECT) {
/*
* Group does not exist in gallery, so do nothing!
*/
}
else {
msg_handler(E_G2_ERROR, sprintf($user->lang['G2_ISEXTERNALIDMAPPED_FAILED'], $row['group_name']), __FILE__, __LINE__);
}
$this->done();
}
function addUserToGroup($members, $groupId) {
global $db, $user;
$this->_initAdmin();
$sql = 'SELECT group_name FROM ' . GROUPS_TABLE . " WHERE group_id = $groupId";
if (!$row = $db->sql_fetchrow($db->sql_query_limit($sql, 1))) {
msg_handler(E_G2_ERROR, $user->lang['FETCH_GROUPDATA_FAILED'], __FILE__, __LINE__);
}
$ret = GalleryEmbed::isExternalIdMapped($row['group_name'], 'GalleryGroup');
if (empty($ret)) {
$id[] = explode(', ', $members);
for ($i = 0; $i < count($id); $i++) {
$ret = GalleryEmbed::isExternalIdMapped($id[$i][0], 'GalleryUser');
if (empty($ret)) {
$ret = GalleryEmbed::addUserToGroup($id[$i][0], $row['group_name']);
if (isset($ret)) {
msg_handler(E_G2_ERROR, sprintf($user->lang['G2_ADDUSERTOGROUP_FAILED'], $row['group_name'], $id[$i][0]) . $user->lang['G2_ERROR'] . $ret->getAsHtml(), __FILE__, __LINE__);
}
}
elseif (isset($ret) && $ret->getErrorCode() & ERROR_MISSING_OBJECT) {
/*
* User does not exist in gallery, so do nothing!
*/
}
else {
msg_handler(E_G2_ERROR, sprintf($user->lang['G2_ISEXTERNALIDMAPPED_FAILED'], $id[$i][0]), __FILE__, __LINE__);
}
}
}
elseif (isset($ret) && $ret->getErrorCode() & ERROR_MISSING_OBJECT) {
/*
* Group does not exist in gallery, so do nothing!
*/
}
else {
msg_handler(E_G2_ERROR, sprintf($user->lang['G2_ISEXTERNALIDMAPPED_FAILED'], $row['group_name']), __FILE__, __LINE__);
}
$this->done();
}
function removeUserFromGroup($members, $groupId) {
global $db, $user;
$this->_initAdmin();
$sql = 'SELECT group_name FROM ' . GROUPS_TABLE . " WHERE group_id = $groupId";
if (!$row = $db->sql_fetchrow($db->sql_query_limit($sql, 1))) {
msg_handler(E_G2_ERROR, $user->lang['FETCH_GROUPDATA_FAILED'], __FILE__, __LINE__);
}
$ret = GalleryEmbed::isExternalIdMapped($row['group_name'], 'GalleryGroup');
if (empty($ret)) {
$id[] = explode(', ', $members);
for ($i = 0; $i < count($id); $i++) {
$ret = GalleryEmbed::isExternalIdMapped($id[$i][0], 'GalleryUser');
if (empty($ret)) {
$ret = GalleryEmbed::removeUserFromGroup($id[$i][0], $row['group_name']);
if (isset($ret)) {
msg_handler(E_G2_ERROR, sprintf($user->lang['G2_REMOVEUSERFROMGROUP_FAILED'], $groupId, $id[$i][0]) . $user->lang['G2_ERROR'] . $ret->getAsHtml(), __FILE__, __LINE__);
}
}
elseif (isset($ret) && $ret->getErrorCode() & ERROR_MISSING_OBJECT) {
/*
* User does not exist in gallery, so do nothing!
*/
}
else {
msg_handler(E_G2_ERROR, sprintf($user->lang['G2_ISEXTERNALIDMAPPED_FAILED'], $id[$i][0]), __FILE__, __LINE__);
}
}
}
elseif (isset($ret) && $ret->getErrorCode() & ERROR_MISSING_OBJECT) {
/*
* Group does not exist in gallery, so do nothing!
*/
}
else {
msg_handler(E_G2_ERROR, sprintf($user->lang['G2_ISEXTERNALIDMAPPED_FAILED'], $row['group_name']), __FILE__, __LINE__);
}
$this->done();
}