Пример #1
0
	/**
	 * finds and accepts a users invites when registered within CB (front and backend)
	 *
	 * @param  moscomprofilerUser $user
	 */
	public function acceptInvites( $user ) {
		$plugin					=	cbgjClass::getPlugin();

		if ( $plugin->params->get( 'group_invites_accept', 1 ) ) {
			$invites			=	cbgjData::getInvites( null, array( 'email', '=', $user->email ) );

			if ( $invites ) foreach ( $invites as $invite ) {
				$invite->set( 'accepted', cbgjClass::getUTCDate() );
				$invite->set( 'user', (int) $user->id );

				if ( $invite->store() ) {
					$row		=	cbgjData::getUsers( null, array( array( 'group', '=', (int) $invite->get( 'group' ) ), array( 'user_id', '=', (int) $user->id ) ), null, null, false );

					if ( ! $row->get( 'id' ) ) {
						$row->set( 'user_id', (int) $user->id );
						$row->set( 'group', (int) $invite->get( 'group' ) );
						$row->set( 'date', cbgjClass::getUTCDate() );
						$row->set( 'status', 1 );

						$row->store();
					}
				}

				$notification	=	cbgjData::getNotifications( array( array( 'grp_usr_notifications' ), 'owner' ), array( array( 'type', '=', 'group' ), array( 'item', '=', (int) $invite->get( 'group' ) ), array( 'user_id', '=', (int) $invite->get( 'user_id' ) ), array( 'params', 'CONTAINS', 'group_inviteaccept=1' ) ), null, null, false );

				if ( $notification->get( 'id' ) ) {
					$subject	=	CBTxt::T( '[group_name] - Invite Accepted!' );
					$message	=	CBTxt::T( '[user] has accepted your invite to join [group] in [category]!' );

					cbgjClass::getNotification( $notification->get( 'user_id' ), $invite->get( 'user' ), $subject, $message, 1, $invite->getCategory(), $invite->getGroup() );
				}
			}
		}
	}
