本文整理汇总了PHP中Croogo::dispatchEvent方法的典型用法代码示例。如果您正苦于以下问题:PHP Croogo::dispatchEvent方法的具体用法?PHP Croogo::dispatchEvent怎么用?PHP Croogo::dispatchEvent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Croogo
的用法示例。
在下文中一共展示了Croogo::dispatchEvent方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: associate
public function associate()
{
$provider = $this->request->param('provider');
if (empty($provider)) {
throw new NotFoundException('Invalid provider');
}
$this->set(compact('provider'));
if ($this->request->data('confirm_association')) {
$this->User->recursive = -1;
$originalUser = $this->User->findById($this->Auth->user('id'));
$this->Session->write('Socialites.originalUser', $originalUser);
switch ($provider) {
case 'twitter':
$eventName = 'Socialites.oauthAuthorize';
$event = Croogo::dispatchEvent($eventName, $this);
return $this->redirect();
break;
default:
$config = Configure::read('Socialites.Providers.' . $provider);
$fqcn = Configure::read('SocialitesProviderRegistry.' . $provider);
$Provider = new $fqcn($config);
return $this->redirect($Provider->getAuthorizationUrl());
break;
}
} else {
if (!$this->Auth->user('id')) {
$this->Session->setFlash(__d('socialites', 'You are not logged in'), 'flash');
return $this->redirect($this->referer());
}
}
}
示例2: admin_process
public function admin_process()
{
$action = $this->request->data['Edition']['action'];
$ids = array();
foreach ($this->request->data['Edition'] as $id => $value) {
if ($id != 'action' && $value['id'] == 1) {
$ids[] = $id;
}
}
if (count($ids) == 0 || $action == null) {
$this->Session->setFlash(__d('croogo', 'No items selected.'), 'default', array('class' => 'error'));
$this->redirect(array('action' => 'index'));
}
$actionProcessed = $this->Edition->processAction($action, $ids);
$eventName = 'Controller.Editions.after' . ucfirst($action);
if ($actionProcessed) {
switch ($action) {
case 'delete':
$messageFlash = __d('croogo', 'Edições excluidas!');
break;
case 'publish':
$messageFlash = __d('croogo', 'Edições publicadas!');
break;
case 'unpublish':
$messageFlash = __d('croogo', 'Edições despublicadas');
break;
}
$this->Session->setFlash($messageFlash, 'default', array('class' => 'success'));
Croogo::dispatchEvent($eventName, $this, compact($ids));
} else {
$this->Session->setFlash(__d('croogo', 'An error occurred.'), 'default', array('class' => 'error'));
}
$this->redirect(array('action' => 'index'));
}
示例3: saveUrl
public function saveUrl($data)
{
$event = Croogo::dispatchEvent('Model.Node.beforeSaveNode', $this, compact('data'));
$this->saveWithMeta($event->data['data']);
$event = Croogo::dispatchEvent('Model.Node.afterSaveNode', $this, $event->data);
return true;
}
示例4: filterBlockShortcode
/**
* Filter block shortcode in node body, eg [block:snippet] and replace it with
* the block content
*
* @param CakeEvent $event
* @return void
*/
public function filterBlockShortcode($event)
{
static $converter = null;
if (!$converter) {
$converter = new StringConverter();
}
$View = $event->subject;
$body = null;
if (isset($event->data['content'])) {
$body =& $event->data['content'];
} elseif (isset($event->data['node'])) {
$body =& $event->data['node'][key($event->data['node'])]['body'];
}
$parsed = $converter->parseString('block|b', $body, array('convertOptionsToArray' => true));
$regex = '/\\[(block|b):([A-Za-z0-9_\\-]*)(.*?)\\]/i';
foreach ($parsed as $blockAlias => $config) {
$block = $View->Regions->block($blockAlias);
preg_match_all($regex, $body, $matches);
if (isset($matches[2][0])) {
$replaceRegex = '/' . preg_quote($matches[0][0]) . '/';
$body = preg_replace($replaceRegex, $block, $body);
}
}
Croogo::dispatchEvent('Helper.Layout.beforeFilter', $View, array('content' => &$body, 'options' => array()));
}
示例5: testVocabularyShortcode
/**
* Test [vocabulary] shortcode
*/
public function testVocabularyShortcode()
{
$content = '[vocabulary:categories type="blog"]';
$this->View->viewVars['vocabularies_for_layout']['categories'] = array('Vocabulary' => array('id' => 1, 'title' => 'Categories', 'alias' => 'categories'), 'threaded' => array());
Croogo::dispatchEvent('Helper.Layout.beforeFilter', $this->View, array('content' => &$content));
$this->assertContains('vocabulary-1', $content);
$this->assertContains('class="vocabulary"', $content);
}
示例6: testNodeShortcode
/**
* Test [node] shortcode
*/
public function testNodeShortcode()
{
$content = '[node:recent_posts conditions="Node.type:blog" order="Node.id DESC" limit="5"]';
$this->View->viewVars['nodes_for_layout']['recent_posts'] = array(array('Node' => array('id' => 1, 'title' => 'Hello world', 'slug' => 'hello-world', 'type' => 'blog')));
Croogo::dispatchEvent('Helper.Layout.beforeFilter', $this->View, array('content' => &$content));
$this->assertContains('node-list-recent_posts', $content);
$this->assertContains('class="node-list"', $content);
}
示例7: testMenuShortcode
/**
* Test [menu] shortcode
*/
public function testMenuShortcode()
{
$content = '[menu:blogroll]';
$this->View->viewVars['menus_for_layout']['blogroll'] = array('Menu' => array('id' => 6, 'title' => 'Blogroll', 'alias' => 'blogroll'), 'threaded' => array());
Croogo::dispatchEvent('Helper.Layout.beforeFilter', $this->View, array('content' => &$content));
$this->assertContains('menu-6', $content);
$this->assertContains('class="menu"', $content);
}
示例8: beforeDelete
public function beforeDelete($cascade = true)
{
if (!parent::beforeDelete($cascade)) {
return false;
}
$Event = Croogo::dispatchEvent('FileStorage.beforeDelete', $this, array('cascade' => $cascade, 'adapter' => $this->field('adapter')));
if ($Event->isStopped()) {
return false;
}
return true;
}
示例9: status
/**
* Gets valid statuses based on type
*
* @param string $type Status type if applicable
* @return array Array of statuses
*/
public function status($statusType = 'publishing', $accessType = 'public')
{
$values = $this->_defaultStatus($statusType);
$data = compact('statusType', 'accessType', 'values');
$event = Croogo::dispatchEvent('Croogo.Status.status', null, $data);
if (array_key_exists('values', $event->data)) {
return $event->data['values'];
} else {
return $values;
}
}
示例10: testDispatchHelperEvents
/**
* testDispatchHelperEvents
*/
public function testDispatchHelperEvents()
{
$eventNames = array('Helper.Layout.afterFilter', 'Helper.Layout.beforeFilter');
App::uses('View', 'View');
$View = new View();
foreach ($eventNames as $name) {
$event = Croogo::dispatchEvent($name, $View);
$this->assertTrue($event->result, sprintf('Event: %s', $name));
$this->assertInstanceOf('View', $event->subject());
}
}
示例11: testLoginSuccessful
/**
* Test login succesfull event
*/
public function testLoginSuccessful()
{
$cookie = $this->autoLogin->readCookie('User');
$this->assertNull($cookie);
$request = new CakeRequest();
$request->data = array('User' => array('username' => 'rchavik', 'password' => 'rchavik', 'remember' => true));
$this->controller->request = $request;
$subject = $this->controller;
$compare = $this->autoLogin->cookie($request);
$_SERVER['REQUEST_METHOD'] = 'POST';
Croogo::dispatchEvent('Controller.Users.adminLoginSuccessful', $subject);
$cookie = $this->autoLogin->readCookie('User');
$this->assertNotNull($cookie);
$this->assertEquals($compare, $cookie);
}
示例12: transform
public function transform($markdownText)
{
$environment = Environment::createCommonMarkEnvironment();
$beforeParseEvent = Croogo::dispatchEvent('Helper.Markdown.beforeMarkdownParse', $this->_View, array('environment' => $environment, 'markdown' => $markdownText));
$markdownText = $beforeParseEvent->data['markdown'];
$environment = $beforeParseEvent->data['environment'];
$parser = new DocParser($environment);
$htmlRenderer = new HtmlRenderer($environment);
$documentAST = $parser->parse($markdownText);
$beforeRenderEvent = Croogo::dispatchEvent('Helper.Markdown.beforeMarkdownRender', $this->_View, array('ast' => $documentAST));
$documentAST = $beforeRenderEvent->data['ast'];
$rendered = $htmlRenderer->renderBlock($documentAST);
$afterRenderEvent = Croogo::dispatchEvent('Helper.Markdown.afterMarkdownRender', $this->_View, array('rendered' => $rendered));
return $afterRenderEvent->data['rendered'];
}
示例13: admin_restore_login
public function admin_restore_login()
{
$formerUser = $this->Session->read('Chameleon.User');
if (empty($formerUser)) {
$this->Session->setFlash('Invalid request', 'flash', array('class' => 'error'));
return $this->redirect('/');
}
if ($this->Session->delete('Chameleon.User')) {
Croogo::dispatchEvent('Controller.Users.adminLogoutSuccessful', $this);
}
Croogo::dispatchEvent('Controller.Chameleon.beforeAdminLogin', $this);
if ($this->Auth->login($formerUser)) {
Croogo::dispatchEvent('Controller.Users.adminLoginSuccessful', $this);
return $this->redirect(Configure::read('Croogo.dashboardUrl'));
}
}
示例14: dashboards
/**
* Gets the dashboard markup
*
* @return string
*/
public function dashboards()
{
$registered = Configure::read('Dashboards');
$userId = AuthComponent::user('id');
if (empty($userId)) {
return '';
}
$columns = array(CroogoDashboard::LEFT => array(), CroogoDashboard::RIGHT => array(), CroogoDashboard::FULL => array());
if (empty($this->Role)) {
$this->Role = ClassRegistry::init('Users.Role');
$this->Role->Behaviors->attach('Croogo.Aliasable');
}
$currentRole = $this->Role->byId($this->Layout->getRoleId());
$cssSetting = $this->Layout->themeSetting('css');
if (!empty($this->_View->viewVars['boxes_for_dashboard'])) {
$boxesForLayout = Hash::combine($this->_View->viewVars['boxes_for_dashboard'], '{n}.DashboardsDashboard.alias', '{n}.DashboardsDashboard');
$dashboards = array();
$registeredUnsaved = array_diff_key($registered, $boxesForLayout);
foreach ($boxesForLayout as $alias => $userBox) {
if (isset($registered[$alias]) && $userBox['status']) {
$dashboards[$alias] = array_merge($registered[$alias], $userBox);
}
}
$dashboards = Hash::merge($dashboards, $registeredUnsaved);
$dashboards = Hash::sort($dashboards, '{s}.weight', 'ASC');
} else {
$dashboards = Hash::sort($registered, '{s}.weight', 'ASC');
}
foreach ($dashboards as $alias => $dashboard) {
if ($currentRole != 'admin' && !in_array($currentRole, $dashboard['access'])) {
continue;
}
$opt = array('alias' => $alias, 'dashboard' => $dashboard);
Croogo::dispatchEvent('Croogo.beforeRenderDashboard', $this->_View, compact('alias', 'dashboard'));
$dashboardBox = $this->_View->element('Extensions.admin/dashboard', $opt);
Croogo::dispatchEvent('Croogo.afterRenderDashboard', $this->_View, compact('alias', 'dashboard', 'dashboardBox'));
if ($dashboard['column'] === false) {
$dashboard['column'] = count($columns[0]) <= count($columns[1]) ? CroogoDashboard::LEFT : CroogoDashboard::RIGHT;
}
$columns[$dashboard['column']][] = $dashboardBox;
}
$dashboardTag = $this->settings['dashboardTag'];
$columnDivs = array(0 => $this->Html->tag($dashboardTag, implode('', $columns[CroogoDashboard::LEFT]), array('class' => $cssSetting['dashboardLeft'] . ' ' . $cssSetting['dashboardClass'], 'id' => 'column-0')), 1 => $this->Html->tag($dashboardTag, implode('', $columns[CroogoDashboard::RIGHT]), array('class' => $cssSetting['dashboardRight'] . ' ' . $cssSetting['dashboardClass'], 'id' => 'column-1')));
$fullDiv = $this->Html->tag($dashboardTag, implode('', $columns[CroogoDashboard::FULL]), array('class' => $cssSetting['dashboardFull'] . ' ' . $cssSetting['dashboardClass'], 'id' => 'column-2'));
return $this->Html->tag('div', $fullDiv, array('class' => $cssSetting['row'])) . $this->Html->tag('div', implode('', $columnDivs), array('class' => $cssSetting['row']));
}
示例15: register
public function register()
{
if (!$this->request->is('post')) {
return;
}
$customerUserId = $this->CustomerUser->Customer->createWithUser($this->request->data);
if (!$customerUserId) {
Croogo::dispatchEvent('Controller.Users.registrationFailure', $this);
$this->Session->setFlash(__d('croogo', 'The User could not be saved. Please, try again.'), 'flash', array('class' => 'error'));
return;
}
$customerUser = $this->CustomerUser->find('first', array('conditions' => array('CustomerUser.id' => $customerUserId), 'recursive' => -1));
$user = $this->CustomerUser->User->read(null, $customerUser['CustomerUser']['user_id']);
Croogo::dispatchEvent('Controller.Users.registrationSuccessful', $this);
$this->_sendEmail(array(Configure::read('Site.title'), $this->_getSenderEmail()), $user['User']['email'], __d('croogo', '[%s] Please activate your account', Configure::read('Site.title')), 'Users.register', 'user activation', $this->theme, array('user' => $user));
$this->Session->setFlash(__d('croogo', 'You have successfully registered an account. An email has been sent with further instructions.'), 'flash', array('class' => 'success'));
$this->redirect(array('plugin' => 'users', 'controller' => 'users', 'action' => 'login'));
return;
}