.
├── 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
.
├── 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