Пример #2
0
	/**
	 * render frontend panel panes
	 *
	 * @param moscomprofilerUser $user
	 * @param object $plugin
	 * @return string
	 */
	static function showPanelPanes( $user, $plugin ) {
		$panelDesc				=	CBTxt::Th( $plugin->params->get( 'panel_desc', null ) );
		$panelCategoryDisplay	=	$plugin->params->get( 'panel_category_display', 1 );
		$panelGroupDisplay		=	$plugin->params->get( 'panel_group_display', 1 );
		$panelJoinedDisplay		=	$plugin->params->get( 'panel_joined_display', 1 );
		$panelInvitesDisplay	=	$plugin->params->get( 'panel_invites_display', 1 );
		$panelInvitedDisplay	=	$plugin->params->get( 'panel_invited_display', 1 );
		$authorized				=	cbgjClass::getAuthorization( null, null, $user );
		$ownedCategories		=	count( cbgjData::getCategories( null, array( 'user_id', '=', $user->id ) ) );

		if ( $plugin->params->get( 'group_tab_joined', 0 ) ) {
			$access				=	array( 'user_id', '=', (int) $user->id, array( 'e.user_id', '=', (int) $user->id, 'e.status', '!IN', array( -1, 0, 4 ) ) );
		} else {
			$access				=	array( 'user_id', '=', (int) $user->id );
		}

		$ownedGroups			=	count( cbgjData::getGroups( null, $access ) );

		if ( $plugin->params->get( 'joined_tab_owned', 0 ) ) {
			$access				=	array( 'user_id', '=', (int) $user->id, array( 'e.user_id', '=', (int) $user->id, 'e.status', '!IN', array( -1, 0, 4 ) ) );
		} else {
			$access				=	array( 'e.user_id', '=', (int) $user->id, 'e.status', '!IN', array( -1, 0, 4 ) );
		}

		$joinedGroups			=	count( cbgjData::getGroups( null, $access ) );
		$ownedInvites			=	count( cbgjData::getInvites( null, array( 'user_id', '=', (int) $user->id ) ) );
		$invitedTo				=	count( cbgjData::getInvites( null, array( 'user', '=', (int) $user->id, array( 'email', '=', $user->email ) ) ) );

		$return					=	'<legend class="gjHeaderTitle">' . cbgjClass::getOverride( 'panel' ) . '</legend>'
								.	'<div class="gjGrid row-fluid">'
								.		'<div class="gjGridLeft span9">'
								.			'<div class="gjGridLeftLogo span4">'
								.				'<img alt="' . htmlspecialchars( CBTxt::Th( 'Logo' ) ) . '" src="' . $plugin->livePath . '/images/' . $plugin->params->get( 'panel_logo', 'default_panel.png' ) . '" class="gjLogoDefault img-polaroid" />'
								.			'</div>'
								.			'<div class="gjGridLeftInfo span8">'
								.				cbgjClass::getIntegrations( 'gj_onBeforePanelInfo', array( $user, $plugin ) )
								.				( $panelCategoryDisplay && $ownedCategories ? '<div>' . cbgjClass::getOverride( 'category', true ) . ': ' . $ownedCategories . '</div>' : null )
								.				( $panelGroupDisplay && $ownedGroups ? '<div>' . cbgjClass::getOverride( 'group', true ) . ': ' . $ownedGroups . '</div>' : null )
								.				( $panelJoinedDisplay && $joinedGroups ? '<div>' . CBTxt::Ph( 'Joined: [grp_joined_count]', array( '[grp_joined_count]' => $joinedGroups ) ) . '</div>' : null )
								.				( $panelInvitesDisplay && $ownedInvites ? '<div>' . CBTxt::Ph( 'Invites: [grp_invite_count]', array( '[grp_invite_count]' => $ownedInvites ) ) . '</div>' : null )
								.				( $panelInvitedDisplay && $invitedTo ? '<div>' . CBTxt::Ph( 'Invited: [grp_invited_count]', array( '[grp_invited_count]' => $invitedTo ) ) . '</div>' : null )
								.				cbgjClass::getIntegrations( 'gj_onAfterPanelInfo', array( $user, $plugin ) )
								.			'</div>';

		if ( $panelDesc ) {
			if ( $plugin->params->get( 'panel_desc_content', 0 ) ) {
				$panelDesc		=	cbgjClass::prepareContentPlugins( $panelDesc );
			}

			$return				.=			'<div class="gjGridLeftDesc span12 well well-small">' . $panelDesc . '</div>';
		}

		$return					.=		'</div>'
								.		'<div class="gjGridRight span3">'
								.			cbgjClass::getIntegrations( 'gj_onBeforePanelMenu', array( $user, $plugin ) )
								.			( $panelCategoryDisplay && cbgjClass::hasAccess( 'usr_reg', $authorized ) ? '<div><i class="icon-home"></i> <a href="' . cbgjClass::getPluginURL( array( 'panel', 'categories' ) ) . '">' . CBTxt::Ph( 'My [categories]', array( '[categories]' => cbgjClass::getOverride( 'category', true ) ) ) . '</a></div>' : null )
								.			( $panelGroupDisplay && cbgjClass::hasAccess( 'usr_reg', $authorized ) ? '<div><i class="icon-user"></i> <a href="' . cbgjClass::getPluginURL( array( 'panel', 'groups' ) ) . '">' . CBTxt::Ph( 'My [groups]', array( '[groups]' => cbgjClass::getOverride( 'group', true ) ) ) . '</a></div>' : null )
								.			( $panelJoinedDisplay && cbgjClass::hasAccess( 'usr_reg', $authorized ) ? '<div><i class="icon-user"></i> <a href="' . cbgjClass::getPluginURL( array( 'panel', 'joined' ) ) . '">' . CBTxt::Ph( 'Joined [groups]', array( '[groups]' => cbgjClass::getOverride( 'group', true ) ) ) . '</a></div>' : null )
								.			( $panelInvitesDisplay && cbgjClass::hasAccess( 'usr_reg', $authorized ) ? '<div><i class="icon-inbox"></i> <a href="' . cbgjClass::getPluginURL( array( 'panel', 'invites' ) ) . '">' . CBTxt::Th( 'My Invites' ) . '</a></div>' : null )
								.			( $panelInvitedDisplay && cbgjClass::hasAccess( 'usr_reg', $authorized ) ? '<div><i class="icon-inbox"></i> <a href="' . cbgjClass::getPluginURL( array( 'panel', 'invited' ) ) . '">' . CBTxt::Th( 'Invited To' ) . '</a></div>' : null )
								.			cbgjClass::getIntegrations( 'gj_onAfterPanelMenu', array( $user, $plugin ) )
								.			( cbgjClass::hasAccess( 'gen_usr_notifications', $authorized ) ? '<div><i class="icon-info-sign"></i> <a href="' . cbgjClass::getPluginURL( array( 'notifications', 'show' ) ) . '">' . CBTxt::Th( 'Notifications' ) . '</a></div>' : null )
								.			'<div><i class="icon-share-alt"></i> <a href="' . cbgjClass::getPluginURL( array( 'overview' ) ) . '">' . CBTxt::Ph( 'Back to [overview]', array( '[overview]' => cbgjClass::getOverride( 'overview' ) ) ) . '</a></div>'
								.		'</div>'
								.	'</div>';

		return $return;
	}
