Filesystem

only important files and folders are listed.

Folders

created with tree -dv -L 4
. 
├── documentation                 →  Documantation of project
├── tests                         →  Seleniumtests for some part of the project
│   ├── 01_register               →  Registertests
│   ├── 02_login                  →  Logintests
│   ├── 03_create_project         →  Create team tests
│   ├── 04_listteams              →  List teams tests
│   ├── 05_listpublic             →  List public teams test
│   └── 06_newscript              →  New Screenplay tests
└── web                           →  Everything that is accessible for the visitor. You should upload this folder to your webspace.
    ├── assets                    →  Temporary asset files for clients, like bootstrap, styles, javascript, images. It has to be writable. In the git repository this folder should always be empty.
    ├── css                       →  Static stylesheets
    │   └── fonts                 →  Fonts used in stylesheets and fonts that contain icons.
    ├── includes                  →  php code for the project
    │   ├── assets                →  Assetbundles. Defines what files get copied to the temporary asset folder.
    │   ├── config                →  Config files, db.php, language.php, mail.php and installed.php have to be writable.
    │   ├── controllers           →  Controllers: Define what happens on a specific action (action=url call) (see wikipedia: Model–view–controller)
    │   ├── messages              →  Translation files, every subfolder is one language. If there is no folder for the selected language the strings inside the code will be used.
    │   │   ├── TEST              →  Testlanguage. Every string gets translated into "TEST". With this language you can easily find strings that are not translated yet.
    │   │   ├── de-DE             →  German
    │   │   ├── en-EN             →  English
    │   │   └── pt-PT             →  Portuguese
    │   ├── models                →  Models: Logic for teams, screenplays, users, ... also contains formlogic (see wikipedia: Model–view–controller)
    │   ├── rbac                  →  RBAC rules: Define if a user has a specific role in the team or not. (see Role-based access control)
    │   ├── runtime               →  Runtime files for yii2. It has to be writable.
    │   ├── vendor                →  php libraries
    │   │   ├── PhpWord           →  used for export to docx, rtf, odt
    │   │   ├── bin               →  shipped with yii2, link to cebe
    │   │   ├── cebe              →  shipped with yii2, Markdown library
    │   │   ├── composer          →  shipped with yii2
    │   │   ├── dompdf            →  used for export to pdf
    │   │   ├── ezyang            →  shipped with yii2
    │   │   ├── fancytree         →  used for category and tagtree 
    │   │   ├── jquery-i18n       →  used for javascript translation 
    │   │   ├── jquery-scrollto   →  used for scroll to scene inside screenplay editor 
    │   │   ├── jquery-ui         →  used for jQuery graphical userinterface
    │   │   ├── phpspec           →  shipped with yii2
    │   │   ├── select2           →  used for tagging
    │   │   ├── simplecolorpicker →  used to pick color when editing a tag or category 
    │   │   ├── swiftmailer       →  shipped with yii2, used for sending mails
    │   │   ├── twbs              →  shipped with yii2, twitter bootstrap design
    │   │   └── yiisoft           →  shipped with yii2, yii2 core
    │   └── views                 →  Views: display the application. Sometimes known as templates. (see wikipedia: Model–view–controller)
    │       ├── admin             →  admin tages
    │       ├── ajax              →  ajax (only echo or json_encode)
    │       ├── install           →  install pages
    │       ├── layouts           →  layouts around other views (containing navigation)
    │       ├── screenplay        →  screenplay pages
    │       ├── site              →  general site pages (login for example)
    │       ├── team              →  team pages
    │       ├── testing           →  only used for selenium tests, only echo, no security issues
    │       └── user              →  user page and edit profile
    ├── js                        →  static javascript code
    │   └── screenplay            →  javascript for screenplay editor (fancytree, tinymce, layout, comments, Tagtree)
    └── media                     →  images

Files

