コード例 #1
0
ファイル: events.php プロジェクト: Jougito/DynWeb
 /**
  * Count total pending event invitations.
  *
  * */
 public function countPending($id)
 {
     $db = $this->getDBO();
     $query = 'SELECT b.id FROM ' . $db->quoteName('#__community_events_members') . ' AS a ' . ' INNER JOIN ' . $db->quoteName('#__community_events') . ' AS b ' . ' ON b.' . $db->quoteName('id') . '=a.' . $db->quoteName('eventid') . ' AND b.' . $db->quoteName('published') . '=' . $db->Quote(1) . ' WHERE a.' . $db->quoteName('memberid') . '=' . $db->Quote($id) . ' AND a.' . $db->quoteName('status') . '=' . $db->Quote(COMMUNITY_EVENT_STATUS_INVITED) . ' ' . ' AND b.' . $db->quoteName('enddate') . '>= NOW()' . ' ORDER BY a.' . $db->quoteName('id') . ' DESC';
     $db->setQuery($query);
     $results = $db->loadObjectList();
     $exclude = array();
     // this event will be excluded because the seats is not available
     if (count($results)) {
         foreach ($results as $result) {
             $event = JTable::getInstance('Event', 'CTable');
             $event->load($result->id);
             if (!CEventHelper::seatsAvailable($event)) {
                 $exclude[] = $event->id;
             }
         }
     }
     $extraSQL = '';
     if (count($exclude) > 0) {
         $exclude = implode(',', $exclude);
         $extraSQL .= ' AND b.id NOT IN (' . $exclude . ')';
     }
     $query = 'SELECT COUNT(*) FROM ' . $db->quoteName('#__community_events_members') . ' AS a ' . ' INNER JOIN ' . $db->quoteName('#__community_events') . ' AS b ' . ' ON b.' . $db->quoteName('id') . '=a.' . $db->quoteName('eventid') . $extraSQL . ' AND b.' . $db->quoteName('published') . '=' . $db->Quote(1) . ' WHERE a.' . $db->quoteName('memberid') . '=' . $db->Quote($id) . ' AND a.' . $db->quoteName('status') . '=' . $db->Quote(COMMUNITY_EVENT_STATUS_INVITED) . ' ' . ' AND b.' . $db->quoteName('enddate') . '>= NOW()' . ' ORDER BY a.' . $db->quoteName('id') . ' DESC';
     $db->setQuery($query);
     if ($db->getErrorNum()) {
         JError::raiseError(500, $db->stderr());
     }
     return $db->loadResult();
 }
コード例 #2
0
ファイル: event.php プロジェクト: joshjim27/jobsglobal
 /**
  * To determine if the button for going, not going, waiting response should be shown
  * @param $event
  */
 public static function showAttendButton($event)
 {
     $my = CFactory::getUser();
     if (!CEventHelper::seatsAvailable($event) && $event->getMemberStatus($my->id) == COMMUNITY_EVENT_STATUS_ATTEND) {
         return true;
     } elseif (!CEventHelper::seatsAvailable($event)) {
         return false;
     }
     //always show for public event
     if ($event->permission == COMMUNITY_PUBLIC_EVENT) {
         return true;
     }
     //else anything below this is public event
     $allowShow = array(1, 2);
     //show if i am the member of the group
     if (in_array($event->getMemberStatus($my->id), $allowShow)) {
         return true;
     }
 }