Пример #3
0
	/**
	 * prepare in object all of a users invites (to and from)
	 *
	 * @param array|null $access
	 * @return array
	 */
	public function getAllInvites( $access = null ) {
		static $cache	=	array();

		$id				=	cbgjClass::getStaticID( array( $this->get( 'id' ), $access ) );

		if ( ! isset( $cache[$id] ) ) {
			$cache[$id]	=	cbgjData::getInvites( $access, array( array( 'group', '=', (int) $this->get( 'group' ) ), array( 'user_id', '=', (int) $this->get( 'user_id' ), array( 'user', '=', (int) $this->get( 'user_id' ) ) ) ) );
		}

		return $cache[$id];
	}
Пример #4
0
	/**
	 * prepare frontend tab invites render
	 *
	 * @param  moscomprofilerUser $displayed
	 * @param  moscomprofilerUser $user
	 * @param  object             $plugin
	 * @param  boolean            $tabbed
	 * @return mixed
	 */
	public function getInvites( $displayed, $user, $plugin, $tabbed = true ) {
		cbgjClass::getTemplate( 'tab_invites' );

		$paging				=	new cbgjPaging( 'tab_invites' );

		$limit				=	$paging->getlimit( (int) $plugin->params->get( 'invites_tab_limit', 15 ) );
		$limitstart			=	$paging->getLimistart();
		$search				=	$paging->getFilter( 'search' );
		$where				=	array();

		if ( isset( $search ) && ( $search != '' ) ) {
			$where[]		=	array( 'email', 'CONTAINS', $search, array( 'f.id', '=', (int) $search ), array( 'f.username', 'CONTAINS', $search ), array( 'f.name', 'CONTAINS', $search ) );
		}

		$searching			=	( count( $where ) ? true : false );

		$where[]			=	array( 'user_id', '=', (int) $displayed->id );

		$total				=	count( cbgjData::getInvites( array( array( 'grp_access', 'mod_lvl2' ), $user ), $where ) );

		if ( $total <= $limitstart ) {
			$limitstart		=	0;
		}

		$pageNav			=	$paging->getPageNav( $total, $limitstart, $limit );

		$rows				=	cbgjData::getInvites( array( array( 'grp_access', 'mod_lvl2' ), $user ), $where, null, ( $plugin->params->get( 'invites_tab_paging', 1 ) ? array( $pageNav->limitstart, $pageNav->limit ) : null ) );

		$pageNav->search	=	$paging->getInputSearch( 'gjTabForm_invites', 'search', CBTxt::T( 'Search Invites...' ), $search );
		$pageNav->searching	=	$searching;
		$pageNav->limitbox	=	$paging->getLimitbox( $pageNav );
		$pageNav->pagelinks	=	$paging->getPagesLinks( $pageNav );

		return HTML_groupjiveTabInvites::showInvites( $rows, $pageNav, $displayed, $user, $plugin, $tabbed );
	}
