Devise\Pages\PagesRepository::getPageVersions PHP Method

getPageVersions() public method

Get the versions of a page
public getPageVersions ( integer $pageId, null $selectedPageVersionId = null ) : EloquentCollection[PageVersions]
$pageId integer
$selectedPageVersionId null
return EloquentCollection[PageVersions]
    public function getPageVersions($pageId, $selectedPageVersionId = null)
    {
        $page = $this->Page->findOrFail($pageId);
        $versions = $page->versions;
        foreach ($versions as $version) {
            if ($selectedPageVersionId && $version->id == $selectedPageVersionId) {
                $version->selected = 'selected';
            }
        }
        $versions = $this->wrapPageVersionStatuses($versions, $page);
        return $versions;
    }

Usage Example

示例#1
0
 /**
  * Creates a json object that we use for editing a
  * devise page
  *
  * @return string
  */
 public function toJSON()
 {
     // Occurs when there are no data-devise tags on the page
     if (!$this->initialized) {
         $data = new \StdClass();
         $data->database = new \StdClass();
         $data->nodes = [];
         $data->csrfToken = $this->csrfToken;
         return $this->jsonEncode($data);
     }
     $pageVersionId = $this->pageVersionId;
     $pageId = $this->pageId;
     $languageId = $this->languageId;
     $csrfToken = $this->csrfToken;
     $route = Route::getCurrentRoute();
     $params = $route ? $route->parameters() : [];
     $availableLanguages = $this->PagesRepository->availableLanguagesForPage($pageId, $params);
     $pageRoutes = $this->PagesRepository->getRouteList();
     $pageVersions = $this->PagesRepository->getPageVersions($pageId, $pageVersionId);
     $collections = $this->filterTags('collection');
     $fields = $this->filterTags('field');
     $models = $this->filterTags('model');
     $attributes = $this->filterTags('attribute');
     $creators = $this->filterTags('creator');
     $nodes = $this->buildNodes($collections, $fields, $models, $attributes, $creators);
     $database = $this->database;
     return $this->jsonEncode(compact('nodes', 'pageId', 'pageVersionId', 'languageId', 'csrfToken', 'availableLanguages', 'pageRoutes', 'pageVersions', 'database'));
 }