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