Author: Nick Sagona, III (dev@nolainteractive.com)
示例#1
0
 /**
  * Index action method
  *
  * @return void
  */
 public function index($rid = null)
 {
     if (null === $rid || $this->services['acl']->isAllowed($this->sess->user->role, 'users-of-role-' . $rid, 'index')) {
         $deniedRoles = [];
         $resources = $this->services['acl']->getResources();
         foreach ($resources as $name => $resource) {
             if (!$this->services['acl']->isAllowed($this->sess->user->role, $name, 'index')) {
                 $deniedRoles[] = (int) substr($name, strrpos($name, '-') + 1);
             }
         }
         $user = new Model\User();
         $searchUsername = $this->request->getQuery('search_username');
         if ($user->hasPages($this->application->config()['pagination'], $rid, $searchUsername, $deniedRoles)) {
             $limit = $this->application->config()['pagination'];
             $pages = new Paginator($user->getCount($rid, $searchUsername, $deniedRoles), $limit);
             $pages->useInput(true);
         } else {
             $limit = null;
             $pages = null;
         }
         $this->prepareView('users/index.phtml');
         $this->view->title = 'Users';
         $this->view->pages = $pages;
         $this->view->roleId = $rid;
         $this->view->queryString = $this->getQueryString('sort');
         $this->view->searchUsername = $searchUsername;
         $this->view->users = $user->getAll($rid, $searchUsername, $deniedRoles, $limit, $this->request->getQuery('page'), $this->request->getQuery('sort'));
         $this->view->roles = $user->getRoles();
         $this->send();
     } else {
         $this->redirect('/users');
     }
 }
示例#2
0
 /**
  * Index action method
  *
  * @return void
  */
 public function index()
 {
     $slug = substr($this->request->getRequestUri(), 5);
     if ($slug != '') {
         $tag = new Model\Tag();
         $tag->getBySlug($slug, $this->application->modules());
         if (isset($tag->id)) {
             if (count($tag->items) > $this->config->pagination) {
                 $page = $this->request->getQuery('page');
                 $limit = $this->config->pagination;
                 $pages = new Paginator(count($tag->items), $limit);
                 $pages->useInput(true);
                 $offset = null !== $page && (int) $page > 1 ? $page * $limit - $limit : 0;
                 $tag->items = array_slice($tag->items, $offset, $limit, true);
             } else {
                 $pages = null;
             }
             $this->prepareView('tags-public/tag.phtml');
             $this->template = 'tag.phtml';
             $this->view->title = 'Tag : ' . $tag->title;
             $this->view->tag_id = $tag->id;
             $this->view->tag_title = $tag->title;
             $this->view->tag_slug = $tag->slug;
             $this->view->pages = $pages;
             $this->view->merge($tag->toArray());
             $this->send();
         } else {
             $this->error();
         }
     } else {
         $this->redirect(BASE_PATH == '' ? '/' : BASE_PATH);
     }
 }
示例#3
0
 /**
  * Search action method
  *
  * @return void
  */
 public function search()
 {
     $search = new Model\Search();
     $fields = $this->request->isPost() ? $this->request->getPost() : $this->request->getQuery();
     $search->user_role_id = isset($this->sess->user) ? $this->sess->user->role_id : -1;
     $search->filters = $this->application->module('phire-content')->config()['filters'];
     if (isset($fields['title'])) {
         $items = $search->search($fields, $this->application->modules());
         if (count($items) > $this->config->pagination) {
             $page = $this->request->getQuery('page');
             $limit = $this->config->pagination;
             $pages = new Paginator(count($items), $limit);
             $pages->useInput(true);
             $offset = null !== $page && (int) $page > 1 ? $page * $limit - $limit : 0;
             $items = array_slice($items, $offset, $limit, true);
         } else {
             $pages = null;
         }
         $this->prepareView('search-public/search.phtml');
         $this->view->title = 'Search';
         $this->view->pages = $pages;
         $this->view->items = $items;
         $this->send();
     } else {
         $this->redirect(BASE_PATH . (BASE_PATH == '' ? '/' : ''));
     }
 }
 /**
  * Index action method
  *
  * @return void
  */
 public function index()
 {
     $library = new Model\MediaLibrary();
     if ($library->hasPages($this->config->pagination)) {
         $limit = $this->config->pagination;
         $pages = new Paginator($library->getCount(), $limit);
         $pages->useInput(true);
     } else {
         $limit = null;
         $pages = null;
     }
     $this->prepareView('media/libraries/index.phtml');
     $this->view->title = 'Media Libraries';
     $this->view->pages = $pages;
     $this->view->libraries = $library->getAll($limit, $this->request->getQuery('page'), $this->request->getQuery('sort'));
     $this->send();
 }
 /**
  * Index action method
  *
  * @param  int $tid
  * @return void
  */
 public function index($tid = null)
 {
     if (null === $tid) {
         $this->prepareView('entities/types.phtml');
         $type = new Model\EntityType();
         if ($type->hasPages($this->config->pagination)) {
             $limit = $this->config->pagination;
             $pages = new Paginator($type->getCount(), $limit);
             $pages->useInput(true);
         } else {
             $limit = null;
             $pages = null;
         }
         $this->view->title = 'Entities';
         $this->view->pages = $pages;
         $this->view->types = $type->getAll($limit, $this->request->getQuery('page'), $this->request->getQuery('sort'));
     } else {
         $this->prepareView('entities/index.phtml');
         $entities = new Model\Entity();
         $type = new Model\EntityType();
         $type->getById($tid);
         if (!isset($type->id)) {
             $this->redirect(BASE_PATH . APP_URI . '/entities');
         }
         if ($this->services['acl']->isAllowed($this->sess->user->role, 'entity-type-' . $type->id, 'index')) {
             if ($entities->hasPages($this->config->pagination, $tid)) {
                 $limit = $this->config->pagination;
                 $pages = new Paginator($entities->getCount($tid), $limit);
                 $pages->useInput(true);
             } else {
                 $limit = null;
                 $pages = null;
             }
             $ents = $entities->getAll($tid, $limit, $this->request->getQuery('page'), $this->request->getQuery('sort'));
             $this->view->title = 'Entities : ' . $type->name;
             $this->view->pages = $pages;
             $this->view->tid = $tid;
             $this->view->fieldNum = $type->field_num;
             $this->view->entities = $ents;
             $this->view->fields = $entities->getAllFields($ents);
         } else {
             $this->redirect(BASE_PATH . APP_URI . '/entities');
         }
     }
     $this->send();
 }
