示例#1
0
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  */
 public function show($id)
 {
     // if exist external content then send it to browser, increment views
     $external_content = $this->showPage->checkAndGetContentFromHtmlFile(app('veer')->siteId, $id);
     if (!empty($external_content)) {
         \Veer\Models\Page::where('id', '=', $id)->increment('views');
         return \Response::make($external_content, 200)->header('Content-type', 'text/html');
     }
     $page = $this->showPage->getPage($id, app('veer')->siteId);
     if (!is_object($page)) {
         return Redirect::route('page.index');
     }
     $page->increment('views');
     $page->load(array('images' => function ($q) {
         return $q->orderBy('pivot_id', 'asc');
     }, 'tags', 'attributes', 'downloads', 'userlists', 'user'));
     $page->imagesIds = collect($page->images->getDictionary());
     if ($page->show_comments == 1) {
         $this->showPage->loadComments($page, 'page');
     }
     $paginator_and_sorting = get_paginator_and_sorting();
     $data = array("page" => $page, "subpages" => $this->showPage->withChildPages(app('veer')->siteId, $page->id, $paginator_and_sorting), "parentpages" => $this->showPage->withParentPages(app('veer')->siteId, $page->id, $paginator_and_sorting), "products" => $this->showPage->withProducts(app('veer')->siteId, $page->id, $paginator_and_sorting), "categories" => $this->showPage->withCategories(app('veer')->siteId, $page->id), "template" => $this->template);
     $blade_path = $this->template . '.pages.' . $id;
     $viewLink = $this->template . '.page';
     // page with special design
     if ($page->original == 1 && \View::exists($blade_path)) {
         $viewLink = $blade_path;
     }
     $view = viewx($viewLink, $data);
     $this->view = $view;
     return $view;
 }
示例#2
0
 /**
  * Query Builder: 
  * 
  * - who: 1 Page
  * - with: 
  * - to whom: make() | page/{id}
  */
 public function getPage($id, $siteId = null)
 {
     $field = !is_numeric($id) ? "url" : "id";
     $page = \Veer\Models\Page::where($field, '=', $id);
     if (!empty($siteId)) {
         $page = $page->excludeHidden()->sitevalidation($siteId);
     }
     return $page->first();
 }
示例#3
0
 /**
  * Handle user login events.
  */
 public function getNeighbours($event = null)
 {
     $this->pageId = $event;
     $this->data['exists'] = false;
     $this->data['previous'] = \Veer\Models\Page::where('id', '<', $this->pageId)->sitevalidation(app('veer')->siteId)->excludeHidden()->select('title', 'id', 'url')->orderBy('id', 'desc')->first();
     $this->data['next'] = \Veer\Models\Page::where('id', '>', $this->pageId)->sitevalidation(app('veer')->siteId)->excludeHidden()->select('title', 'id', 'url')->orderBy('id', 'asc')->first();
     if (count($this->data['previous']) > 0 || count($this->data['next']) > 0) {
         $this->data['exists'] = true;
     }
     app('veer')->loadedComponents['event']['neighbours'] = $this->data;
 }
示例#4
0
 /**
  * Sort pages. Max 24 per batch (depends on pagination).
  *
  * @param array $data
  * @return \Veer\Services\Administration\Elements\Page
  */
 public function sort($data)
 {
     if (empty($data) || !is_array($data)) {
         return $this;
     }
     $url_params = array_get($data, '_refurl');
     $parse_str = $data;
     if (!empty($url_params)) {
         parse_str(starts_with($url_params, '?') ? substr($url_params, 1) : $url_params, $parse_str);
         if (!empty($parse_str['page'])) {
             \Input::merge(['page' => $parse_str['page']]);
         }
     }
     $parse_str += ['filter' => null, 'filter_id' => null, 'sort' => null, 'sort_direction' => null, 'page' => 1];
     $pages = new \Veer\Services\Show\Page();
     $oldsorting = $pages->getAllPages([[$parse_str['filter'] => $parse_str['filter_id']], [$parse_str['sort'] => $parse_str['sort_direction']]]);
     if (is_object($oldsorting)) {
         $bottom_sort = $oldsorting[count($oldsorting) - 1]->manual_order;
         $sort = $oldsorting[0]->manual_order;
         foreach ($this->sortElementsEntities($oldsorting, $data) as $id) {
             if ($sort < $bottom_sort && $parse_str['sort_direction'] == 'desc') {
                 $sort = $bottom_sort;
             }
             if ($sort > $bottom_sort && $parse_str['sort_direction'] == 'asc') {
                 $sort = $bottom_sort;
             }
             \Veer\Models\Page::where('id', '=', $id)->update(['manual_order' => $sort]);
             if ($parse_str['sort_direction'] == 'desc') {
                 $sort--;
             } else {
                 $sort++;
             }
         }
     }
     return $this;
 }
 public function testDelete()
 {
     $entity = \Veer\Models\Page::first();
     $this->assertTrue(is_object($entity));
     $this->page->delete($entity->id);
     $entity = \Veer\Models\Page::where('id', $entity->id)->first();
     $this->assertTrue(!is_object($entity));
 }