public function getUserPipelineEvents($userid) { $db = JFactory::getDBO(); // Entries for this user only $query = 'SELECT `id`' . ' FROM #__acctexp_displaypipeline' . ' WHERE `userid` = \'' . $userid . '\' AND `only_user` = \'1\''; $db->setQuery($query); $events = xJ::getDBArray($db); // Entries for all users $query = 'SELECT `id`' . ' FROM #__acctexp_displaypipeline' . ' WHERE `only_user` = \'0\''; $db->setQuery($query); $events = array_merge($events, xJ::getDBArray($db)); $return = ''; if (empty($events)) { return $return; } foreach ($events as $eventid) { $displayPipeline = new displayPipeline(); $displayPipeline->load($eventid); if ($displayPipeline->id) { // If expire & expired -> delete if ($displayPipeline->expire) { $expstamp = strtotime($displayPipeline->expstamp); if ($expstamp - (int) gmdate('U') < 0) { $displayPipeline->delete(); continue; } } // If displaymax exceeded -> delete $displayremain = $displayPipeline->displaymax - $displayPipeline->displaycount; if ($displayremain <= 0) { $displayPipeline->delete(); continue; } // If this can only be displayed once per user, prevent it from being displayed again if ($displayPipeline->once_per_user) { $params = $displayPipeline->params; if (isset($displayPipeline->params['displayedto'])) { $users = $displayPipeline->params['displayedto']; if (in_array($userid, $users)) { continue; } else { $users[] = $userid; $displayPipeline->params['displayedto'] = $users; } } } // Ok, now append text $return .= stripslashes($displayPipeline->displaytext); // Update display if at least one display would remain if ($displayremain > 1) { $displayPipeline->displaycount = $displayPipeline->displaycount + 1; $displayPipeline->check(); $displayPipeline->store(); } else { $displayPipeline->delete(); } } } return $return; }