示例#6
0
 /**
  * Index action method
  *
  * @return void
  */
 public function index()
 {
     $type = new Model\ContentType();
     if ($type->hasPages($this->config->pagination)) {
         $limit = $this->config->pagination;
         $pages = new Paginator($type->getCount(), $limit);
         $pages->useInput(true);
     } else {
         $limit = null;
         $pages = null;
     }
     $this->prepareView('content/types/index.phtml');
     $this->view->title = 'Content : Types';
     $this->view->pages = $pages;
     $this->view->types = $type->getAll($limit, $this->request->getQuery('page'), $this->request->getQuery('sort'));
     $this->send();
 }
 /**
  * Index action method
  *
  * @return void
  */
 public function index()
 {
     $group = new Model\FieldGroup();
     if ($group->hasPages($this->config->pagination)) {
         $limit = $this->config->pagination;
         $pages = new Paginator($group->getCount(), $limit);
         $pages->useInput(true);
     } else {
         $limit = null;
         $pages = null;
     }
     $this->prepareView('fields/groups/index.phtml');
     $this->view->title = 'Fields : Groups';
     $this->view->pages = $pages;
     $this->view->groups = $group->getAll($limit, $this->request->getQuery('page'), $this->request->getQuery('sort'));
     $this->send();
 }
 /**
  * Index action method
  *
  * @return void
  */
 public function index()
 {
     $session = new Model\SessionConfig();
     if ($session->hasPages($this->config->pagination)) {
         $limit = $this->config->pagination;
         $pages = new Paginator($session->getCount(), $limit);
         $pages->useInput(true);
     } else {
         $limit = null;
         $pages = null;
     }
     $this->prepareView('config/index.phtml');
     $this->view->title = 'Sessions Config';
     $this->view->pages = $pages;
     $this->view->sessions = $session->getAll($limit, $this->request->getQuery('page'), $this->request->getQuery('sort'));
     $this->view->rolesAvailable = $session->rolesAvailable();
     $this->send();
 }
示例#9
0
 /**
  * Index action method
  *
  * @return void
  */
 public function index()
 {
     $role = new Model\Role();
     if ($role->hasPages($this->config->pagination)) {
         $limit = $this->config->pagination;
         $pages = new Paginator($role->getCount(), $limit);
         $pages->useInput(true);
     } else {
         $limit = null;
         $pages = null;
     }
     $this->prepareView('phire/roles/index.phtml');
     $this->view->title = 'Roles';
     $this->view->pages = $pages;
     $this->view->queryString = $this->getQueryString('sort');
     $this->view->roles = $role->getAll($limit, $this->request->getQuery('page'), $this->request->getQuery('sort'));
     $this->send();
 }
示例#10
0
 /**
  * Index action method
  *
  * @return void
  */
 public function index()
 {
     $module = new Model\Module();
     if ($module->hasPages($this->config->pagination)) {
         $limit = $this->config->pagination;
         $pages = new Paginator($module->getCount(), $limit);
         $pages->useInput(true);
     } else {
         $limit = null;
         $pages = null;
     }
     $this->prepareView('phire/modules/index.phtml');
     $this->view->title = 'Modules';
     $this->view->pages = $pages;
     $this->view->newModules = $module->detectNew();
     $this->view->modules = $module->getAll($this->application->modules(), $this->services['acl'], $limit, $this->request->getQuery('page'), $this->request->getQuery('sort'));
     $this->view->moduleUpdates = $this->sess->updates->modules;
     $this->send();
 }
