本文整理汇总了PHP中Streams::unrelate方法的典型用法代码示例。如果您正苦于以下问题:PHP Streams::unrelate方法的具体用法?PHP Streams::unrelate怎么用?PHP Streams::unrelate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Streams
的用法示例。
在下文中一共展示了Streams::unrelate方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Streams_interest_delete
/**
* Used to create a new stream
*
* @param {array} $_REQUEST
* @param {String} [$_REQUEST.title] Required. The title of the interest.
* @param {String} [$_REQUEST.publisherId] Optional. Defaults to the app name.
* @return {void}
*/
function Streams_interest_delete()
{
$user = Users::loggedInUser(true);
$title = Q::ifset($_REQUEST, 'title', null);
if (!isset($title)) {
throw new Q_Exception_RequiredField(array('field' => 'title'));
}
$app = Q_Config::expect('Q', 'app');
$publisherId = Q::ifset($_REQUEST, 'publisherId', $app);
$name = 'Streams/interest/' . Q_Utils::normalize($title);
$stream = Streams::fetchOne(null, $publisherId, $name);
if (!$stream) {
throw new Q_Exception_MissingRow(array('table' => 'stream', 'criteria' => Q::json_encode(compact('publisherId', 'name'))));
}
$miPublisherId = $user->id;
$miName = 'Streams/user/interests';
$myInterests = Streams::fetchOne($user->id, $miPublisherId, $miName);
if (!$myInterests) {
throw new Q_Exception_MissingRow(array('table' => 'stream', 'criteria' => Q::json_encode(array('publisherId' => $miPublisherId, 'name' => $miName))));
}
$stream->leave();
Streams::unrelate($user->id, $user->id, 'Streams/user/interests', 'Streams/interest', $publisherId, $name, array('adjustWeights' => true));
Q_Response::setSlot('publisherId', $publisherId);
Q_Response::setSlot('streamName', $name);
/**
* Occurs when the logged-in user has successfully removed an interest via HTTP
* @event Streams/interest/delete {after}
* @param {string} publisherId The publisher of the interest stream
* @param {string} title The title of the interest
* @param {Users_User} user The logged-in user
* @param {Streams_Stream} stream The interest stream
* @param {Streams_Stream} myInterests The user's "Streams/user/interests" stream
*/
Q::event("Streams/interest/remove", compact('publisherId', 'title', 'subscribe', 'user', 'stream', 'myInterests'), 'after');
}
示例2: Streams_related_delete
function Streams_related_delete($params)
{
$user = Users::loggedInUser(true);
$asUserId = $user->id;
$toPublisherId = $_REQUEST['toPublisherId'];
$toStreamName = $_REQUEST['toStreamName'];
$type = $_REQUEST['type'];
$fromPublisherId = $_REQUEST['fromPublisherId'];
$fromStreamName = $_REQUEST['fromStreamName'];
// TODO: When we start supporting multiple hosts, this will have to be rewritten
// to make servers communicate with one another when establishing relations between streams
if (!($stream = Streams::fetch($asUserId, $toPublisherId, $toStreamName))) {
Q_Response::setSlot('result', false);
}
if (!($stream = Streams::fetch($asUserId, $fromPublisherId, $fromStreamName))) {
Q_Response::setSlot('result', false);
}
Streams::unrelate($asUserId, $toPublisherId, $toStreamName, $type, $fromPublisherId, $fromStreamName);
Q_Response::setSlot('result', true);
}
示例3: unrelateFrom
function unrelateFrom($fromStream, $type, $asUserId = null, $options = array())
{
return Streams::unrelate($asUserId, $this->publisherId, $this->name, $type, $fromStream->publisherId, $fromStream->name, $options);
}
示例4: close
/**
* Closes a stream, which prevents anyone from posting messages to it
* unless they have WRITE_LEVEL >= "close", as well as attempting to remove
* all relations to other streams. A "cron job" can later go and delete
* closed streams. The reason you should avoid deleting streams right away
* is that other subscribers may still want to receive the last messages
* posted to the stream.
* @method close
* @param {string} $asUserId The id of the user who would be closing the stream
* @param {string} $publisherId The id of the user publishing the stream
* @param {string} $streamName The name of the stream
* @param {array} [$options=array()] Can include "skipAccess"
* @static
*/
static function close($asUserId, $publisherId, $streamName, $options = array())
{
$stream = new Streams_Stream();
$stream->publisherId = $publisherId;
$stream->name = $streamName;
if (!$stream->retrieve()) {
throw new Q_Exception_MissingRow(array('table' => 'stream', 'criteria' => "{publisherId: '{$publisherId}', name: '{$streamName}'}"));
}
// Authorization check
if (empty($options['skipAccess'])) {
if ($asUserId !== $publisherId) {
$stream->calculateAccess($asUserId);
if (!$stream->testWriteLevel('close')) {
throw new Users_Exception_NotAuthorized();
}
}
}
// Clean up relations from other streams to this category
list($relations, $related) = Streams::related($asUserId, $stream->publisherId, $stream->name, true);
foreach ($relations as $r) {
try {
Streams::unrelate($asUserId, $r->fromPublisherId, $r->fromStreamName, $r->type, $stream->publisherId, $stream->name);
} catch (Exception $e) {
}
}
// Clean up relations from this stream to categories
list($relations, $related) = Streams::related($asUserId, $stream->publisherId, $stream->name, false);
foreach ($relations as $r) {
try {
Streams::unrelate($asUserId, $r->toPublisherId, $r->toStreamName, $r->type, $stream->publisherId, $stream->name);
} catch (Exception $e) {
}
}
$result = false;
try {
$db = $stream->db();
$stream->closedTime = $closedTime = $db->toDateTime($db->getCurrentTimestamp());
if ($stream->save()) {
$stream->post($asUserId, array('type' => 'Streams/closed', 'content' => '', 'instructions' => compact('closedTime')), true);
$result = true;
}
} catch (Exception $e) {
throw $e;
}
return $result;
}