{$aRay}
                        </user_info>
EOF;
        }
        break;
        /**
         * get user permissions
         */
    /**
     * get user permissions
     */
    case 'user_perm':
        $forum_id = (int) $orca_integration_vars['forum_id'];
        $user_id = getID($user);
        require_once BX_DIRECTORY_PATH_CLASSES . 'BxDolGroups.php';
        $oGroups = new BxDolGroups(false);
        $arrGroup = $oGroups->getGroupInfo($forum_id);
        $isGroupMember = $oGroups->isGroupMember($user_id, $forum_id) ? 1 : 0;
        $isGroupCreator = $arrGroup['creatorID'] == $user_id ? 1 : 0;
        $isAdmin = isOrcaAdmin($user) ? 1 : 0;
        $read_public = 1;
        $post_public = $isGroupMember || $isAdmin ? 1 : 0;
        $edit_public = $isGroupCreator || $isAdmin ? 1 : 0;
        $del_public = $isGroupCreator || $isAdmin ? 1 : 0;
        $read_private = $isGroupMember || $isAdmin ? 1 : 0;
        $post_private = $isGroupMember || $isAdmin ? 1 : 0;
        $edit_private = $isGroupCreator || $isAdmin ? 1 : 0;
        $del_private = $isGroupCreator || $isAdmin ? 1 : 0;
        $edit_own = $isGroupMember || $isAdmin ? 1 : 0;
        $del_own = $isGroupMember || $isAdmin ? 1 : 0;
        $search = 0;
<?php

require_once 'inc/header.inc.php';
require_once BX_DIRECTORY_PATH_INC . 'design.inc.php';
require_once BX_DIRECTORY_PATH_INC . 'profiles.inc.php';
require_once BX_DIRECTORY_PATH_INC . 'utils.inc.php';
require_once BX_DIRECTORY_PATH_CLASSES . 'BxDolGroups.php';
// --------------- page variables and login
$_page['css_name'] = 'groups.css';
check_logged();
$oGroups = new BxDolGroups(false);
switch ($_REQUEST['action']) {
    //print functions
    case 'categ':
        $_page['header'] = _t("_Search Groups");
        $_page['header_text'] = _t("_Search Groups");
        $_page['name_index'] = 78;
        $_ni = $_page['name_index'];
        $_page_cont[$_ni]['page_main_code'] = '';
        list($sForm, $sResults) = $oGroups->GenCategoryPage(true);
        //$sFormRes = (isset($_REQUEST['categUri']) || isset($_REQUEST['categID'])) ? '' : $sForm;
        $_page_cont[$_ni]['groups_search_form'] = $sForm;
        //$_page_cont[$_ni]['groups_search_form'] = '';
        $_page_cont[$_ni]['groups_search_results'] = $sResults;
        break;
    case 'search':
        $_page['header'] = _t("_Search Groups");
        $_page['header_text'] = _t("_Search Groups");
        $_page['name_index'] = 78;
        $_ni = $_page['name_index'];
        $_page_cont[$_ni]['page_main_code'] = '';
*
* Dolphin is free software. This work is licensed under a Creative Commons Attribution 3.0 License. 
* http://creativecommons.org/licenses/by/3.0/
*
* Dolphin is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the Creative Commons Attribution 3.0 License for more details. 
* You should have received a copy of the Creative Commons Attribution 3.0 License along with Dolphin, 
* see license.txt file; if not, write to marketing@boonex.com
***************************************************************************/
require_once 'inc/header.inc.php';
require_once BX_DIRECTORY_PATH_INC . 'design.inc.php';
require_once BX_DIRECTORY_PATH_INC . 'utils.inc.php';
require_once BX_DIRECTORY_PATH_INC . 'images.inc.php';
require_once BX_DIRECTORY_PATH_CLASSES . 'BxDolGroups.php';
$oGroups = new BxDolGroups(false);
// --------------- page variables and login
$_page['name_index'] = 76;
$_page['css_name'] = 'groups.css';
$_page['header'] = _t("_Group action");
$_page['header_text'] = _t("_Group action");
$logged['member'] = member_auth(0, true);
$memberID = (int) $_COOKIE['memberID'];
$arrMember = getProfileInfo($memberID);
$action = $_REQUEST['a'];
$groupID = (int) $_REQUEST['ID'];
if (!$groupID) {
    Header("Location: {$site['url']}grp.php");
    exit;
}
$_ni = $_page['name_index'];
    function showBlockGroups($sCaption, $bNoDB = false)
    {
        global $site;
        $ID = $this->_iProfileID;
        if ($ID > 0) {
            $sQuery = "\r\n\t\t\t\tSELECT COUNT(`Groups`.`ID`) AS 'Cnt'\r\n\t\t\t\tFROM `GroupsMembers`, `Groups`\r\n\t\t\t\tWHERE \r\n\t\t\t\t`Groups`.`status` = 'Active' AND\r\n\t\t\t\t`GroupsMembers`.`memberID` = {$ID} AND\r\n\t\t\t\t`GroupsMembers`.`groupID`  = `Groups`.`ID` AND\r\n\t\t\t\t`GroupsMembers`.`status`   = 'Active'\r\n\t\t\t";
            $iBlogs = db_value($sQuery);
            if ($iBlogs > 0) {
                $oGroups = new BxDolGroups();
                $sBlocks = $oGroups->GenAnyBlockContent('last', $ID);
                $ret = <<<EOF
<div id="container_groups">
\t{$sBlocks}
</div>
EOF;
                $show_hide = $this->genShowHideItem('container_groups');
                if ($bNoDB) {
                    return $ret;
                } else {
                    echo DesignBoxContent(_t($sCaption), $ret, 1, $show_hide);
                }
            } else {
                return;
            }
        } else {
            if ($bNoDB) {
                return MsgBox(_t('_im_textNoCurrUser'));
            } else {
                echo MsgBox(_t('_im_textNoCurrUser'));
            }
        }
    }
            db_res("UPDATE `Groups` SET `status`='Active' WHERE `ID`={$groupID}");
        }
        break;
}
TopCodeAdmin();
ContentBlockHead("Groups Categories");
?>
			<div style="color:green;margin:5px auto;">
				<?php 
