/** * render frontend event attending * * @param AttendanceTable[] $rows * @param cbPageNav $pageNav * @param bool $searching * @param array $input * @param EventTable $event * @param UserTable $user * @param CBplug_cbgroupjiveevents $plugin * @return string */ static function showAttending( $rows, $pageNav, $searching, $input, $event, $user, $plugin ) { global $_CB_framework, $_PLUGINS; initToolTip(); $canSearch = ( $plugin->params->get( 'groups_events_attending_search', 0 ) && ( $searching || $pageNav->total ) ); $returnUrl = CBGroupJive::getReturn( true, true ); if ( ! $returnUrl ) { $returnUrl = $_CB_framework->pluginClassUrl( $plugin->_gjPlugin->element, false, array( 'action' => 'groups', 'func' => 'show', 'id' => (int) $event->group()->get( 'id' ) ) ); } $return = null; $_PLUGINS->trigger( 'gj_onBeforeDisplayAttending', array( &$return, &$rows, $event, $user ) ); $return .= '<div class="gjEventAttending">' . '<form action="' . $_CB_framework->pluginClassUrl( $plugin->element, true, array( 'action' => 'events', 'func' => 'attending', 'id' => (int) $event->get( 'id' ) ) ) . '" method="post" name="gjEventAttendingForm" id="gjEventAttendingForm" class="gjEventAttendingForm">' . '<div class="gjEventAttendingTitle page-header"><h3>' . htmlspecialchars( $event->get( 'title' ) ) . '</h3></div>'; if ( $canSearch ) { $return .= '<div class="gjHeader gjEventAttendingHeader row">' . '<div class="col-sm-offset-8 col-sm-4 text-right">' . '<div class="input-group">' . '<span class="input-group-addon"><span class="fa fa-search"></span></span>' . $input['search'] . '</div>' . '</div>' . '</div>'; } $return .= '<div class="gjEventAttendingRows">'; if ( $rows ) foreach ( $rows as $row ) { $cbUser = CBuser::getInstance( (int) $row->get( 'user_id' ), false ); $return .= '<div class="gjEventAttendingUser gjContainerBox img-thumbnail">' . '<div class="gjContainerBoxHeader">' . '<div class="gjContainerBoxCanvas text-left">' . $cbUser->getField( 'canvas', null, 'html', 'none', 'profile', 0, true ) . '</div>' . '<div class="gjContainerBoxLogo text-left">' . $cbUser->getField( 'avatar', null, 'html', 'none', 'list', 0, true ) . '</div>' . '</div>' . '<div class="gjContainerBoxBody text-left">' . '<div class="gjContainerBoxTitle">' . $cbUser->getField( 'onlinestatus', null, 'html', 'none', 'list', 0, true, array( '_imgMode' => 1 ) ) . ' <strong>' . $cbUser->getField( 'formatname', null, 'html', 'none', 'list', 0, true ) . '</strong>' . '</div>' . '</div>' . '</div>'; } else { if ( $searching ) { $return .= CBTxt::T( 'No event guest search results found.' ); } else { $return .= CBTxt::T( 'This event currently has no guests.' ); } } $return .= '</div>'; if ( $plugin->params->get( 'groups_events_attending_paging', 1 ) && ( $pageNav->total > $pageNav->limit ) ) { $return .= '<div class="gjEventAttendingPaging text-center">' . $pageNav->getListLinks() . '</div>'; } $return .= $pageNav->getLimitBox( false ) . '<div class="form-group cb_form_line clearfix text-right">' . '<input type="button" value="' . htmlspecialchars( CBTxt::T( 'Back' ) ) . '" class="gjButton gjButtonCancel btn btn-default" onclick="window.location.href = \'' . $returnUrl . '\';" />' . '</div>' . '</form>' . '</div>'; $_PLUGINS->trigger( 'gj_onAfterDisplayAttending', array( &$return, &$rows, $event, $user ) ); echo $return; }
/** * render frontend event activity * * @param CB\Plugin\Activity\Table\ActivityTable $row * @param string $title * @param string $message * @param CB\Plugin\Activity\Activity $stream * @param EventTable $event * @param cbgjEventsPlugin $plugin * @return string */ static function showEventActivity( $row, &$title, &$message, $stream, $event, $plugin ) { global $_CB_framework; $title = CBTxt::T( 'GROUP_EVENT_ACTIVITY_TITLE', 'scheduled an event in [group]', array( '[group]' => '<strong><a href="' . $_CB_framework->pluginClassUrl( $plugin->_gjPlugin->element, true, array( 'action' => 'groups', 'func' => 'show', 'id' => (int) $event->group()->get( 'id' ) ) ) . '">' . htmlspecialchars( CBTxt::T( $event->group()->get( 'name' ) ) ) . '</a></strong>' ) ); $user = CBuser::getMyUserDataInstance(); $userStatus = CBGroupJive::getGroupStatus( $user, $event->group() ); $eventOwner = ( $user->get( 'id' ) == $event->get( 'user_id' ) ); $showAddress = $plugin->params->get( 'groups_events_address', 1 ); $address = htmlspecialchars( $event->get( 'location' ) ); if ( $showAddress ) { if ( $event->get( 'address' ) ) { $mapUrl = CBTxt::T( 'GROUP_EVENT_ADDRESS_MAP_URL', 'https://www.google.com/maps/place/[address]', array( '[location]' => urlencode( $event->get( 'location' ) ), '[address]' => urlencode( $event->get( 'address' ) ) ) ); } else { $mapUrl = CBTxt::T( 'GROUP_EVENT_LOCATION_MAP_URL', 'https://www.google.com/maps/search/[location]', array( '[location]' => urlencode( $event->get( 'location' ) ), '[address]' => urlencode( $event->get( 'address' ) ) ) ); } if ( $mapUrl ) { $address = '<a href="' . htmlspecialchars( $mapUrl ) . '" target="_blank" rel="nofollow">' . $address . '</a>'; } } $canAttend = ( ( ! $eventOwner ) && ( $event->status() != 1 ) && ( ! $event->get( '_attending' ) ) && ( $userStatus >= 1 ) && ( ( ! $event->get( 'limit' ) ) || ( $event->get( 'limit' ) && ( $event->get( '_guests' ) < $event->get( 'limit' ) ) ) ) ); $return = '<div class="gjEventActivity">' . '<div class="gjGroupEventsRow row' . ( $event->status() == 1 ? ' gjGroupEventExpired' : ( $event->status() == 2 ? ' gjGroupEventActive' : null ) ) . '">' . '<div class="gjGroupEventCalendar col-md-2 hidden-sm hidden-xs">' . '<div class="panel panel-default text-center">' . '<div class="gjGroupEventMonth panel-body">' . cbFormatDate( $event->get( 'start' ), true, false, 'M' ) . '</div>' . '<div class="gjGroupEventDay panel-footer">' . cbFormatDate( $event->get( 'start' ), true, false, 'j' ) . '</div>' . '</div>' . '</div>' . '<div class="gjGroupEventContainer col-md-10 col-sm-12 col-xs-12">' . '<div class="panel ' . ( $event->status() == 1 ? 'panel-warning' : ( $event->status() == 2 ? 'panel-primary' : 'panel-default' ) ) . '">' . '<div class="gjGroupEventHeader panel-heading">' . '<div class="row">' . '<div class="gjGroupEventTitle ' . ( $canAttend ? 'col-sm-8' : 'col-sm-12' ) . '">' . htmlspecialchars( $event->get( 'title' ) ) . '</div>'; if ( $canAttend ) { $return .= '<div class="gjGroupEventMenu col-sm-4 text-right">' . '<button type="button" onclick="window.location.href=\'' . $_CB_framework->pluginClassUrl( $plugin->element, true, array( 'action' => 'events', 'func' => 'attend', 'id' => (int) $event->get( 'id' ) ) ) . '\';" class="gjButton gjButtonAttend btn btn-xs btn-success">' . CBTxt::T( 'Attend' ) . '</button>' . '</div>'; } $return .= '</div>' . '</div>' . '<div class="gjGroupEventDetails panel-body small">'; if ( $event->status() == 1 ) { $return .= '<div class="gjGroupEventNotice text-warning text-right">' . CBTxt::T( 'This event has ended.' ) . '</div>'; } elseif ( $event->status() == 2 ) { if ( $event->get( 'end' ) ) { $return .= '<div class="gjGroupEventNotice text-primary text-right">' . CBTxt::T( 'GROUP_EVENT_ENDS_IN', 'This event is currently in progress and ends in [timeago].', array( '[timeago]' => cbFormatDate( $event->get( 'end' ), true, 'exacttimeago' ) ) ) . '</div>'; } else { $return .= '<div class="gjGroupEventNotice text-primary text-right">' . CBTxt::T( 'This event is currently in progress.' ) . '</div>'; } } else { $return .= '<div class="gjGroupEventNotice text-right">' . CBTxt::T( 'GROUP_EVENT_STARTS_IN', 'This event starts in [timeago].', array( '[timeago]' => cbFormatDate( $event->get( 'start' ), true, 'exacttimeago' ) ) ) . '</div>'; } $return .= '<div class="gjGroupEventDate">' . '<span class="gjGroupEventIcon fa fa-clock-o text-center"></span> ' . $event->date() . '</div>' . '<div class="gjGroupEventLocation">' . '<span class="gjGroupEventIcon fa fa-map-marker text-center"></span> ' . $address . '</div>' . '<div class="gjGroupEventAttending">' . '<div class="gjGroupEventGuests">' . '<span class="gjGroupEventIcon fa fa-users text-center"></span> ' . '<a href="' . htmlspecialchars( $_CB_framework->pluginClassUrl( $plugin->element, false, array( 'action' => 'events', 'func' => 'attending', 'id' => (int) $event->get( 'id' ), 'return' => CBGroupJive::getReturn() ) ) ) . '">' . ( $event->get( 'limit' ) ? CBTxt::T( 'GROUP_GUESTS_COUNT_LIMITED', '%%COUNT%% of [limit] Guest|%%COUNT%% of [limit] Guests', array( '%%COUNT%%' => (int) $event->get( '_guests', 0 ), '[limit]' => (int) $event->get( 'limit' ) ) ) : CBTxt::T( 'GROUP_GUESTS_COUNT', '%%COUNT%% Guest|%%COUNT%% Guests', array( '%%COUNT%%' => (int) $event->get( '_guests', 0 ) ) ) ) . '</a>' . '</div>' . '</div>' . '</div>' . '<div class="gjGroupEventDescription panel-footer">' . '<div class="cbMoreLess">' . '<div class="cbMoreLessContent">' . ( $plugin->params->get( 'groups_events_content_plugins', 0 ) ? Application::Cms()->prepareHtmlContentPlugins( $event->get( 'event' ) ) : $event->get( 'event' ) ) . '</div>' . '<div class="cbMoreLessOpen fade-edge hidden">' . '<a href="javascript: void(0);" class="cbMoreLessButton">' . CBTxt::T( 'See More' ) . '</a>' . '</div>' . '</div>' . '</div>' . '</div>' . '</div>' . '</div>' . '</div>'; return $return; }