@@ -263,8 +263,8 @@ function _formatStringCallback($match, $setArgs = false) {
263263 // Manually build instead of using userAnchor() because of special 'You' case.
264264 if (function_exists ('topcoderRatingCssClass ' ) &&
265265 function_exists ('topcoderRoleCssStyles ' )) {
266- $ ratingCssClass = topcoderRatingCssClass ($ user-> Name );
267- $ roleCssClass = topcoderRoleCssStyles ($ user-> Name );
266+ $ ratingCssClass = topcoderRatingCssClass ($ user );
267+ $ roleCssClass = topcoderRoleCssStyles ($ user );
268268 $ topcoderStyles =$ ratingCssClass .' ' .$ roleCssClass ;
269269 $ result = anchor (htmlspecialchars ($ name ), userUrl ($ user ), $ topcoderStyles );
270270 } else {
@@ -362,13 +362,15 @@ function watchButton($categoryID) {
362362 /**
363363 * Check group permission for the current user
364364 * @param $groupID
365- * @param null $permission null - any permission for a group
365+ * @param null $category
366+ * @param null $permissionCategoryID
367+ * @param null $permission null - any permission for a group
366368 * @param bool $fullMatch
367369 * @return bool return true if user has a permission
368370 */
369- function checkGroupPermission ($ groupID ,$ permission = null , $ fullMatch = true ) {
371+ function checkGroupPermission ($ groupID , $ category = null , $ permissionCategoryID = null , $ permission = null , $ fullMatch = true ) {
370372 $ groupModel = new GroupModel ();
371- return $ groupModel ->checkPermission (Gdn::session ()->UserID ,$ groupID , $ permission , $ fullMatch );
373+ return $ groupModel ->checkPermission (Gdn::session ()->UserID ,$ groupID , $ category , $ permissionCategoryID , $ permission , $ fullMatch );
372374 }
373375}
374376
@@ -744,3 +746,57 @@ function filtersDropDown($baseUrl, array $filters = [], $extraClasses = '', $def
744746 return $ output ;
745747 }
746748}
749+
750+ if (!function_exists ('filterCountString ' )) {
751+ /**
752+ * This function was moved from 'vanilla/applications/vanilla/views/modules/discussionfilter.php'
753+ * @param $count
754+ * @param string $url
755+ * @param array $options
756+ * @return string
757+ */
758+ function filterCountString ($ count , $ url = '' , $ options = []) {
759+ $ count = countString ($ count , $ url , $ options );
760+ return $ count != '' ? '<span class="Aside"> ' .$ count .'</span> ' : '' ;
761+ }
762+ }
763+
764+ if (!function_exists ('myBookmarksMenuItem ' )) {
765+ /**
766+ *
767+ *
768+ * @param $CountBookmarks
769+ * @return string
770+ */
771+ function myBookmarksMenuItem ($ CountBookmarks ) {
772+ if (!Gdn::session ()->isValid ()) {
773+ return '' ;
774+ }
775+ $ Bookmarked = t ('My Bookmarks ' );
776+ $ Bookmarked .= FilterCountString ($ CountBookmarks , '/discussions/UserBookmarkCount ' );
777+ $ cssClass = 'MyBookmarks ' ;
778+ $ cssClass .= Gdn::controller ()->RequestMethod == 'bookmarked ' ? ' Active ' : '' ;
779+ $ cssClass .= $ CountBookmarks == 0 && Gdn::controller ()->RequestMethod != 'bookmarked ' ? ' hidden ' : '' ;
780+ return sprintf ('<li id="MyBookmarks" class="%s">%s</li> ' , $ cssClass , anchor (sprite ('SpBookmarks ' ).$ Bookmarked , '/discussions/bookmarked ' ));
781+ }
782+ }
783+
784+ if (!function_exists ('myDraftsMenuItem ' )) {
785+ /**
786+ *
787+ *
788+ * @param $CountDrafts
789+ * @return string
790+ */
791+ function myDraftsMenuItem ($ CountDrafts ) {
792+ if (!Gdn::session ()->isValid ()) {
793+ return '' ;
794+ }
795+ $ Drafts = t ('My Drafts ' );
796+ $ Drafts .= FilterCountString ($ CountDrafts , '/drafts ' );
797+ $ cssClass = 'MyDrafts ' ;
798+ $ cssClass .= Gdn::controller ()->ControllerName == 'draftscontroller ' ? ' Active ' : '' ;
799+ $ cssClass .= $ CountDrafts == 0 ? ' hidden ' : '' ;
800+ return sprintf ('<li id="MyDrafts" class="%s">%s</li> ' , $ cssClass , anchor (sprite ('SpMyDrafts ' ).$ Drafts , '/drafts ' ));
801+ }
802+ }
0 commit comments