コード例 #3
0
ファイル: notification.php プロジェクト: Jougito/DynWeb
 public function ajaxGetNotification()
 {
     if (!COwnerHelper::isRegisteredUser()) {
         return $this->ajaxBlockUnregister();
     }
     $json = array();
     $my = CFactory::getUser();
     //$inboxModel       = CFactory::getModel( 'inbox' );
     $friendModel = CFactory::getModel('friends');
     $eventModel = CFactory::getModel('events');
     $groupModel = CFactory::getModel('groups');
     $notiTotal = 0;
     //getting pending event request
     $pendingEvent = $eventModel->getPending($my->id);
     $eventHtml = '';
     $event = JTable::getInstance('Event', 'CTable');
     if (!empty($pendingEvent)) {
         $notiTotal += count($pendingEvent);
         for ($i = 0; $i < count($pendingEvent); $i++) {
             $row = $pendingEvent[$i];
             $row->invitor = CFactory::getUser($row->invited_by);
             $event->load($row->eventid);
             // remove the notification if there is no longer seats available
             if (!CEventHelper::seatsAvailable($event)) {
                 unset($pendingEvent[$i]);
                 continue;
             }
             $row->eventAvatar = $event->getThumbAvatar();
             $row->url = CRoute::_('index.php?option=com_community&view=events&task=viewevent&eventid=' . $row->eventid . false);
             $row->isGroupEvent = $event->contentid ? true : false;
             if ($row->isGroupEvent) {
                 $group = JTable::getInstance('Group', 'CTable');
                 $group->load($event->contentid);
                 $row->groupname = $group->name;
                 $row->grouplink = CUrlHelper::groupLink($group->id);
             }
         }
         $tmpl = new CTemplate();
         $tmpl->set('rows', $pendingEvent);
         $tmpl->setRef('my', $my);
         $eventHtml = $tmpl->fetch('notification.event.invitations');
     }
     //getting pending group request
     $pendingGroup = $groupModel->getGroupInvites($my->id);
     $groupHtml = '';
     $group = JTable::getInstance('Group', 'CTable');
     $groupNotiTotal = 0;
     if (!empty($pendingGroup)) {
         $groupNotiTotal += count($pendingGroup);
         for ($i = 0; $i < count($pendingGroup); $i++) {
             $gRow = $pendingGroup[$i];
             $gRow->invitor = CFactory::getUser($gRow->creator);
             $group->load($gRow->groupid);
             $gRow->name = $group->name;
             $gRow->groupAvatar = $group->getThumbAvatar();
             $gRow->url = CRoute::_('index.php?option=com_community&view=groups&task=viewgroup&groupid=' . $gRow->groupid . false);
         }
         $tmpl = new CTemplate();
         $tmpl->set('gRows', $pendingGroup);
         $tmpl->setRef('my', $my);
         $groupHtml = $tmpl->fetch('notification.group.invitations');
     }
     //geting pending private group join request
     //Find Users Groups Admin
     $allGroups = $groupModel->getAdminGroups($my->id, COMMUNITY_PRIVATE_GROUP);
     $groupMemberApproveHTML = '';
     //Get unApproved member
     if (!empty($allGroups)) {
         foreach ($allGroups as $groups) {
             $member = $groupModel->getMembers($groups->id, 0, false);
             if (!empty($member)) {
                 for ($i = 0; $i < count($member); $i++) {
                     $oRow = $member[$i];
                     $group->load($groups->id);
                     $oRow->groupId = $groups->id;
                     $oRow->groupName = $groups->name;
                     $oRow->groupAvatar = $group->getThumbAvatar();
                     $oRow->url = CRoute::_('index.php?option=com_community&view=groups&task=viewgroup&groupid=' . $group->id . false);
                     $members[] = $member[$i];
                 }
             }
         }
     }
     if (!empty($members)) {
         $tmpl = new CTemplate();
         $tmpl->set('oRows', $members);
         $tmpl->set('my', $my);
         $groupMemberApproveHTML = $tmpl->fetch('notification.group.request');
     }
     //non require action notification
     $itemHtml = '';
     $notifCount = 10;
     $notificationModel = CFactory::getModel('notification');
     $myParams = $my->getParams();
     $notifications = $notificationModel->getNotification($my->id, '0', $notifCount, $myParams->get('lastnotificationlist', ''));
     if (!empty($notifications)) {
         for ($i = 0; $i < count($notifications); $i++) {
             $iRow = $notifications[$i];
             $iRow->actorUser = CFactory::getUser($iRow->actor);
             $iRow->actorAvatar = $iRow->actorUser->getThumbAvatar();
             $iRow->actorName = $iRow->actorUser->getDisplayName();
             $iRow->timeDiff = CTimeHelper::timeLapse(CTimeHelper::getDate($iRow->created));
             $iRow->contentHtml = CContentHelper::injectTags($iRow->content, $iRow->params, true);
             $params = new CParameter($iRow->params);
             $iRow->url = $params->get('url', '');
         }
         $tmpl = new CTemplate();
         $tmpl->set('iRows', $notifications);
         $tmpl->setRef('my', $my);
         $itemHtml = $tmpl->fetch('notification.item');
     }
     $notiHtml = $eventHtml . $groupHtml . $groupMemberApproveHTML . $itemHtml;
     if (empty($notiHtml)) {
         $notiHtml .= '<li>';
         $notiHtml .= JText::_('COM_COMMUNITY_NO_NOTIFICATION');
         $notiHtml .= '</li>';
     }
     $date = JFactory::getDate();
     $myParams->set('lastnotificationlist', $date->toSql());
     $my->save('params');
     $url = CRoute::_('index.php?option=com_community&view=profile&task=notifications');
     $notiHtml .= '<div>';
     $notiHtml .= '<a href="' . $url . '" class="joms-button--neutral joms-button--full">' . JText::_('COM_COMMUNITY_VIEW_ALL') . '</a>';
     $notiHtml .= '</div>';
     $json['title'] = JText::_('COM_COMMUNITY_NOTIFICATIONS');
     $json['html'] = $notiHtml;
     die(json_encode($json));
 }
コード例 #4
0
ファイル: single.php プロジェクト: Jougito/DynWeb
        <!-- Event Approval -->
        <?php 
if ($waitingApproval == COMMUNITY_EVENT_STATUS_REQUESTINVITE) {
    ?>
        <div class="joms-alert--info">
            <span><?php 
    echo JText::_('COM_COMMUNITY_EVENTS_APPROVEL_WAITING');
    ?>
</span>
        </div>
        <?php 
}
?>

        <?php 