示例#11
0
 /**
  * Index action method
  *
  * @param  int $mid
  * @return void
  */
 public function index($mid)
 {
     $map = new Model\Map();
     $map->getById($mid);
     $location = new Model\MapLocation();
     if ($location->hasPages($this->config->pagination)) {
         $limit = $this->config->pagination;
         $pages = new Paginator($location->getCount(), $limit);
         $pages->useInput(true);
     } else {
         $limit = null;
         $pages = null;
     }
     $this->prepareView('maps/locations/index.phtml');
     $this->view->title = 'Maps : ' . $map->name . ' : Locations';
     $this->view->pages = $pages;
     $this->view->mid = $mid;
     $this->view->locations = $location->getAll($mid, $limit, $this->request->getQuery('page'), $this->request->getQuery('sort'));
     $this->send();
 }
 /**
  * Index action method
  *
  * @return void
  */
 public function index()
 {
     $uri = substr($this->request->getRequestUri(), 9);
     if ($uri != '/') {
         if (substr($uri, -1) == '/') {
             $uri = substr($uri, 0, -1);
         }
         $category = new Model\Category();
         $category->getByUri($uri);
         if (isset($category->id)) {
             $category->filters = $category->filter ? $this->application->module('phire-categories')['filters'] : [];
             $category->show_total = $this->application->module('phire-categories')['show_total'];
             $category->datetime_formats = $this->application->module('phire-categories')['datetime_formats'];
             if ($category->pagination > 0 && $category->hasPages($category->pagination)) {
                 $limit = $category->pagination;
                 $pages = new Paginator($category->getCount(), $limit);
                 $pages->useInput(true);
             } else {
                 $limit = null;
                 $pages = null;
             }
             $this->prepareView('categories-public/category.phtml');
             $this->template = 'category.phtml';
             $this->view->title = 'Category : ' . $category->title;
             $this->view->category_id = $category->id;
             $this->view->category_title = $category->title;
             $this->view->category_slug = $category->slug;
             $this->view->category_nav = $category->getNav($this->application->module('phire-categories')['nav_config']);
             $this->view->pages = $pages;
             $this->view->category_breadcrumb = $category->getBreadcrumb($category->id, $this->application->module('phire-categories')['separator']);
             $this->view->items = $category->getItems($limit, $this->request->getQuery('page'));
             $this->send();
         } else {
             $this->error();
         }
     } else {
         $this->redirect(BASE_PATH == '' ? '/' : BASE_PATH);
     }
 }
 /**
  * Index action method
  *
  * @return void
  */
 public function index()
 {
     $search = new Model\Search();
     if ($this->request->isPost()) {
         $search->remove($this->request->getPost());
         $this->sess->setRequestValue('removed', true);
         $this->redirect(BASE_PATH . APP_URI . '/searches');
     } else {
         if ($search->hasPages($this->config->pagination)) {
             $limit = $this->config->pagination;
             $pages = new Paginator($search->getCount(), $limit);
             $pages->useInput(true);
         } else {
             $limit = null;
             $pages = null;
         }
         $this->prepareView('search/index.phtml');
         $this->view->title = 'Searches';
         $this->view->pages = $pages;
         $this->view->searches = $search->getAll($limit, $this->request->getQuery('page'), $this->request->getQuery('sort'));
         $this->send();
     }
 }
示例#14
0
 /**
  * Index action method
  *
  * @param  int $id
  * @return void
  */
 public function index($id = null)
 {
     if (null === $id || $this->services['acl']->isAllowed($this->sess->user->role, 'users-of-role-' . $id, 'index')) {
         $deniedRoles = [];
         $resources = $this->services['acl']->getResources();
         foreach ($resources as $name => $resource) {
             if (!$this->services['acl']->isAllowed($this->sess->user->role, $name, 'index')) {
                 $deniedRoles[] = (int) substr($name, strrpos($name, '-') + 1);
             }
         }
         $user = new Model\User();
         $searchAry = null;
         if (null !== $this->request->getQuery('search_for') && null !== $this->request->getQuery('search_by') && $this->request->getQuery('search_for') != '' && $this->request->getQuery('search_by') != '----') {
             $searchAry = ['for' => $this->request->getQuery('search_for'), 'by' => $this->request->getQuery('search_by')];
         }
         if ($user->hasPages($this->config->pagination, $id, $searchAry, $deniedRoles)) {
             $limit = $this->config->pagination;
             $pages = new Paginator($user->getCount($id, $searchAry, $deniedRoles), $limit);
             $pages->useInput(true);
         } else {
             $limit = null;
             $pages = null;
         }
         $this->prepareView('phire/users/index.phtml');
         $this->view->title = 'Users';
         $this->view->pages = $pages;
         $this->view->roleId = $id;
         $this->view->queryString = $this->getQueryString('sort');
         $this->view->searchFor = $this->request->getQuery('search_for');
         $this->view->searchBy = $this->request->getQuery('search_by');
         $this->view->users = $user->getAll($id, $searchAry, $deniedRoles, $limit, $this->request->getQuery('page'), $this->request->getQuery('sort'));
         $this->view->roles = $user->getRoles();
         $this->send();
     } else {
         $this->redirect(BASE_PATH . APP_URI . '/users');
     }
 }
 /**
  * Index action method
  *
  * @return void
  */
 public function index()
 {
     $click = new Model\Click();
     if ($this->request->isPost()) {
         $click->remove($this->request->getPost());
         $this->sess->setRequestValue('removed', true);
         $this->redirect(BASE_PATH . APP_URI . '/clicks');
     } else {
         if ($click->hasPages($this->config->pagination, $this->request->getQuery('filter'))) {
             $limit = $this->config->pagination;
             $pages = new Paginator($click->getCount($this->request->getQuery('filter')), $limit);
             $pages->useInput(true);
         } else {
             $limit = null;
             $pages = null;
         }
         $this->prepareView('index.phtml');
         $this->view->title = 'ClickTrack';
         $this->view->pages = $pages;
         $this->view->filter = $this->request->getQuery('filter');
         $this->view->clicks = $click->getAll($this->request->getQuery('filter'), $limit, $this->request->getQuery('page'), $this->request->getQuery('sort'));
         $this->send();
     }
 }
