本文整理汇总了PHP中Q_Request::slotName方法的典型用法代码示例。如果您正苦于以下问题:PHP Q_Request::slotName方法的具体用法?PHP Q_Request::slotName怎么用?PHP Q_Request::slotName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Q_Request
的用法示例。
在下文中一共展示了Q_Request::slotName方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Streams_participating_response
function Streams_participating_response()
{
if (!Q_Request::isAjax()) {
return;
}
$max_limit = Q_Config::expect('Streams', 'db', 'limits', 'participating');
$user = Users::loggedInUser(true);
$type = Streams::requestedType();
$limit = Streams::requestedField('limit', false, $max_limit);
if ($limit > $max_limit) {
throw new Q_Exception("limit is too large, must be <= {$max_limit}");
}
$offset = Streams::requestedField('offset', false, 0);
$order = Streams::requestedField('order', false, true);
$participating = array();
$q = Streams_Participating::select('*')->where(array('userId' => $user->id));
if ($type) {
$q = $q->where(array('streamName' => new Db_Range($type . '/', true, false, true)));
}
if ($limit) {
$q = $q->limit($limit, $offset);
}
if ($order) {
$q = $q->orderBy('updatedTime', false);
}
$res_participating = $q->fetchDbRows();
foreach ($res_participating as $part) {
$part_safe = $part->exportArray();
if (isset($part_safe)) {
$participating[] = $part_safe;
}
}
Q_Response::setSlot('participating', $participating);
if (!Q_Request::slotName('streams')) {
return;
}
$res_streams = array();
$streamNames = array();
foreach ($res_participating as $p) {
$streamNames[$p->publisherId][] = $p->streamName;
}
foreach ($streamNames as $p_id => $names) {
$res_streams[$p_id] = Streams::fetch($user->id, $p_id, $names);
}
$streams = array();
$o = array('asUserId' => $user->id);
foreach ($res_streams as $publisherId => $streams_array) {
if (!empty($streams_array)) {
$streams[$publisherId] = array();
foreach ($streams_array as $streamName => $stream) {
$streams[$publisherId][$streamName] = $stream->exportArray($o);
}
}
}
Q_Response::setSlot('streams', $streams);
}
示例2: Users_contact_post
/**
* Adds contacts to the system. Fills the "contacts" slot.
* @param {array} $_REQUEST
* @param {string} $_REQUEST.label The label of the contact
* @param {string} $_REQUEST.contactUserId The contactUserId of the contact
* @param {string} [$_REQUEST.nickname] The nickname of the contact
* @param {string} [$_REQUEST.userId=Users::loggedInUser(true)->id] You can override the user id, if another plugin adds a hook that allows you to do this
*/
function Users_contact_post($params = array())
{
if (Q_Request::slotName('batch') or Q_Request::slotName('contacts')) {
return;
}
$req = array_merge($_REQUEST, $params);
Q_Valid::requireFields(array('label', 'contactUserId'), $req, true);
$loggedInUserId = Users::loggedInUser(true)->id;
$userId = Q::ifset($req, 'userId', $loggedInUserId);
$contactUserId = $req['contactUserId'];
$nickname = Q::ifset($req, 'nickname', null);
$contacts = Users_Contact::addContact($userId, $req['label'], $contactUserId, $nickname);
Q_Response::setSlot('contacts', Db::exportArray($contacts));
}
示例3: Streams_related_response
function Streams_related_response()
{
if (!Q_Request::slotName('relations') and !Q_Request::slotName('streams')) {
return;
}
$user = Users::loggedInUser();
$asUserId = $user ? $user->id : '';
$publisherId = Streams::requestedPublisherId(true);
$streamName = Streams::requestedName(true, 'original');
$isCategory = !empty($_REQUEST['isCategory']);
$slotNames = Q_Request::slotNames();
$streams_requested = in_array('relatedStreams', $slotNames);
$options = array('relationsOnly' => !$streams_requested, 'orderBy' => !empty($_REQUEST['ascending']));
if (isset($_REQUEST['limit'])) {
$options['limit'] = $_REQUEST['limit'];
}
if (isset($_REQUEST['offset'])) {
$options['offset'] = $_REQUEST['offset'];
}
if (isset($_REQUEST['min'])) {
$options['min'] = $_REQUEST['min'];
}
if (isset($_REQUEST['max'])) {
$options['max'] = $_REQUEST['max'];
}
if (isset($_REQUEST['type'])) {
$options['type'] = $_REQUEST['type'];
}
if (isset($_REQUEST['prefix'])) {
$options['prefix'] = $_REQUEST['prefix'];
}
$result = Streams::related($asUserId, $publisherId, $streamName, $isCategory, $options);
if ($streams_requested) {
$rel = Db::exportArray($result[0], array('numeric' => true));
} else {
$rel = Db::exportArray($result, array('numeric' => true));
}
if (!empty($_REQUEST['omitRedundantInfo'])) {
if ($isCategory) {
foreach ($rel as &$r) {
unset($r['toPublisherId']);
unset($r['toStreamName']);
}
} else {
foreach ($rel as &$r) {
unset($r['fromPublisherId']);
unset($r['fromStreamName']);
}
}
}
Q_Response::setSlot('relations', $rel);
if (!$streams_requested) {
return;
}
$streams = $result[1];
$arr = Db::exportArray($streams, array('numeric' => true));
foreach ($arr as $k => $stream) {
if (!$stream) {
continue;
}
$s = $streams[$stream['name']];
$arr[$k]['access'] = array('readLevel' => $s->get('readLevel', $s->readLevel), 'writeLevel' => $s->get('writeLevel', $s->writeLevel), 'adminLevel' => $s->get('adminLevel', $s->adminLevel));
}
Q_Response::setSlot('relatedStreams', $arr);
$stream = $result[2];
if (is_array($stream)) {
Q_Response::setSlot('streams', Db::exportArray($stream));
return;
} else {
if (is_object($stream)) {
Q_Response::setSlot('stream', $stream->exportArray());
} else {
Q_Response::setSlot('stream', false);
}
}
if (!empty($_REQUEST['messages'])) {
$max = -1;
$limit = $_REQUEST['messages'];
$messages = false;
$type = isset($_REQUEST['messageType']) ? $_REQUEST['messageType'] : null;
if ($stream->testReadLevel('messages')) {
$messages = Db::exportArray($stream->getMessages(compact('type', 'max', 'limit')));
}
Q_Response::setSlot('messages', $messages);
}
if (!empty($_REQUEST['participants'])) {
$limit = $_REQUEST['participants'];
$offset = -1;
$participants = false;
if ($stream->testReadLevel('participants')) {
$participants = Db::exportArray($stream->getParticipants(compact('limit', 'offset')));
}
Q_Response::setSlot('participants', $participants);
}
}
示例4: Streams_stream_response
/**
* Used to get a stream
*
* @param {array} $_REQUEST
* @param {string} $_REQUEST.publisherId Required
* @param {string} $_REQUEST.streamName Required streamName or name
* @param {integer} [$_REQUEST.messages] optionally pass a number here to fetch latest messages
* @param {integer} [$_REQUEST.participants] optionally pass a number here to fetch participants
* @return {void}
*/
function Streams_stream_response()
{
// this handler is only for GET requests
if (Q_Request::method() !== 'GET') {
return null;
}
$publisherId = Streams::requestedPublisherId(true);
$name = Streams::requestedName(true);
$fields = Streams::requestedFields();
$user = Users::loggedInUser();
$userId = $user ? $user->id : "";
if (isset(Streams::$cache['stream'])) {
$stream = Streams::$cache['stream'];
} else {
$streams = Streams::fetch($userId, $publisherId, $name, $fields ? $fields : '*', array('withParticipant' => true));
if (Q_Request::slotName('streams')) {
Q_Response::setSlot('streams', Db::exportArray($streams));
}
if (empty($streams)) {
if (Q_Request::slotName('stream')) {
Q_Response::setSlot('stream', null);
Q_Response::setSlot('messages', null);
Q_Response::setSlot('participants', null);
Q_Response::setSlot('related', null);
Q_Response::setSlot('relatedTo', null);
} else {
if (!Q_Request::slotName('streams')) {
$app = Q_Config::expect('Q', 'app');
Q_Dispatcher::forward("{$app}/notFound");
}
}
return null;
}
// The rest of the data is joined only on the first stream
Streams::$cache['stream'] = $stream = reset($streams);
}
if (empty($stream)) {
if (Q_Request::slotName('stream')) {
Q_Response::setSlot('stream', null);
}
return null;
}
if ($userId && !empty($_REQUEST['join'])) {
$stream->join();
// NOTE: one of the rare times we may change state in a response handler
}
if (Q_Request::slotName('stream')) {
Q_Response::setSlot('stream', $stream->exportArray());
}
if (!empty($_REQUEST['messages'])) {
$max = -1;
$limit = $_REQUEST['messages'];
$messages = false;
$type = isset($_REQUEST['messageType']) ? $_REQUEST['messageType'] : null;
if ($stream->testReadLevel('messages')) {
$messages = Db::exportArray($stream->getMessages(compact('type', 'max', 'limit')));
}
Q_Response::setSlot('messages', $messages);
}
if (!empty($_REQUEST['participants'])) {
$limit = $_REQUEST['participants'];
$participants = false;
if ($stream->testReadLevel('participants')) {
$participants = Db::exportArray($stream->getParticipants(compact('limit', 'offset')));
}
Q_Response::setSlot('participants', $participants);
}
}