if ($isInvited && CEventHelper::seatsAvailable($event)) {
    ?>
        <div id="events-invite-<?php 
    echo $event->id;
    ?>
" class="cInvite cAlert alert-info clearfix">
            <div class="cInvite-Content">
                <div class="cInvite-Message">
                    <?php 
    echo JText::sprintf('COM_COMMUNITY_EVENTS_YOUR_INVITED', $join);
    $test = 1;
    ?>
                </div>
                <?php 
    if ($friendsCount) {
        ?>
コード例 #5
0
ファイル: list.php プロジェクト: Jougito/DynWeb
            ?>
                                </a>
                            <?php 
        } elseif ($waitingApproval) {
            ?>
                                <a href="javascript:" class="joms-button--primary joms-button--small">
                                    <?php 
            echo JText::_('COM_COMMUNITY_EVENTS_PENDING_INVITATIONS');
            ?>
                                </a>
                            <?php 
        }
        ?>

                            <?php 
        if (!$isPastEvent && CEventHelper::seatsAvailable($event) && ($event->allowinvite || $event->isAdmin($my->id) || $canInvite)) {
            ?>
                                <a href="javascript:" class="joms-button--secondary joms-button--small" onclick="joms.api.eventInvite('<?php 
            echo $event->id;
            ?>
', '<?php 
            echo $isGroupEvent ? "group" : "";
            ?>
')">
                                    <?php 
            echo JText::_($isGroupEvent ? 'COM_COMMUNITY_EVENT_INVITE_GROUP_MEMBERS' : 'COM_COMMUNITY_TAB_INVITE');
            ?>
                                </a>
                            <?php 
        }
        ?>
コード例 #6
0
ファイル: miniheader.php プロジェクト: joshjim27/jobsglobal
                    echo CRoute::getURI();
                    ?>
#joms-icon-arrow-down"/>
                                    </svg>
                                <?php 
                }
            }
        }
        ?>
                            </a>
                        <?php 
    }
    ?>

                        <?php 
    if (!$isPastEvent && CEventHelper::seatsAvailable($event) && ($event->allowinvite || $event->isAdmin($my->id) || COwnerHelper::isCommunityAdmin())) {
        ?>
                            <a href="javascript:" class="joms-focus__button--add joms-button--secondary" onclick="joms.api.eventInvite('<?php 
        echo $event->id;
        ?>
', '<?php 
        echo $isGroupEvent ? "group" : "";
        ?>
')">
                                <?php 
        echo JText::_($isGroupEvent ? 'COM_COMMUNITY_EVENT_INVITE_GROUP_MEMBERS' : 'COM_COMMUNITY_TAB_INVITE');
        ?>
                            </a>
                        <?php 
    }
    ?>
コード例 #7
0
ファイル: events.php プロジェクト: joshjim27/jobsglobal
 /**
  * Ajax function to join an event invitation
  *
  * */
 public function ajaxJoinInvitation($eventId)
 {
     if (!COwnerHelper::isRegisteredUser()) {
         return $this->ajaxBlockUnregister();
     }
     $json = array();
     $my = CFactory::getUser();
     $filter = JFilterInput::getInstance();
     $eventId = $filter->clean($eventId, 'int');
     // Get events model
     $model = CFactory::getModel('events');
     $event = JTable::getInstance('Event', 'CTable');
     // Check the event availability
     if ($event->load($eventId)) {
         $guest = JTable::getInstance('EventMembers', 'CTable');
         $keys = array('eventId' => $event->id, 'memberId' => $my->id);
         $guest->load($keys);
         //we must make sure the seats are available before letting user join
         if (!CEventHelper::seatsAvailable($event)) {
             return false;
         }
         // Set status to "CONFIRMED"
         $guest->status = COMMUNITY_EVENT_STATUS_ATTEND;
         $guest->store();
         // Update event stats count
         $event->updateGuestStats();
         $event->store();
         $handler = CEventHelper::getHandler($event);
         // Activity stream purpose if the event is a public event
         if ($handler->isPublic()) {
             $actor = $my->id;
             $target = 0;
             $content = '';
             $cid = $event->id;
             $app = 'events';
             $act = $handler->getActivity('events.join', $actor, $target, $content, $cid, $app);
             $act->eventid = $event->id;
             $params = new CParameter('');
             $action_str = 'events.join';
             $params->set('eventid', $event->id);
             $params->set('action', $action_str);
             $params->set('event_url', 'index.php?option=com_community&view=events&task=viewevent&eventid=' . $event->id);
             // Add activity logging
             CActivityStream::add($act, $params->toString());
         }
         $url = $handler->getFormattedLink('index.php?option=com_community&view=events&task=viewevent&eventid=' . $event->id);
         $json['success'] = true;
         $json['message'] = JText::sprintf('COM_COMMUNITY_EVENTS_ACCEPTED', $event->title, $url);
     } else {
         $json['error'] = JText::_('COM_COMMUNITY_EVENTS_DELETED_ERROR');
     }
     $this->cacheClean(array(COMMUNITY_CACHE_TAG_EVENTS, COMMUNITY_CACHE_TAG_ACTIVITIES));
     die(json_encode($json));
 }