示例#16
0
 /**
  * Browser action method
  *
  * @param  int $lid
  * @return void
  */
 public function browser($lid = null)
 {
     if (null !== $this->request->getQuery('editor') && null !== $this->request->getQuery('type')) {
         $this->prepareView('media/browser.phtml');
         $this->view->title = 'Media Browser';
         if ($this->request->isPost()) {
             $library = new Model\MediaLibrary();
             $library->getById($lid);
             $settings = $library->getSettings();
             if (count($settings) == 4) {
                 $upload = new \Pop\File\Upload($settings['folder'], $settings['max_filesize'], $settings['disallowed_types'], $settings['allowed_types']);
                 if ($upload->test($_FILES['file'])) {
                     $media = new Model\Media();
                     $media->save($_FILES['file'], $this->request->getPost());
                     $this->sess->setRequestValue('saved', true);
                     $this->redirect(str_replace('&error=1', '', $_SERVER['REQUEST_URI']));
                 } else {
                     $this->redirect(str_replace('&error=1', '', $_SERVER['REQUEST_URI']) . '&error=1');
                 }
             }
         }
         if (null !== $lid && null !== $this->request->getQuery('asset') && null !== $this->request->getQuery('asset_type')) {
             $assets = [];
             $limit = $this->config->pagination;
             $page = $this->request->getQuery('page');
             $pages = null;
             $library = new Model\MediaLibrary();
             if ($this->request->getQuery('asset_type') == 'content' && $this->application->isRegistered('phire-content')) {
                 $type = \Phire\Content\Table\ContentTypes::findById($lid);
                 $content = \Phire\Content\Table\Content::findBy(['type_id' => $lid], ['order' => 'order, id ASC']);
                 foreach ($content->rows() as $c) {
                     $assets[] = ['id' => $c->id, 'title' => $c->title, 'uri' => BASE_PATH . $c->uri];
                 }
                 if (isset($type->id)) {
                     $this->view->assetType = $type->name;
                 }
             } else {
                 if ($this->request->getQuery('asset_type') == 'media') {
                     $library->getById($lid);
                     $media = new Model\Media(['lid' => $lid]);
                     if ($this->request->getQuery('asset') == 'file') {
                         $assets = $media->getAll();
                     } else {
                         if ($this->request->getQuery('asset') == 'image') {
                             $assets = $media->getAllImages();
                         }
                     }
                     $this->view->assetType = $library->name;
                 }
             }
             if (count($assets) > $limit) {
                 $pages = new Paginator(count($assets), $limit);
                 $pages->useInput(true);
                 $offset = null !== $page && (int) $page > 1 ? $page * $limit - $limit : 0;
                 $assets = array_slice($assets, $offset, $limit, true);
             }
             $this->view->title = 'Media' . (null !== $this->view->assetType ? ' : ' . $this->view->assetType : null);
             $this->view->lid = $lid;
             $this->view->folder = $library->folder;
             $this->view->sizes = null !== $library->actions ? array_keys($library->actions) : [];
             $this->view->pages = $pages;
             $this->view->browserAssets = $assets;
         } else {
             $libraries = [];
             $limit = null;
             $pages = null;
             if ($this->request->getQuery('type') == 'file' && $this->application->isRegistered('phire-content')) {
                 $types = \Phire\Content\Table\ContentTypes::findAll(['order' => 'order ASC']);
                 if ($types->hasRows()) {
                     $libraries['Content'] = [];
                     foreach ($types->rows() as $type) {
                         $libraries['Content'][$type->id] = $type->name;
                     }
                 }
             }
             $libraries['Media'] = [];
             $library = new Model\MediaLibrary();
             $libs = $library->getAll();
             foreach ($libs as $lib) {
                 $libraries['Media'][$lib->id] = $lib->name;
             }
             $this->view->title = 'Media';
             $this->view->pages = $pages;
             $this->view->lid = $lid;
             $this->view->libraries = $libraries;
         }
         $this->send();
     } else {
         $this->redirect(BASE_PATH . APP_URI . '/media');
     }
 }
示例#17
0
 /**
  * Logins action method
  *
  * @param  int $id
  * @return void
  */
 public function logins($id = null)
 {
     $session = new Model\UserSession();
     $user = new \Phire\Model\User();
     if ($this->request->isPost()) {
         $session->clear($this->request->getPost());
         $this->sess->setRequestValue('removed', true);
         $this->redirect(BASE_PATH . APP_URI . '/sessions/logins/' . $id);
     } else {
         if (null !== $id) {
             $session = new Model\UserSession();
             $session->getUserData($id);
             if (count($session->logins) > $this->config->pagination) {
                 $page = $this->request->getQuery('page');
                 $limit = $this->config->pagination;
                 $pages = new Paginator(count($session->logins), $limit);
                 $pages->useInput(true);
                 $offset = null !== $page && (int) $page > 1 ? $page * $limit - $limit : 0;
                 $logins = array_slice($session->logins, $offset, $limit, true);
             } else {
                 $pages = null;
                 $logins = $session->logins;
             }
             $this->prepareView('user-logins.phtml');
             $this->view->title = 'Sessions : Logins';
             $this->view->pages = $pages;
             $this->view->logins = $logins;
             $this->view->total_logins = (int) $session->total_logins;
             $this->view->failed_attempts = $session->failed_attempts;
             $this->view->username = $session->username;
             $this->view->user_id = $session->user_id;
             $this->send();
         } else {
             $this->prepareView('logins.phtml');
             $this->view->title = 'Sessions : Logins';
             $searchAry = null;
             if (null !== $this->request->getQuery('search_for') && null !== $this->request->getQuery('search_by') && $this->request->getQuery('search_for') != '' && $this->request->getQuery('search_by') != '----') {
                 $searchAry = ['for' => $this->request->getQuery('search_for'), 'by' => $this->request->getQuery('search_by')];
             }
             $roleId = null !== $this->request->getQuery('role_id') && $this->request->getQuery('role_id') != '----' ? (int) $this->request->getQuery('role_id') : null;
             if ($user->hasPages($this->config->pagination, null, null, [])) {
                 $limit = $this->config->pagination;
                 $pages = new Paginator($user->getCount(null, null, []), $limit);
                 $pages->useInput(true);
             } else {
                 $limit = null;
                 $pages = null;
             }
             $users = $user->getAll($roleId, $searchAry, [], $limit, $this->request->getQuery('page'), $this->request->getQuery('sort'));
             foreach ($users as $k => $u) {
                 $session = new Model\UserSession();
                 $session->getUserData($u->id);
                 $users[$k]->logins = null !== $session->logins ? $session->logins : [];
                 $users[$k]->total_logins = null !== $session->total_logins ? (int) $session->total_logins : 0;
                 $users[$k]->failed_attempts = null !== $session->failed_attempts ? $session->failed_attempts : 0;
             }
             $this->view->users = $users;
             $this->view->pages = $pages;
             $this->view->queryString = $this->getQueryString('sort');
             $this->view->searchFor = $this->request->getQuery('search_for');
             $this->view->searchBy = $this->request->getQuery('search_by');
             $this->view->roles = $user->getRoles();
             $this->send();
         }
     }
 }
 /**
  * Trash action method
  *
  * @param  int $tid
  * @return void
  */
 public function trash($tid)
 {
     $this->prepareView('content/trash.phtml');
     $content = new Model\Content();
     $type = new Model\ContentType();
     $type->getById($tid);
     if (!isset($type->id)) {
         $this->redirect(BASE_PATH . APP_URI . '/content');
     }
     if ($content->hasPages($this->config->pagination, $tid, -2)) {
         $limit = $this->config->pagination;
         $pages = new Paginator($content->getCount($tid, -2), $limit);
         $pages->useInput(true);
     } else {
         $limit = null;
         $pages = null;
     }
     $this->view->title = 'Content : ' . $type->name . ' : Trash';
     $this->view->pages = $pages;
     $this->view->tid = $tid;
     $this->view->queryString = $this->getQueryString('sort');
     $this->view->content = $content->getAll($tid, $this->request->getQuery('sort'), $this->request->getQuery('title'), true);
     $this->send();
 }
