shel/neos-reports

Report generator for Neos CMS node data

Installs: 9 816

Dependents: 0

Suggesters: 0

Security: 0

Stars: 7

Watchers: 2

Forks: 0

Open Issues: 0

Language:JavaScript

Type:neos-plugin

1.2.0 2023-11-16 13:44 UTC

This package is auto-updated.

Last update: 2024-11-16 15:45:48 UTC


README

This package provides an Excel report generator for NeosCMS.

You can configure report profiles via yaml and each can define which nodetypes should be included and the columns for each of those. An optional starting point allows to only export parts of your site.

A backend module shows a list of all configured profiles and allows to export them.

Installation

Run the following command in your Neos project:

composer require shel/neos-reports

Or add the package as dependency to your site-package.

Configuration example for a report preset

Shel:
  Neos:
    Reports:
      presets: 
        myReport:
          label: 'My Report'
          startingPoint: '/sites'
          filenamePrefix: 'My report'
          dateTimeFormats: 
            input: 'd.m.Y'
            values: 'd.m.Y H:i'
            filename: 'Y-m-d_H-i'
          nodeTypes:
            My.Vendor:Content.Event:
              label: 'Events'
              sortBy: 'title'
              properties:
                - title
                - category
                - startDate
                - startTime
                - endDate
                - endTime
                - location
                - image
              expressions:
                # Get title from first content element
                Headline: "${q(node).children('content').first().property('title')}"
  
            My.Vendor:Document.News:
              label: 'News'
              sortBy: 'title'
              properties:
                - title
                - publicationDateTime
              expressions:
                # Get text from the first content node in main content collection and remove html tags
                Text: "${String.stripTags(q(node).children('main').children('[instanceof My.Vendor:Content.Text]').first().property('content'))}"
  
            My.Vendor:Content.text:
              sortBy: 'text'
              properties:
                - text

Contribute

Contributions are very welcome.

For code contributions, please create a fork and create a PR against the lowest maintained branch of this repository (currently main).

License

See License