本文整理汇总了PHP中Event::until方法的典型用法代码示例。如果您正苦于以下问题:PHP Event::until方法的具体用法?PHP Event::until怎么用?PHP Event::until使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Event
的用法示例。
在下文中一共展示了Event::until方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: get_dl
function get_dl($id = null)
{
$digitless = ltrim($id, '0..9');
// file link can be either
if ($digitless === '' or $digitless[0] === '.') {
$file = File::find(strtok($id, '.'));
} else {
$file = File::where('name', '=', $id)->get();
}
if (!$file) {
return;
} elseif ($this->can('file.dl.deny.' . $file->id)) {
return false;
} else {
$path = $file->file();
$override = Event::until('file.dl.before', array(&$path, &$file, $this));
if ($override !== null) {
return $override;
} elseif (!$file instanceof File) {
return E_SERVER;
} else {
// In case the model was changed during event firing.
$file->save();
return Event::until('file.dl.response', array(&$path, $file, $this));
}
}
}
示例2: prereq
function prereq()
{
if (!Cart::has()) {
return $this->back();
} elseif ($this->can('checkout.deny')) {
return false;
} elseif (Event::until('checkout.can', $this) === false) {
return $this->back();
}
}
示例3: initMiMeil
static function initMiMeil()
{
$prefix = static::$eventPrefix;
static::$onEvent = function ($event, $args) use($prefix) {
return Event::until($prefix . $event, $args);
};
static::registerEventsUsing(array(get_called_class(), 'listen'));
// saves outgoing messages in a local folder if enabled in the config.
static::listen('transmit', function (&$subject, &$headers, &$body, $mail) {
if ($path = $mail->echoPath) {
$mail->saveEML($subject, $headers, $body, rtrim($path, '\\/') . '/');
}
});
}
示例4: get_nav
public function get_nav($menu = '', $partial_path = null)
{
if (\Event::listeners("menu.render.navigation: {$menu}")) {
$result = \Event::until("menu.render.navigation: {$menu}");
if (!is_null($result)) {
if ($result instanceof \DOMDocument) {
return $result->saveHTML();
} elseif (is_string($result)) {
return $result;
} elseif (is_array($result)) {
return Dom::arrayToDOMDocument($result)->saveHTML();
} else {
throw new \Exception("Menu event response is invalid. Supported responses are: [DOMDocument], [String], [Array]");
}
}
}
$navigation_group = \Navigation\Model\Group::with(array('links' => function ($query) {
$query->order_by('order', 'asc');
}))->where('slug', '=', $menu)->first();
// This navigation group is available?
if (isset($navigation_group) and !empty($navigation_group)) {
$items = $navigation_group->get_links();
if (\Event::listeners("menu.merge.navigation: {$menu}", array($items))) {
$result = \Event::until("menu.merge.navigation: {$menu}", array($items));
$items = array_merge_recursive($items, $result);
sort($items);
}
if (\Event::listeners("menu.make.navigation: {$menu}", array($items))) {
$items = \Event::until("menu.make.navigation: {$menu}", array($items));
}
if (\Event::listeners("menu.make.navigation", array($items))) {
$items = \Event::until("menu.make.navigation", array($items));
}
return $this->make($items, '', $partial_path);
} else {
return 'ERROR: The navigation group [' . $menu . '] does not exist.';
}
}
示例5: isTooSmall
static function isTooSmall($subtotal = null)
{
isset($subtotal) or $subtotal = static::subtotal();
$min = Event::until('cart.is_small', array(&$subtotal));
if (is_int($min) or is_float($min)) {
return $min;
}
}
示例6: not_found
static function not_found(array $info, $page)
{
$page404 = static::option('404', '_404');
$response = null;
if (is_callable($page404)) {
$response = call_user_func($page404, $info, $page);
if (is_array($response)) {
$response = static::render($response, $info + static::options());
}
} elseif ($page404 !== false) {
$info = array('cache' => false, 'page_404' => $page) + $info;
$parts = explode('/', str_replace('\\', '/', $page));
do {
array_pop($parts);
$error = join(DS, $parts) . DS . $page404;
$response = static::serve($info, $error);
} while ($parts and !$response);
$response and $response = static::format_404($response, $info, $page, $error);
}
if (!isset($response) or $response === false) {
$response = Event::until(404);
}
return $response;
}
示例7: used
function used()
{
if (Event::until('file.used', $this)) {
return $this;
} else {
throw new Error("Cannot update usage counter of File [{$model->id}].");
}
}
示例8: ajax_post_add
function ajax_post_add($type = null, $object = null)
{
$object = (int) $object;
$parent = $this->in('parent', 0) ?: null;
$eventOptions = compact('type', 'object') + array('block' => $this);
if (!$this->in('body', '')) {
$body = Event::until('post.bodyless', array($eventOptions));
if (isset($this->input)) {
$this->input['body'] = $body;
} else {
Input::merge(compact('body'));
}
}
$valid = Validator::make($this->in(), array('parent' => 'int', 'title' => 'max:50', 'body' => 'required'));
if (!$type) {
return E_INPUT;
} elseif (!$this->accessible('add', $object, $parent)) {
return false;
} elseif ($valid->fails()) {
return $valid;
} else {
$model = with(new Post())->fill_raw(Input::only(array('title', 'body')))->fill_raw(compact('type') + array('object' => $object, 'parent' => $parent, 'flags' => $this->can('manager') ? 'manager' : '', 'html' => format('post', $this->in('body')), 'author' => $this->user()->id, 'ip' => Request::ip()));
$eventOptions['post'] = $model = Event::insertModel($model, 'post');
if (!$model) {
return E_SERVER;
}
try {
$attachments = array();
Event::fire('post.attach', array(&$attachments, $eventOptions));
} catch (\Exception $e) {
$model->delete();
throw $e;
}
$eventOptions += compact('attachments');
Event::fire('post.added', array($eventOptions));
if ($type and $object and $object = $model->object()->first()) {
Event::fire('post.object_ref', array(&$object, $eventOptions));
$object instanceof LaravelModel and $object->save();
}
return $model;
}
}
示例9: get_index
public function get_index()
{
$opensim_db_is_ready = Config::get('settings::core.passes_db_settings');
if (!(bool) $opensim_db_is_ready) {
return Redirect::to('404');
}
$show_regions_list = Config::get('settings::core.splashscreen_show_regions_list');
$this->data['regions'] = array();
if ($show_regions_list == 'yes') {
$this->data['regions'] = Opensim\Model\Os\Region::order_by('last_seen', 'desc')->get();
}
$show_grid_status_block = Config::get('settings::core.splashscreen_show_grid_status_block');
$this->data['grid_status_block'] = array();
if ($show_grid_status_block == 'yes') {
$show_grid_status = Config::get('settings::core.splashscreen_grid_status');
if ($show_grid_status) {
$this->data['grid_status_block']['grid_status'] = Config::get('settings::core.splashscreen_grid_status');
$show_total_users = Config::get('settings::core.splashscreen_show_total_users');
if ($show_total_users == 'yes') {
$this->data['grid_status_block']['total_users'] = Opensim\Model\Os\UserAccount::count();
}
$show_total_regions = Config::get('settings::core.splashscreen_show_total_regions');
if ($show_total_regions == 'yes') {
$this->data['grid_status_block']['total_regions'] = Opensim\Model\Os\Region::count();
}
$show_active_users = Config::get('settings::core.splashscreen_show_active_users');
if ($show_active_users == 'yes') {
$this->data['grid_status_block']['active_users'] = DB::connection('opensim')->table('GridUser')->where('Login', '>=', strtotime("-30 days"))->count();
//time()-2592000);
}
$show_users_online = Config::get('settings::core.splashscreen_show_online_users');
if ($show_users_online == 'yes') {
// Because users can get stuck
// we will just count presences
// newer then 2 days ago
$this->data['grid_status_block']['users_online'] = \DB::connection('opensim')->table('Presence')->join('GridUser', 'GridUser.UserID', '=', 'Presence.UserID')->where('Presence.LastSeen', '>', strtotime("-2 days"))->where('GridUser.Online', '=', 'true')->count();
}
}
}
$show_status_block_message = Config::get('settings::core.splashscreen_show_grid_status_message_block');
if ($show_status_block_message == 'yes') {
$this->data['status_message_block'] = array('color' => Config::get('settings::core.splashscreen_grid_status_message_block_color'), 'title' => Config::get('settings::core.splashscreen_grid_status_message_block_title'), 'text' => Config::get('settings::core.splashscreen_grid_status_message_block_body'));
}
$show_left_block = Config::get('settings::core.splashscreen_show_top_left_block');
if ($show_left_block == 'yes') {
$this->data['grid_status_block']['status_top_left_block'] = array('title' => Config::get('settings::core.splashscreen_top_left_block_title'), 'text' => Config::get('settings::core.splashscreen_top_left_block_body'));
}
//Get images for effect
$this->data['effect'] = Config::get('settings::core.splashscreen_effect');
$this->data['effect_delay'] = Config::get('settings::core.splashscreen_effect_time');
// Find images for background effect
if ($this->data['effect'] == 'loop_background') {
$background_images_path = path('public') . 'bundles/splashscreen/img/backgrounds/';
$background_images = array();
foreach (glob($background_images_path . "*") as $filename) {
$name = explode('/', $filename);
$background_images[] = URL::base() . '/bundles/splashscreen/img/backgrounds/' . $name[count($name) - 1];
}
$this->data['images'] = $background_images;
}
if ($this->data['effect'] == 'time_of_day') {
$background_images_path = path('public') . 'bundles/splashscreen/img/day_time_bkgs/';
$background_images = array();
foreach (glob($background_images_path . "*") as $filename) {
$name = explode('/', $filename);
$background_images[] = URL::base() . '/bundles/splashscreen/img/day_time_bkgs/' . $name[count($name) - 1];
}
$this->data['images'] = $background_images;
}
// Find logo image
$logo_path = path('public') . 'bundles/splashscreen/img/logo/';
$logo = '';
foreach (glob($logo_path . "logo.*") as $filename) {
$name = explode('/', $filename);
$logo = $name[count($name) - 1];
}
$this->data['logo'] = $logo;
$show_flash_news = Config::get('settings::core.splashscreen_show_flash_news');
if ($show_flash_news == 'yes') {
// We delegate the determination of news to the news loader event
// so that the developer is free to override the news.
$news = Event::until('splashscreen.load_news');
if (!is_null($news)) {
$this->data['news_handler'] = $news['handler'];
$this->data['news'] = $news;
} else {
$news_handler = Config::get('settings::core.splashscreen_flash_news_handler');
$this->data['news_handler'] = URL::base() . '/' . $news_handler . '/';
$this->data['news'] = Splashscreen\Model\News::where_is_enabled(1)->order_by('created_at', 'desc')->take(4)->get();
}
}
return View::make('splashscreen::frontend.splash_screen', $this->data);
}
示例10: format
function format($type, $text)
{
return (string) Event::until('format.' . $type, array(&$text));
}
示例11: render_partial
/**
* Return partial view rendered
*
* @param string $partial
* @param array $data
*/
public function render_partial($partial, $data = array())
{
if (\Event::listeners("themes.render.partial: {$partial}")) {
$result = \Event::until("themes.render.partial: {$partial}", array($view));
if (!is_null($result)) {
if ($result instanceof \DOMDocument) {
$view = $result->saveHTML();
} elseif (is_string($result)) {
$view = $result;
} elseif (is_array($result)) {
// array to dom
$view = '<!DOCTYPE html>';
$view .= Dom::arrayToDOMDocument($result, 'html')->saveHTML();
} else {
// trow exception
}
}
}
$data = $this->_share_data($data);
$bundle_parts = \Bundle::parse($partial);
$bundle_name = $bundle_parts['0'] == 'application' ? '' : $bundle_parts['0'] . DS;
$partial_path = str_replace('.', DS, $bundle_parts['1']);
$theme_view_folder = $this->_theme_absolute_path . DS . 'views' . DS;
// Check for a custom path
$has_partial = $this->_view_exists(str_replace('.', DS, $partial));
if ($has_partial) {
return View::make($has_partial, $data);
}
// Check on the themes views folder
$has_partial = $this->_view_exists($theme_view_folder . $bundle_name . 'partials' . DS . $partial_path);
if ($has_partial) {
return View::make($has_partial, $data);
}
// Check on custom folder (fallback for all themes)
$has_partial = $this->_view_exists(path('public') . 'custom' . DS . 'views' . DS . $bundle_name . 'partials' . DS . $partial_path);
if ($has_partial) {
return View::make($has_partial, $data);
}
// bundles folder
$has_partial = $this->_view_exists($partial);
if ($has_partial) {
return View::make($has_partial, $data);
}
// try to load from application views folder
$has_partial = $this->_view_exists('partials' . DS . $partial_path);
if ($has_partial) {
return View::make($has_partial, $data);
}
Log::error('Failed to render partial from ' . $partial);
throw new \Exception("Failed to render partial. Partial [{$partial}] doesn't exist. ");
}
示例12: editable
function editable(Order $order)
{
return Event::until('order.editable', array($order, $this)) !== false;
}
示例13: isOf
function isOf(User $user = null)
{
return Event::until('order.belongs', array($this, $user)) !== false;
}