created with tree -v -L 4
.
├── yii                                    →  yii2 console script. Can for example extract messages for translation (can be run under linux)
├── yii.bat                                →  start yii2 console script (windows)
├── documentation
│   └── index.html                         →  Documentation index file
├── tests
│   ├── TestingController.php              →  For testing this files has to be moved to /web/includes/controllers do not leave this file in controllers folder in productive environment, it causes security issues!
│   └── index-test.php                     →  For debugging this files has to be moved to /web/ do not leave this file in /web folder in productive environment, it causes security issues!
└── web
    └── assets
    ├── css
    │   ├── history.css                    →  Design for screenplay/history page
    │   ├── icons.css                      →  stylesheet for icons
    │   ├── screenplay.css                 →  Design for edit screenplay page
    │   ├── scriptFormats.css              →  Design for screenplay blocks (scene, character, dialogue, ...)
    │   ├── showbreakdownreport.css        →  Design for displaying breakdownreports
    │   ├── site.css                       →  Design for global site
    │   └── ui.fancytree.css               →  Design for Fancytree
    ├── favicon.ico                        →  favicon of page
    ├── includes
    │   ├── assets
    │   │   ├── AppAsset.php               →  Asset for site. Contains 'css/site.css'
    │   │   ├── ColorPickerAsset.php       →  Asset for colorpicker used in tagtree
    │   │   ├── FancytreeAsset.php         →  Asset for Fancytree used in Tagtree
    │   │   ├── I18NAsset.php              →  Asset for js i18n wrapper written by us and dictionary
    │   │   ├── JQueryI18NAsset.php        →  JQuery i18n asset
    │   │   ├── JqueryScrollToAsset.php    →  Asset for JQuery scrollto
    │   │   ├── JqueryUIAsset.php          →  Asset for JQuery UI
    │   │   └── Select2.php                →  Asset for select2
    │   ├── config
    │   │   ├── console.php                →  for console application, not really needed
    │   │   ├── db.php                     →  for database connection. Has to be writable. Will be overwritten during install.
    │   │   ├── installed.php              →  boolean value if system is installed. Has to be writable. Will be overwritten during install. When not installed or project is shipped it has to be false.
    │   │   ├── language.php               →  string value for language folder. Has to be writable. Will be written in admin settings.
    │   │   ├── mail.php                   →  mailsettings. Has to be writable
    │   │   └── web.php                    →  normal config file. includes params.php, db.php, language.php
    │   ├── controllers
    │   │   ├── AdminController.php        →  for admin Backend actions(user and team management, global settings)
    │   │   ├── AjaxController.php         →  for ajax communication with javascript client (get/set screenplaycontent, get/save/delete comments, get/save tree, keeplock)
    │   │   ├── InstallController.php      →  installactions, used only during install
    │   │   ├── ScreenplayController.php   →  for screenplay actions
    │   │   ├── SiteController.php         →  for global actions (register, login, logout, activate, contact)
    │   │   ├── TeamController.php         →  for team actions
    │   │   ├── TestingController.php      →  only used for testing, not shipped in this location do not leave this file here in productive environment, it causes security issues!
    │   │   └── UserController.php         →  for user action (view, edit profile) 
    │   ├── messages
    │   │   ├── config.php                 →  config file for extracting displayed strings from code (js,php) to subfolders
    │   │   ├── en-EN
    │   │   │   ├── app.php                →  english translationfile for php code
    │   │   │   └── js.php                 →  english translationfile for js code
    │   │   ├── generate_messages.sh       →  Linux sh script. Uses /yii file in rootfolder to extract displayed strings from code (js,php) to subfolders.
    │   ├── models
    │   │   ├── AddscreenplayForm.php      →  Form logic for screenplay -> add
    │   │   ├── AddteamForm.php            →  Form logic for team -> add
    │   │   ├── AdminaddteamForm.php       →  Form logic for admin -> adding a team
    │   │   ├── AdminAdduserForm.php       →  Form logic for admin -> adding a user
    │   │   ├── AdmineditteamForm.php      →  Form logic for admin -> edit a team
    │   │   ├── AdminedituserForm.php      →  Form logic for admin -> edit a user
    │   │   ├── AdminsettingsForm.php      →  Form logic for admin -> change settings
    │   │   ├── BreakdownForm.php          →  Form logic for screenplay -> breakdown
    │   │   ├── CeltxImport.php            →  logic for import celtic file
    │   │   ├── Comment.php                →  logic for comments
    │   │   ├── ContactForm.php            →  Form logic for site -> contactpage
    │   │   ├── DbConfigForm.php           →  Form logic for installer -> db config
    │   │   ├── EditprofileForm.php        →  Form logic for user -> edit profile
    │   │   ├── EditteamForm.php           →  Form logic for team -> edit
    │   │   ├── ExportForm.php             →  Form logic for screenplay -> export
    │   │   ├── ExportPhpWord.php          →  logic for export with library phpword (odt,docx,rtf)
    │   │   ├── HistoryForm.php            →  Form logic for screenplay -> history
    │   │   ├── ImportForm.php             →  Form logic for team -> import
    │   │   ├── MailConfigForm.php         →  Form logic for installer -> MailConfig
    │   │   ├── Installer.php              →  logic for installer
    │   │   ├── InvitecollaboratorForm.php →  Form logic for team -> invite collaborator(artist)
    │   │   ├── InviteobserverForm.php     →  Form logic for team -> invite observer
    │   │   ├── KickuserForm.php           →  Form logic for team -> kick user
    │   │   ├── LoginForm.php              →  Form logic for site -> login
    │   │   ├── RegisterForm.php           →  Form logic for site -> register
    │   │   ├── RegisterinpublicForm.php   →  Form logic for team -> registerinpublic
    │   │   ├── ScreenplaydeleteForm.php   →  Form logic for screenplay -> delete
    │   │   ├── Screenplay.php             →  logic for screenplays (and breakdownforms)
    │   │   ├── Setting.php                →  logic for one setting (has key, value, type; for example [pagetitle,SAWP,3],[emailActivation,true,1])
    │   │   ├── TeamdeleteForm.php         →  Form logic for team -> delete
    │   │   ├── TeamleaveForm.php          →  Form logic for team -> leave
    │   │   ├── Team.php                   →  logic for team
    │   │   ├── TrelbyImport.php           →  logic for import trelby file
    │   │   ├── UserdeleteForm.php         →  Form logic for admin -> userdelete
    │   │   ├── User.php                   →  logic for user
    │   │   └── UserRightForm.php          →  Form logic for team -> change right/role of user
    │   ├── rbac
    │   │   ├── ArtistOrBetterRule.php     →  true if user is artist or director in this team
    │   │   ├── ArtistRule.php             →  true if user is artist in this team
    │   │   ├── DirectorRule.php           →  true if user is director in this team
    │   │   ├── ObserverOrBetterRule.php   →  true if user is collaborator/member in this team (observer,artist or director)
    │   │   └── ObserverRule.php           →  true if user is observer in this team
    │   ├── sawp.sql                       →  database. Will be importet during installation.
    │   ├── README.md                      →  Readme for yii2
    │   ├── LICENSE.md                     →  License for yii2
    │   └── views
    │       ├── ajax
    │       │   ├── get.php                →  does a simple echo
    │       │   └── save.php               →  echo with json_encode
    │       ├── layouts
    │       │   ├── install.php            →  Layout for installation
    │       │   ├── main.php               →  Normal site layout
    │       │   ├── none.php               →  no layout (only echo)
    │       │   └── screenplay.php         →  layout for screenplayeditor
    │       ├── site
    │       │   └── error.php              →  Viewed on error
    │       └── testing
    │           └── output.php             →  used for testing. only echo
    ├── index.php                          →  Main php file. Call it to use the application.
    ├── index-test.php                     →  only used for testing, not shipped in this location do not leave this file here in productive environment, it causes security issues!
    ├── js
    │   ├── breakdownreport.js             →  script code for screenplay -> breakdownreport
    │   ├── export.js                      →  script code for screenplay -> export
    │   ├── history.js                     →  script code for screenplay -> history
    │   ├── jquery.i18n-dict.js.php        →  script code for translation. The php code generates a js file with all strings from includes/messages/$lang/js.php.
    │   ├── jquery.i18n-wrapper.js         →  wrapper for jquery.i18n. we need a wrapper because: 1.Instead of empty strings use strings from code. 2.jst function needs two parameter for our script that exports strings to messages folder
    │   ├── screenplay
    │   │   ├── CommonFunctions.js         →  Common javascript dunctions
    │   │   ├── Layout.js                  →  Used for Layout, hide tagtree, show comments
    │   │   ├── main.js                    →  Main Screenplay javascript file, initialize, and keepLock
    │   │   ├── ScriptEditor.js            →  editor, tagging stuff
    │   │   ├── TagTree.js                 →  tagtree, edit tag popover, 
    │   └── showPageInModal.js             →  show a page in a modal.
    ├── media
    │   ├── help1.png                      →  picture for editor help
    │   ├── help2.png                      →  picture for tagtree help
    │   └── spinner.gif                    →  spinner loading animation
    └── robots.txt                         →  Config file for webcrawler/robots from internet search engines