Example #1
0
 public function onSetupRoutes()
 {
     // preview
     InfinitasRouter::connect('/s/p/*', array('plugin' => 'short_urls', 'controller' => 'short_urls', 'action' => 'preview'));
     // redirect
     InfinitasRouter::connect('/s/*', array('plugin' => 'short_urls', 'controller' => 'short_urls', 'action' => 'view'));
 }
Example #2
0
 /**
  * This happens after a find happens.
  *
  * @param object $Model Model about to be saved.
  * @return boolean true if save should proceed, false otherwise
  * @access public
  */
 public function afterFind($Model, $data)
 {
     // skip finds with more than one result.
     $skip = $Model->findQueryType == 'neighbors' || $Model->findQueryType == 'count' || empty($data) || isset($data[0][0]['count']) || isset($data[0]) && count($data) > 1 || !isset($data[0][$Model->alias][$Model->primaryKey]);
     if ($skip) {
         return $data;
     }
     if (isset($this->__settings[$Model->alias]['session_tracking']) && $this->__settings[$Model->alias]['session_tracking']) {
         $this->__session[$Model->alias] = CakeSession::read('Viewable.' . $Model->alias);
     }
     $user_id = AuthComponent::user('id');
     $view['ViewCount'] = array('user_id' => $user_id > 0 ? $user_id : 0, 'model' => Inflector::camelize($Model->plugin) . '.' . $Model->name, 'foreign_key' => $data[0][$Model->alias][$Model->primaryKey], 'referer' => str_replace(InfinitasRouter::url('/'), '/', $Model->__referer));
     $location = EventCore::trigger($this, 'GeoLocation.getLocation');
     $location = current($location['getLocation']);
     foreach ($location as $k => $v) {
         $view['ViewCount'][$k] = $v;
     }
     $view['ViewCount']['year'] = date('Y');
     $view['ViewCount']['month'] = date('m');
     $view['ViewCount']['day'] = date('j');
     $view['ViewCount']['day_of_year'] = date('z');
     $view['ViewCount']['week_of_year'] = date('W');
     $view['ViewCount']['hour'] = date('G');
     // no leading 0
     $view['ViewCount']['city'] = $view['ViewCount']['city'] ? $view['ViewCount']['city'] : 'Unknown';
     /**
      * http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_dayofweek
      * sunday is 1, php uses 0
      */
     $view['ViewCount']['day_of_week'] = date('w') + 1;
     $Model->ViewCount->unBindModel(array('belongsTo' => array('GlobalCategory')));
     $Model->ViewCount->create();
     $Model->ViewCount->save($view);
     return $data;
 }
Example #3
0
 public function onSetupRoutes($event)
 {
     // dashboard
     InfinitasRouter::connect('/admin/mail', array('plugin' => 'emails', 'controller' => 'mail_systems', 'action' => 'dashboard', 'admin' => true));
     // mail render
     InfinitasRouter::connect('/admin/mail/:slug/:account/:email', array('plugin' => 'emails', 'controller' => 'mail_systems', 'action' => 'get_mail', 'admin' => true), array('pass' => array('slug', 'account', 'email')));
     // view
     InfinitasRouter::connect('/admin/inbox/:slug/:account/:email/:subject', array('plugin' => 'emails', 'controller' => 'mail_systems', 'action' => 'view', 'admin' => true), array('pass' => array('slug', 'account', 'email')));
     // inbox
     InfinitasRouter::connect('/admin/inbox/:slug/:account', array('plugin' => 'emails', 'controller' => 'mail_systems', 'action' => 'index', 'admin' => true), array('pass' => array('slug', 'account')));
 }
Example #4
0
 public function onSetupRoutes()
 {
     // infinitas is not installed
     $databaseConfig = APP . 'Config' . DS . 'database.php';
     InfinitasRouter::connect('/install/finish/*', array('plugin' => 'installer', 'controller' => 'install', 'action' => 'finish'));
     InfinitasRouter::connect('/install/:step', array('plugin' => 'installer', 'controller' => 'install', 'action' => 'index'), array('pass' => array('step')));
     if (!file_exists($databaseConfig) || filesize($databaseConfig) == 0) {
         if (!file_exists($databaseConfig)) {
             $file = fopen($databaseConfig, 'w');
             fclose($file);
         }
         Configure::write('Session.save', 'php');
         InfinitasRouter::connect('/', array('plugin' => 'installer', 'controller' => 'install', 'action' => 'index'));
         InfinitasRouter::connect('/*', array('plugin' => 'installer', 'controller' => 'install', 'action' => 'index'));
     }
     return true;
 }