echo $actionMsg;
?>
			</div>
			
			<table style="width:350px;margin:5px auto;border-collapse:collapse;">
<?php 
$oGroups = new BxDolGroups();
$arrCategs = $oGroups->getGroupsCategList();
$tr = 'odd';
foreach ($arrCategs as $arrCateg) {
    ?>
				<tr style="background:#<?php 
    echo $tr == 'odd' ? 'DDD' : 'FFF';
    ?>
;">
					<td style="border:1px solid gray;padding:3px;">
						<a href="<?php 
    echo "{$_SERVER['PHP_SELF']}?view_cat={$arrCateg['ID']}#view_cat";
    ?>
"><b><?php 
    echo htmlspecialchars_adv($arrCateg['Name']);
    ?>
 function getBlockCode_Groups()
 {
     global $site;
     $mode = $_REQUEST['groups_mode'];
     if ($mode != 'rand' and $mode != 'latest') {
         $mode = 'latest';
     }
     $aDBTopMenu = array();
     //$menu = '<div class="dbTopMenu">';
     foreach (array('latest', 'rand') as $myMode) {
         switch ($myMode) {
             case 'latest':
                 $sTabTitle = _t('_Latest');
                 break;
             case 'rand':
                 $sTabTitle = _t('_Random');
                 break;
         }
         $aDBTopMenu[$sTabTitle] = array('href' => "{$_SERVER['PHP_SELF']}?groups_mode={$myMode}", 'dynamic' => true, 'active' => $myMode == $mode);
         /*if( $mode == $myMode ) {
         			$menu .= "<div class=\"active\">$sTabTitle</div>";
         		} else {
         			$menu .= "
         			<div class=\"notActive\">
         				<a href=\"{$_SERVER['PHP_SELF']}?groups_mode=$myMode\" class=\"top_members_menu\" onclick=\"getHtmlData( 'show_groups', this.href+'&amp;show_only=groups'); return false;\">$sTabTitle</a>
         			</div>";
         		}*/
     }
     /*$menu .= '
     			<div class="clear_both"></div>
     		</div>';*/
     $iTotalNum = db_value("SELECT COUNT(*) AS 'Cnt' FROM `Groups` WHERE `status` = 'Active'");
     $oGroups = new BxDolGroups();
     if ($iTotalNum) {
         $iResPerPage = (int) getParam("max_blogs_on_home");
         $iTotalPages = ceil($iTotalNum / $iResPerPage);
         $page = (int) $_REQUEST['groups_page'];
         if ($page < 1 or $mode == 'rand') {
             $page = 1;
         }
         if ($page > $iTotalPages) {
             $page = $iTotalPages;
         }
         $sqlLimitFrom = ($page - 1) * $iResPerPage;
         $sBlocks = $oGroups->GenAnyBlockContent($mode, 0, "LIMIT {$sqlLimitFrom}, {$iResPerPage}");
         $ret = $sBlocks;
     } else {
         $ret .= '<div class="no_result"><div>' . _t("_No groups available") . '</div></div>';
     }
     $aDBBottomMenu = array();
     if ($iTotalPages > 1) {
         //$ret .= '<div class="dbBottomMenu">';
         if ($page > 1) {
             $prevPage = $page - 1;
             $aDBBottomMenu[_t('_Back')] = array('href' => "{$_SERVER['PHP_SELF']}?groups_mode={$mode}&amp;groups_page={$prevPage}", 'dynamic' => true, 'class' => 'backMembers');
             /*$sBackC = _t('_Back');
             				$retR .= <<<EOF
             	<a href="{$_SERVER['PHP_SELF']}?groups_mode={$mode}&amp;groups_page={$prevPage}" class="backMembers" onclick="getHtmlData( 'show_groups', this.href+'&amp;show_only=groups'); return false;">
             		{$sBackC}
             	</a>
             EOF;*/
         }
         if ($page < $iTotalPages) {
             $nextPage = $page + 1;
             $aDBBottomMenu[_t('_Next')] = array('href' => "{$_SERVER['PHP_SELF']}?groups_mode={$mode}&amp;groups_page={$nextPage}", 'dynamic' => true, 'class' => 'moreMembers');
             /*$sNextC = _t('_Next');
             				$retR .= <<<EOF
             	<a href="{$_SERVER['PHP_SELF']}?groups_mode={$mode}&amp;groups_page={$nextPage}" class="moreMembers" onclick="getHtmlData( 'show_groups', this.href+'&amp;show_only=groups'); return false;">
             		{$sNextC}
             	</a>
             EOF;*/
         }
         $sBMViewAllLink = $oGroups->bUseFriendlyLinks ? "{$site['url']}groups/all/" : "{$site['url']}grp.php";
         $aDBBottomMenu[_t('_View All')] = array('href' => $sBMViewAllLink, 'dynamic' => false, 'class' => 'viewAllMembers');
         //$ret .= '<div class="clear_both"></div></div>';
     }
     return array($ret, $aDBTopMenu, $aDBBottomMenu);
 }
    function getBlockCode_Groups()
    {
        if ($this->iMember > 0) {
            $sqlQuery = "\r\n\t\t\t\tSELECT COUNT(`Groups`.`ID`) AS 'Cnt'\r\n\t\t\t\tFROM `GroupsMembers`, `Groups`\r\n\t\t\t\tINNER JOIN `GroupsCateg` ON `GroupsCateg`.`ID` = `Groups`.`categID` \r\n\t\t\t\tWHERE\r\n\t\t\t\t`GroupsMembers`.`memberID` = '{$this->iMember}' AND `GroupsMembers`.`groupID`  = `Groups`.`ID` AND `GroupsMembers`.`status`   = 'Active'\r\n\t\t\t";
            $iBlogs = db_value($sqlQuery);
            if ($iBlogs > 0) {
                $oGroups = new BxDolGroups();
                $sBlocks = $oGroups->GenAnyBlockContent('latest', $this->iMember);
                $ret = <<<EOF
<div id="container_groups">
\t{$sBlocks}
</div>
EOF;
                $show_hide = $this->genShowHideItem('container_groups');
                $sShowHide = $show_hide;
                return $ret;
            } else {
                return '';
            }
        } else {
            return MsgBox(_t('_im_textNoCurrUser'));
        }
    }