/** * 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; }
/** * 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(); }
/** * 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; }
/** * 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)); }