Example #5
0
 public function onSetupRoutes()
 {
     /**
      * frontend urls
      */
     InfinitasRouter::connect('/profile', array('plugin' => 'users', 'controller' => 'users', 'action' => 'view'));
     InfinitasRouter::connect('/login', array('plugin' => 'users', 'controller' => 'users', 'action' => 'login'));
     InfinitasRouter::connect('/logout', array('plugin' => 'users', 'controller' => 'users', 'action' => 'logout'));
     InfinitasRouter::connect('/register', array('plugin' => 'users', 'controller' => 'users', 'action' => 'register'));
     InfinitasRouter::connect('/activate-account', array('plugin' => 'users', 'controller' => 'users', 'action' => 'activate'));
     InfinitasRouter::connect('/forgot-password', array('plugin' => 'users', 'controller' => 'users', 'action' => 'forgot_password'));
     InfinitasRouter::connect('/reset-password', array('plugin' => 'users', 'controller' => 'users', 'action' => 'reset_password'));
     /**
      * admin urls
      */
     InfinitasRouter::connect('/admin/users/users/index', array('plugin' => 'users', 'controller' => 'users', 'action' => 'index', 'admin' => true, 'prefix' => 'admin'));
     InfinitasRouter::connect('/admin/users', array('plugin' => 'users', 'controller' => 'users', 'action' => 'dashboard', 'admin' => true, 'prefix' => 'admin'));
     InfinitasRouter::connect('/admin/login', array('plugin' => 'users', 'controller' => 'users', 'action' => 'login', 'admin' => true, 'prefix' => 'admin'));
     InfinitasRouter::connect('/admin/logout', array('plugin' => 'users', 'controller' => 'users', 'action' => 'logout', 'admin' => true, 'prefix' => 'admin'));
 }
Example #6
0
<?php

App::uses('InfinitasRouter', 'Routes.Routing');
App::uses('Router', 'Routing');
InfinitasRouter::connect('/comment/*', array('plugin' => 'comments', 'controller' => 'infinitas_comments', 'action' => 'comments'));
InfinitasRouter::setup();
$prefixes = Router::prefixes();
$plugins = CakePlugin::loaded();
App::uses('PluginShortRoute', 'Routing/Route');
foreach ($plugins as $key => $value) {
    $plugins[$key] = Inflector::underscore($value);
}
$pluginPattern = implode('|', $plugins);
$match = array('plugin' => $pluginPattern);
$shortParams = array('routeClass' => 'PluginShortRoute', 'plugin' => $pluginPattern);
foreach ($prefixes as $prefix) {
    $params = array('prefix' => $prefix, $prefix => true);
    $indexParams = $params + array('action' => 'index');
    InfinitasRouter::connect("/{$prefix}/:plugin", $indexParams, $shortParams);
    InfinitasRouter::connect("/{$prefix}/:plugin/:controller", $indexParams, $match);
    InfinitasRouter::connect("/{$prefix}/:plugin/:controller/dashboard", $params + array('action' => 'dashboard'), $match);
    InfinitasRouter::connect("/{$prefix}/:plugin/:controller/:action/*", $params, $match);
}
InfinitasRouter::connect('/:plugin', array('action' => 'index'), $shortParams);
InfinitasRouter::connect('/:plugin/:controller', array('action' => 'index'), $match);
InfinitasRouter::connect('/:plugin/:controller/:action/*', array(), $match);
$namedConfig = InfinitasRouter::namedConfig();
if ($namedConfig['rules'] === false) {
    InfinitasRouter::connectNamed(true);
}
unset($namedConfig, $params, $indexParams, $prefix, $prefixes, $shortParams, $match, $pluginPattern, $plugins, $key, $value);
Example #7
0
 public function onSetupRoutes($event, $data = null)
 {
     InfinitasRouter::connect('/admin/contents', array('plugin' => 'contents', 'controller' => 'global_contents', 'action' => 'dashboard', 'admin' => true, 'prefix' => 'admin'));
 }
Example #8
0
 public function onSetupRoutes($event, $data = null)
 {
     InfinitasRouter::connect('/admin/newsletter', array('admin' => true, 'prefix' => 'admin', 'plugin' => 'newsletter', 'controller' => 'newsletters', 'action' => 'dashboard'));
 }
 public function onSetupRoutes()
 {
     InfinitasRouter::connect('/admin/server_status', array('plugin' => 'server_status', 'controller' => 'server_status', 'action' => 'dashboard', 'admin' => true, 'prefix' => 'admin'));
 }
Example #10
0
 public function onSetupRoutes()
 {
     InfinitasRouter::connect('/admin', array('plugin' => 'management', 'controller' => 'management', 'action' => 'dashboard', 'prefix' => 'admin', 'admin' => 1));
     InfinitasRouter::connect('/admin/management', array('plugin' => 'management', 'controller' => 'management', 'action' => 'site', 'admin' => true, 'prefix' => 'admin'));
 }
