/** * render frontend overview panes * * @param moscomprofilerUser $user * @param object $plugin * @return string */ static function showOverviewPanes( $user, $plugin ) { $overviewDesc = CBTxt::Th( $plugin->params->get( 'overview_desc', null ) ); $authorized = cbgjClass::getAuthorization( null, null, $user ); $categoryCount = count( cbgjData::getCategories( array( 'cat_access', 'mod_lvl1' ), array( 'parent', '=', 0 ) ) ); $return = '<legend class="gjHeaderTitle">' . cbgjClass::getOverride( 'category', true ) . ' ' . cbgjClass::getOverride( 'overview' ) . '</legend>' . '<div class="gjGrid row-fluid">' . '<div class="gjGridLeft span9">' . '<div class="gjGridLeftLogo span4">' . '<img alt="' . htmlspecialchars( CBTxt::T( 'Logo' ) ) . '" src="' . $plugin->livePath . '/images/' . $plugin->params->get( 'overview_logo', 'default_overview.png' ) . '" class="gjLogoDefault img-polaroid" />' . '</div>' . '<div class="gjGridLeftInfo span8">' . cbgjClass::getIntegrations( 'gj_onBeforeOverviewInfo', array( $user, $plugin ) ) . ( $categoryCount ? '<div>' . cbgjClass::getOverride( 'category', true ) . ': ' . $categoryCount . '</div>' : null ) . cbgjClass::getIntegrations( 'gj_onAfterOverviewInfo', array( $user, $plugin ) ) . '</div>'; if ( $overviewDesc ) { if ( $plugin->params->get( 'overview_desc_content', 0 ) ) { $overviewDesc = cbgjClass::prepareContentPlugins( $overviewDesc ); } $return .= '<div class="gjGridLeftDesc span12 well well-small">' . $overviewDesc . '</div>'; } $return .= '</div>' . '<div class="gjGridRight span3">' . cbgjClass::getIntegrations( 'gj_onBeforeOverviewMenu', array( $user, $plugin ), null, null ) . ( cbgjClass::hasAccess( 'cat_create', $authorized ) ? '<div><i class="icon-plus"></i> <a href="' . cbgjClass::getPluginURL( array( 'categories', 'new' ) ) . '">' . CBTxt::Ph( 'New [category]', array( '[category]' => cbgjClass::getOverride( 'category' ) ) ) . '</a></div>' : null ) . ( cbgjClass::hasAccess( 'usr_mod', $authorized ) && $categoryCount ? '<div><i class="icon-envelope"></i> <a href="' . cbgjClass::getPluginURL( array( 'overview', 'message' ) ) . '">' . CBTxt::Ph( 'Message [categories]', array( '[categories]' => cbgjClass::getOverride( 'category', true ) ) ) . '</a></div>' : null ) . ( cbgjClass::hasAccess( 'usr_panel', $authorized ) ? '<div><i class="icon-home"></i> <a href="' . cbgjClass::getPluginURL( array( 'panel' ) ) . '">' . CBTxt::Ph( 'My [panel]', array( '[panel]' => cbgjClass::getOverride( 'panel' ) ) ) . '</a></div>' : null ) . cbgjClass::getIntegrations( 'gj_onAfterOverviewMenu', array( $user, $plugin ), null, null ) . ( 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>' . '</div>'; return $return; }
/** * 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() ); } } } }
static public function getAutos( $access = array(), $filtering = array(), $ordering = array(), $limits = 0, $list = true ) { global $_CB_database; static $cache = array(); if ( ! $access ) { $access = array(); } if ( ! $filtering ) { $filtering = array(); } if ( ! $ordering ) { $ordering = array(); } $id = cbgjClass::getStaticID( array( $filtering, $ordering ) ); if ( ! isset( $cache[$id] ) ) { $where = array(); $join = array(); if ( $filtering ) { cbgjData::where( $where, $join, $filtering ); } $orderBy = array(); if ( $ordering ) { cbgjData::order( $orderBy, $join, $ordering ); } $query = 'SELECT *' . "\n FROM " . $_CB_database->NameQuote( '#__groupjive_plugin_auto' ) . ( count( $where ) ? "\n WHERE " . implode( "\n AND ", $where ) : null ) . "\n ORDER BY " . ( count( $orderBy ) ? implode( ', ', $orderBy ) : $_CB_database->NameQuote( 'ordering' ) . " ASC" ); $_CB_database->setQuery( $query ); $cache[$id] = $_CB_database->loadObjectList( 'id', 'cbgjAuto', array( & $_CB_database ) ); } $rows = $cache[$id]; if ( $rows ) { if ( $access ) { cbgjData::access( $rows, $access ); } if ( $limits ) { cbgjData::limit( $rows, $limits ); } } if ( ! $rows ) { $rows = array(); } if ( $list ) { return $rows; } else { $rows = array_shift( $rows ); if ( ! $rows ) { $rows = new cbgjAuto( $_CB_database ); } return $rows; } }
/** * prepare frontend tab invited render * * @param moscomprofilerUser $displayed * @param moscomprofilerUser $user * @param object $plugin * @param boolean $tabbed * @return mixed */ public function getInvited( $displayed, $user, $plugin, $tabbed = true ) { cbgjClass::getTemplate( 'tab_invited' ); $paging = new cbgjPaging( 'tab_invited' ); $limit = $paging->getlimit( (int) $plugin->params->get( 'invited_tab_limit', 15 ) ); $limitstart = $paging->getLimistart(); $search = $paging->getFilter( 'search' ); $where = array(); if ( isset( $search ) && ( $search != '' ) ) { $where[] = array( 'name', 'CONTAINS', $search ); } $searching = ( count( $where ) ? true : false ); $where[] = array( 'f.user', '=', (int) $displayed->id, array( 'f.email', '=', $displayed->email ) ); $where[] = array( 'f.accepted', 'IN', array( '0000-00-00', '0000-00-00 00:00:00', '', null ) ); switch( $plugin->params->get( 'invited_tab_orderby', 1 ) ) { case 2: $orderBy = array( 'ordering', 'DESC' ); break; case 3: $orderBy = array( 'date', 'ASC' ); break; case 4: $orderBy = array( 'date', 'DESC' ); break; case 5: $orderBy = array( 'name', 'ASC' ); break; case 6: $orderBy = array( 'name', 'DESC' ); break; case 7: $orderBy = 'user_count_asc'; break; case 8: $orderBy = 'user_count_desc'; break; case 9: $orderBy = 'nested_count_asc'; break; case 10: $orderBy = 'nested_count_desc'; break; default: $orderBy = null; break; } $total = count( cbgjData::getGroups( array( array( 'grp_access', 'mod_lvl2' ), $user ), $where, $orderBy ) ); if ( $total <= $limitstart ) { $limitstart = 0; } $pageNav = $paging->getPageNav( $total, $limitstart, $limit ); $rows = cbgjData::getGroups( array( array( 'grp_access', 'mod_lvl2' ), $user ), $where, $orderBy, ( $plugin->params->get( 'invited_tab_paging', 1 ) ? array( $pageNav->limitstart, $pageNav->limit ) : null ) ); $pageNav->search = $paging->getInputSearch( 'gjTabForm_invited', 'search', CBTxt::T( 'Search Invited...' ), $search ); $pageNav->searching = $searching; $pageNav->limitbox = $paging->getLimitbox( $pageNav ); $pageNav->pagelinks = $paging->getPagesLinks( $pageNav ); return HTML_groupjiveTabInvited::showInvited( $rows, $pageNav, $displayed, $user, $plugin, $tabbed ); }
/** * 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; }
} } else { $return .= CBTxt::T( 'There are no files uploaded.' ); } $return .= '</div>'; } else { $return .= '<div>' . CBTxt::T( 'File integration not installed!' ) . '</div>'; } } elseif ( $mode == 16 ) { $where = $include_exclude; $where[] = array( 'f.user', '=', (int) $user->id, array( 'f.email', '=', $user->email ) ); $where[] = array( 'f.accepted', 'IN', array( '0000-00-00', '0000-00-00 00:00:00', '', null ) ); $rows = cbgjData::getGroups( array( array( 'grp_access', 'mod_lvl2' ), $user ), $where, null, $display ); $return .= '<div class="gjInvitedTo' . $classLayout . '">'; if ( $rows ) foreach ( $rows as $row ) { $authorized = cbgjClass::getAuthorization( $row, null, $user ); $nestedCount = ( ( ( ( ! $row->get( 'nested' ) ) && cbgjClass::hasAccess( 'mod_lvl1', $authorized ) ) || $row->get( 'nested' ) ) && $row->nestedCount() ); if ( $layout ) { $return .= '<div class="gjModuleContentBox mini-layout">' . '<div class="gjModuleContentBoxRow">' . $row->getName( $nameLength, true ) . '</div>' . '<div class="gjModuleContentBoxRow">' . $row->getLogo( true, true, true ) . '</div>' . ( $nestedCount ? '<div class="gjModuleContentBoxRow">' . cbgjClass::getOverride( 'group', $row->nestedCount() ) . '</div>' : null ) . ( $row->userCount() ? '<div class="gjModuleContentBoxRow">' . cbgjClass::getOverride( 'user', $row->userCount() ) . '</div>' : null ) . '<div class="gjModuleContentBoxRow"><input type="button" value="' . htmlspecialchars( CBTxt::T( 'Join' ) ) . '" class="gjButton btn btn-mini btn-success" onclick="' . cbgjClass::getPluginURL( array( 'groups', 'join', (int) $row->get( 'category' ), (int) $row->get( 'id' ) ), true, true, false, null, true ) . '" /></div>'
public function getAccess( $trigger, $fbConfig, $params ) { if ( $trigger == 'getAllowedForumsRead' ) { $plugin = cbgjClass::getPlugin(); $forum = $plugin->params->get( 'forum_id', null ); if ( $forum ) { $forums = array(); $categories = cbgjData::getCategories( array( 'forum_cat_access' ), array( 'params', 'REGEX', 'forum_id=[[:digit:]]+' ) ); if ( $categories ) foreach ( $categories as $category ) { $catParams = $category->getParams(); $forums[] = $catParams->get( 'forum_id', null ); } $groups = cbgjData::getGroups( array( 'forum_grp_access' ), array( 'params', 'REGEX', 'forum_id=[[:digit:]]+' ) ); if ( $groups ) foreach ( $groups as $group ) { $grpParams = $group->getParams(); $forums[] = $grpParams->get( 'forum_id', null ); } if ( ! empty( $forums ) ) { $forums[] = $forum; $existingAccess = explode( ',', $params[1] ); $cleanAccess = array_diff( $forums, $existingAccess ); $newAccess = array_merge( $existingAccess, $cleanAccess ); cbArrayToInts( $newAccess ); $params[1] = implode( ',', $newAccess ); } } } elseif ( $trigger == 'checkSubscribers' ) { $plugin = cbgjClass::getPlugin(); $forum = $plugin->params->get( 'forum_id', null ); if ( $forum ) { $forumId = $params[0]->id; $users = $params[1]; $ids = array(); if ( $forumId && $users ) foreach ( $users as $user ) { $category = cbgjData::getCategories( array( array( 'forum_cat_access' ), $user ), array( 'params', 'REGEX', 'forum_id=[[:<:]]' . (int) $forumId . '[[:>:]]' ), null, null, false ); if ( $category->get( 'id' ) ) { $ids[] = $user; } $group = cbgjData::getGroups( array( array( 'forum_grp_access' ), $user ), array( 'params', 'REGEX', 'forum_id=[[:<:]]' . (int) $forumId . '[[:>:]]' ), null, null, false ); if ( $group->get( 'id' ) ) { $ids[] = $user; } } if ( ! empty( $ids ) ) { $existingAccess = $params[1]; $cleanAccess = array_diff( $ids, $existingAccess ); $newAccess = array_merge( $existingAccess, $cleanAccess ); cbArrayToInts( $newAccess ); $params[1] = array_values( array_unique( $newAccess ) ); } } } elseif ( ( $trigger == 'onStart' ) && cbGetParam( $_REQUEST, 'catid', 0 ) ) { $plugin = cbgjClass::getPlugin(); $backlink = $plugin->params->get( 'forum_backlink', 1 ); $forum = $plugin->params->get( 'forum_id', null ); if ( $backlink && $forum ) { cbgjClass::getTemplate( 'cbgroupjiveforums' ); $catid = (int) cbGetParam( $_REQUEST, 'catid', 0 ); if ( $forum == $catid ) { echo '<div id="cbGj"><div id="cbGjInner"><div class="gjTop gjTopCenter"><a href="' . cbgjClass::getPluginURL( array( 'overview' ) ) . '" role="button" class="gjButton btn"><i class="icon-share-alt"></i> ' . CBTxt::P( 'Back to [overview]', array( '[overview]' => cbgjClass::getOverride( 'overview' ) ) ) . '</a></div></div></div>'; } else { $category = cbgjData::getCategories( array( 'cat_access', 'mod_lvl1' ), array( 'params', 'REGEX', 'forum_id=[[:<:]]' . (int) $catid . '[[:>:]]' ), null, null, false ); if ( $category->get( 'id' ) ) { echo '<div id="cbGj"><div id="cbGjInner"><div class="gjTop gjTopCenter"><a href="' . $category->getUrl() . '" role="button" class="gjButton btn"><i class="icon-share-alt"></i> ' . CBTxt::P( 'Back to [category]', array( '[category]' => cbgjClass::getOverride( 'category' ) ) ) . '</a></div></div></div>'; } else { $group = cbgjData::getGroups( array( 'grp_access', 'mod_lvl2' ), array( 'params', 'REGEX', 'forum_id=[[:<:]]' . (int) $catid . '[[:>:]]' ), null, null, false ); if ( $group->get( 'id' ) ) { echo '<div id="cbGj"><div id="cbGjInner"><div class="gjTop gjTopCenter"><a href="' . $group->getUrl() . '" role="button" class="gjButton btn"><i class="icon-share-alt"></i> ' . CBTxt::P( 'Back to [group]', array( '[group]' => cbgjClass::getOverride( 'group' ) ) ) . '</a></div></div></div>'; } } } } } }
/** * Called at each change of user subscription state due to a plan activation or deactivation * * @param UserTable $user * @param string $status * @param int $planId * @param int $replacedPlanId * @param ParamsInterface $integrationParams * @param string $cause 'PaidSubscription' (first activation only), 'SubscriptionActivated' (renewals, cancellation reversals), 'SubscriptionDeactivated', 'Denied' * @param string $reason 'N' new subscription, 'R' renewal, 'U'=update ) * @param int $now Unix time */ public function onCPayUserStateChange( &$user, $status, /** @noinspection PhpUnusedParameterInspection */ $planId, /** @noinspection PhpUnusedParameterInspection */ $replacedPlanId, &$integrationParams, /** @noinspection PhpUnusedParameterInspection */ $cause, /** @noinspection PhpUnusedParameterInspection */ $reason, /** @noinspection PhpUnusedParameterInspection */ $now ) { global $_CB_framework; if ( ! is_object( $user ) ) { return; } $api = $_CB_framework->getCfg( 'absolute_path' ) . '/components/com_comprofiler/plugin/user/plug_cbgroupjive/cbgroupjive.class.php'; if ( ! file_exists( $api ) ) { return; } /** @noinspection PhpIncludeInspection */ require_once( $api ); $gj_plugin = cbgjClass::getPlugin(); $cbUser = CBuser::getInstance( $user->id ); if ( ! $cbUser ) { $cbUser = $cbUser->getInstance( null ); } for ( $i = 1; $i <= 5; $i++ ) { if ( $status == 'A' ) { if ( ( cbgjClass::getCleanParam( true, 'cbgj_auto_type' . $i, null, null, $integrationParams ) == 3 ) && cbgjClass::getCleanParam( true, 'cbgj_auto_name' . $i, null, null, $integrationParams ) ) { $parent = (int) cbgjClass::getCleanParam( true, 'cbgj_auto_cat_parent' . $i, '0', null, $integrationParams ); $name = $cbUser->replaceUserVars( cbgjClass::getCleanParam( true, 'cbgj_auto_name' . $i, null, null, $integrationParams ) ); if ( cbgjClass::getCleanParam( true, 'cbgj_auto_unique' . $i, 1, null, $integrationParams ) ) { $where = array( array( 'user_id', '=', $user->id ), array( 'name', '=', $name ), array( 'parent', '=', $parent ) ); } else { $where = array( array( 'name', '=', $name ), array( 'parent', '=', $parent ) ); } $row = cbgjData::getCategories( null, null, $where, null, null, false ); if ( ! $row->id ) { $category_editor = $gj_plugin->params->get( 'category_editor', 1 ); $types = cbgjClass::getCleanParam( true, 'cbgj_auto_cat_types' . $i, '1|*|2|*|3', null, $integrationParams ); $row->published = 1; $row->parent = $parent; $row->user_id = (int) $user->id; $row->name = $name; if ( ( $category_editor == 2 ) || ( $category_editor == 3 ) ) { $row->description = $cbUser->replaceUserVars( cbgjClass::getHTMLCleanParam( true, 'cbgj_auto_desc' . $i, null, null, $integrationParams ) ); } else { $row->description = $cbUser->replaceUserVars( cbgjClass::getCleanParam( true, 'cbgj_auto_desc' . $i, null, null, $integrationParams ) ); } $row->access = (int) $gj_plugin->params->get( 'category_access_default', -2 ); $row->types = ( $types ? $types : $gj_plugin->params->get( 'category_types_default', '1|*|2|*|3' ) ); $row->create = (int) $gj_plugin->params->get( 'category_create_default', 1 ); $row->create_access = (int) $gj_plugin->params->get( 'category_createaccess_default', -1 ); $row->nested = (int) $gj_plugin->params->get( 'category_nested_default', 1 ); $row->nested_access = (int) $gj_plugin->params->get( 'category_nestedaccess_default', -1 ); $row->date = date( 'Y-m-d H:i:s' ); $row->ordering = 99999; $row->store(); } } elseif ( ( cbgjClass::getCleanParam( true, 'cbgj_auto_type' . $i, null, null, $integrationParams ) == 2 ) && cbgjClass::getCleanParam( true, 'cbgj_auto_grp_cat' . $i, null, null, $integrationParams ) && cbgjClass::getCleanParam( true, 'cbgj_auto_name' . $i, null, null, $integrationParams ) ) { if ( ( cbgjClass::getCleanParam( true, 'cbgj_auto_grp_cat' . $i, null, null, $integrationParams ) == -1 ) && cbgjClass::getCleanParam( true, 'cbgj_auto_grp_cat_name' . $i, null, null, $integrationParams ) ) { $parent = (int) cbgjClass::getCleanParam( true, 'cbgj_auto_grp_cat_parent' . $i, '0', null, $integrationParams ); $name = $cbUser->replaceUserVars( cbgjClass::getCleanParam( true, 'cbgj_auto_grp_cat_name' . $i, null, null, $integrationParams ) ); if ( cbgjClass::getCleanParam( true, 'cbgj_auto_grp_cat_unique' . $i, 1, null, $integrationParams ) ) { $where = array( array( 'user_id', '=', $user->id ), array( 'name', '=', $name ), array( 'parent', '=', $parent ) ); } else { $where = array( array( 'name', '=', $name ), array( 'parent', '=', $parent ) ); } $category = cbgjData::getCategories( null, null, $where, null, null, false ); if ( ! $category->id ) { $category_editor = $gj_plugin->params->get( 'category_editor', 1 ); $types = cbgjClass::getCleanParam( true, 'cbgj_auto_grp_cat_types' . $i, '1|*|2|*|3', null, $integrationParams ); $category->published = 1; $category->parent = $parent; $category->user_id = (int) $user->id; $category->name = $name; if ( ( $category_editor == 2 ) || ( $category_editor == 3 ) ) { $category->description = $cbUser->replaceUserVars( cbgjClass::getHTMLCleanParam( true, 'cbgj_auto_grp_cat_desc' . $i, null, null, $integrationParams ) ); } else { $category->description = $cbUser->replaceUserVars( cbgjClass::getCleanParam( true, 'cbgj_auto_grp_cat_desc' . $i, null, null, $integrationParams ) ); } $category->access = (int) $gj_plugin->params->get( 'category_access_default', -2 ); $category->types = ( $types ? $types : $gj_plugin->params->get( 'category_types_default', '1|*|2|*|3' ) ); $category->create = (int) $gj_plugin->params->get( 'category_create_default', 1 ); $category->create_access = (int) $gj_plugin->params->get( 'category_createaccess_default', -1 ); $category->nested = (int) $gj_plugin->params->get( 'category_nested_default', 1 ); $category->nested_access = (int) $gj_plugin->params->get( 'category_nestedaccess_default', -1 ); $category->date = date( 'Y-m-d H:i:s' ); $category->ordering = 99999; $category->store(); } } else { $category = cbgjData::getCategories( null, null, array( 'id', '=', cbgjClass::getCleanParam( true, 'cbgj_auto_grp_cat' . $i, null, null, $integrationParams ) ), null, null, false ); } if ( $category->id ) { $parent = (int) cbgjClass::getCleanParam( true, 'cbgj_auto_grp_parent' . $i, '0', null, $integrationParams ); $name = $cbUser->replaceUserVars( cbgjClass::getCleanParam( true, 'cbgj_auto_name' . $i, null, null, $integrationParams ) ); $join = false; if ( cbgjClass::getCleanParam( true, 'cbgj_auto_unique' . $i, 1, null, $integrationParams ) ) { $where = array( array( 'category', '=', $category->id ), array( 'user_id', '=', $user->id ), array( 'name', '=', $name ), array( 'parent', '=', $parent ) ); } else { $where = array( array( 'category', '=', $category->id ), array( 'name', '=', $name ), array( 'parent', '=', $parent ) ); if ( cbgjClass::getCleanParam( true, 'cbgj_auto_grp_autojoin' . $i, 1, null, $integrationParams ) ) { $join = true; } } $row = cbgjData::getGroups( null, null, $where, null, null, false ); if ( ! $row->id ) { $group_editor = $gj_plugin->params->get( 'group_editor', 1 ); $type = cbgjClass::getCleanParam( true, 'cbgj_auto_grp_type' . $i, 1, null, $integrationParams ); $row->published = 1; $row->category = (int) $category->id; $row->parent = $parent; $row->user_id = (int) $user->id; $row->name = $name; if ( ( $group_editor == 2 ) || ( $group_editor == 3 ) ) { $row->description = $cbUser->replaceUserVars( cbgjClass::getHTMLCleanParam( true, 'cbgj_auto_desc' . $i, null, null, $integrationParams ) ); } else { $row->description = $cbUser->replaceUserVars( cbgjClass::getCleanParam( true, 'cbgj_auto_desc' . $i, null, null, $integrationParams ) ); } $row->access = (int) $gj_plugin->params->get( 'group_access_default', -2 ); $row->type = (int) ( $type ? $type : $gj_plugin->params->get( 'group_type_default', 1 ) ); $row->nested = (int) $gj_plugin->params->get( 'group_nested_default', 1 ); $row->nested_access = (int) $gj_plugin->params->get( 'group_nestedaccess_default', -1 ); $row->date = date( 'Y-m-d H:i:s' ); $row->ordering = 1; if ( $row->store() ) { $row->storeOwner( $row->user_id ); } } elseif ( $join ) { $usr = cbgjData::getUsers( null, null, array( array( 'group', '=', $row->id ), array( 'user_id', '=', $user->id ) ), null, null, false ); if ( ! $usr->id ) { $usr->user_id = (int) $user->id; $usr->group = (int) $row->id; $usr->date = date( 'Y-m-d H:i:s' ); $usr->status = (int) cbgjClass::getCleanParam( true, 'cbgj_auto_grp_usr_status' . $i, 1, null, $integrationParams ); if ( $usr->store() ) { if ( $usr->status == 4 ) { $row->storeOwner( $usr->user_id ); } } } } } } elseif ( ( cbgjClass::getCleanParam( true, 'cbgj_auto_type' . $i, null, null, $integrationParams ) == 1 ) && cbgjClass::getCleanParam( true, 'cbgj_auto_usr_groups' . $i, null, null, $integrationParams ) ) { $groups = cbgjClass::getCleanParam( true, 'cbgj_auto_usr_groups' . $i, null, null, $integrationParams ); if ( $groups ) { $groups = explode( '|*|', $groups ); cbArrayToInts( $groups ); } if ( $groups ) foreach ( $groups as $group_id ) { $group = cbgjData::getGroups( null, null, array( 'id', '=', $group_id ), null, null, false ); if ( $group->id ) { $row = cbgjData::getUsers( null, null, array( array( 'group', '=', $group->id ), array( 'user_id', '=', $user->id ) ), null, null, false ); if ( ! $row->id ) { $row->user_id = (int) $user->id; $row->group = (int) $group->id; $row->date = date( 'Y-m-d H:i:s' ); $row->status = (int) cbgjClass::getCleanParam( true, 'cbgj_auto_usr_status' . $i, 1, null, $integrationParams ); if ( $row->store() ) { if ( $row->status == 4 ) { $group->storeOwner( $row->user_id); } } } } } } } elseif ( cbgjClass::getCleanParam( true, 'cbgj_auto_remove' . $i, null, null, $integrationParams ) ) { if ( ( cbgjClass::getCleanParam( true, 'cbgj_auto_type' . $i, null, null, $integrationParams ) == 3 ) && cbgjClass::getCleanParam( true, 'cbgj_auto_name' . $i, null, null, $integrationParams ) ) { $name = $cbUser->replaceUserVars( cbgjClass::getCleanParam( true, 'cbgj_auto_name' . $i, null, null, $integrationParams ) ); if ( cbgjClass::getCleanParam( true, 'cbgj_auto_unique' . $i, 1, null, $integrationParams ) ) { $where = array( array( 'user_id', '=', $user->id ), array( 'name', '=', $name ) ); } else { $where = array( 'name', '=', $name ); } $row = cbgjData::getCategories( null, null, $where, null, null, false ); if ( $row->id ) { $row->deleteAll(); } } elseif ( ( cbgjClass::getCleanParam( true, 'cbgj_auto_type' . $i, null, null, $integrationParams ) == 2 ) && cbgjClass::getCleanParam( true, 'cbgj_auto_grp_cat' . $i, null, null, $integrationParams ) && cbgjClass::getCleanParam( true, 'cbgj_auto_name' . $i, null, null, $integrationParams ) ) { $name = $cbUser->replaceUserVars( cbgjClass::getCleanParam( true, 'cbgj_auto_name' . $i, null, null, $integrationParams ) ); if ( cbgjClass::getCleanParam( true, 'cbgj_auto_grp_cat' . $i, null, null, $integrationParams ) == -1 ) { if ( cbgjClass::getCleanParam( true, 'cbgj_auto_grp_cat_unique' . $i, 1, null, $integrationParams ) ) { $where = array( array( 'user_id', '=', $user->id ), array( 'name', '=', $name ) ); } else { $where = array( 'name', '=', $name ); } } else { $category = cbgjData::getCategories( null, null, array( 'id', '=', cbgjClass::getCleanParam( true, 'cbgj_auto_grp_cat' . $i, null, null, $integrationParams ) ), null, null, false ); if ( cbgjClass::getCleanParam( true, 'cbgj_auto_unique' . $i, 1, null, $integrationParams ) ) { $where = array( array( 'category', '=', $category->id ), array( 'user_id', '=', $user->id ), array( 'name', '=', $name ) ); } else { $where = array( array( 'category', '=', $category->id ), array( 'name', '=', $name ) ); } } $row = cbgjData::getGroups( null, null, $where, null, null, false ); if ( $row->id ) { $row->deleteAll(); } } elseif ( ( cbgjClass::getCleanParam( true, 'cbgj_auto_type' . $i, null, null, $integrationParams ) == 1 ) && cbgjClass::getCleanParam( true, 'cbgj_auto_usr_groups' . $i, null, null, $integrationParams ) ) { $groups = cbgjClass::getCleanParam( true, 'cbgj_auto_usr_groups' . $i, null, null, $integrationParams ); if ( $groups ) { $groups = explode( '|*|', $groups ); cbArrayToInts( $groups ); } if ( $groups ) foreach ( $groups as $group_id ) { $group = cbgjData::getGroups( null, null, array( 'id', '=', $group_id ), null, null, false ); if ( $group->id ) { $row = cbgjData::getUsers( null, null, array( array( 'group', '=', $group->id ), array( 'user_id', '=', $user->id ) ), null, null, false ); if ( $row->id ) { $row->deleteAll(); } } } } } } }
/** * reorders list with parent and child properly positioned * * @param array $rows * @param int $parentId * @return array */ static public function positionParents( $rows, $parentId = 0 ) { $parents = $rows; if ( $parents ) foreach ( $parents as $k => $v ) { if ( $v->parent != $parentId ) { unset( $parents[$k] ); } } $list = array(); $order = array(); if ( ! empty( $parents ) ) foreach ( $parents as $parent ) { $list[] = $parent; $order[] = $parent->id; $children = $rows; if ( $children ) foreach ( $children as $k => $v ) { if ( $v->parent != $parent->id ) { unset( $children[$k] ); } } if ( ! empty( $children ) ) foreach ( $children as $child ) { $list[] = $child; $order[] = $child->id; $sub_children = cbgjData::positionParents( $rows, $child->id ); if ( ! empty( $sub_children ) ) foreach ( $sub_children as $sub_child ) { $list[] = $sub_child; $order[] = $sub_child->id; } } } return $list; }
/** * save menus * * @param string $id * @param moscomprofilerUser $user * @param object $plugin */ private function saveMenus( $user, $plugin ) { $types = cbGetParam( $_POST, 'type', array() ); $categories = cbGetParam( $_POST, 'cats', array() ); $groups = cbGetParam( $_POST, 'grps', array() ); if ( $categories ) { cbArrayToInts( $categories ); } if ( $groups ) { cbArrayToInts( $groups ); } if ( $types ) { foreach ( $types as $type ) { switch ( $type ) { case 'categories': if ( $categories ) { foreach ( $categories as $catid ) { $category = cbgjData::getCategories( null, array( 'id', '=', (int) $catid ), null, null, false ); if ( ! cbgjClass::setMenu( $category->getName(), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=categories&func=show&cat=' . $category->get( 'id' ), $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::P( '[category_name] menu failed to create!', array( '[category_name]' => $category->getName() ) ), false, true, 'error' ); } } } else { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'No categories specified to create menus for.' ), false, true, 'error' ); } break; case 'groups': if ( $groups ) { foreach ( $groups as $grpid ) { $group = cbgjData::getGroups( null, array( 'id', '=', (int) $grpid ), null, null, false ); if ( ! cbgjClass::setMenu( $group->getName(), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=groups&func=show&cat=' . $group->get( 'category' ) . '&grp=' . $group->get( 'id' ), $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::P( '[group_name] menu failed to create!', array( '[group_name]' => $group->getName() ) ), false, true, 'error' ); } } } else { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'No groups specified to create menus for.' ), false, true, 'error' ); } break; case 'new-category-nested': if ( $categories ) { foreach ( $categories as $catid ) { $category = cbgjData::getCategories( null, array( 'id', '=', (int) $catid ), null, null, false ); if ( ! cbgjClass::setMenu( CBTxt::P( '[category_name] New [category]', array( '[category_name]' => $category->getName(), '[category]' => cbgjClass::getOverride( 'category' ) ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=categories&func=new&cat=' . $category->get( 'id' ), $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::P( '[category_name] new category menu failed to create!', array( '[category_name]' => $category->getName() ) ), false, true, 'error' ); } } } else { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'No categories specified to create menus for.' ), false, true, 'error' ); } break; case 'new-category-group': if ( $categories ) { foreach ( $categories as $catid ) { $category = cbgjData::getCategories( null, array( 'id', '=', (int) $catid ), null, null, false ); if ( ! cbgjClass::setMenu( CBTxt::P( '[category_name] New [group]', array( '[category_name]' => $category->getName(), '[group]' => cbgjClass::getOverride( 'group' ) ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=groups&func=new&cat=' . $category->get( 'id' ), $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::P( '[category_name] new group menu failed to create!', array( '[category_name]' => $category->getName() ) ), false, true, 'error' ); } } } else { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'No categories specified to create menus for.' ), false, true, 'error' ); } break; case 'new-group-nested': if ( $groups ) { foreach ( $groups as $grpid ) { $group = cbgjData::getGroups( null, array( 'id', '=', (int) $grpid ), null, null, false ); if ( ! cbgjClass::setMenu( CBTxt::P( '[group_name] New [category]', array( '[group_name]' => $group->getName(), '[category]' => cbgjClass::getOverride( 'category' ) ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=groups&func=new&cat=' . $group->get( 'category' ) . '&grp=' . $group->get( 'id' ), $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::P( '[group_name] new category menu failed to create!', array( '[group_name]' => $group->getName() ) ), false, true, 'error' ); } } } else { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'No categories specified to create menus for.' ), false, true, 'error' ); } break; case 'approve-category': if ( ! cbgjClass::setMenu( CBTxt::P( '[category] Approval', array( '[category]' => cbgjClass::getOverride( 'category' ) ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=categories&func=approval', $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'Category approval menu failed to create!' ), false, true, 'error' ); } break; case 'approve-group': if ( ! cbgjClass::setMenu( CBTxt::P( '[group] Approval', array( '[group]' => cbgjClass::getOverride( 'group' ) ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=groups&func=approval', $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'Group approval menu failed to create!' ), false, true, 'error' ); } break; case 'new-category': if ( ! cbgjClass::setMenu( CBTxt::P( 'New [category]', array( '[category]' => cbgjClass::getOverride( 'category' ) ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=categories&func=new', $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'New category menu failed to create!' ), false, true, 'error' ); } break; case 'new-group': if ( ! cbgjClass::setMenu( CBTxt::P( 'New [group]', array( '[group]' => cbgjClass::getOverride( 'group' ) ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=groups&func=new', $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'New group menu failed to create!' ), false, true, 'error' ); } break; case 'all-categories': if ( ! cbgjClass::setMenu( CBTxt::P( 'All [categories]', array( '[categories]' => cbgjClass::getOverride( 'category', true ) ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=categories&func=all', $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'All categories menu failed to create!' ), false, true, 'error' ); } break; case 'all-groups': if ( ! cbgjClass::setMenu( CBTxt::P( 'All [groups]', array( '[groups]' => cbgjClass::getOverride( 'group', true ) ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=groups&func=all', $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'All groups menu failed to create!' ), false, true, 'error' ); } break; case 'all-my-categories': if ( ! cbgjClass::setMenu( CBTxt::P( 'All [categories]', array( '[categories]' => cbgjClass::getOverride( 'category', true ) ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=categories&func=allmy', $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'All categories menu failed to create!' ), false, true, 'error' ); } break; case 'all-my-groups': if ( ! cbgjClass::setMenu( CBTxt::P( 'All [groups]', array( '[groups]' => cbgjClass::getOverride( 'group', true ) ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=groups&func=allmy', $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'All groups menu failed to create!' ), false, true, 'error' ); } break; case 'edit-group': if ( $groups ) { foreach ( $groups as $grpid ) { $group = cbgjData::getGroups( null, array( 'id', '=', (int) $grpid ), null, null, false ); if ( ! cbgjClass::setMenu( CBTxt::P( 'Edit [group_name]', array( '[group_name]' => $group->getName() ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=groups&func=edit&cat=' . $group->get( 'category' ) . '&grp=' . $group->get( 'id' ), $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::P( 'Edit [group_name] menu failed to create!', array( '[group_name]' => $group->getName() ) ), false, true, 'error' ); } } } else { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'No groups specified to create menus for.' ), false, true, 'error' ); } break; case 'join': if ( $groups ) { foreach ( $groups as $grpid ) { $group = cbgjData::getGroups( null, array( 'id', '=', (int) $grpid ), null, null, false ); if ( ! cbgjClass::setMenu( CBTxt::P( 'Join [group_name]', array( '[group_name]' => $group->getName() ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=groups&func=join&cat=' . $group->get( 'category' ) . '&grp=' . $group->get( 'id' ), $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::P( 'Join [group_name] menu failed to create!', array( '[group_name]' => $group->getName() ) ), false, true, 'error' ); } } } else { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'No groups specified to create menus for.' ), false, true, 'error' ); } break; case 'leave': if ( $groups ) { foreach ( $groups as $grpid ) { $group = cbgjData::getGroups( null, array( 'id', '=', (int) $grpid ), null, null, false ); if ( ! cbgjClass::setMenu( CBTxt::P( 'Leave [group_name]', array( '[group_name]' => $group->getName() ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=groups&func=leave&cat=' . $group->get( 'category' ) . '&grp=' . $group->get( 'id' ), $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::P( 'Leave [group_name] menu failed to create!', array( '[group_name]' => $group->getName() ) ), false, true, 'error' ); } } } else { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'No groups specified to create menus for.' ), false, true, 'error' ); } break; case 'message-groups': if ( $categories ) { foreach ( $categories as $catid ) { $category = cbgjData::getCategories( null, array( 'id', '=', (int) $catid ), null, null, false ); if ( ! cbgjClass::setMenu( CBTxt::P( '[category_name] Message [groups]', array( '[category_name]' => $category->getName(), '[groups]' => cbgjClass::getOverride( 'group', true ) ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=categories&func=message&cat=' . $category->get( 'id' ), $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::P( '[category_name] message groups menu failed to create!', array( '[category_name]' => $category->getName() ) ), false, true, 'error' ); } } } else { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'No categories specified to create menus for.' ), false, true, 'error' ); } break; case 'message-users': if ( $groups ) { foreach ( $groups as $grpid ) { $group = cbgjData::getGroups( null, array( 'id', '=', (int) $grpid ), null, null, false ); if ( ! cbgjClass::setMenu( CBTxt::P( '[group_name] Message [users]', array( '[group_name]' => $group->getName(), '[users]' => cbgjClass::getOverride( 'user', true ) ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=groups&func=message&cat=' . $group->get( 'category' ) . '&grp=' . $group->get( 'id' ), $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::P( '[group_name] message users menu failed to create!', array( '[group_name]' => $group->getName() ) ), false, true, 'error' ); } } } else { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'No groups specified to create menus for.' ), false, true, 'error' ); } break; case 'edit-category': if ( $categories ) { foreach ( $categories as $catid ) { $category = cbgjData::getCategories( null, array( 'id', '=', (int) $catid ), null, null, false ); if ( ! cbgjClass::setMenu( CBTxt::P( 'Edit [category_name]', array( '[category_name]' => $category->getName() ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=categories&func=edit&cat=' . $category->get( 'id' ), $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::P( 'Edit [category_name] menu failed to create!', array( '[category_name]' => $category->getName() ) ), false, true, 'error' ); } } } else { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'No categories specified to create menus for.' ), false, true, 'error' ); } break; case 'notifications-category': if ( $categories ) { foreach ( $categories as $catid ) { $category = cbgjData::getCategories( null, array( 'id', '=', (int) $catid ), null, null, false ); if ( ! cbgjClass::setMenu( CBTxt::P( '[category_name] Notifications', array( '[category_name]' => $category->getName() ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=notifications&func=show&cat=' . $category->get( 'id' ), $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::P( '[category_name] Notifications menu failed to create!', array( '[category_name]' => $category->getName() ) ), false, true, 'error' ); } } } else { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'No categories specified to create menus for.' ), false, true, 'error' ); } break; case 'notifications-group': if ( $groups ) { foreach ( $groups as $grpid ) { $group = cbgjData::getGroups( null, array( 'id', '=', (int) $grpid ), null, null, false ); if ( ! cbgjClass::setMenu( CBTxt::P( '[group_name] Notifications', array( '[group_name]' => $group->getName() ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=notifications&func=show&cat=' . $group->get( 'category' ) . '&grp=' . $group->get( 'id' ), $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::P( '[group_name] Notifications menu failed to create!', array( '[group_name]' => $group->getName() ) ), false, true, 'error' ); } } } else { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'No groups specified to create menus for.' ), false, true, 'error' ); } break; case 'message': if ( ! cbgjClass::setMenu( CBTxt::P( 'Message [categories]', array( '[categories]' => cbgjClass::getOverride( 'category', true ) ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=overview&func=message', $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'Message categories menu failed to create!' ), false, true, 'error' ); } break; case 'notifications': if ( ! cbgjClass::setMenu( CBTxt::T( 'Notifications' ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=notifications&func=show', $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'Notifications menu failed to create!' ), false, true, 'error' ); } break; case 'panel': if ( ! cbgjClass::setMenu( CBTxt::T( 'Panel' ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=panel', $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'Panel menu failed to create!' ), false, true, 'error' ); } break; case 'overview': if ( ! cbgjClass::setMenu( CBTxt::P( '[categories] Overview', array( '[categories]' => cbgjClass::getOverride( 'category', true ) ) ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element . '&action=overview', $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'Overview menu failed to create!' ), false, true, 'error' ); } break; case 'plugin': $general_title = CBTxt::T( $plugin->params->get( 'general_title', null ) ); if ( ! cbgjClass::setMenu( ( $general_title ? $general_title : $plugin->name ), 'index.php?option=' . $plugin->option . '&task=pluginclass&plugin=' . $plugin->element, $plugin ) ) { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'Plugin menu failed to create!' ), false, true, 'error' ); } break; default: cbgjClass::getIntegrations( 'gj_onMenusIntegrationsSave', array( $type, $categories, $groups, $user, $plugin ), null, 'raw' ); break; } } cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'Menus created successfully!' ), false, true ); } else { cbgjClass::getPluginURL( array( 'menus' ), CBTxt::T( 'No menus to create.' ), false, true, 'error' ); } }