示例#19
0
 /**
  * Logins action method
  *
  * @return void
  */
 public function logins()
 {
     $session = new Model\Session();
     if ($this->request->isPost()) {
         $post = $this->request->getPost();
         if (isset($post['clear_all_logins']) && (int) $post['clear_all_logins'] == 1) {
             $session->clearLogins();
             $this->sess->setRequestValue('removed', true);
         } else {
             if (isset($post['clear_logins_by']) && $post['clear_logins_by'] != '----') {
                 $session->clearLogins($post['clear_logins_by']);
                 $this->sess->setRequestValue('removed', true);
             } else {
                 if (isset($post['rm_logins'])) {
                     $session->removeLogins($post['rm_logins']);
                     $this->sess->setRequestValue('removed', true);
                 }
             }
         }
         $this->redirect('/sessions/logins');
     } else {
         $searchUsername = $this->request->getQuery('search_username');
         if ($session->hasLoginPages($this->application->config()['pagination'], $searchUsername)) {
             $limit = $this->application->config()['pagination'];
             $pages = new Paginator($session->getLoginCount($searchUsername), $limit);
             $pages->useInput(true);
         } else {
             $limit = null;
             $pages = null;
         }
         $this->prepareView('sessions/logins.phtml');
         $this->view->title = 'Sessions : Logins';
         $this->view->pages = $pages;
         $this->view->queryString = $this->getQueryString('sort');
         $this->view->searchUsername = $searchUsername;
         $this->view->users = $session->getAllUsers();
         $this->view->logins = $session->getLogins($searchUsername, $limit, $this->request->getQuery('page'), $this->request->getQuery('sort'));
         $this->send();
     }
 }
示例#20
0
 /**
  * Get pages of content by date
  *
  * @param  string $date
  * @param  string $limit
  * @return mixed
  */
 public function getDatePages($date, $limit = null)
 {
     $sql = Table\Content::sql();
     $sql->select(['count' => 'COUNT(*)', 'in_date' => DB_PREFIX . 'content_types.in_date']);
     $sql->select()->join(DB_PREFIX . 'content_types', [DB_PREFIX . 'content_types.id' => DB_PREFIX . 'content.type_id']);
     $dateAry = explode('/', $date);
     if (count($dateAry) == 3) {
         $start = $dateAry[0] . '-' . $dateAry[1] . '-' . $dateAry[2] . ' 00:00:00';
         $end = $dateAry[0] . '-' . $dateAry[1] . '-' . $dateAry[2] . ' 23:59:59';
     } else {
         if (count($dateAry) == 2) {
             $start = $dateAry[0] . '-' . $dateAry[1] . '-01 00:00:00';
             $end = $dateAry[0] . '-' . $dateAry[1] . '-' . date('t', strtotime($dateAry[0] . '-' . $dateAry[1] . '-01')) . ' 23:59:59';
         } else {
             $start = $dateAry[0] . '-01-01 00:00:00';
             $end = $dateAry[0] . '-12-31 23:59:59';
         }
     }
     $sql->select()->where('status = :status')->where('publish >= :publish1')->where('publish <= :publish2')->where('in_date = :in_date');
     $params = ['status' => 1, 'publish' => [$start, $end], 'in_date' => 1];
     $count = Table\Content::execute((string) $sql, $params)->count;
     if ($count > $limit) {
         $pages = new Paginator($count, $limit);
         $pages->useInput(true);
     } else {
         $pages = null;
     }
     return $pages;
 }