Example #11
0
 /**
  * @brief save a maker for a later redirect
  *
  * @access public
  *
  * This will set a session var for the current page
  *
  * @return void
  */
 public function saveRedirectMarker()
 {
     $var = $this->lastPageRedirectVar();
     $lastPage = $this->Session->read($var);
     if (!$lastPage && InfinitasRouter::url($lastPage) != $this->referer()) {
         $this->Session->write($var, $this->referer());
     }
 }
Example #12
0
 /**
  * Slug urls.
  *
  * Use this method to figure out what vars are needed for the
  * controller / action pair you need to get to. You  will get some data,
  * normally in the form of Model::find(first) that you can use.
  *
  */
 public function onSlugUrl($event, $data = null, $type = null)
 {
     if (empty($data) || $type == null) {
         return false;
     }
     $plugin = str_replace('Events', '', get_class($this));
     $data = Set::flatten($data);
     $urlConfig = Configure::read($plugin . '.slugUrl.' . $type);
     if (!$urlConfig) {
         throw new Exception(sprintf('Configuration for url types "%s.%s" not found', $plugin, $type));
     }
     $url = !empty($urlConfig['url']) ? $urlConfig['url'] : array();
     unset($urlConfig['url']);
     $url['plugin'] = Inflector::underscore($plugin);
     $urlParams = array();
     foreach ($urlConfig as $key => $value) {
         if (!empty($data[$key])) {
             $urlParams[$value] = $data[$key];
         }
     }
     return InfinitasRouter::bestMatch($url, $urlParams);
 }
Example #13
0
 public function onSetupRoutes()
 {
     InfinitasRouter::connect('/feeds/subscribe/:slug', array('plugin' => 'feed', 'controller' => 'feeds', 'action' => 'view', 'ext' => 'rss'), array('pass' => 'slug'));
     InfinitasRouter::connect('/feeds/view/:slug', array('plugin' => 'feed', 'controller' => 'feeds', 'action' => 'view', 'ext' => ''), array('pass' => 'slug'));
 }
Example #14
0
 public function onSetupRoutes($event, $data = null)
 {
     InfinitasRouter::connect('/admin/view_counter', array('plugin' => 'view_counter', 'controller' => 'view_counter_views', 'action' => 'dashboard', 'admin' => true));
 }
Example #15
0
 /**
  * create the items in the list.
  *
  * @param array $array part of the tree
  * @param string $model the alias of the model being used
  *
  * @return part of the formated tree.
  */
 private function __buildDropdownMenu($array = array(), $model = '')
 {
     if (empty($array['MenuItem']) || ($model = '')) {
         $this->errors[] = 'nothing passed to generate';
         return false;
     }
     $currentCss = $suffix = '';
     if ($this->_menuLevel == 0) {
         $suffix = '0';
     }
     $isSeperator = $array['MenuItem']['name'] == '--' ? true : false;
     if ($isSeperator) {
         $array['MenuItem']['item'] = '';
     }
     $linkName = __($array['MenuItem']['name']);
     if (!empty($array['children'])) {
         $linkName = '<span>' . $linkName . '</span>';
     }
     $class = 'pureCssMenui' . $suffix;
     if ($isSeperator) {
         $class .= ' seperator';
     }
     $this->_menuData .= '<li class="' . $class . '">';
     if (!$isSeperator) {
         $menuLink = $this->url($array);
         if ($menuLink == $this->here || is_array($menuLink) && ($menuLink['controller'] == $this->request->params['controller'] || $menuLink['plugin'] == $this->request->params['plugin'])) {
             $currentCss = ' current';
             $this->_currentCssDone = true;
         }
         if (!empty($currentCss) && $this->_currentCssDone === false && Router::url($menuLink) == $this->here) {
             $currentCss = ' current';
             $this->_currentCssDone = true;
         }
         $this->_menuData .= $this->Html->link($linkName, InfinitasRouter::url($menuLink), array('class' => 'pureCssMenui' . $suffix . $currentCss, 'escape' => false));
         if (!empty($array['children'])) {
             $this->_menuData .= '<ul class="pureCssMenum">';
             foreach ($array['children'] as $k => $v) {
                 $this->_menuLevel = 1;
                 $this->__buildDropdownMenu($v, $model);
             }
             $this->_menuData .= '</ul>';
         }
         $this->_menuData .= '</a>';
     } else {
         $this->_menuData .= $linkName;
     }
     $this->_menuData .= '</li>';
 }
Example #16
0
 public function onSetupRoutes()
 {
     InfinitasRouter::connect('/sitemap', array('plugin' => 'webmaster', 'controller' => 'site_maps', 'action' => 'index', 'ext' => 'xml'));
 }
Example #17
0
 public function onSetupRoutes()
 {
     InfinitasRouter::connect('/admin/content-locked', array('plugin' => 'locks', 'controller' => 'locks', 'action' => 'locked', 'admin' => true, 'prefix' => 'admin'));
 }