Пример #5
0
	/**
	 * prepare backend tools render
	 *
	 * @param moscomprofilerUser $user
	 * @param object $plugin
	 */
	private function showTools( $user, $plugin ) {
		global $_CB_database, $_PLUGINS;

		$msgs								=	new stdClass();
		$msgs->errors						=	array();
		$msgs->warnings						=	array();
		$msgs->info							=	array();

		$_PLUGINS->trigger( 'gj_onBeforeTools', array( $msgs, $user, $plugin ) );

		if ( file_exists( $plugin->imgsAbs ) ) {
			if ( ! is_writable( $plugin->imgsAbs ) ) {
				$msgs->errors[]				=	CBTxt::P( ':: Images :: directory not writable - [img_path]', array( '[img_path]' => $plugin->imgsAbs ) );
			}
		}

		if ( file_exists( str_replace( '/' . $plugin->folder, '', $plugin->imgsAbs ) ) ) {
			if ( ! is_writable( str_replace( '/' . $plugin->folder, '', $plugin->imgsAbs ) ) ) {
				$msgs->errors[]				=	CBTxt::P( ':: Images :: directory not writable - [img_path]', array( '[img_path]' => str_replace( '/' . $plugin->folder, '', $plugin->imgsAbs ) ) );
			}
		}

		$categories							=	cbgjData::getCategories();

		$cat_types							=	array();
		$cat_published						=	array();
		$cat_name							=	array();
		$cat_user							=	array();
		$cat_notification					=	array();

		if ( $categories ) foreach ( $categories as $category ) {
			$category_url					=	'<a href="' . cbgjClass::getPluginURL( array( 'categories', 'edit', (int) $category->get( 'id' ) ) ) . '">' . $category->get( 'id' ) . '</a>';

			if ( ! $category->get( 'types' ) ) {
				$cat_types[]				=	$category_url;
			}

			if ( ! $category->get( 'published' ) ) {
				$cat_published[]			=	$category_url;
			}

			if ( $category->get( 'name' ) == '' ) {
				$cat_name[]					=	$category_url;
			}

			if ( ! $category->get( 'user_id' ) ) {
				$cat_user[]					=	$category_url;
			} else {
				$notification				=	cbgjData::getNotifications( null, array( array( 'type', '=', 'category' ), array( 'item', '=', (int) $category->get( 'id' ) ), array( 'user_id', '=', (int) $category->get( 'user_id' ) ) ), null, null, false );

				if ( ( ! $notification->get( 'id' ) ) && cbgjClass::hasAccess( 'cat_usr_notifications', cbgjClass::getAuthorization( $category, null, $category->getOwner() ) ) ) {
					$cat_notification[]		=	$category_url;
				}
			}
		}

		if ( ! empty( $cat_types ) ) {
			$fix_url						=	'<a href="' . cbgjClass::getPluginURL( array( 'fix', 'categories', 'types' ) ) . '">' . CBTxt::T( 'Fix All' ) . '</a>';
			$msgs->errors[]					=	CBTxt::P( ':: Category :: Missing types - [cat] - [fixall]', array( '[cat]' => implode( ', ', $cat_types ), '[fixall]' => $fix_url ) );
		}

		if ( ! empty( $cat_published ) ) {
			$fix_url						=	'<a href="' . cbgjClass::getPluginURL( array( 'fix', 'categories', 'published' ) ) . '">' . CBTxt::T( 'Fix All' ) . '</a>';
			$msgs->info[]					=	CBTxt::P( ':: Category :: Not published - [cat] - [fixall]', array( '[cat]' => implode( ', ', $cat_published ), '[fixall]' => $fix_url ) );
		}

		if ( ! empty( $cat_name ) ) {
			$msgs->errors[]					=	CBTxt::P( ':: Category :: Missing name - [cat]', array( '[cat]' => implode( ', ', $cat_name ) ) );
		}

		if ( ! empty( $cat_user ) ) {
			$fix_url						=	'<a href="' . cbgjClass::getPluginURL( array( 'fix', 'categories', 'user_id' ) ) . '">' . CBTxt::T( 'Fix All' ) . '</a>';
			$msgs->errors[]					=	CBTxt::P( ':: Category :: Missing owner - [cat] - [fixall]', array( '[cat]' => implode( ', ', $cat_user ), '[fixall]' => $fix_url ) );
		}

		if ( ! empty( $cat_notification ) ) {
			$fix_url					=	'<a href="' . cbgjClass::getPluginURL( array( 'fix', 'categories', 'notifications' ) ) . '">' . CBTxt::T( 'Fix All' ) . '</a>';
			$msgs->errors[]				=	CBTxt::Ph( ':: Category :: Missing owner notifications - [cat] - [fixall]', array( '[cat]' => implode( ', ', $cat_notification ), '[fixall]' => $fix_url ) );
		}

		$groups								=	cbgjData::getGroups();

		$grp_cat_id							=	array();
		$grp_published						=	array();
		$grp_type							=	array();
		$grp_cat							=	array();
		$grp_name							=	array();
		$grp_user							=	array();
		$grp_owner							=	array();
		$grp_notification					=	array();

		if ( $groups ) foreach ( $groups as $group ) {
			$group_url						=	'<a href="' . cbgjClass::getPluginURL( array( 'groups', 'edit', (int) $group->get( 'id' ) ) ) . '">' . $group->get( 'id' ) . '</a>';

			if ( ! $group->get( 'published' ) ) {
				$grp_published[]			=	$group_url;
			}

			if ( ! $group->get( 'type' ) ) {
				$grp_type[]					=	$group_url;
			}

			if ( ! $group->get( 'category' ) ) {
				$grp_cat[]					=	$group_url;
			} else {
				if ( ! $group->getCategory()->get( 'id' ) ) {
					$grp_cat_id[]			=	$group_url;
				}
			}

			if ( $group->get( 'name' ) == '' ) {
				$grp_name[]					=	$group_url;
			}

			if ( ! $group->get( 'user_id' ) ) {
				$grp_user[]					=	$group_url;
			} else {
				if ( ! $group->getUser()->get( 'id' ) ) {
					$grp_owner[]			=	$group_url;
				} else {
					$notification			=	cbgjData::getNotifications( null, array( array( 'type', '=', 'group' ), array( 'item', '=', (int) $group->get( 'id' ) ), array( 'user_id', '=', (int) $group->get( 'user_id' ) ) ), null, null, false );

					if ( ( ! $notification->get( 'id' ) ) && cbgjClass::hasAccess( 'grp_usr_notifications', cbgjClass::getAuthorization( $group->getCategory(), $group, $group->getOwner() ) ) ) {
						$grp_notification[]	=	$group_url;
					}
				}
			}
		}

		if ( ! empty( $grp_cat_id ) ) {
			$msgs->errors[]				=	CBTxt::Ph( ':: Group :: Category does not exist in GroupJive - [grp]', array( '[grp]' => implode( ', ', $grp_cat_id ) ) );
		}

		if ( ! empty( $grp_published ) ) {
			$fix_url					=	'<a href="' . cbgjClass::getPluginURL( array( 'fix', 'groups', 'published' ) ) . '">' . CBTxt::Th( 'Fix All' ) . '</a>';
			$msgs->info[]				=	CBTxt::Ph( ':: Group :: Not published - [grp] - [fixall]', array( '[grp]' => implode( ', ', $grp_published ), '[fixall]' => $fix_url ) );
		}

		if ( ! empty( $grp_type ) ) {
			$fix_url					=	'<a href="' . cbgjClass::getPluginURL( array( 'fix', 'groups', 'type' ) ) . '">' . CBTxt::Th( 'Fix All' ) . '</a>';
			$msgs->errors[]				=	CBTxt::Ph( ':: Group :: Missing type - [grp] - [fixall]', array( '[grp]' => implode( ', ', $grp_type ), '[fixall]' => $fix_url ) );
		}

		if ( ! empty( $grp_cat ) ) {
			$msgs->errors[]				=	CBTxt::Ph( ':: Group :: Missing category - [grp]', array( '[grp]' => implode( ', ', $grp_cat ) ) );
		}

		if ( ! empty( $grp_name ) ) {
			$msgs->errors[]				=	CBTxt::Ph( ':: Group :: Missing name - [grp]', array( '[grp]' => implode( ', ', $grp_name ) ) );
		}

		if ( ! empty( $grp_user ) ) {
			$fix_url					=	'<a href="' . cbgjClass::getPluginURL( array( 'fix', 'groups', 'gj_user' ) ) . '">' . CBTxt::Th( 'Fix All' ) . '</a>';
			$msgs->errors[]				=	CBTxt::Ph( ':: Group :: Missing owner - [grp] - [fixall]', array( '[grp]' => implode( ', ', $grp_user ), '[fixall]' => $fix_url ) );
		}

		if ( ! empty( $grp_owner ) ) {
			$fix_url					=	'<a href="' . cbgjClass::getPluginURL( array( 'fix', 'groups', 'owner' ) ) . '">' . CBTxt::Th( 'Fix All' ) . '</a>';
			$msgs->errors[]				=	CBTxt::Ph( ':: Group :: Missing owner user - [grp] - [fixall]', array( '[grp]' => implode( ', ', $grp_owner ), '[fixall]' => $fix_url ) );
		}

		if ( ! empty( $grp_notification ) ) {
			$fix_url					=	'<a href="' . cbgjClass::getPluginURL( array( 'fix', 'groups', 'notifications' ) ) . '">' . CBTxt::T( 'Fix All' ) . '</a>';
			$msgs->errors[]				=	CBTxt::Ph( ':: Group :: Missing owner notifications - [grp] - [fixall]', array( '[grp]' => implode( ', ', $grp_notification ), '[fixall]' => $fix_url ) );
		}

		$users							=	cbgjData::getUsers();

		$usr_grp						=	array();
		$usr_grp_id						=	array();
		$usr_user						=	array();
		$usr_notification				=	array();

		if ( $users ) foreach ( $users as $usr ) {
			$user_url					=	'<a href="' . cbgjClass::getPluginURL( array( 'users', 'edit', (int) $usr->get( 'id' ) ) ) . '">' . $usr->get( 'id' ) . '</a>';

			if ( ! $usr->get( 'group' ) ) {
				$usr_grp_id[]			=	$user_url;
			} else {
				if ( ! $usr->getGroup()->get( 'id' ) ) {
					$usr_grp[]			=	$user_url;
				}
			}

			if ( ! $usr->get( 'user_id' ) ) {
				$usr_user[]				=	$user_url;
			} else {
				$notification			=	cbgjData::getNotifications( null, array( array( 'type', '=', 'group' ), array( 'item', '=', (int) $usr->get( 'group' ) ), array( 'user_id', '=', (int) $usr->get( 'user_id' ) ) ), null, null, false );

				if ( ( ! $notification->get( 'id' ) ) && ( $usr->get( 'status' ) > 0 ) && cbgjClass::hasAccess( 'grp_usr_notifications', cbgjClass::getAuthorization( $usr->getCategory(), $usr->getGroup(), $usr->getOwner() ) ) ) {
					$usr_notification[]	=	$user_url;
				}
			}
		}

		if ( ! empty( $usr_grp ) ) {
			$msgs->errors[]				=	CBTxt::Ph( ':: User :: Group does not exist in GroupJive - [usr]', array( '[usr]' => implode( ', ', $usr_grp_id ) ) );
		}

		if ( ! empty( $usr_grp_id ) ) {
			$msgs->errors[]				=	CBTxt::Ph( ':: User :: Missing group - [usr]', array( '[usr]' => implode( ', ', $usr_grp_id ) ) );
		}

		if ( ! empty( $usr_user ) ) {
			$msgs->errors[]				=	CBTxt::Ph( ':: User :: Missing user - [usr]', array( '[usr]' => implode( ', ', $usr_user ) ) );
		}

		if ( ! empty( $usr_notification ) ) {
			$fix_url					=	'<a href="' . cbgjClass::getPluginURL( array( 'fix', 'users', 'notifications' ) ) . '">' . CBTxt::T( 'Fix All' ) . '</a>';
			$msgs->errors[]				=	CBTxt::Ph( ':: User :: Missing notifications - [usr] - [fixall]', array( '[usr]' => implode( ', ', $usr_notification ), '[fixall]' => $fix_url ) );
		}

		$invites						=	cbgjData::getInvites();

		$inv_grp						=	array();
		$inv_grp_id						=	array();
		$inv_usr_id						=	array();
		$inv_user						=	array();

		if ( $invites ) foreach ( $invites as $invite ) {
			$invite_url					=	'<a href="' . cbgjClass::getPluginURL( array( 'invites' ) ) . '">' . $invite->get( 'id' ) . '</a>';

			if ( ! $invite->get( 'group' ) ) {
				$inv_grp_id[]			=	$invite_url;
			} else {
				if ( ! $invite->getGroup()->get( 'id' ) ) {
					$inv_grp[]			=	$invite_url;
				}
			}

			if ( ! $invite->get( 'user_id' ) ) {
				$inv_user[]				=	$invite_url;
			} else {
				if ( ! $invite->getUser()->get( 'id' ) ) {
					$inv_usr_id			=	$invite_url;
				}
			}
		}

		if ( ! empty( $inv_grp ) ) {
			$msgs->errors[]				=	CBTxt::Ph( ':: Invite :: Group does not exist in GroupJive - [inv]', array( '[inv]' => implode( ', ', $inv_grp ) ) );
		}

		if ( ! empty( $inv_grp_id ) ) {
			$msgs->errors[]				=	CBTxt::Ph( ':: Invite :: Missing group - [inv]', array( '[inv]' => implode( ', ', $inv_grp_id ) ) );
		}

		if ( ! empty( $inv_usr_id ) ) {
			$msgs->warnings[]			=	CBTxt::Ph( ':: Invite :: User does not exist in Group - [inv]', array( '[inv]' => implode( ', ', $inv_usr_id ) ) );
		}

		if ( ! empty( $inv_user ) ) {
			$msgs->errors[]				=	CBTxt::Ph( ':: Invite :: Missing user - [inv]', array( '[inv]' => implode( ', ', $inv_user ) ) );
		}

		$gj_categories					=	$_CB_database->getTableStatus( '#__gj_grcategory' );
		$gj_groups						=	$_CB_database->getTableStatus( '#__gj_groups' );
		$gj_users						=	$_CB_database->getTableStatus( '#__gj_users' );

		if ( $gj_categories || $gj_groups || $gj_users ) {
			$migrate_url				=	cbgjClass::getPluginURL( array( 'tools', 'migrate' ), CBTxt::Th( 'Are you sure you want to migrate your old GroupJive data?' ) );
			$migrate					=	'<a href="javascript: void(0);" onclick="' . $migrate_url . '">' . CBTxt::Th( 'Migrate' ) . '</a>';

			$delmigrate_url				=	cbgjClass::getPluginURL( array( 'tools', 'delmigrate' ), CBTxt::Th( 'Are you sure you want to delete your old GroupJive data?' ) );
			$delmigrate					=	'<a href="javascript: void(0);" onclick="' . $delmigrate_url . '">' . CBTxt::Th( 'Delete' ) . '</a>';

			$msgs->info[]				=	CBTxt::Ph( ':: GroupJive :: Previous release database found - [mig_url] | [del_url]', array( '[mig_url]' => $migrate, '[del_url]' => $delmigrate ) );
		}

		$_PLUGINS->trigger( 'gj_onAfterTools', array( $msgs, $user, $plugin ) );

		if ( empty( $msgs->errors ) ) {
			$msgs->errors[]				=	CBTxt::Th( 'No errors were found.' );
		}

		if ( empty( $msgs->warnings ) ) {
			$msgs->warnings[]			=	CBTxt::Th( 'No warnings were found.' );
		}

		if ( empty( $msgs->info ) ) {
			$msgs->info[]				=	CBTxt::Th( 'No info was found.' );
		}

		HTML_cbgjAdmin::showTools( $msgs, $user, $plugin );
	}