# Instalation guide for SGalinski.TypoScriptReferenceFrontend Flow package

## Prerequisite

SGalinski.TypoScriptReferenceFrontend is Flow package, so you need first a flow project:

    composer create-project --dev --keep-vcs typo3/flow-base-distribution ProjectName
    
You can use any project name you wish. If you already have Flow project, you can skip this step.

## Install

The project can be installed by composer, or downloaded from git:
 
### A) Install by composer

    TODO: Setup composer.json to install from git repository

    cd ProjectName
    composer require ...
    composer update

### B) Download from git

    cd Packages/Application
    git clone git@gitlab.sgalinski.de:typo3/TypoScript-Forger.git SGalinski.TypoScriptReferenceFrontend
    cd typo_script_backend

## Supply the necessary routes

Edit Routes.yaml of your project (`ProjectName/Configuration/Routes.yaml`)

### If you are using WMDB.Forger package in same project

It is important to include SGalinski.TypoScriptReferenceFrontend subRoutes before WMDB.ForgerSubroutes to avoid
route conflicts. 
The prefix `ts` in uriPattern: `ts/<SGalinski.TypoScriptReferenceFrontend>` has purpose to avoid the conflict.

<pre>
-
  name: 'TypoScriptReferenceFrontend'
  uriPattern: ``'ts/<SGalinski.TypoScriptReferenceFrontend>'``
  subRoutes:
    SGalinski.TypoScriptReferenceFrontend:
      package: SGalinski.TypoScriptReferenceFrontend

-
  name: 'Forger'
  uriPattern: `'<WMDB.ForgerSubroutes>'`
  subRoutes:
    WMDB.ForgerSubroutes:
      package: WMDB.Forger

##
# Flow subroutes
#

-
  name: 'Flow'
  uriPattern: '<FlowSubroutes>'
  defaults:
    '@format': 'html'
  subRoutes:
    FlowSubroutes:
      package: TYPO3.Flow
</pre>

### In empty project Routes.yaml looks like this

    -
      name: 'TypoScriptReferenceFrontend'
      uriPattern: '<SGalinski.TypoScriptReferenceFrontend>'
      subRoutes:
        SGalinski.TypoScriptReferenceFrontend:
          package: SGalinski.TypoScriptReferenceFrontend
    
    ##
    # Flow subroutes
    #
    
    -
      name: 'Flow'
      uriPattern: '<FlowSubroutes>'
      defaults:
        '@format': 'html'
      subRoutes:
        FlowSubroutes:
          package: TYPO3.Flow

Uri prefix can be added if needed.

## Configure view

To be able to integrate `SGalinski.TypoScriptReferenceFrontend` package with other packages 
(for example to use existing menu from other package), view configuration in main project is needed.

Here is view configuration for integration with `WMDB.Forger` package.

`ProjectName/Configuration/Views.yaml`:

<pre>
-
  options:
    layoutRootPaths:
      'WMDB.Forger/Layouts': 'resource://WMDB.Forger/Private/Layouts'
    partialRootPaths:
      'WMDB.Forger/Partials': 'resource://WMDB.Forger/Private/Partials'
      'SGalinski.TypoScriptReferenceFrontend/Partials': 'resource://SGalinski.TypoScriptReferenceFrontend/Private/Partials'
#    templateRootPaths:
#      'WMDB.Forger/Templates': 'resource://WMDB.Forger/Private/Templates'
#      'SGalinski.TypoScriptReferenceFrontend/Templates': 'resource://SGalinski.TypoScriptReferenceFrontend/Private/Templates'
</pre>

## Install backend

This project is front end part of grater entity. 
All the data which is used by this package is provided by RESTful web service:

    https://gitlab.sgalinski.de/typo3/TypoScript-Backend
    
If the web service is not installed, follow it's readme to do so.