本文整理汇总了PHP中Q::event方法的典型用法代码示例。如果您正苦于以下问题:PHP Q::event方法的具体用法?PHP Q::event怎么用?PHP Q::event使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Q
的用法示例。
在下文中一共展示了Q::event方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Users_label_put
/**
* Edits a label in the system. Fills the "label" (and possibly "icon") slot.
* @param {array} $_REQUEST
* @param {string} $_REQUEST.label The label
* @param {string} [$_REQUEST.title] The title of the label
* @param {string} [$_REQUEST.icon] Optional path to an icon
* @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_label_put($params = array())
{
$req = array_merge($_REQUEST, $params);
Q_Request::requireFields(array('label'), $req, true);
$loggedInUserId = Users::loggedInUser(true)->id;
$userId = Q::ifset($req, 'userId', $loggedInUserId);
$l = $req['label'];
$icon = Q::ifset($req, 'icon', null);
$title = Q::ifset($req, 'title', null);
Users::canManageLabels($loggedInUserId, $userId, $l, true);
$label = new Users_Label();
$label->userId = $userId;
$label->label = $l;
if (!$label->retrieve()) {
throw new Q_Exception_MissingRow(array('table' => 'Label', 'criteria' => json_encode($label->fields)));
}
if (isset($title)) {
$label->title = $title;
}
if (is_array($icon)) {
// Process any icon data
$icon['path'] = 'uploads/Users';
$icon['subpath'] = "{$userId}/label/{$label}/icon";
$data = Q::event("Q/image/post", $icon);
Q_Response::setSlot('icon', $data);
$label->icon = Q_Request::baseUrl() . '/' . $data[''];
}
$label->save();
Q_Response::setSlot('label', $label->exportArray());
}
示例2: 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');
}
示例3: Overlay_before_Q_responseExtras
function Overlay_before_Q_responseExtras()
{
$app = Q_Config::expect('Q', 'app');
Q_Response::addStylesheet('plugins/Q/css/Q.css');
Q_Response::addStylesheet('css/Overlay.css', '@end');
Q_Response::addStylesheet('http://fonts.googleapis.com/css?family=Open+Sans:400italic,400,300,700');
if (Q_Config::get('Q', 'firebug', false)) {
Q_Response::addScript("https://getfirebug.com/firebug-lite-debug.js");
}
Q_Response::addScript('js/Overlay.js');
Q_Response::setMeta("title", "Customize My Pic!");
Q_Response::setMeta("description", "Make a statement on Facebook by customizing your profile picture, even from your smartphone.");
Q_Response::setMeta("image", Q_Html::themedUrl('img/icon/icon.png'));
if (Q_Request::isIE()) {
header("X-UA-Compatible", "IE=edge");
}
header('Vary: User-Agent');
// running an event for loading action-specific extras (if there are any)
$uri = Q_Dispatcher::uri();
$module = $uri->module;
$action = $uri->action;
$event = "{$module}/{$action}/response/responseExtras";
if (Q::canHandle($event)) {
Q::event($event);
}
}
示例4: Users_label_post
/**
* Adds a label to the system. Fills the "label" (and possibly "icon") slot.
* @param {array} $_REQUEST
* @param {string} $_REQUEST.title The title of the label
* @param {string} [$_REQUEST.label] You can override the label to use
* @param {string} [$_REQUEST.icon] Optional path to an icon
* @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_label_post($params = array())
{
$req = array_merge($_REQUEST, $params);
Q_Request::requireFields(array('title'), $req, true);
$loggedInUserId = Users::loggedInUser(true)->id;
$userId = Q::ifset($req, 'userId', $loggedInUserId);
$icon = Q::ifset($req, 'icon', null);
$title = $req['title'];
$l = Q::ifset($req, 'label', 'Users/' . Q_Utils::normalize($title));
Users::canManageLabels($loggedInUserId, $userId, $l, true);
$label = new Users_Label();
$label->userId = $userId;
$label->label = $l;
if ($label->retrieve()) {
throw new Users_Exception_LabelExists();
}
$label->title = $title;
if (is_array($icon)) {
// Process any icon that was posted
$icon['path'] = 'uploads/Users';
$icon['subpath'] = "{$userId}/label/{$label}/icon";
$data = Q::event("Q/image/post", $icon);
Q_Response::setSlot('icon', $data);
$label->icon = Q_Request::baseUrl() . '/' . $data[''];
} else {
$label->icon = 'default';
}
$label->save();
Q_Response::setSlot('label', $label->exportArray());
}
示例5: Q_noModule
/**
* Override Q/noModule handler.
* just goes on to render our app's response,
* which will echo a 404 view.
*/
function Q_noModule($params)
{
header("HTTP/1.0 404 Not Found");
Q_Dispatcher::uri()->module = Q_Config::expect('Q', 'app');
Q_Dispatcher::uri()->action = 'notFound';
Q::event('Q/response', $params);
}
示例6: Users_account_validate
function Users_account_validate()
{
Q_Valid::nonce(true);
$birthday_year = $birthday_month = $birthday_day = null;
extract($_REQUEST);
$field_names = array('firstName' => 'First name', 'lastName' => 'Last name', 'username' => 'Username', 'gender' => 'Your gender', 'desired_gender' => 'Gender preference', 'orientation' => 'Orientation', 'relationship_status' => 'Status', 'zipcode' => 'Zipcode');
foreach ($field_names as $name => $label) {
if (isset($_POST[$name]) and !$_POST[$name]) {
Q_Response::addError(new Q_Exception_RequiredField(array('field' => $label), $name));
}
}
if (isset($birthday_year)) {
if (!checkdate($birthday_month, $birthday_day, $birthday_year)) {
$field = 'Birthday';
$range = 'a valid date';
Q_Response::addError(new Q_Exception_WrongValue(compact('field', 'range'), 'birthday'));
}
}
global $Q_installing;
if (isset($username) and isset($Q_installing)) {
try {
Q::event('Users/validate/username', compact('username'));
} catch (Exception $e) {
Q_Response::addError($e);
}
}
}
示例7: addContact
/**
* Add contact with one or more labels
* @method addContact
* @static
* @param {string} $userId
* The id of the user whose contact will be added
* @param {string} $contactUserId
* The id of the user who is the contact
* @param {string|array} $label
* The label of the contact. This can be a string or an array of strings, in which case
* multiple contact rows are saved.
* @param {string} [$nickname='']
* Optional nickname to assign to the contact
* @optional
* @throws {Q_Exception_RequiredField}
* if $label is missing
* @return {array} Array of contacts that are saved
*/
static function addContact($userId, $label, $contactUserId, $nickname = '')
{
foreach (array('userId', 'label', 'contactUserId') as $field) {
if (empty(${$field})) {
throw new Q_Exception_RequiredField(compact('field'));
}
}
$labels = is_array($label) ? $label : array($label);
$contacts = array();
foreach ($labels as $l) {
// Insert the contacts one by one
$contact = new Users_Contact();
$contact->userId = $userId;
$contact->contactUserId = $contactUserId;
$contact->label = $l;
if ($nickname) {
$contact->nickname = $nickname;
}
$contact->save(true);
$contacts[] = $contact;
}
/**
* @event Users/Contact/addContact {after}
* @param {string} contactUserId
* @param {string} label
* @param {array} contacts
*/
Q::event('Users/Contact/addContact', compact('contactUserId', 'label', 'contacts'), 'after');
return $contacts;
}
示例8: Users_activate_response
function Users_activate_response()
{
$content = Q::event('Users/activate/response/content');
Q_Response::setSlot('content', $content);
Q_Response::setSlot('column0', $content);
// for SmartApp
}
示例9: Q_post
function Q_post($params)
{
$uri = Q_Dispatcher::uri();
$module = $uri->module;
$action = $uri->action;
if (!Q::canHandle("{$module}/{$action}/post")) {
throw new Q_Exception_MethodNotSupported(array('method' => 'POST'));
}
if (isset($_SERVER['CONTENT_LENGTH'])) {
$contentLength = (int) $_SERVER['CONTENT_LENGTH'];
foreach (array('upload_max_filesize', 'post_max_size') as $name) {
$value = ini_get($name);
switch (substr($value, -1)) {
case 'K':
$value *= 1024;
break;
case 'M':
$value *= 1024 * 1024;
break;
case 'B':
$value *= 1024 * 1024 * 1024;
break;
}
if ($contentLength > $value) {
throw new Q_Exception_ContentLength(array('contentLength' => $contentLength, 'exceeds' => $name));
}
}
}
return Q::event("{$module}/{$action}/post", $params);
}
示例10: Streams_publisher_validate
function Streams_publisher_validate($params)
{
// Protect against CSRF attacks:
Q_Valid::nonce(true);
$type = Streams::requestedType();
if ($type && Q::canHandle("Streams/validate/{$type}")) {
return Q::event("Streams/validate/{$type}", $params);
}
}
示例11: Q_validate
function Q_validate($params)
{
$uri = Q_Dispatcher::uri();
$module = $uri->module;
$action = $uri->action;
if (!Q::canHandle("{$module}/{$action}/validate")) {
return null;
}
return Q::event("{$module}/{$action}/validate", $params);
}
示例12: Q_put
function Q_put($params)
{
$uri = Q_Dispatcher::uri();
$module = $uri->module;
$action = $uri->action;
if (!Q::canHandle("{$module}/{$action}/put")) {
throw new Q_Exception_MethodNotSupported(array('method' => 'PUT'));
}
return Q::event("{$module}/{$action}/put", $params);
}
示例13: Q_delete
function Q_delete($params)
{
$uri = Q_Dispatcher::uri();
$module = $uri->module;
$action = $uri->action;
if (!Q::canHandle("{$module}/{$action}/delete")) {
throw new Q_Exception_MethodNotSupported(array('method' => 'DELETE'));
}
Q_Request::requireValidNonce();
return Q::event("{$module}/{$action}/delete", $params);
}
示例14: Streams_stream_validate
function Streams_stream_validate($params)
{
// Protect against CSRF attacks:
if (Q_Request::method() !== 'GET') {
Q_Valid::nonce(true);
}
$type = Streams::requestedType();
if ($type && Q::canHandle("Streams/validate/{$type}")) {
return Q::event("Streams/validate/{$type}", $params);
}
}
示例15: beforeSave
/**
* Assigns 'id'
* @method beforeSave
* @param {array} $modifiedFields
* @return {array}
*/
function beforeSave($updatedFields)
{
if (isset($updatedFields['userId'])) {
$this->userId = $updatedFields['userId'];
}
if (!$this->retrieved) {
if (!isset($updatedFields['id'])) {
$this->id = $updatedFields['id'] = self::db()->uniqueId(self::table(), 'id', array('userId' => $this->userId));
}
}
Q::event('Assets/Charge/save', array('charge' => $this), 'before');
return parent::beforeSave($updatedFields);
}