示例#21
0
 public function index()
 {
     if (!isset($this->sess->user)) {
         $this->redirect('/login');
     }
     $this->prepareView('index.phtml');
     if (null !== $this->request->getQuery('modules')) {
         $model = new Model\Module();
         $this->view->title = 'Modules';
     } else {
         if (null !== $this->request->getQuery('themes')) {
             $model = new Model\Theme();
             $this->view->title = 'Themes';
         } else {
             $model = new Model\System();
             $this->view->title = 'System';
         }
     }
     if ($model->hasPages($this->pagination)) {
         $limit = $this->pagination;
         $pages = new Paginator($model->getCount(), $limit);
         $pages->useInput(true);
     } else {
         $limit = null;
         $pages = null;
     }
     $this->view->pages = $pages;
     $this->view->stats = $model->getAll($limit, $this->request->getQuery('page'), $this->request->getQuery('sort'));
     $this->view->php = $model->php;
     $this->view->db = $model->db;
     $this->view->server = $model->server;
     $this->view->os = $model->os;
     $this->send();
 }
示例#22
0
<?php

require_once '../../bootstrap.php';
use Pop\Paginator\Paginator;
try {
    $rows = array(array('id' => 1, 'name' => 'Test1', 'email' => '*****@*****.**'), array('id' => 2, 'name' => 'Test2', 'email' => '*****@*****.**'), array('id' => 3, 'name' => 'Test3', 'email' => '*****@*****.**'), array('id' => 4, 'name' => 'Test4', 'email' => '*****@*****.**'), array('id' => 5, 'name' => 'Test5', 'email' => '*****@*****.**'), array('id' => 6, 'name' => 'Test6', 'email' => '*****@*****.**'), array('id' => 7, 'name' => 'Test7', 'email' => '*****@*****.**'), array('id' => 8, 'name' => 'Test8', 'email' => '*****@*****.**'), array('id' => 9, 'name' => 'Test9', 'email' => '*****@*****.**'), array('id' => 10, 'name' => 'Test10', 'email' => '*****@*****.**'), array('id' => 11, 'name' => 'Test11', 'email' => '*****@*****.**'), array('id' => 12, 'name' => 'Test12', 'email' => '*****@*****.**'), array('id' => 13, 'name' => 'Test13', 'email' => '*****@*****.**'), array('id' => 14, 'name' => 'Test14', 'email' => '*****@*****.**'), array('id' => 15, 'name' => 'Test15', 'email' => '*****@*****.**'), array('id' => 16, 'name' => 'Test16', 'email' => '*****@*****.**'));
    $header = <<<HEADER
<table class="paged-table" cellpadding="0" cellspacing="0">
    <tr><td colspan="2">[{page_links}]</td></tr>
    <tr><td><strong>Name</strong></td><td><strong>Email</strong></td></tr>

HEADER;
    $rowTemplate = <<<TMPL
    <tr><td><a href="./edit-user.php?id=[{id}]">[{name}]</a></td><td>[{email}]</td></tr>

TMPL;
    $footer = <<<FOOTER
    <tr><td colspan="2">[{page_links}]</td></tr>
</table>

FOOTER;
    $pages = new Paginator($rows, 3, 3);
    $pages->setHeader($header)->setRowTemplate($rowTemplate)->setFooter($footer);
    echo $pages;
} catch (\Exception $e) {
    echo $e->getMessage();
}
示例#23
0
 /**
  * Browser action
  *
  * @return void
  */
 public function browser()
 {
     if (null !== $this->request->getQuery('editor') && null !== $this->request->getQuery('type')) {
         $this->prepareView('fields/browser.phtml');
         $this->view->title = 'File Browser';
         if (null === $this->request->getQuery('asset')) {
             if ($this->request->getQuery('type') == 'image') {
                 $this->view->pages = null;
                 $this->view->libraries = ['Assets' => ['images' => 'Images']];
             } else {
                 $libraries = [];
                 if ($this->application->isRegistered('phire-content')) {
                     $types = \Phire\Content\Table\ContentTypes::findAll(['order' => 'order ASC']);
                     if ($types->hasRows()) {
                         $libraries['Assets'] = [];
                         foreach ($types->rows() as $type) {
                             $libraries['Assets'][$type->id] = $type->name;
                         }
                     }
                 }
                 $libraries['Assets']['files'] = 'Files';
                 $libraries['Assets']['images'] = 'Images';
                 $this->view->pages = null;
                 $this->view->libraries = $libraries;
             }
         } else {
             $asset = $this->request->getQuery('asset');
             $assets = [];
             $limit = $this->config->pagination;
             $page = $this->request->getQuery('page');
             $pages = null;
             $field = new Model\Field();
             $uploadFolder = BASE_PATH . CONTENT_PATH . '/files';
             switch ($asset) {
                 case 'files':
                     $assets = $field->getAllFiles($uploadFolder);
                     $this->view->assetType = 'Files';
                     break;
                 case 'images':
                     $assets = $field->getAllImages($uploadFolder);
                     $this->view->assetType = 'Images';
                     break;
                 default:
                     if (is_numeric($asset) && $this->application->isRegistered('phire-content')) {
                         $type = \Phire\Content\Table\ContentTypes::findById($asset);
                         $content = \Phire\Content\Table\Content::findBy(['type_id' => $asset], ['order' => 'order, id ASC']);
                         foreach ($content->rows() as $c) {
                             $assets[BASE_PATH . $c->uri] = $c->title;
                         }
                         if (isset($type->id)) {
                             $this->view->assetType = $type->name;
                         }
                     }
                     break;
             }
             if (count($assets) > $limit) {
                 $pages = new Paginator(count($assets), $limit);
                 $pages->useInput(true);
                 $offset = null !== $page && (int) $page > 1 ? $page * $limit - $limit : 0;
                 $assets = array_slice($assets, $offset, $limit, true);
             }
             $this->view->pages = $pages;
             $this->view->browserAssets = $assets;
         }
         $this->send();
     }
 }
示例#24
0
    public function testRenderWithTemplate()
    {
        $rows = array(array('id' => 1, 'name' => 'Test1', 'email' => '*****@*****.**'), array('id' => 2, 'name' => 'Test2', 'email' => '*****@*****.**'), array('id' => 3, 'name' => 'Test3', 'email' => '*****@*****.**'), array('id' => 4, 'name' => 'Test4', 'email' => '*****@*****.**'), array('id' => 5, 'name' => 'Test5', 'email' => '*****@*****.**'), array('id' => 6, 'name' => 'Test6', 'email' => '*****@*****.**'), array('id' => 7, 'name' => 'Test7', 'email' => '*****@*****.**'), array('id' => 8, 'name' => 'Test8', 'email' => '*****@*****.**'), array('id' => 9, 'name' => 'Test9', 'email' => '*****@*****.**'), array('id' => 10, 'name' => 'Test10', 'email' => '*****@*****.**'), array('id' => 11, 'name' => 'Test11', 'email' => '*****@*****.**'), array('id' => 12, 'name' => 'Test12', 'email' => '*****@*****.**'), array('id' => 13, 'name' => 'Test13', 'email' => '*****@*****.**'), array('id' => 14, 'name' => 'Test14', 'email' => '*****@*****.**'), array('id' => 15, 'name' => 'Test15', 'email' => '*****@*****.**'), array('id' => 16, 'name' => 'Test16', 'email' => '*****@*****.**'));
        $header = <<<HEADER
<table class="paged-table" cellpadding="0" cellspacing="0">
    <tr><td colspan="2">[{page_links}]</td></tr>
    <tr><td><strong>Name</strong></td><td><strong>Email</strong></td></tr>

HEADER;
        $rowTemplate = <<<TMPL
    <tr><td><a href="./edit-user.php?id=[{id}]">[{name}]</a></td><td>[{email}]</td></tr>

TMPL;
        $footer = <<<FOOTER
    <tr><td colspan="2">[{page_links}]</td></tr>
</table>

FOOTER;
        $p = new Paginator($rows, 3, 3);
        $p->setHeader($header)->setRowTemplate($rowTemplate)->setFooter($footer);
        $render = $p->render(1, true);
        ob_start();
        $p->render(1);
        $output = ob_get_clean();
        $this->assertContains('<tr><td><a href="./edit-user.php?id=1">Test1</a></td><td>test1@email.com</td></tr>', $render);
        $this->assertContains('<tr><td><a href="./edit-user.php?id=1">Test1</a></td><td>test1@email.com</td></tr>', $output);
        $this->assertContains('<tr><td><a href="./edit-user.php?id=1">Test1</a></td><td>test1@email.com</td></tr>', (string) $p);
    }
示例#25
0
 /**
  * Encode the data into its native format.
  *
  * @param  mixed  $data
  * @param  array  $options
  * @param  int    $perPage
  * @param  int    $range
  * @param  int    $total
  * @return string
  */
 public static function encode($data, array $options = null, $perPage = 0, $range = 10, $total = null)
 {
     $output = '';
     $header = '';
     $row = '';
     $footer = '';
     $sep = isset($options['separator']) ? $options['separator'] : ' | ';
     $indent = isset($options['indent']) ? $options['indent'] : '    ';
     $date = isset($options['date']) ? $options['date'] : 'M j, Y';
     $exclude = isset($options['exclude']) ? $options['exclude'] : array();
     $process = null;
     $submit = null;
     if (!is_array($exclude)) {
         $exclude = array($exclude);
     }
     if (isset($options['form']) && is_array($options['form'])) {
         $process = isset($options['form']['process']) ? $options['form']['process'] : null;
         $submit = isset($options['form']['submit']) ? $options['form']['submit'] : null;
         $output .= $indent . '<form';
         foreach ($options['form'] as $attrib => $value) {
             if ($attrib != 'process' && $attrib != 'submit') {
                 $output .= ' ' . $attrib . '="' . $value . '"';
             }
         }
         $output .= '>' . PHP_EOL;
     }
     $output .= $indent . '    <table';
     if (isset($options['table']) && is_array($options['table'])) {
         foreach ($options['table'] as $attrib => $value) {
             if ($attrib != 'headers') {
                 $output .= ' ' . $attrib . '="' . $value . '"';
             }
         }
     }
     $output .= '>' . PHP_EOL;
     // Initialize and clean the header fields.
     foreach ($data as $ary) {
         $tempAry = array_keys((array) $ary);
     }
     $headerAry = array();
     $headerKeysAry = array();
     foreach ($tempAry as $value) {
         if (!in_array($value, $exclude)) {
             $headerKeysAry[] = $value;
             if (isset($options['table']) && isset($options['table']['headers']) && is_array($options['table']['headers']) && array_key_exists($value, $options['table']['headers'])) {
                 $headerAry[] = $options['table']['headers'][$value];
             } else {
                 $headerAry[] = ucwords(str_replace('_', ' ', (string) $value));
             }
         }
     }
     if (isset($options['form'])) {
         if (isset($options['table']) && isset($options['table']['headers']) && is_array($options['table']['headers']) && isset($options['table']['headers']['process'])) {
             $headerAry[] = $options['table']['headers']['process'];
             $headerKeysAry[] = 'process';
         } else {
             $headerAry[] = null !== $submit && is_array($submit) && isset($submit['value']) ? $submit['value'] : '&nbsp;';
             $headerKeysAry[] = 'process';
         }
     }
     // Set header output.
     $output .= $indent . '        <tr><th class="first-th">' . implode('</th><th>', $headerAry) . '</th></tr>' . PHP_EOL;
     $pos = strrpos($output, '<th') + 3;
     $output = substr($output, 0, $pos) . ' class="last-th"' . substr($output, $pos);
     // Set header and row templates
     $header = $indent . '<div class="page-links">[{page_links}]</div>' . PHP_EOL . $output;
     $row = $indent . '        <tr><td class="first-td">[{' . implode('}]</td><td>[{', $headerKeysAry) . '}]</td></tr>' . PHP_EOL;
     $pos = strrpos($row, '<td') + 3;
     $row = substr($row, 0, $pos) . ' class="last-td"' . substr($row, $pos);
     $rowValuesAry = array();
     // Initialize and clean the field values.
     $i = 1;
     foreach ($data as $value) {
         $rowAry = array();
         foreach ($value as $key => $val) {
             if (!in_array($key, $exclude)) {
                 if (strtotime((string) $val) !== false && (stripos($key, 'date') !== false || stripos($key, 'time') !== false)) {
                     $v = date($date, strtotime($val)) != '12/31/1969' ? date($date, strtotime((string) $val)) : '';
                 } else {
                     $v = (string) $val;
                 }
                 if (isset($options[$key])) {
                     $tmpl = $options[$key];
                     foreach ($value as $ky => $vl) {
                         if (strtotime((string) $vl) !== false && (stripos($key, 'date') !== false || stripos($key, 'time') !== false)) {
                             $vl = date($date, strtotime($vl)) != '12/31/1969' ? date($date, strtotime((string) $vl)) : '';
                         } else {
                             $vl = (string) $vl;
                         }
                         $tmpl = str_replace('[{' . $ky . '}]', $vl, $tmpl);
                     }
                     $v = $tmpl;
                 }
                 $rowAry[] = $v;
             }
         }
         if (isset($options['form'])) {
             if (null !== $process) {
                 $tmpl = str_replace('[{i}]', $i, $process);
                 foreach ($value as $ky => $vl) {
                     $tmpl = str_replace('[{' . $ky . '}]', $vl, $tmpl);
                 }
                 if (isset($exclude['process'])) {
                     $keys = array_keys($exclude['process']);
                     if (isset($keys[0]) && $exclude['process'][$keys[0]] == $value[$keys[0]]) {
                         $tmpl = '&nbsp;';
                     }
                 }
             } else {
                 $tmpl = '&nbsp;';
             }
             $rowAry[] = $tmpl;
         }
         $i++;
         foreach ($rowAry as $k => $r) {
             $rowAry[$headerKeysAry[$k]] = $r;
             unset($rowAry[$k]);
         }
         $rowValuesAry[] = $rowAry;
         // Set field output.
         $output .= $indent . '        <tr><td class="first-td">' . implode('</td><td>', $rowAry) . '</td></tr>' . PHP_EOL;
         $pos = strrpos($output, '<td') + 3;
         $output = substr($output, 0, $pos) . ' class="last-td"' . substr($output, $pos);
     }
     if (isset($options['form'])) {
         if (null !== $submit && is_array($submit)) {
             $submitBtn = '<input type="submit" name="submit"';
             if (!isset($submit['id'])) {
                 $submitBtn .= ' id="submit"';
             }
             foreach ($submit as $attrib => $value) {
                 $submitBtn .= ' ' . $attrib . '="' . $value . '"';
             }
             $submitBtn .= ' />';
         } else {
             $submitBtn = '<input type="submit" name="submit" id="submit" value="Submit" />';
         }
         $output .= $indent . '        <tr class="table-bottom-row"><td colspan="' . count($headerAry) . '" class="table-bottom-row">' . $submitBtn . '</td></tr>' . PHP_EOL;
         $output .= $indent . '    </table>' . PHP_EOL;
         $output .= $indent . '</form>' . PHP_EOL;
         $footer = $indent . '        <tr class="table-bottom-row"><td colspan="' . count($headerAry) . '" class="table-bottom-row">' . $submitBtn . '<div class="page-links">[{page_links}]</div></td></tr>' . PHP_EOL;
         $footer .= $indent . '    </table>' . PHP_EOL;
         $footer .= $indent . '</form>' . PHP_EOL;
     } else {
         $output .= $indent . '    </table>' . PHP_EOL;
         $footer = $indent . '    </table>' . PHP_EOL;
         $footer .= $indent . '<div class="page-links">[{page_links}]</div>' . PHP_EOL;
     }
     if ($perPage > 0) {
         $pages = new Paginator($rowValuesAry, $perPage, $range, $total);
         $pages->setHeader($header)->setRowTemplate($row)->setFooter($footer)->setSeparator($sep);
         $output = (string) $pages;
     }
     return $output;
 }
示例#26
0
 /**
  * Submissions action method
  *
  * @param  int $id
  * @return void
  */
 public function submissions($id)
 {
     $form = new Model\Form();
     $form->getById($id);
     if (!isset($form->id)) {
         $this->redirect(BASE_PATH . APP_URI . '/forms');
     }
     $submission = new Model\FormSubmission();
     if ($submission->hasPages($id, $this->config->pagination)) {
         $limit = $this->config->pagination;
         $pages = new Paginator($submission->getCount($id), $limit);
         $pages->useInput(true);
     } else {
         $limit = null;
         $pages = null;
     }
     $submissions = $submission->getAll($id, $limit, $this->request->getQuery('page'), $this->request->getQuery('sort'), $this->application->modules());
     $this->prepareView('forms/submissions.phtml');
     $this->view->title = 'Forms : ' . $form->name . ' : Submissions';
     $this->view->id = $id;
     $this->view->pages = $pages;
     $this->view->fieldListLimit = $this->application->module('phire-forms')['field_list_limit'];
     $this->view->fields = $submissions['fields'];
     $this->view->submissions = $submissions['rows'];
     $this->send();
 }