From df14dfafc3eded4ff5c7ed1c21bf7633334a5b50 Mon Sep 17 00:00:00 2001 From: oliver Date: Sat, 9 Apr 2016 13:44:37 +0200 Subject: [PATCH] hide map for Character groups Quest Stations when there are no stations --- .hgignore | 10 + .htaccess | 50 + agents/BottomlevelAgent.inc | 25 + agents/IntermediateAgent.inc | 49 + agents/ToplevelAgent.inc | 395 + agents/bottomlevel/MailreceiverAgent.inc | 38 + agents/bottomlevel/MenuAgent.inc | 40 + agents/bottomlevel/MoodpicAgent.inc | 38 + .../QuestgroupshierarchypathAgent.inc | 38 + agents/bottomlevel/SeminarybarAgent.inc | 38 + agents/bottomlevel/SeminarymenuAgent.inc | 38 + agents/bottomlevel/UserrolesAgent.inc | 38 + agents/intermediate/AchievementsAgent.inc | 105 + agents/intermediate/CharactergroupsAgent.inc | 157 + .../CharactergroupsachievementsAgent.inc | 92 + .../CharactergroupsquestsAgent.inc | 105 + .../CharactergroupsqueststationsAgent.inc | 103 + agents/intermediate/CharactersAgent.inc | 105 + agents/intermediate/CharactertitlesAgent.inc | 79 + agents/intermediate/CharactertypesAgent.inc | 79 + agents/intermediate/ErrorAgent.inc | 38 + agents/intermediate/IntroductionAgent.inc | 38 + agents/intermediate/LibraryAgent.inc | 105 + agents/intermediate/MailAgent.inc | 38 + agents/intermediate/MapAgent.inc | 53 + agents/intermediate/MediaAgent.inc | 38 + agents/intermediate/PagesAgent.inc | 38 + agents/intermediate/QrAgent.inc | 38 + agents/intermediate/QrcodesAgent.inc | 38 + agents/intermediate/QuestgroupsAgent.inc | 136 + .../QuestgroupshierarchyAgent.inc | 24 + agents/intermediate/QuestsAgent.inc | 168 + agents/intermediate/SeminariesAgent.inc | 105 + agents/intermediate/UploadsAgent.inc | 38 + agents/intermediate/UsersAgent.inc | 50 + agents/intermediate/XplevelsAgent.inc | 40 + agents/toplevel/AjaxAgent.inc | 80 + agents/toplevel/BinaryAgent.inc | 51 + agents/toplevel/FaultAgent.inc | 38 + agents/toplevel/HtmlAgent.inc | 155 + agents/toplevel/HtmlmailAgent.inc | 52 + agents/toplevel/TextmailAgent.inc | 53 + apis/WebApi.inc | 250 + app/Controller.inc | 134 + app/Model.inc | 42 + app/TextFormatter.inc | 213 + app/Utils.inc | 239 + app/agents/QuesttypeAgent.inc | 268 + app/agents/StationtypeAgent.inc | 298 + app/agents/ToplevelAgent.inc | 43 + app/apis/MailApi.inc | 202 + app/controllers/IntermediateController.inc | 197 + app/controllers/QuesttypeController.inc | 320 + app/controllers/SeminaryController.inc | 202 + app/controllers/StationtypeController.inc | 320 + app/exceptions/FileCopyException.inc | 79 + app/exceptions/FileUploadException.inc | 79 + app/exceptions/MailingException.inc | 79 + app/exceptions/MaxFilesizeException.inc | 54 + .../QuesttypeAgentNotFoundException.inc | 79 + .../QuesttypeAgentNotValidException.inc | 79 + .../QuesttypeControllerNotFoundException.inc | 79 + .../QuesttypeControllerNotValidException.inc | 79 + .../QuesttypeModelNotFoundException.inc | 79 + .../QuesttypeModelNotValidException.inc | 79 + .../StationtypeAgentNotFoundException.inc | 79 + .../StationtypeAgentNotValidException.inc | 79 + ...StationtypeControllerNotFoundException.inc | 79 + ...StationtypeControllerNotValidException.inc | 79 + .../StationtypeModelNotFoundException.inc | 79 + .../StationtypeModelNotValidException.inc | 79 + .../SubmissionNotValidException.inc | 79 + app/exceptions/WrongFiletypeException.inc | 79 + app/lib/Netcarver/Textile/DataBag.php | 99 + app/lib/Netcarver/Textile/Parser.php | 4042 ++ app/lib/Netcarver/Textile/Tag.php | 118 + app/lib/PHPMailer.inc | 3453 ++ app/lib/PHPMailerAutoload.inc | 86 + app/lib/Password.inc | 316 + app/lib/Phpqrcode-lib.inc | 33 + app/lib/Phpqrcode.inc | 3346 ++ app/lib/SMTP.inc | 972 + app/lib/Textile.inc | 36 + app/lib/phpqrcode/CHANGELOG | 38 + app/lib/phpqrcode/INSTALL | 67 + app/lib/phpqrcode/LICENSE | 165 + app/lib/phpqrcode/README | 45 + app/lib/phpqrcode/VERSION | 2 + app/lib/phpqrcode/bindings/tcpdf/qrcode.php | 2875 ++ app/lib/phpqrcode/index.php | 94 + app/lib/phpqrcode/phpqrcode.php | 3312 ++ app/lib/phpqrcode/qrbitstream.php | 180 + app/lib/phpqrcode/qrconfig.php | 17 + app/lib/phpqrcode/qrconst.php | 54 + app/lib/phpqrcode/qrencode.php | 502 + app/lib/phpqrcode/qrimage.php | 95 + app/lib/phpqrcode/qrinput.php | 729 + app/lib/phpqrcode/qrlib.php | 43 + app/lib/phpqrcode/qrmask.php | 328 + app/lib/phpqrcode/qrrscode.php | 210 + app/lib/phpqrcode/qrspec.php | 592 + app/lib/phpqrcode/qrsplit.php | 311 + app/lib/phpqrcode/qrtools.php | 172 + app/lib/phpqrcode/tools/merge.bat | 2 + app/lib/phpqrcode/tools/merge.php | 70 + app/lib/phpqrcode/tools/merge.sh | 2 + app/lib/phpqrcode/tools/merged_config.php | 17 + app/lib/phpqrcode/tools/merged_header.php | 36 + app/models/QuesttypeModel.inc | 173 + app/models/StationtypeModel.inc | 176 + app/requests/MailRequest.inc | 92 + app/responses/MailResponse.inc | 55 + app/views/QuesttypeView.inc | 76 + app/views/StationtypeView.inc | 79 + bootstrap.inc | 33 + configs/AppConfig.inc | 471 + configs/CoreConfig.inc | 167 + controllers/AchievementsController.inc | 981 + controllers/AjaxController.inc | 52 + controllers/BinaryController.inc | 37 + controllers/CharactergroupsController.inc | 785 + .../CharactergroupsachievementsController.inc | 622 + .../CharactergroupsquestsController.inc | 720 + ...CharactergroupsqueststationsController.inc | 1233 + controllers/CharactersController.inc | 779 + controllers/CharactertitlesController.inc | 280 + controllers/CharactertypesController.inc | 406 + controllers/ErrorController.inc | 51 + controllers/FaultController.inc | 37 + controllers/HtmlController.inc | 114 + controllers/HtmlmailController.inc | 54 + controllers/IntroductionController.inc | 95 + controllers/LibraryController.inc | 513 + controllers/MailController.inc | 136 + controllers/MailreceiverController.inc | 39 + controllers/MapController.inc | 180 + controllers/MediaController.inc | 737 + controllers/MenuController.inc | 64 + controllers/MoodpicController.inc | 126 + controllers/PagesController.inc | 236 + controllers/QrController.inc | 241 + controllers/QrcodesController.inc | 379 + controllers/QuestgroupsController.inc | 729 + .../QuestgroupshierarchyController.inc | 346 + .../QuestgroupshierarchypathController.inc | 91 + controllers/QuestsController.inc | 1504 + controllers/SeminariesController.inc | 612 + controllers/SeminarybarController.inc | 102 + controllers/SeminarymenuController.inc | 65 + controllers/TextmailController.inc | 55 + controllers/UploadsController.inc | 318 + controllers/UserrolesController.inc | 47 + controllers/UsersController.inc | 641 + controllers/XplevelsController.inc | 189 + .../components/AchievementComponent.inc | 205 + controllers/components/AuthComponent.inc | 79 + .../components/NotificationComponent.inc | 120 + .../components/QuesttypedataComponent.inc | 89 + .../components/ValidationComponent.inc | 183 + core/Agent.inc | 608 + core/Api.inc | 163 + core/Autoloader.inc | 98 + core/ClassLoader.inc | 129 + core/Component.inc | 159 + core/Config.inc | 49 + core/Controller.inc | 431 + core/Driver.inc | 97 + core/Exception.inc | 65 + core/Linker.inc | 313 + core/Logger.inc | 143 + core/Model.inc | 141 + core/Request.inc | 64 + core/Response.inc | 158 + core/View.inc | 124 + core/WebUtils.inc | 75 + db/create.sql | 2666 ++ db/drop.sql | 27 + db/import.sql | 790 + db/procedures.sql | 189 + db/triggers.sql | 186 + doc/.htaccess | 5 + doc/classes/PHPMailer.html | 7052 ++++ doc/classes/SMTP.html | 2653 ++ doc/classes/hhu.z.Controller.html | 1870 + doc/classes/hhu.z.Model.html | 1292 + doc/classes/hhu.z.TextFormatter.html | 1117 + doc/classes/hhu.z.Utils.html | 1204 + doc/classes/hhu.z.agents.QuesttypeAgent.html | 2142 + doc/classes/hhu.z.agents.ToplevelAgent.html | 2264 ++ ....agents.bottomlevel.MailreceiverAgent.html | 1971 + .../hhu.z.agents.bottomlevel.MenuAgent.html | 1971 + ...omlevel.QuestgroupshierarchypathAgent.html | 1971 + ...z.agents.bottomlevel.SeminarybarAgent.html | 1971 + ....agents.bottomlevel.SeminarymenuAgent.html | 1971 + ...u.z.agents.bottomlevel.UserrolesAgent.html | 1971 + ...agents.intermediate.AchievementsAgent.html | 2012 + ...nts.intermediate.CharactergroupsAgent.html | 2012 + ...termediate.CharactergroupsquestsAgent.html | 2012 + ...z.agents.intermediate.CharactersAgent.html | 2052 + ...ents.intermediate.CharactertypesAgent.html | 2012 + .../hhu.z.agents.intermediate.ErrorAgent.html | 2012 + ...agents.intermediate.IntroductionAgent.html | 2012 + ...hu.z.agents.intermediate.LibraryAgent.html | 2012 + .../hhu.z.agents.intermediate.MailAgent.html | 2012 + .../hhu.z.agents.intermediate.MediaAgent.html | 2012 + ....agents.intermediate.QuestgroupsAgent.html | 2132 + ...ntermediate.QuestgroupshierarchyAgent.html | 1972 + ...hhu.z.agents.intermediate.QuestsAgent.html | 2292 ++ ...z.agents.intermediate.SeminariesAgent.html | 2012 + ...hu.z.agents.intermediate.UploadsAgent.html | 2012 + .../hhu.z.agents.intermediate.UsersAgent.html | 2052 + ...u.z.agents.intermediate.XplevelsAgent.html | 2012 + .../hhu.z.agents.toplevel.AjaxAgent.html | 2340 ++ .../hhu.z.agents.toplevel.BinaryAgent.html | 2305 ++ .../hhu.z.agents.toplevel.FaultAgent.html | 2324 ++ .../hhu.z.agents.toplevel.HtmlAgent.html | 2340 ++ .../hhu.z.agents.toplevel.HtmlmailAgent.html | 2305 ++ .../hhu.z.agents.toplevel.TextmailAgent.html | 2305 ++ doc/classes/hhu.z.apis.MailApi.html | 1437 + ....z.controllers.AchievementsController.html | 2615 ++ .../hhu.z.controllers.AjaxController.html | 1910 + .../hhu.z.controllers.BinaryController.html | 2148 + ...controllers.CharactergroupsController.html | 2736 ++ ...llers.CharactergroupsquestsController.html | 2516 ++ ...hu.z.controllers.CharactersController.html | 2569 ++ ....controllers.CharactertypesController.html | 2416 ++ .../hhu.z.controllers.ErrorController.html | 1920 + .../hhu.z.controllers.FaultController.html | 1788 + .../hhu.z.controllers.HtmlController.html | 1937 + .../hhu.z.controllers.HtmlmailController.html | 1786 + ....z.controllers.IntermediateController.html | 2100 + ....z.controllers.IntroductionController.html | 2148 + .../hhu.z.controllers.LibraryController.html | 2530 ++ .../hhu.z.controllers.MailController.html | 1957 + ....z.controllers.MailreceiverController.html | 1797 + .../hhu.z.controllers.MediaController.html | 2791 ++ .../hhu.z.controllers.MenuController.html | 1910 + ...u.z.controllers.QuestgroupsController.html | 2575 ++ ...ollers.QuestgroupshierarchyController.html | 2485 ++ ...rs.QuestgroupshierarchypathController.html | 1956 + .../hhu.z.controllers.QuestsController.html | 3121 ++ ...hhu.z.controllers.QuesttypeController.html | 2396 ++ ...hu.z.controllers.SeminariesController.html | 2484 ++ .../hhu.z.controllers.SeminaryController.html | 2206 ++ ...u.z.controllers.SeminarybarController.html | 1938 + ....z.controllers.SeminarymenuController.html | 1911 + .../hhu.z.controllers.TextmailController.html | 1787 + .../hhu.z.controllers.UploadsController.html | 2492 ++ ...hhu.z.controllers.UserrolesController.html | 1925 + .../hhu.z.controllers.UsersController.html | 2469 ++ .../hhu.z.controllers.XplevelsController.html | 2286 ++ ...llers.components.AchievementComponent.html | 1135 + ....controllers.components.AuthComponent.html | 1197 + ...lers.components.NotificationComponent.html | 1283 + ...ollers.components.ValidationComponent.html | 1367 + .../hhu.z.exceptions.FileUploadException.html | 1154 + .../hhu.z.exceptions.MailingException.html | 1154 + ...hhu.z.exceptions.MaxFilesizeException.html | 1087 + ...tions.QuesttypeAgentNotFoundException.html | 1154 + ...tions.QuesttypeAgentNotValidException.html | 1154 + ....QuesttypeControllerNotFoundException.html | 1154 + ....QuesttypeControllerNotValidException.html | 1154 + ...tions.QuesttypeModelNotFoundException.html | 1154 + ...tions.QuesttypeModelNotValidException.html | 1154 + ...xceptions.SubmissionNotValidException.html | 1154 + ...u.z.exceptions.WrongFiletypeException.html | 1154 + doc/classes/hhu.z.lib.PHPMailer.html | 979 + doc/classes/hhu.z.lib.PHPMailerAutoload.html | 979 + doc/classes/hhu.z.lib.Password.html | 979 + doc/classes/hhu.z.lib.SMTP.html | 979 + .../hhu.z.models.AchievementsModel.html | 3315 ++ doc/classes/hhu.z.models.AvatarsModel.html | 1467 + .../hhu.z.models.CharactergroupsModel.html | 2136 + ...u.z.models.CharactergroupsquestsModel.html | 1968 + .../hhu.z.models.CharacterrolesModel.html | 1399 + doc/classes/hhu.z.models.CharactersModel.html | 2198 ++ .../hhu.z.models.CharactertypesModel.html | 1571 + doc/classes/hhu.z.models.MediaModel.html | 1903 + .../hhu.z.models.QuestgroupsModel.html | 2491 ++ ...hu.z.models.QuestgroupshierarchyModel.html | 1706 + .../hhu.z.models.QuestgrouptextsModel.html | 1501 + doc/classes/hhu.z.models.QuestsModel.html | 2555 ++ doc/classes/hhu.z.models.QuesttextsModel.html | 1721 + .../hhu.z.models.QuesttopicsModel.html | 1935 + doc/classes/hhu.z.models.QuesttypeModel.html | 1416 + doc/classes/hhu.z.models.QuesttypesModel.html | 1349 + doc/classes/hhu.z.models.SeminariesModel.html | 1685 + ...z.models.SeminarycharacterfieldsModel.html | 1442 + doc/classes/hhu.z.models.UploadsModel.html | 1435 + doc/classes/hhu.z.models.UserrolesModel.html | 1437 + doc/classes/hhu.z.models.UsersModel.html | 1876 + doc/classes/hhu.z.models.XplevelsModel.html | 1497 + ....z.questtypes.BossfightQuesttypeAgent.html | 2157 + ...esttypes.BossfightQuesttypeController.html | 2451 ++ ....z.questtypes.BossfightQuesttypeModel.html | 1687 + ....questtypes.ChoiceinputQuesttypeAgent.html | 2157 + ...ttypes.ChoiceinputQuesttypeController.html | 2377 ++ ....questtypes.ChoiceinputQuesttypeModel.html | 1705 + ....z.questtypes.CrosswordQuesttypeAgent.html | 2157 + ...esttypes.CrosswordQuesttypeController.html | 2378 ++ ....z.questtypes.CrosswordQuesttypeModel.html | 1533 + ....z.questtypes.DragndropQuesttypeAgent.html | 2157 + ...esttypes.DragndropQuesttypeController.html | 2377 ++ ....z.questtypes.DragndropQuesttypeModel.html | 1657 + ...esttypes.MultiplechoiceQuesttypeAgent.html | 2157 + ...pes.MultiplechoiceQuesttypeController.html | 2466 ++ ...esttypes.MultiplechoiceQuesttypeModel.html | 1847 + ...hhu.z.questtypes.SubmitQuesttypeAgent.html | 2157 + ....questtypes.SubmitQuesttypeController.html | 2382 ++ ...hhu.z.questtypes.SubmitQuesttypeModel.html | 1655 + ....z.questtypes.TextinputQuesttypeAgent.html | 2157 + ...esttypes.TextinputQuesttypeController.html | 2420 ++ ....z.questtypes.TextinputQuesttypeModel.html | 1696 + doc/classes/hhu.z.requests.MailRequest.html | 1266 + doc/classes/hhu.z.responses.MailResponse.html | 1464 + doc/classes/hhu.z.views.QuesttypeView.html | 1166 + doc/classes/nre.agents.BottomlevelAgent.html | 1931 + doc/classes/nre.agents.IntermediateAgent.html | 1970 + doc/classes/nre.agents.ToplevelAgent.html | 2249 ++ doc/classes/nre.apis.WebApi.html | 1333 + doc/classes/nre.configs.AppConfig.html | 1307 + doc/classes/nre.configs.CoreConfig.html | 1261 + doc/classes/nre.core.Agent.html | 1882 + doc/classes/nre.core.Api.html | 1253 + doc/classes/nre.core.Autoloader.html | 1107 + doc/classes/nre.core.ClassLoader.html | 1196 + doc/classes/nre.core.Component.html | 1069 + doc/classes/nre.core.Config.html | 989 + doc/classes/nre.core.Controller.html | 1720 + doc/classes/nre.core.Driver.html | 1100 + doc/classes/nre.core.Exception.html | 1037 + doc/classes/nre.core.Linker.html | 1309 + doc/classes/nre.core.Logger.html | 1251 + doc/classes/nre.core.Model.html | 1148 + doc/classes/nre.core.Request.html | 1064 + doc/classes/nre.core.Response.html | 1348 + doc/classes/nre.core.View.html | 1158 + doc/classes/nre.core.WebUtils.html | 1095 + doc/classes/nre.drivers.DatabaseDriver.html | 1260 + doc/classes/nre.drivers.MysqliDriver.html | 1433 + .../nre.exceptions.AccessDeniedException.html | 1074 + ...re.exceptions.ActionNotFoundException.html | 1144 + ...nre.exceptions.AgentNotFoundException.html | 1180 + ...nre.exceptions.AgentNotValidException.html | 1180 + ...nre.exceptions.ClassNotFoundException.html | 1154 + ...nre.exceptions.ClassNotValidException.html | 1154 + ...exceptions.ComponentNotFoundException.html | 1180 + ...exceptions.ComponentNotValidException.html | 1180 + ...xceptions.ControllerNotFoundException.html | 1180 + ...xceptions.ControllerNotValidException.html | 1180 + .../nre.exceptions.DatamodelException.html | 1205 + ...re.exceptions.DriverNotFoundException.html | 1180 + ...re.exceptions.DriverNotValidException.html | 1180 + ...re.exceptions.FatalDatamodelException.html | 1204 + .../nre.exceptions.IdNotFoundException.html | 1144 + ...re.exceptions.LayoutNotFoundException.html | 1214 + ...re.exceptions.LayoutNotValidException.html | 1214 + ...nre.exceptions.ModelNotFoundException.html | 1180 + ...nre.exceptions.ModelNotValidException.html | 1180 + ...re.exceptions.ParamsNotValidException.html | 1144 + ...xceptions.ServiceUnavailableException.html | 1144 + .../nre.exceptions.ViewNotFoundException.html | 1144 + doc/classes/nre.models.DatabaseModel.html | 1293 + doc/classes/nre.requests.WebRequest.html | 1762 + doc/classes/nre.responses.WebResponse.html | 1705 + doc/classes/phpmailerException.html | 975 + doc/css/bootstrap-combined.no-icons.min.css | 732 + doc/css/font-awesome.min.css | 403 + doc/css/jquery.iviewer.css | 65 + doc/css/phpdocumentor-clean-icons/Read Me.txt | 3 + .../fonts/phpdocumentor-clean-icons.dev.svg | 17 + .../fonts/phpdocumentor-clean-icons.eot | Bin 0 -> 2324 bytes .../fonts/phpdocumentor-clean-icons.svg | 17 + .../fonts/phpdocumentor-clean-icons.ttf | Bin 0 -> 2080 bytes .../fonts/phpdocumentor-clean-icons.woff | Bin 0 -> 1832 bytes doc/css/phpdocumentor-clean-icons/lte-ie7.js | 30 + doc/css/phpdocumentor-clean-icons/style.css | 48 + doc/css/prism.css | 204 + doc/css/template.css | 429 + doc/empty | 0 doc/files/agents.BottomlevelAgent.html | 916 + doc/files/agents.IntermediateAgent.html | 916 + doc/files/agents.ToplevelAgent.html | 916 + .../agents.bottomlevel.MailreceiverAgent.html | 915 + doc/files/agents.bottomlevel.MenuAgent.html | 915 + ...omlevel.QuestgroupshierarchypathAgent.html | 915 + .../agents.bottomlevel.SeminarybarAgent.html | 915 + .../agents.bottomlevel.SeminarymenuAgent.html | 915 + .../agents.bottomlevel.UserrolesAgent.html | 915 + ...agents.intermediate.AchievementsAgent.html | 915 + ...nts.intermediate.CharactergroupsAgent.html | 915 + ...termediate.CharactergroupsquestsAgent.html | 915 + .../agents.intermediate.CharactersAgent.html | 915 + ...ents.intermediate.CharactertypesAgent.html | 915 + doc/files/agents.intermediate.ErrorAgent.html | 915 + ...agents.intermediate.IntroductionAgent.html | 915 + .../agents.intermediate.LibraryAgent.html | 915 + doc/files/agents.intermediate.MailAgent.html | 915 + doc/files/agents.intermediate.MediaAgent.html | 915 + .../agents.intermediate.QuestgroupsAgent.html | 915 + ...ntermediate.QuestgroupshierarchyAgent.html | 915 + .../agents.intermediate.QuestsAgent.html | 915 + .../agents.intermediate.SeminariesAgent.html | 915 + .../agents.intermediate.UploadsAgent.html | 915 + doc/files/agents.intermediate.UsersAgent.html | 915 + .../agents.intermediate.XplevelsAgent.html | 915 + doc/files/agents.toplevel.AjaxAgent.html | 915 + doc/files/agents.toplevel.BinaryAgent.html | 915 + doc/files/agents.toplevel.FaultAgent.html | 915 + doc/files/agents.toplevel.HtmlAgent.html | 915 + doc/files/agents.toplevel.HtmlmailAgent.html | 915 + doc/files/agents.toplevel.TextmailAgent.html | 915 + doc/files/agents/BottomlevelAgent.inc.txt | 26 + doc/files/agents/IntermediateAgent.inc.txt | 50 + doc/files/agents/ToplevelAgent.inc.txt | 396 + .../bottomlevel/MailreceiverAgent.inc.txt | 39 + .../agents/bottomlevel/MenuAgent.inc.txt | 41 + .../QuestgroupshierarchypathAgent.inc.txt | 39 + .../bottomlevel/SeminarybarAgent.inc.txt | 39 + .../bottomlevel/SeminarymenuAgent.inc.txt | 39 + .../agents/bottomlevel/UserrolesAgent.inc.txt | 39 + .../intermediate/AchievementsAgent.inc.txt | 39 + .../intermediate/CharactergroupsAgent.inc.txt | 39 + .../CharactergroupsquestsAgent.inc.txt | 39 + .../intermediate/CharactersAgent.inc.txt | 50 + .../intermediate/CharactertypesAgent.inc.txt | 39 + .../agents/intermediate/ErrorAgent.inc.txt | 39 + .../intermediate/IntroductionAgent.inc.txt | 39 + .../agents/intermediate/LibraryAgent.inc.txt | 39 + .../agents/intermediate/MailAgent.inc.txt | 39 + .../agents/intermediate/MediaAgent.inc.txt | 39 + .../intermediate/QuestgroupsAgent.inc.txt | 76 + .../QuestgroupshierarchyAgent.inc.txt | 25 + .../agents/intermediate/QuestsAgent.inc.txt | 124 + .../intermediate/SeminariesAgent.inc.txt | 39 + .../agents/intermediate/UploadsAgent.inc.txt | 39 + .../agents/intermediate/UsersAgent.inc.txt | 51 + .../agents/intermediate/XplevelsAgent.inc.txt | 39 + doc/files/agents/toplevel/AjaxAgent.inc.txt | 81 + doc/files/agents/toplevel/BinaryAgent.inc.txt | 52 + doc/files/agents/toplevel/FaultAgent.inc.txt | 39 + doc/files/agents/toplevel/HtmlAgent.inc.txt | 86 + .../agents/toplevel/HtmlmailAgent.inc.txt | 53 + .../agents/toplevel/TextmailAgent.inc.txt | 55 + doc/files/apis.WebApi.html | 915 + doc/files/apis/WebApi.inc.txt | 251 + doc/files/app.Controller.html | 915 + doc/files/app.Model.html | 915 + doc/files/app.TextFormatter.html | 915 + doc/files/app.Utils.html | 915 + doc/files/app.agents.QuesttypeAgent.html | 915 + doc/files/app.agents.ToplevelAgent.html | 915 + doc/files/app.apis.MailApi.html | 915 + ...pp.controllers.IntermediateController.html | 915 + .../app.controllers.QuesttypeController.html | 915 + .../app.controllers.SeminaryController.html | 916 + .../app.exceptions.FileUploadException.html | 915 + .../app.exceptions.MailingException.html | 915 + .../app.exceptions.MaxFilesizeException.html | 915 + ...tions.QuesttypeAgentNotFoundException.html | 915 + ...tions.QuesttypeAgentNotValidException.html | 915 + ....QuesttypeControllerNotFoundException.html | 915 + ....QuesttypeControllerNotValidException.html | 915 + ...tions.QuesttypeModelNotFoundException.html | 915 + ...tions.QuesttypeModelNotValidException.html | 915 + ...xceptions.SubmissionNotValidException.html | 915 + ...app.exceptions.WrongFiletypeException.html | 915 + doc/files/app.lib.PHPMailer.html | 923 + doc/files/app.lib.PHPMailerAutoload.html | 1008 + doc/files/app.lib.Password.html | 1205 + doc/files/app.lib.SMTP.html | 919 + doc/files/app.models.QuesttypeModel.html | 915 + doc/files/app.requests.MailRequest.html | 915 + doc/files/app.responses.MailResponse.html | 915 + doc/files/app.views.QuesttypeView.html | 915 + doc/files/app/Controller.inc.txt | 132 + doc/files/app/Model.inc.txt | 43 + doc/files/app/TextFormatter.inc.txt | 150 + doc/files/app/Utils.inc.txt | 215 + doc/files/app/agents/QuesttypeAgent.inc.txt | 286 + doc/files/app/agents/ToplevelAgent.inc.txt | 44 + doc/files/app/apis/MailApi.inc.txt | 203 + .../IntermediateController.inc.txt | 198 + .../controllers/QuesttypeController.inc.txt | 321 + .../controllers/SeminaryController.inc.txt | 329 + .../exceptions/FileUploadException.inc.txt | 80 + .../app/exceptions/MailingException.inc.txt | 80 + .../exceptions/MaxFilesizeException.inc.txt | 55 + .../QuesttypeAgentNotFoundException.inc.txt | 80 + .../QuesttypeAgentNotValidException.inc.txt | 80 + ...esttypeControllerNotFoundException.inc.txt | 80 + ...esttypeControllerNotValidException.inc.txt | 80 + .../QuesttypeModelNotFoundException.inc.txt | 80 + .../QuesttypeModelNotValidException.inc.txt | 80 + .../SubmissionNotValidException.inc.txt | 80 + .../exceptions/WrongFiletypeException.inc.txt | 80 + doc/files/app/lib/PHPMailer.inc.txt | 3454 ++ doc/files/app/lib/PHPMailerAutoload.inc.txt | 87 + doc/files/app/lib/Password.inc.txt | 317 + doc/files/app/lib/SMTP.inc.txt | 973 + doc/files/app/models/QuesttypeModel.inc.txt | 155 + doc/files/app/requests/MailRequest.inc.txt | 93 + doc/files/app/responses/MailResponse.inc.txt | 56 + doc/files/app/views/QuesttypeView.inc.txt | 77 + doc/files/bootstrap.html | 883 + doc/files/bootstrap.inc.txt | 34 + doc/files/configs.AppConfig.html | 915 + doc/files/configs.CoreConfig.html | 915 + doc/files/configs/AppConfig.inc.txt | 371 + doc/files/configs/CoreConfig.inc.txt | 168 + .../controllers.AchievementsController.html | 915 + doc/files/controllers.AjaxController.html | 915 + doc/files/controllers.BinaryController.html | 915 + ...controllers.CharactergroupsController.html | 915 + ...llers.CharactergroupsquestsController.html | 916 + .../controllers.CharactersController.html | 915 + .../controllers.CharactertypesController.html | 916 + doc/files/controllers.ErrorController.html | 915 + doc/files/controllers.FaultController.html | 915 + doc/files/controllers.HtmlController.html | 915 + doc/files/controllers.HtmlmailController.html | 915 + .../controllers.IntroductionController.html | 915 + doc/files/controllers.LibraryController.html | 915 + doc/files/controllers.MailController.html | 915 + .../controllers.MailreceiverController.html | 916 + doc/files/controllers.MediaController.html | 915 + doc/files/controllers.MenuController.html | 915 + .../controllers.QuestgroupsController.html | 915 + ...ollers.QuestgroupshierarchyController.html | 915 + ...rs.QuestgroupshierarchypathController.html | 916 + doc/files/controllers.QuestsController.html | 915 + .../controllers.SeminariesController.html | 915 + .../controllers.SeminarybarController.html | 916 + .../controllers.SeminarymenuController.html | 916 + doc/files/controllers.TextmailController.html | 916 + doc/files/controllers.UploadsController.html | 915 + .../controllers.UserrolesController.html | 915 + doc/files/controllers.UsersController.html | 915 + doc/files/controllers.XplevelsController.html | 916 + ...llers.components.AchievementComponent.html | 915 + .../controllers.components.AuthComponent.html | 915 + ...lers.components.NotificationComponent.html | 915 + ...ollers.components.ValidationComponent.html | 915 + .../AchievementsController.inc.txt | 961 + doc/files/controllers/AjaxController.inc.txt | 53 + .../controllers/BinaryController.inc.txt | 38 + .../CharactergroupsController.inc.txt | 760 + .../CharactergroupsquestsController.inc.txt | 616 + .../controllers/CharactersController.inc.txt | 696 + .../CharactertypesController.inc.txt | 407 + doc/files/controllers/ErrorController.inc.txt | 52 + doc/files/controllers/FaultController.inc.txt | 38 + doc/files/controllers/HtmlController.inc.txt | 112 + .../controllers/HtmlmailController.inc.txt | 55 + .../IntroductionController.inc.txt | 38 + .../controllers/LibraryController.inc.txt | 514 + doc/files/controllers/MailController.inc.txt | 137 + .../MailreceiverController.inc.txt | 40 + doc/files/controllers/MediaController.inc.txt | 563 + doc/files/controllers/MenuController.inc.txt | 53 + .../controllers/QuestgroupsController.inc.txt | 715 + .../QuestgroupshierarchyController.inc.txt | 347 + ...QuestgroupshierarchypathController.inc.txt | 92 + .../controllers/QuestsController.inc.txt | 1507 + .../controllers/SeminariesController.inc.txt | 468 + .../controllers/SeminarybarController.inc.txt | 90 + .../SeminarymenuController.inc.txt | 54 + .../controllers/TextmailController.inc.txt | 56 + .../controllers/UploadsController.inc.txt | 319 + .../controllers/UserrolesController.inc.txt | 48 + doc/files/controllers/UsersController.inc.txt | 617 + .../controllers/XplevelsController.inc.txt | 189 + .../components/AchievementComponent.inc.txt | 42 + .../components/AuthComponent.inc.txt | 80 + .../components/NotificationComponent.inc.txt | 109 + .../components/ValidationComponent.inc.txt | 184 + doc/files/core.Agent.html | 915 + doc/files/core.Api.html | 915 + doc/files/core.Autoloader.html | 915 + doc/files/core.ClassLoader.html | 915 + doc/files/core.Component.html | 915 + doc/files/core.Config.html | 915 + doc/files/core.Controller.html | 915 + doc/files/core.Driver.html | 915 + doc/files/core.Exception.html | 915 + doc/files/core.Linker.html | 915 + doc/files/core.Logger.html | 915 + doc/files/core.Model.html | 915 + doc/files/core.Request.html | 915 + doc/files/core.Response.html | 915 + doc/files/core.View.html | 915 + doc/files/core.WebUtils.html | 915 + doc/files/core/Agent.inc.txt | 609 + doc/files/core/Api.inc.txt | 164 + doc/files/core/Autoloader.inc.txt | 99 + doc/files/core/ClassLoader.inc.txt | 130 + doc/files/core/Component.inc.txt | 86 + doc/files/core/Config.inc.txt | 50 + doc/files/core/Controller.inc.txt | 431 + doc/files/core/Driver.inc.txt | 98 + doc/files/core/Exception.inc.txt | 66 + doc/files/core/Linker.inc.txt | 314 + doc/files/core/Logger.inc.txt | 133 + doc/files/core/Model.inc.txt | 142 + doc/files/core/Request.inc.txt | 65 + doc/files/core/Response.inc.txt | 159 + doc/files/core/View.inc.txt | 125 + doc/files/core/WebUtils.inc.txt | 76 + doc/files/drivers.DatabaseDriver.html | 915 + doc/files/drivers.MysqliDriver.html | 915 + doc/files/drivers/DatabaseDriver.inc.txt | 88 + doc/files/drivers/MysqliDriver.inc.txt | 170 + .../exceptions.AccessDeniedException.html | 915 + .../exceptions.ActionNotFoundException.html | 915 + .../exceptions.AgentNotFoundException.html | 915 + .../exceptions.AgentNotValidException.html | 915 + .../exceptions.ClassNotFoundException.html | 915 + .../exceptions.ClassNotValidException.html | 915 + ...exceptions.ComponentNotFoundException.html | 915 + ...exceptions.ComponentNotValidException.html | 915 + ...xceptions.ControllerNotFoundException.html | 915 + ...xceptions.ControllerNotValidException.html | 915 + doc/files/exceptions.DatamodelException.html | 915 + .../exceptions.DriverNotFoundException.html | 915 + .../exceptions.DriverNotValidException.html | 915 + .../exceptions.FatalDatamodelException.html | 915 + doc/files/exceptions.IdNotFoundException.html | 915 + .../exceptions.LayoutNotFoundException.html | 915 + .../exceptions.LayoutNotValidException.html | 915 + .../exceptions.ModelNotFoundException.html | 915 + .../exceptions.ModelNotValidException.html | 915 + .../exceptions.ParamsNotValidException.html | 915 + ...xceptions.ServiceUnavailableException.html | 915 + .../exceptions.ViewNotFoundException.html | 915 + .../exceptions/AccessDeniedException.inc.txt | 52 + .../ActionNotFoundException.inc.txt | 78 + .../exceptions/AgentNotFoundException.inc.txt | 68 + .../exceptions/AgentNotValidException.inc.txt | 68 + .../exceptions/ClassNotFoundException.inc.txt | 80 + .../exceptions/ClassNotValidException.inc.txt | 80 + .../ComponentNotFoundException.inc.txt | 68 + .../ComponentNotValidException.inc.txt | 68 + .../ControllerNotFoundException.inc.txt | 68 + .../ControllerNotValidException.inc.txt | 68 + .../exceptions/DatamodelException.inc.txt | 100 + .../DriverNotFoundException.inc.txt | 69 + .../DriverNotValidException.inc.txt | 69 + .../FatalDatamodelException.inc.txt | 97 + .../exceptions/IdNotFoundException.inc.txt | 78 + .../LayoutNotFoundException.inc.txt | 69 + .../LayoutNotValidException.inc.txt | 68 + .../exceptions/ModelNotFoundException.inc.txt | 68 + .../exceptions/ModelNotValidException.inc.txt | 69 + .../ParamsNotValidException.inc.txt | 78 + .../ServiceUnavailableException.inc.txt | 78 + .../exceptions/ViewNotFoundException.inc.txt | 78 + doc/files/models.AchievementsModel.html | 915 + doc/files/models.AvatarsModel.html | 915 + doc/files/models.CharactergroupsModel.html | 916 + .../models.CharactergroupsquestsModel.html | 916 + doc/files/models.CharacterrolesModel.html | 915 + doc/files/models.CharactersModel.html | 915 + doc/files/models.CharactertypesModel.html | 915 + doc/files/models.DatabaseModel.html | 915 + doc/files/models.MediaModel.html | 915 + doc/files/models.QuestgroupsModel.html | 915 + .../models.QuestgroupshierarchyModel.html | 915 + doc/files/models.QuestgrouptextsModel.html | 915 + doc/files/models.QuestsModel.html | 915 + doc/files/models.QuesttextsModel.html | 915 + doc/files/models.QuesttopicsModel.html | 915 + doc/files/models.QuesttypesModel.html | 915 + doc/files/models.SeminariesModel.html | 915 + .../models.SeminarycharacterfieldsModel.html | 915 + doc/files/models.UploadsModel.html | 915 + doc/files/models.UserrolesModel.html | 915 + doc/files/models.UsersModel.html | 915 + doc/files/models.XplevelsModel.html | 915 + doc/files/models/AchievementsModel.inc.txt | 1174 + doc/files/models/AvatarsModel.inc.txt | 147 + doc/files/models/CharactergroupsModel.inc.txt | 506 + .../models/CharactergroupsquestsModel.inc.txt | 392 + doc/files/models/CharacterrolesModel.inc.txt | 101 + doc/files/models/CharactersModel.inc.txt | 698 + doc/files/models/CharactertypesModel.inc.txt | 217 + doc/files/models/DatabaseModel.inc.txt | 84 + doc/files/models/MediaModel.inc.txt | 498 + doc/files/models/QuestgroupsModel.inc.txt | 871 + .../models/QuestgroupshierarchyModel.inc.txt | 320 + doc/files/models/QuestgrouptextsModel.inc.txt | 182 + doc/files/models/QuestsModel.inc.txt | 714 + doc/files/models/QuesttextsModel.inc.txt | 333 + doc/files/models/QuesttopicsModel.inc.txt | 401 + doc/files/models/QuesttypesModel.inc.txt | 78 + doc/files/models/SeminariesModel.inc.txt | 243 + .../SeminarycharacterfieldsModel.inc.txt | 130 + doc/files/models/UploadsModel.inc.txt | 142 + doc/files/models/UserrolesModel.inc.txt | 121 + doc/files/models/UsersModel.inc.txt | 405 + doc/files/models/XplevelsModel.inc.txt | 201 + ...pes.bossfight.BossfightQuesttypeAgent.html | 915 + ...ossfight.BossfightQuesttypeController.html | 915 + ...pes.bossfight.BossfightQuesttypeModel.html | 915 + ...choiceinput.ChoiceinputQuesttypeAgent.html | 915 + ...einput.ChoiceinputQuesttypeController.html | 916 + ...choiceinput.ChoiceinputQuesttypeModel.html | 916 + ...pes.crossword.CrosswordQuesttypeAgent.html | 915 + ...rossword.CrosswordQuesttypeController.html | 915 + ...pes.crossword.CrosswordQuesttypeModel.html | 915 + ...pes.dragndrop.DragndropQuesttypeAgent.html | 915 + ...ragndrop.DragndropQuesttypeController.html | 915 + ...pes.dragndrop.DragndropQuesttypeModel.html | 915 + ...lechoice.MultiplechoiceQuesttypeAgent.html | 915 + ...ice.MultiplechoiceQuesttypeController.html | 915 + ...lechoice.MultiplechoiceQuesttypeModel.html | 915 + ...uesttypes.submit.SubmitQuesttypeAgent.html | 915 + ...ypes.submit.SubmitQuesttypeController.html | 915 + ...uesttypes.submit.SubmitQuesttypeModel.html | 915 + ...pes.textinput.TextinputQuesttypeAgent.html | 915 + ...extinput.TextinputQuesttypeController.html | 915 + ...pes.textinput.TextinputQuesttypeModel.html | 915 + .../bossfight/BossfightQuesttypeAgent.inc.txt | 25 + .../BossfightQuesttypeController.inc.txt | 293 + .../bossfight/BossfightQuesttypeModel.inc.txt | 184 + .../ChoiceinputQuesttypeAgent.inc.txt | 25 + .../ChoiceinputQuesttypeController.inc.txt | 300 + .../ChoiceinputQuesttypeModel.inc.txt | 296 + .../crossword/CrosswordQuesttypeAgent.inc.txt | 25 + .../CrosswordQuesttypeController.inc.txt | 381 + .../crossword/CrosswordQuesttypeModel.inc.txt | 94 + .../dragndrop/DragndropQuesttypeAgent.inc.txt | 25 + .../DragndropQuesttypeController.inc.txt | 233 + .../dragndrop/DragndropQuesttypeModel.inc.txt | 181 + .../MultiplechoiceQuesttypeAgent.inc.txt | 25 + .../MultiplechoiceQuesttypeController.inc.txt | 386 + .../MultiplechoiceQuesttypeModel.inc.txt | 269 + .../submit/SubmitQuesttypeAgent.inc.txt | 25 + .../submit/SubmitQuesttypeController.inc.txt | 242 + .../submit/SubmitQuesttypeModel.inc.txt | 145 + .../textinput/TextinputQuesttypeAgent.inc.txt | 25 + .../TextinputQuesttypeController.inc.txt | 308 + .../textinput/TextinputQuesttypeModel.inc.txt | 222 + doc/files/requests.WebRequest.html | 915 + doc/files/requests/WebRequest.inc.txt | 402 + doc/files/responses.WebResponse.html | 915 + doc/files/responses/WebResponse.inc.txt | 251 + doc/files/www.index.html | 975 + doc/files/www/index.php.txt | 46 + doc/font/FontAwesome.otf | Bin 0 -> 75188 bytes doc/font/fontawesome-webfont.eot | Bin 0 -> 72449 bytes doc/font/fontawesome-webfont.svg | 504 + doc/font/fontawesome-webfont.ttf | Bin 0 -> 141564 bytes doc/font/fontawesome-webfont.woff | Bin 0 -> 83760 bytes doc/graphs/class.html | 174 + doc/graphs/classes.svg | 1846 + doc/images/apple-touch-icon-114x114.png | Bin 0 -> 28338 bytes doc/images/apple-touch-icon-72x72.png | Bin 0 -> 12751 bytes doc/images/apple-touch-icon.png | Bin 0 -> 8358 bytes doc/images/custom-icons.svg | 116 + doc/images/favicon.ico | Bin 0 -> 1150 bytes doc/images/hierarchy-item.png | Bin 0 -> 236 bytes doc/images/icon-class-13x13.png | Bin 0 -> 428 bytes doc/images/icon-class.svg | 77 + doc/images/icon-interface-13x13.png | Bin 0 -> 308 bytes doc/images/icon-interface.svg | 73 + doc/images/icon-trait-13x13.png | Bin 0 -> 340 bytes doc/images/icon-trait.svg | 73 + doc/images/iviewer/grab.cur | Bin 0 -> 1150 bytes doc/images/iviewer/hand.cur | Bin 0 -> 1150 bytes doc/images/iviewer/iviewer.rotate_left.png | Bin 0 -> 1493 bytes doc/images/iviewer/iviewer.rotate_right.png | Bin 0 -> 1482 bytes doc/images/iviewer/iviewer.zoom_fit.png | Bin 0 -> 1252 bytes doc/images/iviewer/iviewer.zoom_in.png | Bin 0 -> 1420 bytes doc/images/iviewer/iviewer.zoom_out.png | Bin 0 -> 1416 bytes doc/images/iviewer/iviewer.zoom_zero.png | Bin 0 -> 1091 bytes doc/index.html | 1278 + doc/js/bootstrap.min.js | 7 + doc/js/html5.js | 8 + doc/js/jquery-1.11.0.min.js | 4 + doc/js/jquery.dotdotdot-1.5.9.js | 602 + doc/js/jquery.dotdotdot-1.5.9.min.js | 15 + doc/js/jquery.iviewer.js | 1169 + doc/js/jquery.iviewer.min.js | 47 + doc/js/jquery.mousewheel.js | 201 + doc/js/jquery.smooth-scroll.js | 32 + doc/js/prism.min.js | 16 + doc/js/ui/1.10.4/jquery-ui.min.js | 7 + doc/namespaces/default.html | 1278 + doc/namespaces/hhu.html | 826 + doc/namespaces/hhu.z.agents.bottomlevel.html | 853 + doc/namespaces/hhu.z.agents.html | 847 + doc/namespaces/hhu.z.agents.intermediate.html | 897 + doc/namespaces/hhu.z.agents.toplevel.html | 853 + doc/namespaces/hhu.z.apis.html | 831 + .../hhu.z.controllers.components.html | 845 + doc/namespaces/hhu.z.controllers.html | 970 + doc/namespaces/hhu.z.exceptions.html | 871 + doc/namespaces/hhu.z.html | 874 + doc/namespaces/hhu.z.lib.html | 843 + doc/namespaces/hhu.z.models.html | 917 + doc/namespaces/hhu.z.questtypes.html | 913 + doc/namespaces/hhu.z.requests.html | 831 + doc/namespaces/hhu.z.responses.html | 831 + doc/namespaces/hhu.z.views.html | 831 + doc/namespaces/nre.agents.html | 840 + doc/namespaces/nre.apis.html | 829 + doc/namespaces/nre.configs.html | 833 + doc/namespaces/nre.core.html | 889 + doc/namespaces/nre.drivers.html | 833 + doc/namespaces/nre.exceptions.html | 913 + doc/namespaces/nre.html | 850 + doc/namespaces/nre.models.html | 829 + doc/namespaces/nre.requests.html | 829 + doc/namespaces/nre.responses.html | 829 + doc/reports/deprecated.html | 224 + doc/reports/errors.html | 553 + doc/reports/markers.html | 223 + drivers/DatabaseDriver.inc | 87 + drivers/MysqliDriver.inc | 169 + exceptions/AccessDeniedException.inc | 51 + exceptions/ActionNotFoundException.inc | 77 + exceptions/AgentNotFoundException.inc | 67 + exceptions/AgentNotValidException.inc | 67 + exceptions/ClassNotFoundException.inc | 79 + exceptions/ClassNotValidException.inc | 79 + exceptions/ComponentNotFoundException.inc | 67 + exceptions/ComponentNotValidException.inc | 67 + exceptions/ControllerNotFoundException.inc | 67 + exceptions/ControllerNotValidException.inc | 67 + exceptions/DatamodelException.inc | 99 + exceptions/DriverNotFoundException.inc | 68 + exceptions/DriverNotValidException.inc | 68 + exceptions/FatalDatamodelException.inc | 96 + exceptions/IdNotFoundException.inc | 77 + exceptions/LayoutNotFoundException.inc | 68 + exceptions/LayoutNotValidException.inc | 67 + exceptions/ModelNotFoundException.inc | 67 + exceptions/ModelNotValidException.inc | 68 + exceptions/ParamsNotValidException.inc | 77 + exceptions/ServiceUnavailableException.inc | 77 + exceptions/ViewNotFoundException.inc | 77 + locale/de_DE/LC_MESSAGES/The Legend of Z.mo | Bin 0 -> 31073 bytes locale/de_DE/LC_MESSAGES/The Legend of Z.po | 2851 ++ logs/empty | 0 media/empty | 0 models/AchievementsModel.inc | 1530 + models/AvatarsModel.inc | 242 + models/CharactergroupsModel.inc | 609 + models/CharactergroupsachievementsModel.inc | 453 + models/CharactergroupsquestsModel.inc | 464 + models/CharactergroupsqueststationsModel.inc | 629 + models/CharacterrolesModel.inc | 100 + models/CharactersModel.inc | 703 + models/CharactertitlesModel.inc | 236 + models/CharactertypesModel.inc | 263 + models/DatabaseModel.inc | 83 + models/MapModel.inc | 147 + models/MediaModel.inc | 790 + models/PagesModel.inc | 232 + models/QuestgroupsModel.inc | 1048 + models/QuestgroupshierarchyModel.inc | 404 + models/QuestgrouptextsModel.inc | 162 + models/QuestsModel.inc | 854 + models/QuesttextsModel.inc | 400 + models/QuesttopicsModel.inc | 486 + models/QuesttypesModel.inc | 77 + models/SeminariesModel.inc | 548 + models/SeminarycharacterfieldsModel.inc | 151 + models/StationtypesModel.inc | 77 + models/UploadsModel.inc | 204 + models/UserrolesModel.inc | 120 + models/UsersModel.inc | 430 + models/XplevelsModel.inc | 247 + phpdoc.dist.xml | 39 + .../bossfight/BossfightQuesttypeAgent.inc | 24 + .../BossfightQuesttypeController.inc | 292 + .../bossfight/BossfightQuesttypeModel.inc | 286 + questtypes/bossfight/html/edittask.tpl | 41 + questtypes/bossfight/html/quest.tpl | 54 + questtypes/bossfight/html/submission.tpl | 38 + .../choiceinput/ChoiceinputQuesttypeAgent.inc | 24 + .../ChoiceinputQuesttypeController.inc | 299 + .../choiceinput/ChoiceinputQuesttypeModel.inc | 379 + questtypes/choiceinput/html/edittask.tpl | 182 + questtypes/choiceinput/html/quest.tpl | 17 + questtypes/choiceinput/html/submission.tpl | 14 + .../crossword/CrosswordQuesttypeAgent.inc | 24 + .../CrosswordQuesttypeController.inc | 380 + .../crossword/CrosswordQuesttypeModel.inc | 128 + questtypes/crossword/html/edittask.tpl | 1 + questtypes/crossword/html/quest.tpl | 136 + questtypes/crossword/html/submission.tpl | 48 + .../dragndrop/DragndropQuesttypeAgent.inc | 24 + .../DragndropQuesttypeController.inc | 527 + .../dragndrop/DragndropQuesttypeModel.inc | 517 + questtypes/dragndrop/html/edittask.tpl | 253 + questtypes/dragndrop/html/quest.tpl | 17 + questtypes/dragndrop/html/submission.tpl | 15 + .../MultiplechoiceQuesttypeAgent.inc | 24 + .../MultiplechoiceQuesttypeController.inc | 386 + .../MultiplechoiceQuesttypeModel.inc | 323 + questtypes/multiplechoice/html/edittask.tpl | 143 + questtypes/multiplechoice/html/quest.tpl | 23 + questtypes/multiplechoice/html/submission.tpl | 16 + questtypes/submit/SubmitQuesttypeAgent.inc | 24 + .../submit/SubmitQuesttypeController.inc | 241 + questtypes/submit/SubmitQuesttypeModel.inc | 168 + questtypes/submit/html/edittask.tpl | 1 + questtypes/submit/html/quest.tpl | 53 + questtypes/submit/html/submission.tpl | 33 + .../textinput/TextinputQuesttypeAgent.inc | 24 + .../TextinputQuesttypeController.inc | 334 + .../textinput/TextinputQuesttypeModel.inc | 268 + questtypes/textinput/html/edittask.tpl | 114 + questtypes/textinput/html/quest.tpl | 16 + questtypes/textinput/html/submission.tpl | 10 + requests/WebRequest.inc | 417 + responses/WebResponse.inc | 250 + seminarymedia/empty | 0 seminaryuploads/empty | 0 .../keyword/KeywordStationtypeAgent.inc | 24 + .../keyword/KeywordStationtypeController.inc | 201 + .../keyword/KeywordStationtypeModel.inc | 145 + stationtypes/keyword/html/edittask.tpl | 29 + stationtypes/keyword/html/quest.tpl | 6 + .../MultiplechoiceStationtypeAgent.inc | 24 + .../MultiplechoiceStationtypeController.inc | 196 + .../MultiplechoiceStationtypeModel.inc | 166 + stationtypes/multiplechoice/html/edittask.tpl | 60 + stationtypes/multiplechoice/html/quest.tpl | 13 + .../SinglechoiceStationtypeAgent.inc | 24 + .../SinglechoiceStationtypeController.inc | 203 + .../SinglechoiceStationtypeModel.inc | 282 + stationtypes/singlechoice/html/edittask.tpl | 60 + stationtypes/singlechoice/html/quest.tpl | 13 + tmp/empty | 0 uploads/empty | 0 views/ajax/ajax.tpl | 1 + .../charactergroupsqueststations/index.tpl | 55 + views/ajax/characters/index.tpl | 25 + views/ajax/quests/index.tpl | 37 + views/ajax/users/index.tpl | 27 + views/binary/binary.tpl | 1 + views/binary/error/index.tpl | 1 + views/binary/media/achievement.tpl | 1 + views/binary/media/avatar.tpl | 1 + views/binary/media/charactergroup.tpl | 1 + .../media/charactergroupsachievement.tpl | 1 + views/binary/media/charactergroupsquest.tpl | 1 + .../media/charactergroupsqueststation.tpl | 1 + views/binary/media/index.tpl | 1 + views/binary/media/seminary.tpl | 1 + views/binary/media/seminarymap.tpl | 1 + views/binary/media/seminarymoodpic.tpl | 1 + views/binary/qrcodes/achievement.tpl | 1 + .../qrcodes/charactergroupsachievements.tpl | 1 + .../qrcodes/charactergroupsqueststation.tpl | 1 + views/binary/qrcodes/charactertitle.tpl | 1 + views/binary/uploads/charactergroup.tpl | 1 + views/binary/uploads/seminary.tpl | 1 + views/error.tpl | 27 + views/fault/error/index.tpl | 2 + views/fault/fault.tpl | 16 + views/html/achievements/conditions.tpl | 153 + views/html/achievements/create.tpl | 107 + views/html/achievements/delete.tpl | 12 + views/html/achievements/edit.tpl | 115 + views/html/achievements/index.tpl | 93 + views/html/achievements/manage.tpl | 27 + views/html/achievements/movedown.tpl | 0 views/html/achievements/moveup.tpl | 0 views/html/charactergroups/creategroup.tpl | 74 + .../charactergroups/creategroupsgroup.tpl | 47 + views/html/charactergroups/deletegroup.tpl | 13 + .../charactergroups/deletegroupsgroup.tpl | 12 + views/html/charactergroups/editgroup.tpl | 80 + .../html/charactergroups/editgroupsgroup.tpl | 47 + views/html/charactergroups/group.tpl | 93 + views/html/charactergroups/groupsgroup.tpl | 68 + views/html/charactergroups/index.tpl | 17 + views/html/charactergroups/managegroup.tpl | 107 + .../achievement.tpl | 29 + .../charactergroupsachievements/create.tpl | 67 + .../charactergroupsachievements/delete.tpl | 13 + .../html/charactergroupsachievements/edit.tpl | 70 + .../charactergroupsachievements/manage.tpl | 36 + .../charactergroupsachievements/movedown.tpl | 0 .../charactergroupsachievements/moveup.tpl | 0 views/html/charactergroupsquests/create.tpl | 90 + views/html/charactergroupsquests/delete.tpl | 13 + views/html/charactergroupsquests/edit.tpl | 101 + views/html/charactergroupsquests/manage.tpl | 94 + views/html/charactergroupsquests/quest.tpl | 279 + .../charactergroupsqueststations/create.tpl | 205 + .../charactergroupsqueststations/delete.tpl | 14 + .../charactergroupsqueststations/edit.tpl | 254 + .../charactergroupsqueststations/edittask.tpl | 12 + .../charactergroupsqueststations/station.tpl | 223 + views/html/characters/character.tpl | 173 + views/html/characters/delete.tpl | 15 + views/html/characters/edit.tpl | 132 + views/html/characters/index.tpl | 114 + views/html/characters/manage.tpl | 61 + views/html/characters/register.tpl | 105 + views/html/charactertitles/create.tpl | 55 + views/html/charactertitles/delete.tpl | 12 + views/html/charactertitles/edit.tpl | 55 + views/html/charactertitles/index.tpl | 27 + views/html/charactertypes/create.tpl | 41 + views/html/charactertypes/delete.tpl | 12 + views/html/charactertypes/edit.tpl | 139 + views/html/charactertypes/index.tpl | 25 + views/html/error/index.tpl | 17 + views/html/html.tpl | 146 + views/html/introduction/edit.tpl | 18 + views/html/introduction/index.tpl | 38 + views/html/library/create.tpl | 43 + views/html/library/delete.tpl | 12 + views/html/library/edit.tpl | 121 + views/html/library/index.tpl | 29 + views/html/library/manage.tpl | 36 + views/html/library/topic.tpl | 33 + views/html/map/edit.tpl | 47 + views/html/map/index.tpl | 46 + views/html/menu/index.tpl | 21 + views/html/moodpic/index.tpl | 5 + views/html/moodpic/questgroup.tpl | 16 + views/html/moodpic/seminary.tpl | 16 + views/html/pages/create.tpl | 47 + views/html/pages/delete.tpl | 13 + views/html/pages/edit.tpl | 56 + views/html/pages/index.tpl | 20 + views/html/pages/page.tpl | 12 + views/html/qr/a.tpl | 0 views/html/qr/cga.tpl | 0 views/html/qr/cgqs.tpl | 0 views/html/qr/ct.tpl | 0 views/html/questgroups/create.tpl | 73 + views/html/questgroups/delete.tpl | 15 + views/html/questgroups/edit.tpl | 61 + views/html/questgroups/edittexts.tpl | 31 + views/html/questgroups/movedown.tpl | 15 + views/html/questgroups/moveup.tpl | 15 + views/html/questgroups/questgroup.tpl | 119 + views/html/questgroupshierarchy/create.tpl | 64 + views/html/questgroupshierarchy/delete.tpl | 16 + views/html/questgroupshierarchy/edit.tpl | 58 + views/html/questgroupshierarchy/movedown.tpl | 0 views/html/questgroupshierarchy/moveup.tpl | 0 views/html/questgroupshierarchypath/index.tpl | 16 + views/html/quests/create.tpl | 112 + views/html/quests/delete.tpl | 9 + views/html/quests/edit.tpl | 118 + views/html/quests/edittask.tpl | 7 + views/html/quests/edittexts.tpl | 73 + views/html/quests/index.tpl | 131 + views/html/quests/quest.tpl | 175 + views/html/quests/submission.tpl | 8 + views/html/quests/submissions.tpl | 35 + views/html/seminaries/calculatexps.tpl | 0 views/html/seminaries/copy.tpl | 120 + views/html/seminaries/create.tpl | 74 + views/html/seminaries/delete.tpl | 11 + views/html/seminaries/edit.tpl | 148 + views/html/seminaries/index.tpl | 51 + views/html/seminaries/seminary.tpl | 80 + views/html/seminarybar/index.tpl | 68 + views/html/seminarymenu/index.tpl | 10 + views/html/userroles/user.tpl | 15 + views/html/users/create.tpl | 99 + views/html/users/delete.tpl | 13 + views/html/users/edit.tpl | 110 + views/html/users/index.tpl | 95 + views/html/users/login.tpl | 21 + views/html/users/logout.tpl | 0 views/html/users/manage.tpl | 54 + views/html/users/register.tpl | 101 + views/html/users/user.tpl | 49 + views/html/xplevels/manage.tpl | 80 + views/htmlmail/htmlmail.tpl | 19 + views/htmlmail/mail/characterregistration.tpl | 2 + views/htmlmail/mail/charactersubmission.tpl | 2 + .../mail/charactersubmissionapproved.tpl | 2 + views/htmlmail/mail/userregistration.tpl | 2 + views/htmlmail/mailreceiver/index.tpl | 1 + views/inlineerror.tpl | 1 + views/textmail/mail/characterregistration.tpl | 3 + views/textmail/mail/charactersubmission.tpl | 2 + .../mail/charactersubmissionapproved.tpl | 2 + views/textmail/mail/userregistration.tpl | 3 + views/textmail/mailreceiver/index.tpl | 1 + views/textmail/textmail.tpl | 8 + www/.htaccess | 8 + www/analytics/LEGALNOTICE | 265 + www/analytics/README.md | 92 + www/analytics/composer.json | 30 + www/analytics/composer.lock | 310 + www/analytics/config/.htaccess | 13 + www/analytics/config/global.ini.php | 627 + www/analytics/config/manifest.inc.php | 3200 ++ www/analytics/console | 28 + www/analytics/core/.htaccess | 13 + .../core/API/DataTableGenericFilter.php | 149 + .../core/API/DataTableManipulator.php | 192 + .../API/DataTableManipulator/Flattener.php | 137 + .../API/DataTableManipulator/LabelFilter.php | 167 + .../ReportTotalsCalculator.php | 250 + .../core/API/DocumentationGenerator.php | 238 + www/analytics/core/API/Proxy.php | 514 + www/analytics/core/API/Request.php | 398 + www/analytics/core/API/ResponseBuilder.php | 478 + www/analytics/core/Access.php | 418 + www/analytics/core/Archive.php | 809 + www/analytics/core/Archive/DataCollection.php | 336 + .../core/Archive/DataTableFactory.php | 426 + www/analytics/core/Archive/Parameters.php | 73 + www/analytics/core/ArchiveProcessor.php | 489 + .../core/ArchiveProcessor/Loader.php | 214 + .../core/ArchiveProcessor/Parameters.php | 194 + .../core/ArchiveProcessor/PluginsArchiver.php | 197 + www/analytics/core/ArchiveProcessor/Rules.php | 304 + www/analytics/core/AssetManager.php | 405 + www/analytics/core/AssetManager/UIAsset.php | 61 + .../AssetManager/UIAsset/InMemoryUIAsset.php | 63 + .../AssetManager/UIAsset/OnDiskUIAsset.php | 113 + .../core/AssetManager/UIAssetCacheBuster.php | 54 + .../core/AssetManager/UIAssetCatalog.php | 70 + .../AssetManager/UIAssetCatalogSorter.php | 59 + .../core/AssetManager/UIAssetFetcher.php | 119 + .../UIAssetFetcher/JScriptUIAssetFetcher.php | 90 + .../UIAssetFetcher/StaticUIAssetFetcher.php | 37 + .../StylesheetUIAssetFetcher.php | 64 + .../core/AssetManager/UIAssetMerger.php | 209 + .../UIAssetMerger/JScriptUIAssetMerger.php | 89 + .../UIAssetMerger/StylesheetUIAssetMerger.php | 147 + .../core/AssetManager/UIAssetMinifier.php | 66 + www/analytics/core/Auth.php | 147 + www/analytics/core/CacheFile.php | 206 + www/analytics/core/CliMulti.php | 280 + www/analytics/core/CliMulti/Output.php | 53 + www/analytics/core/CliMulti/Process.php | 195 + .../core/CliMulti/RequestCommand.php | 84 + www/analytics/core/Common.php | 1088 + www/analytics/core/Config.php | 714 + www/analytics/core/Console.php | 166 + www/analytics/core/Cookie.php | 383 + www/analytics/core/CronArchive.php | 1247 + .../core/CronArchive/FixedSiteIds.php | 68 + .../core/CronArchive/SharedSiteIds.php | 176 + .../core/DataAccess/ArchiveSelector.php | 360 + .../core/DataAccess/ArchiveTableCreator.php | 119 + .../core/DataAccess/ArchiveWriter.php | 317 + .../core/DataAccess/LogAggregator.php | 880 + www/analytics/core/DataArray.php | 396 + www/analytics/core/DataFiles/Countries.php | 326 + www/analytics/core/DataFiles/Currencies.php | 186 + .../core/DataFiles/LanguageToCountry.php | 63 + www/analytics/core/DataFiles/Languages.php | 203 + www/analytics/core/DataFiles/Providers.php | 48 + .../core/DataFiles/SearchEngines.php | 1033 + www/analytics/core/DataFiles/Socials.php | 226 + www/analytics/core/DataTable.php | 1638 + www/analytics/core/DataTable/BaseFilter.php | 81 + www/analytics/core/DataTable/Bridges.php | 28 + .../core/DataTable/DataTableInterface.php | 30 + .../Filter/AddColumnsProcessedMetrics.php | 149 + .../Filter/AddColumnsProcessedMetricsGoal.php | 226 + .../core/DataTable/Filter/AddSummaryRow.php | 52 + .../DataTable/Filter/BeautifyRangeLabels.php | 168 + .../Filter/BeautifyTimeRangeLabels.php | 121 + .../Filter/CalculateEvolutionFilter.php | 187 + .../Filter/ColumnCallbackAddColumn.php | 96 + .../ColumnCallbackAddColumnPercentage.php | 39 + .../ColumnCallbackAddColumnQuotient.php | 145 + .../Filter/ColumnCallbackAddMetadata.php | 89 + .../Filter/ColumnCallbackDeleteRow.php | 81 + .../Filter/ColumnCallbackReplace.php | 122 + .../core/DataTable/Filter/ColumnDelete.php | 150 + .../DataTable/Filter/ExcludeLowPopulation.php | 90 + .../core/DataTable/Filter/GroupBy.php | 104 + www/analytics/core/DataTable/Filter/Limit.php | 69 + .../Filter/MetadataCallbackAddMetadata.php | 81 + .../Filter/MetadataCallbackReplace.php | 66 + .../core/DataTable/Filter/Pattern.php | 96 + .../DataTable/Filter/PatternRecursive.php | 88 + .../core/DataTable/Filter/RangeCheck.php | 59 + .../DataTable/Filter/ReplaceColumnNames.php | 171 + .../Filter/ReplaceSummaryRowLabel.php | 74 + .../core/DataTable/Filter/SafeDecodeLabel.php | 72 + www/analytics/core/DataTable/Filter/Sort.php | 221 + .../core/DataTable/Filter/Truncate.php | 113 + www/analytics/core/DataTable/Manager.php | 156 + www/analytics/core/DataTable/Map.php | 445 + www/analytics/core/DataTable/Renderer.php | 417 + .../core/DataTable/Renderer/Console.php | 167 + www/analytics/core/DataTable/Renderer/Csv.php | 403 + .../core/DataTable/Renderer/Html.php | 207 + .../core/DataTable/Renderer/Json.php | 140 + www/analytics/core/DataTable/Renderer/Php.php | 271 + www/analytics/core/DataTable/Renderer/Rss.php | 207 + www/analytics/core/DataTable/Renderer/Tsv.php | 39 + www/analytics/core/DataTable/Renderer/Xml.php | 443 + www/analytics/core/DataTable/Row.php | 665 + .../DataTable/Row/DataTableSummaryRow.php | 68 + www/analytics/core/DataTable/Simple.php | 38 + .../core/DataTable/TableNotFoundException.php | 15 + www/analytics/core/Date.php | 706 + www/analytics/core/Db.php | 671 + www/analytics/core/Db/Adapter.php | 114 + www/analytics/core/Db/Adapter/Mysqli.php | 177 + www/analytics/core/Db/Adapter/Pdo/Mssql.php | 264 + www/analytics/core/Db/Adapter/Pdo/Mysql.php | 233 + www/analytics/core/Db/Adapter/Pdo/Pgsql.php | 182 + www/analytics/core/Db/AdapterInterface.php | 73 + www/analytics/core/Db/BatchInsert.php | 255 + www/analytics/core/Db/Schema.php | 245 + www/analytics/core/Db/Schema/Mysql.php | 539 + www/analytics/core/Db/SchemaInterface.php | 96 + www/analytics/core/DbHelper.php | 164 + www/analytics/core/Error.php | 222 + www/analytics/core/EventDispatcher.php | 186 + www/analytics/core/ExceptionHandler.php | 63 + www/analytics/core/Filechecks.php | 224 + www/analytics/core/Filesystem.php | 314 + www/analytics/core/FrontController.php | 545 + www/analytics/core/Http.php | 754 + www/analytics/core/IP.php | 431 + www/analytics/core/Loader.php | 126 + www/analytics/core/Log.php | 635 + www/analytics/core/Mail.php | 103 + www/analytics/core/Menu/MenuAbstract.php | 269 + www/analytics/core/Menu/MenuAdmin.php | 113 + www/analytics/core/Menu/MenuMain.php | 91 + www/analytics/core/Menu/MenuTop.php | 121 + www/analytics/core/Metrics.php | 346 + www/analytics/core/MetricsFormatter.php | 242 + www/analytics/core/Nonce.php | 175 + www/analytics/core/Notification.php | 207 + www/analytics/core/Notification/Manager.php | 140 + www/analytics/core/Option.php | 247 + www/analytics/core/Period.php | 342 + www/analytics/core/Period/Day.php | 102 + www/analytics/core/Period/Month.php | 74 + www/analytics/core/Period/Range.php | 451 + www/analytics/core/Period/Week.php | 102 + www/analytics/core/Period/Year.php | 87 + www/analytics/core/Piwik.php | 847 + www/analytics/core/Plugin.php | 326 + www/analytics/core/Plugin/API.php | 45 + www/analytics/core/Plugin/Archiver.php | 133 + www/analytics/core/Plugin/ConsoleCommand.php | 68 + www/analytics/core/Plugin/Controller.php | 944 + www/analytics/core/Plugin/ControllerAdmin.php | 213 + www/analytics/core/Plugin/Dependency.php | 105 + www/analytics/core/Plugin/Manager.php | 1251 + www/analytics/core/Plugin/MetadataLoader.php | 106 + www/analytics/core/Plugin/Settings.php | 378 + www/analytics/core/Plugin/ViewDataTable.php | 459 + www/analytics/core/Plugin/Visualization.php | 595 + www/analytics/core/Profiler.php | 290 + www/analytics/core/ProxyHeaders.php | 92 + www/analytics/core/ProxyHttp.php | 232 + www/analytics/core/QuickForm2.php | 145 + www/analytics/core/RankingQuery.php | 373 + www/analytics/core/Registry.php | 57 + www/analytics/core/ReportRenderer.php | 259 + www/analytics/core/ReportRenderer/Csv.php | 151 + www/analytics/core/ReportRenderer/Html.php | 164 + www/analytics/core/ReportRenderer/Pdf.php | 526 + www/analytics/core/ScheduledTask.php | 204 + www/analytics/core/ScheduledTaskTimetable.php | 121 + www/analytics/core/ScheduledTime.php | 225 + www/analytics/core/ScheduledTime/Daily.php | 56 + www/analytics/core/ScheduledTime/Hourly.php | 62 + www/analytics/core/ScheduledTime/Monthly.php | 145 + www/analytics/core/ScheduledTime/Weekly.php | 83 + www/analytics/core/Segment.php | 454 + www/analytics/core/SegmentExpression.php | 378 + www/analytics/core/Session.php | 146 + .../core/Session/SaveHandler/DbTable.php | 145 + .../core/Session/SessionNamespace.php | 33 + www/analytics/core/Settings/Manager.php | 133 + www/analytics/core/Settings/Setting.php | 241 + .../core/Settings/StorageInterface.php | 52 + www/analytics/core/Settings/SystemSetting.php | 47 + www/analytics/core/Settings/UserSetting.php | 118 + www/analytics/core/SettingsPiwik.php | 372 + www/analytics/core/SettingsServer.php | 213 + www/analytics/core/Singleton.php | 61 + www/analytics/core/Site.php | 553 + www/analytics/core/TCPDF.php | 91 + www/analytics/core/TaskScheduler.php | 204 + www/analytics/core/Theme.php | 153 + www/analytics/core/Timer.php | 91 + www/analytics/core/Tracker.php | 861 + www/analytics/core/Tracker/Action.php | 310 + www/analytics/core/Tracker/ActionClickUrl.php | 63 + www/analytics/core/Tracker/ActionEvent.php | 78 + www/analytics/core/Tracker/ActionPageview.php | 71 + .../core/Tracker/ActionSiteSearch.php | 254 + www/analytics/core/Tracker/Cache.php | 205 + www/analytics/core/Tracker/Db.php | 225 + www/analytics/core/Tracker/Db/DbException.php | 20 + www/analytics/core/Tracker/Db/Mysqli.php | 279 + www/analytics/core/Tracker/Db/Pdo/Mysql.php | 237 + www/analytics/core/Tracker/Db/Pdo/Pgsql.php | 116 + www/analytics/core/Tracker/GoalManager.php | 905 + www/analytics/core/Tracker/IgnoreCookie.php | 73 + www/analytics/core/Tracker/PageUrl.php | 328 + www/analytics/core/Tracker/Referrer.php | 301 + www/analytics/core/Tracker/Request.php | 573 + www/analytics/core/Tracker/TableLogAction.php | 257 + www/analytics/core/Tracker/Visit.php | 1010 + www/analytics/core/Tracker/VisitExcluded.php | 244 + www/analytics/core/Tracker/VisitInterface.php | 32 + .../core/Tracker/VisitorNotFoundInDb.php | 17 + www/analytics/core/Translate.php | 215 + .../Translate/Filter/ByBaseTranslations.php | 65 + .../Translate/Filter/ByParameterCount.php | 87 + .../Translate/Filter/EmptyTranslations.php | 47 + .../core/Translate/Filter/EncodedEntities.php | 44 + .../core/Translate/Filter/FilterAbstract.php | 36 + .../Filter/UnnecassaryWhitespaces.php | 65 + .../Translate/Validate/CoreTranslations.php | 101 + .../core/Translate/Validate/NoScripts.php | 39 + .../Translate/Validate/ValidateAbstract.php | 37 + www/analytics/core/Translate/Writer.php | 383 + www/analytics/core/Twig.php | 305 + www/analytics/core/Unzip.php | 52 + www/analytics/core/Unzip/Gzip.php | 82 + www/analytics/core/Unzip/PclZip.php | 89 + www/analytics/core/Unzip/Tar.php | 84 + .../core/Unzip/UncompressInterface.php | 39 + www/analytics/core/Unzip/ZipArchive.php | 132 + www/analytics/core/UpdateCheck.php | 110 + www/analytics/core/Updater.php | 335 + www/analytics/core/Updates.php | 108 + www/analytics/core/Updates/0.2.10.php | 73 + www/analytics/core/Updates/0.2.12.php | 38 + www/analytics/core/Updates/0.2.13.php | 38 + www/analytics/core/Updates/0.2.24.php | 36 + www/analytics/core/Updates/0.2.27.php | 81 + www/analytics/core/Updates/0.2.32.php | 39 + www/analytics/core/Updates/0.2.33.php | 45 + www/analytics/core/Updates/0.2.34.php | 28 + www/analytics/core/Updates/0.2.35.php | 32 + www/analytics/core/Updates/0.2.37.php | 33 + www/analytics/core/Updates/0.4.1.php | 34 + www/analytics/core/Updates/0.4.2.php | 38 + www/analytics/core/Updates/0.4.4.php | 29 + www/analytics/core/Updates/0.4.php | 39 + www/analytics/core/Updates/0.5.4.php | 65 + www/analytics/core/Updates/0.5.5.php | 46 + www/analytics/core/Updates/0.5.php | 40 + www/analytics/core/Updates/0.6-rc1.php | 67 + www/analytics/core/Updates/0.6.2.php | 47 + www/analytics/core/Updates/0.6.3.php | 49 + www/analytics/core/Updates/0.7.php | 32 + www/analytics/core/Updates/0.9.1.php | 57 + www/analytics/core/Updates/1.1.php | 44 + www/analytics/core/Updates/1.10-b4.php | 31 + www/analytics/core/Updates/1.10.1.php | 31 + www/analytics/core/Updates/1.10.2-b1.php | 33 + www/analytics/core/Updates/1.10.2-b2.php | 33 + www/analytics/core/Updates/1.11-b1.php | 31 + www/analytics/core/Updates/1.12-b1.php | 38 + www/analytics/core/Updates/1.12-b15.php | 26 + www/analytics/core/Updates/1.12-b16.php | 33 + www/analytics/core/Updates/1.2-rc1.php | 150 + www/analytics/core/Updates/1.2-rc2.php | 26 + www/analytics/core/Updates/1.2.3.php | 41 + www/analytics/core/Updates/1.2.5-rc1.php | 37 + www/analytics/core/Updates/1.2.5-rc7.php | 34 + www/analytics/core/Updates/1.4-rc1.php | 37 + www/analytics/core/Updates/1.4-rc2.php | 44 + www/analytics/core/Updates/1.5-b1.php | 63 + www/analytics/core/Updates/1.5-b2.php | 41 + www/analytics/core/Updates/1.5-b3.php | 63 + www/analytics/core/Updates/1.5-b4.php | 32 + www/analytics/core/Updates/1.5-b5.php | 37 + www/analytics/core/Updates/1.5-rc6.php | 26 + www/analytics/core/Updates/1.6-b1.php | 68 + www/analytics/core/Updates/1.6-rc1.php | 26 + www/analytics/core/Updates/1.7-b1.php | 37 + www/analytics/core/Updates/1.7.2-rc5.php | 35 + www/analytics/core/Updates/1.7.2-rc7.php | 45 + www/analytics/core/Updates/1.8.3-b1.php | 115 + www/analytics/core/Updates/1.8.4-b1.php | 190 + www/analytics/core/Updates/1.9-b16.php | 54 + www/analytics/core/Updates/1.9-b19.php | 43 + www/analytics/core/Updates/1.9-b9.php | 57 + www/analytics/core/Updates/1.9.1-b2.php | 36 + www/analytics/core/Updates/1.9.3-b10.php | 31 + www/analytics/core/Updates/1.9.3-b3.php | 28 + www/analytics/core/Updates/1.9.3-b8.php | 34 + www/analytics/core/Updates/2.0-a12.php | 48 + www/analytics/core/Updates/2.0-a13.php | 66 + www/analytics/core/Updates/2.0-a17.php | 42 + www/analytics/core/Updates/2.0-a7.php | 37 + www/analytics/core/Updates/2.0-b10.php | 23 + www/analytics/core/Updates/2.0-b13.php | 42 + www/analytics/core/Updates/2.0-b3.php | 46 + www/analytics/core/Updates/2.0-b9.php | 33 + www/analytics/core/Updates/2.0-rc1.php | 24 + www/analytics/core/Updates/2.0.3-b7.php | 67 + www/analytics/core/Updates/2.0.4-b5.php | 92 + www/analytics/core/Updates/2.0.4-b7.php | 73 + www/analytics/core/Updates/2.0.4-b8.php | 78 + www/analytics/core/Updates/2.1.1-b11.php | 133 + www/analytics/core/Updates/2.2.0-b15.php | 27 + www/analytics/core/Url.php | 562 + www/analytics/core/UrlHelper.php | 496 + www/analytics/core/Version.php | 25 + www/analytics/core/View.php | 365 + www/analytics/core/View/OneClickDone.php | 87 + www/analytics/core/View/RenderTokenParser.php | 83 + .../core/View/ReportsByDimension.php | 129 + www/analytics/core/View/UIControl.php | 172 + www/analytics/core/View/ViewInterface.php | 25 + www/analytics/core/ViewDataTable/Config.php | 633 + www/analytics/core/ViewDataTable/Factory.php | 174 + www/analytics/core/ViewDataTable/Manager.php | 273 + www/analytics/core/ViewDataTable/Request.php | 137 + .../core/ViewDataTable/RequestConfig.php | 301 + .../core/Visualization/Sparkline.php | 177 + www/analytics/core/WidgetsList.php | 215 + www/analytics/core/dispatch.php | 39 + www/analytics/core/testMinimumPhpVersion.php | 139 + www/analytics/favicon.ico | 0 www/analytics/index.php | 47 + www/analytics/js/.htaccess | 17 + www/analytics/js/LICENSE.txt | 32 + www/analytics/js/README.md | 58 + www/analytics/js/index.php | 37 + www/analytics/js/piwik.js | 3280 ++ www/analytics/lang/.htaccess | 13 + www/analytics/lang/README.md | 5 + www/analytics/lang/am.json | 814 + www/analytics/lang/ar.json | 1497 + www/analytics/lang/be.json | 1423 + www/analytics/lang/bg.json | 2301 ++ www/analytics/lang/bn.json | 587 + www/analytics/lang/bs.json | 975 + www/analytics/lang/ca.json | 2022 + www/analytics/lang/cs.json | 1688 + www/analytics/lang/cy.json | 723 + www/analytics/lang/da.json | 2437 ++ www/analytics/lang/de.json | 2443 ++ www/analytics/lang/el.json | 2457 ++ www/analytics/lang/en.json | 2467 ++ www/analytics/lang/es.json | 2430 ++ www/analytics/lang/et.json | 1800 + www/analytics/lang/eu.json | 964 + www/analytics/lang/fa.json | 2171 + www/analytics/lang/fi.json | 2399 ++ www/analytics/lang/fr.json | 2402 ++ www/analytics/lang/gl.json | 763 + www/analytics/lang/he.json | 1162 + www/analytics/lang/hi.json | 2082 + www/analytics/lang/hr.json | 906 + www/analytics/lang/hu.json | 1372 + www/analytics/lang/id.json | 2205 ++ www/analytics/lang/is.json | 982 + www/analytics/lang/it.json | 2464 ++ www/analytics/lang/ja.json | 1809 + www/analytics/lang/ka.json | 1227 + www/analytics/lang/ko.json | 2089 + www/analytics/lang/lt.json | 1299 + www/analytics/lang/lv.json | 1310 + www/analytics/lang/nb.json | 1557 + www/analytics/lang/nl.json | 2279 ++ www/analytics/lang/nn.json | 1332 + www/analytics/lang/pl.json | 1579 + www/analytics/lang/pt-br.json | 2360 ++ www/analytics/lang/pt.json | 1547 + www/analytics/lang/ro.json | 1799 + www/analytics/lang/ru.json | 2258 ++ www/analytics/lang/sk.json | 1357 + www/analytics/lang/sl.json | 1387 + www/analytics/lang/sq.json | 1517 + www/analytics/lang/sr.json | 2393 ++ www/analytics/lang/sv.json | 2415 ++ www/analytics/lang/ta.json | 1054 + www/analytics/lang/te.json | 854 + www/analytics/lang/th.json | 1584 + www/analytics/lang/tr.json | 1320 + www/analytics/lang/uk.json | 1257 + www/analytics/lang/vi.json | 2324 ++ www/analytics/lang/zh-cn.json | 2335 ++ www/analytics/lang/zh-tw.json | 1294 + www/analytics/libs/.htaccess | 33 + www/analytics/libs/Archive_Tar/Tar.php | 1993 + www/analytics/libs/HTML/Common2.php | 488 + www/analytics/libs/HTML/QuickForm2.php | 224 + .../libs/HTML/QuickForm2/Container.php | 487 + .../HTML/QuickForm2/Container/Fieldset.php | 92 + .../libs/HTML/QuickForm2/Container/Group.php | 328 + .../libs/HTML/QuickForm2/Controller.php | 508 + .../HTML/QuickForm2/Controller/Action.php | 68 + .../QuickForm2/Controller/Action/Back.php | 74 + .../QuickForm2/Controller/Action/Direct.php | 71 + .../QuickForm2/Controller/Action/Display.php | 117 + .../QuickForm2/Controller/Action/Jump.php | 209 + .../QuickForm2/Controller/Action/Next.php | 88 + .../QuickForm2/Controller/Action/Submit.php | 79 + .../QuickForm2/Controller/DefaultAction.php | 106 + .../libs/HTML/QuickForm2/Controller/Page.php | 258 + .../Controller/SessionContainer.php | 195 + .../libs/HTML/QuickForm2/DataSource.php | 67 + .../libs/HTML/QuickForm2/DataSource/Array.php | 101 + .../HTML/QuickForm2/DataSource/Session.php | 78 + .../HTML/QuickForm2/DataSource/Submit.php | 76 + .../QuickForm2/DataSource/SuperGlobal.php | 170 + .../libs/HTML/QuickForm2/Element.php | 133 + .../libs/HTML/QuickForm2/Element/Button.php | 161 + .../libs/HTML/QuickForm2/Element/Date.php | 503 + .../libs/HTML/QuickForm2/Element/Input.php | 114 + .../HTML/QuickForm2/Element/InputButton.php | 99 + .../QuickForm2/Element/InputCheckable.php | 172 + .../HTML/QuickForm2/Element/InputCheckbox.php | 99 + .../HTML/QuickForm2/Element/InputFile.php | 268 + .../HTML/QuickForm2/Element/InputHidden.php | 82 + .../HTML/QuickForm2/Element/InputImage.php | 162 + .../HTML/QuickForm2/Element/InputPassword.php | 71 + .../HTML/QuickForm2/Element/InputRadio.php | 69 + .../HTML/QuickForm2/Element/InputReset.php | 99 + .../HTML/QuickForm2/Element/InputSubmit.php | 120 + .../HTML/QuickForm2/Element/InputText.php | 64 + .../libs/HTML/QuickForm2/Element/Select.php | 575 + .../libs/HTML/QuickForm2/Element/Static.php | 153 + .../libs/HTML/QuickForm2/Element/Textarea.php | 110 + .../libs/HTML/QuickForm2/Exception.php | 109 + .../libs/HTML/QuickForm2/Factory.php | 233 + .../HTML/QuickForm2/JavascriptBuilder.php | 121 + www/analytics/libs/HTML/QuickForm2/Loader.php | 141 + www/analytics/libs/HTML/QuickForm2/Node.php | 693 + .../libs/HTML/QuickForm2/Renderer.php | 367 + .../libs/HTML/QuickForm2/Renderer/Array.php | 376 + .../libs/HTML/QuickForm2/Renderer/Default.php | 598 + .../libs/HTML/QuickForm2/Renderer/Plugin.php | 69 + .../libs/HTML/QuickForm2/Renderer/Proxy.php | 264 + .../libs/HTML/QuickForm2/Renderer/Smarty.php | 292 + www/analytics/libs/HTML/QuickForm2/Rule.php | 333 + .../libs/HTML/QuickForm2/Rule/Callback.php | 172 + .../libs/HTML/QuickForm2/Rule/Compare.php | 231 + .../libs/HTML/QuickForm2/Rule/Each.php | 137 + .../libs/HTML/QuickForm2/Rule/Empty.php | 89 + .../libs/HTML/QuickForm2/Rule/Length.php | 236 + .../libs/HTML/QuickForm2/Rule/MaxFileSize.php | 124 + .../libs/HTML/QuickForm2/Rule/MimeType.php | 122 + .../libs/HTML/QuickForm2/Rule/Nonempty.php | 141 + .../libs/HTML/QuickForm2/Rule/NotCallback.php | 80 + .../libs/HTML/QuickForm2/Rule/NotRegex.php | 106 + .../libs/HTML/QuickForm2/Rule/Regex.php | 133 + .../libs/HTML/QuickForm2/Rule/Required.php | 88 + www/analytics/libs/MaxMindGeoIP/geoip.inc | 749 + www/analytics/libs/MaxMindGeoIP/geoipcity.inc | 237 + .../libs/MaxMindGeoIP/geoipregionvars.php | 4192 ++ www/analytics/libs/PEAR.php | 1063 + www/analytics/libs/PEAR/Exception.php | 389 + .../libs/PEAR/FixPHP5PEARWarnings.php | 7 + www/analytics/libs/PEAR/LICENSE | 27 + www/analytics/libs/PEAR5.php | 33 + www/analytics/libs/PclZip/lgpl-2.1.txt | 502 + www/analytics/libs/PclZip/pclzip.lib.php | 5694 +++ www/analytics/libs/PiwikTracker/LICENSE.txt | 29 + .../libs/PiwikTracker/PiwikTracker.php | 1537 + www/analytics/libs/README.md | 35 + www/analytics/libs/UserAgentParser/README.md | 23 + .../libs/UserAgentParser/UserAgentParser.php | 725 + .../UserAgentParser/UserAgentParser.test.php | 56 + www/analytics/libs/Zend/Cache.php | 250 + www/analytics/libs/Zend/Cache/Backend.php | 268 + www/analytics/libs/Zend/Cache/Backend/Apc.php | 355 + .../libs/Zend/Cache/Backend/BlackHole.php | 250 + .../Zend/Cache/Backend/ExtendedInterface.php | 126 + .../libs/Zend/Cache/Backend/File.php | 1007 + .../libs/Zend/Cache/Backend/Interface.php | 99 + .../libs/Zend/Cache/Backend/Libmemcached.php | 484 + .../libs/Zend/Cache/Backend/Memcached.php | 504 + .../libs/Zend/Cache/Backend/Sqlite.php | 678 + .../libs/Zend/Cache/Backend/Static.php | 564 + .../libs/Zend/Cache/Backend/Test.php | 413 + .../libs/Zend/Cache/Backend/TwoLevels.php | 536 + .../libs/Zend/Cache/Backend/WinCache.php | 349 + .../libs/Zend/Cache/Backend/Xcache.php | 221 + .../libs/Zend/Cache/Backend/ZendPlatform.php | 317 + .../libs/Zend/Cache/Backend/ZendServer.php | 207 + .../Zend/Cache/Backend/ZendServer/Disk.php | 100 + .../Zend/Cache/Backend/ZendServer/ShMem.php | 100 + www/analytics/libs/Zend/Cache/Core.php | 764 + www/analytics/libs/Zend/Cache/Exception.php | 32 + .../libs/Zend/Cache/Frontend/Capture.php | 88 + .../libs/Zend/Cache/Frontend/Class.php | 265 + .../libs/Zend/Cache/Frontend/File.php | 222 + .../libs/Zend/Cache/Frontend/Function.php | 179 + .../libs/Zend/Cache/Frontend/Output.php | 105 + .../libs/Zend/Cache/Frontend/Page.php | 404 + www/analytics/libs/Zend/Cache/Manager.php | 298 + www/analytics/libs/Zend/Config.php | 484 + www/analytics/libs/Zend/Config/Exception.php | 33 + www/analytics/libs/Zend/Config/Ini.php | 309 + www/analytics/libs/Zend/Config/Json.php | 240 + www/analytics/libs/Zend/Config/Writer.php | 101 + .../libs/Zend/Config/Writer/Array.php | 55 + .../libs/Zend/Config/Writer/FileAbstract.php | 134 + www/analytics/libs/Zend/Config/Writer/Ini.php | 193 + .../libs/Zend/Config/Writer/Json.php | 106 + www/analytics/libs/Zend/Config/Writer/Xml.php | 127 + .../libs/Zend/Config/Writer/Yaml.php | 144 + www/analytics/libs/Zend/Config/Xml.php | 296 + www/analytics/libs/Zend/Config/Yaml.php | 381 + www/analytics/libs/Zend/Db.php | 286 + .../libs/Zend/Db/Adapter/Abstract.php | 1280 + www/analytics/libs/Zend/Db/Adapter/Db2.php | 840 + .../libs/Zend/Db/Adapter/Db2/Exception.php | 45 + .../libs/Zend/Db/Adapter/Exception.php | 57 + www/analytics/libs/Zend/Db/Adapter/Mysqli.php | 549 + .../libs/Zend/Db/Adapter/Mysqli/Exception.php | 40 + www/analytics/libs/Zend/Db/Adapter/Oracle.php | 643 + .../libs/Zend/Db/Adapter/Oracle/Exception.php | 60 + .../libs/Zend/Db/Adapter/Pdo/Abstract.php | 401 + .../libs/Zend/Db/Adapter/Pdo/Ibm.php | 360 + .../libs/Zend/Db/Adapter/Pdo/Ibm/Db2.php | 228 + .../libs/Zend/Db/Adapter/Pdo/Ibm/Ids.php | 301 + .../libs/Zend/Db/Adapter/Pdo/Mssql.php | 423 + .../libs/Zend/Db/Adapter/Pdo/Mysql.php | 270 + .../libs/Zend/Db/Adapter/Pdo/Oci.php | 378 + .../libs/Zend/Db/Adapter/Pdo/Pgsql.php | 336 + .../libs/Zend/Db/Adapter/Pdo/Sqlite.php | 297 + www/analytics/libs/Zend/Db/Adapter/Sqlsrv.php | 673 + .../libs/Zend/Db/Adapter/Sqlsrv/Exception.php | 63 + www/analytics/libs/Zend/Db/Exception.php | 35 + www/analytics/libs/Zend/Db/Expr.php | 77 + www/analytics/libs/Zend/Db/Profiler.php | 471 + .../libs/Zend/Db/Profiler/Exception.php | 40 + .../libs/Zend/Db/Profiler/Firebug.php | 161 + www/analytics/libs/Zend/Db/Profiler/Query.php | 213 + www/analytics/libs/Zend/Db/Select.php | 1351 + .../libs/Zend/Db/Select/Exception.php | 39 + www/analytics/libs/Zend/Db/Statement.php | 485 + www/analytics/libs/Zend/Db/Statement/Db2.php | 360 + .../libs/Zend/Db/Statement/Db2/Exception.php | 58 + .../libs/Zend/Db/Statement/Exception.php | 56 + .../libs/Zend/Db/Statement/Interface.php | 203 + .../libs/Zend/Db/Statement/Mysqli.php | 362 + .../Zend/Db/Statement/Mysqli/Exception.php | 38 + .../libs/Zend/Db/Statement/Oracle.php | 577 + .../Zend/Db/Statement/Oracle/Exception.php | 59 + www/analytics/libs/Zend/Db/Statement/Pdo.php | 439 + .../libs/Zend/Db/Statement/Pdo/Ibm.php | 94 + .../libs/Zend/Db/Statement/Pdo/Oci.php | 91 + .../libs/Zend/Db/Statement/Sqlsrv.php | 440 + .../Zend/Db/Statement/Sqlsrv/Exception.php | 61 + www/analytics/libs/Zend/Db/Table.php | 79 + www/analytics/libs/Zend/Db/Table/Abstract.php | 1534 + .../libs/Zend/Db/Table/Definition.php | 131 + .../libs/Zend/Db/Table/Exception.php | 38 + www/analytics/libs/Zend/Db/Table/Row.php | 42 + .../libs/Zend/Db/Table/Row/Abstract.php | 1203 + .../libs/Zend/Db/Table/Row/Exception.php | 38 + www/analytics/libs/Zend/Db/Table/Rowset.php | 43 + .../libs/Zend/Db/Table/Rowset/Abstract.php | 435 + .../libs/Zend/Db/Table/Rowset/Exception.php | 37 + www/analytics/libs/Zend/Db/Table/Select.php | 224 + .../libs/Zend/Db/Table/Select/Exception.php | 39 + www/analytics/libs/Zend/Exception.php | 96 + www/analytics/libs/Zend/LICENSE.txt | 27 + www/analytics/libs/Zend/Mail.php | 1276 + www/analytics/libs/Zend/Mail/Exception.php | 37 + www/analytics/libs/Zend/Mail/Message.php | 112 + www/analytics/libs/Zend/Mail/Message/File.php | 96 + .../libs/Zend/Mail/Message/Interface.php | 55 + www/analytics/libs/Zend/Mail/Part.php | 520 + www/analytics/libs/Zend/Mail/Part/File.php | 198 + .../libs/Zend/Mail/Part/Interface.php | 136 + .../libs/Zend/Mail/Protocol/Abstract.php | 447 + .../libs/Zend/Mail/Protocol/Exception.php | 39 + .../libs/Zend/Mail/Protocol/Imap.php | 838 + .../libs/Zend/Mail/Protocol/Pop3.php | 472 + .../libs/Zend/Mail/Protocol/Smtp.php | 443 + .../Zend/Mail/Protocol/Smtp/Auth/Crammd5.php | 108 + .../Zend/Mail/Protocol/Smtp/Auth/Login.php | 98 + .../Zend/Mail/Protocol/Smtp/Auth/Plain.php | 96 + www/analytics/libs/Zend/Mail/Storage.php | 39 + .../libs/Zend/Mail/Storage/Abstract.php | 366 + .../libs/Zend/Mail/Storage/Exception.php | 39 + .../libs/Zend/Mail/Storage/Folder.php | 236 + .../Zend/Mail/Storage/Folder/Interface.php | 60 + .../libs/Zend/Mail/Storage/Folder/Maildir.php | 265 + .../libs/Zend/Mail/Storage/Folder/Mbox.php | 264 + www/analytics/libs/Zend/Mail/Storage/Imap.php | 644 + .../libs/Zend/Mail/Storage/Maildir.php | 475 + www/analytics/libs/Zend/Mail/Storage/Mbox.php | 447 + www/analytics/libs/Zend/Mail/Storage/Pop3.php | 328 + .../Zend/Mail/Storage/Writable/Interface.php | 108 + .../Zend/Mail/Storage/Writable/Maildir.php | 1049 + .../libs/Zend/Mail/Transport/Abstract.php | 350 + .../libs/Zend/Mail/Transport/Exception.php | 39 + .../libs/Zend/Mail/Transport/File.php | 134 + .../libs/Zend/Mail/Transport/Sendmail.php | 220 + .../libs/Zend/Mail/Transport/Smtp.php | 243 + www/analytics/libs/Zend/Mime.php | 365 + www/analytics/libs/Zend/Mime/Decode.php | 244 + www/analytics/libs/Zend/Mime/Exception.php | 37 + www/analytics/libs/Zend/Mime/Message.php | 286 + www/analytics/libs/Zend/Mime/Part.php | 230 + www/analytics/libs/Zend/Registry.php | 210 + www/analytics/libs/Zend/Session.php | 870 + www/analytics/libs/Zend/Session/Abstract.php | 185 + www/analytics/libs/Zend/Session/Exception.php | 74 + www/analytics/libs/Zend/Session/Namespace.php | 529 + .../libs/Zend/Session/SaveHandler/DbTable.php | 591 + .../Zend/Session/SaveHandler/Exception.php | 37 + .../Zend/Session/SaveHandler/Interface.php | 81 + .../libs/Zend/Session/Validator/Abstract.php | 69 + .../Zend/Session/Validator/HttpUserAgent.php | 66 + .../libs/Zend/Session/Validator/Interface.php | 52 + www/analytics/libs/Zend/Validate.php | 292 + www/analytics/libs/Zend/Validate/Abstract.php | 456 + www/analytics/libs/Zend/Validate/Alnum.php | 150 + www/analytics/libs/Zend/Validate/Alpha.php | 150 + www/analytics/libs/Zend/Validate/Between.php | 224 + www/analytics/libs/Zend/Validate/Callback.php | 174 + www/analytics/libs/Zend/Validate/Ccnum.php | 112 + .../libs/Zend/Validate/CreditCard.php | 317 + www/analytics/libs/Zend/Validate/Date.php | 259 + www/analytics/libs/Zend/Validate/Digits.php | 91 + .../libs/Zend/Validate/EmailAddress.php | 560 + .../libs/Zend/Validate/Exception.php | 34 + .../libs/Zend/Validate/File/Count.php | 284 + .../libs/Zend/Validate/File/Crc32.php | 179 + .../Zend/Validate/File/ExcludeExtension.php | 94 + .../Zend/Validate/File/ExcludeMimeType.php | 109 + .../libs/Zend/Validate/File/Exists.php | 203 + .../libs/Zend/Validate/File/Extension.php | 232 + .../libs/Zend/Validate/File/FilesSize.php | 164 + .../libs/Zend/Validate/File/Hash.php | 194 + .../libs/Zend/Validate/File/ImageSize.php | 364 + .../libs/Zend/Validate/File/IsCompressed.php | 149 + .../libs/Zend/Validate/File/IsImage.php | 173 + www/analytics/libs/Zend/Validate/File/Md5.php | 183 + .../libs/Zend/Validate/File/MimeType.php | 392 + .../libs/Zend/Validate/File/NotExists.php | 84 + .../libs/Zend/Validate/File/Sha1.php | 181 + .../libs/Zend/Validate/File/Size.php | 404 + .../libs/Zend/Validate/File/Upload.php | 251 + .../libs/Zend/Validate/File/WordCount.php | 101 + www/analytics/libs/Zend/Validate/Float.php | 134 + .../libs/Zend/Validate/GreaterThan.php | 124 + www/analytics/libs/Zend/Validate/Hex.php | 72 + www/analytics/libs/Zend/Validate/Hostname.php | 784 + .../libs/Zend/Validate/Hostname/Biz.php | 2917 ++ .../libs/Zend/Validate/Hostname/Cn.php | 2199 ++ .../libs/Zend/Validate/Hostname/Com.php | 198 + .../libs/Zend/Validate/Hostname/Jp.php | 739 + www/analytics/libs/Zend/Validate/Iban.php | 223 + .../libs/Zend/Validate/Identical.php | 164 + www/analytics/libs/Zend/Validate/InArray.php | 204 + www/analytics/libs/Zend/Validate/Int.php | 148 + .../libs/Zend/Validate/Interface.php | 54 + www/analytics/libs/Zend/Validate/Ip.php | 191 + www/analytics/libs/Zend/Validate/Isbn.php | 279 + www/analytics/libs/Zend/Validate/LessThan.php | 122 + www/analytics/libs/Zend/Validate/NotEmpty.php | 279 + www/analytics/libs/Zend/Validate/PostCode.php | 210 + www/analytics/libs/Zend/Validate/Regex.php | 147 + .../libs/Zend/Validate/StringLength.php | 253 + www/analytics/libs/Zend/Version.php | 81 + www/analytics/libs/angularjs/LICENSE | 21 + .../libs/angularjs/angular-animate.js | 1589 + .../libs/angularjs/angular-animate.min.js | 26 + .../libs/angularjs/angular-cookies.js | 202 + .../libs/angularjs/angular-cookies.min.js | 8 + www/analytics/libs/angularjs/angular-csp.css | 18 + .../libs/angularjs/angular-loader.js | 410 + .../libs/angularjs/angular-loader.min.js | 9 + www/analytics/libs/angularjs/angular-mocks.js | 2136 + .../libs/angularjs/angular-resource.js | 596 + .../libs/angularjs/angular-resource.min.js | 13 + www/analytics/libs/angularjs/angular-route.js | 921 + .../libs/angularjs/angular-route.min.js | 14 + .../libs/angularjs/angular-sanitize.js | 625 + .../libs/angularjs/angular-sanitize.min.js | 13 + .../libs/angularjs/angular-scenario.js | 32880 ++++++++++++++++ www/analytics/libs/angularjs/angular-touch.js | 563 + .../libs/angularjs/angular-touch.min.js | 13 + www/analytics/libs/angularjs/angular.js | 20874 ++++++++++ www/analytics/libs/angularjs/angular.min.js | 203 + www/analytics/libs/angularjs/errors.json | 1 + www/analytics/libs/angularjs/version.json | 1 + www/analytics/libs/angularjs/version.txt | 1 + www/analytics/libs/html5shiv/html5shiv.js | 8 + www/analytics/libs/javascript/json2.js | 1 + www/analytics/libs/javascript/sprintf.js | 96 + www/analytics/libs/jqplot/MIT-LICENSE.txt | 21 + .../libs/jqplot/build_minified_script.sh | 26 + www/analytics/libs/jqplot/excanvas.min.js | 1 + www/analytics/libs/jqplot/gpl-2.0.txt | 280 + .../libs/jqplot/jqplot-custom.min.js | 172 + .../libs/jqplot/jqplot.axisLabelRenderer.js | 97 + .../libs/jqplot/jqplot.axisTickRenderer.js | 191 + .../libs/jqplot/jqplot.canvasGridRenderer.js | 383 + www/analytics/libs/jqplot/jqplot.core.js | 4105 ++ .../libs/jqplot/jqplot.divTitleRenderer.js | 120 + .../libs/jqplot/jqplot.linePattern.js | 149 + .../libs/jqplot/jqplot.lineRenderer.js | 1227 + .../libs/jqplot/jqplot.linearAxisRenderer.js | 1006 + .../libs/jqplot/jqplot.markerRenderer.js | 229 + .../libs/jqplot/jqplot.shadowRenderer.js | 140 + .../libs/jqplot/jqplot.shapeRenderer.js | 166 + www/analytics/libs/jqplot/jqplot.sprintf.js | 326 + .../libs/jqplot/jqplot.tableLegendRenderer.js | 323 + .../libs/jqplot/jqplot.themeEngine.js | 917 + .../libs/jqplot/plugins/jqplot.barRenderer.js | 801 + .../plugins/jqplot.canvasAxisTickRenderer.js | 253 + .../plugins/jqplot.canvasTextRenderer.js | 449 + .../plugins/jqplot.categoryAxisRenderer.js | 679 + .../libs/jqplot/plugins/jqplot.pieRenderer.js | 904 + www/analytics/libs/jquery/LICENSE-sizzle.txt | 148 + .../libs/jquery/MIT-LICENSE-history.txt | 20 + .../libs/jquery/MIT-LICENSE-jquery.txt | 20 + .../libs/jquery/MIT-LICENSE-jqueryui.txt | 25 + .../libs/jquery/MIT-LICENSE-placeholder.txt | 20 + .../libs/jquery/MIT-LICENSE-scrollto.txt | 19 + .../libs/jquery/MIT-LICENSE-smartbanner.txt | 19 + www/analytics/libs/jquery/gpl-2.0.txt | 278 + www/analytics/libs/jquery/gpl-3.0.txt | 674 + .../libs/jquery/images/down_arrow.png | Bin 0 -> 2898 bytes www/analytics/libs/jquery/images/scroller.png | Bin 0 -> 3329 bytes www/analytics/libs/jquery/images/slide.png | Bin 0 -> 2831 bytes www/analytics/libs/jquery/images/up_arrow.png | Bin 0 -> 2881 bytes www/analytics/libs/jquery/jquery-ui.js | 7 + www/analytics/libs/jquery/jquery.browser.js | 4 + www/analytics/libs/jquery/jquery.history.js | 181 + www/analytics/libs/jquery/jquery.js | 4 + .../libs/jquery/jquery.jscrollpane.js | 1341 + .../libs/jquery/jquery.mousewheel.js | 117 + .../libs/jquery/jquery.placeholder.js | 157 + www/analytics/libs/jquery/jquery.scrollTo.js | 7 + .../libs/jquery/jquery.smartbanner.js | 197 + www/analytics/libs/jquery/jquery.truncate.js | 60 + www/analytics/libs/jquery/mwheelIntent.js | 76 + .../jquery/stylesheets/jquery.jscrollpane.css | 119 + .../jquery/stylesheets/jquery.smartbanner.css | 27 + .../libs/jquery/stylesheets/scroll.less | 140 + .../base/images/ui-anim_basic_16x16.gif | Bin 0 -> 1553 bytes .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_75_ffffff_40x100.png | Bin 0 -> 178 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 120 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 105 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 111 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 110 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 119 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 101 bytes .../base/images/ui-icons_222222_256x240.png | Bin 0 -> 4369 bytes .../base/images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4369 bytes .../base/images/ui-icons_454545_256x240.png | Bin 0 -> 4369 bytes .../base/images/ui-icons_888888_256x240.png | Bin 0 -> 4369 bytes .../base/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes .../libs/jquery/themes/base/jquery-ui.css | 10 + www/analytics/libs/pChart2.1.3/GPLv3.txt | 675 + www/analytics/libs/pChart2.1.3/change.log | 282 + .../libs/pChart2.1.3/class/pData.class.php | 787 + .../libs/pChart2.1.3/class/pDraw.class.php | 6203 +++ .../libs/pChart2.1.3/class/pImage.class.php | 482 + .../libs/pChart2.1.3/class/pPie.class.php | 1500 + www/analytics/libs/pChart2.1.3/readme.txt | 140 + www/analytics/libs/sparkline/CHANGES | 23 + www/analytics/libs/sparkline/DESIGN | 28 + www/analytics/libs/sparkline/LICENSE-BSD.txt | 29 + www/analytics/libs/sparkline/README | 46 + www/analytics/libs/sparkline/gpl-2.0.txt | 339 + www/analytics/libs/sparkline/lib/Object.php | 159 + .../libs/sparkline/lib/Sparkline.php | 494 + .../libs/sparkline/lib/Sparkline_Bar.php | 196 + .../libs/sparkline/lib/Sparkline_Line.php | 286 + www/analytics/libs/tcpdf/2dbarcodes.php | 172 + www/analytics/libs/tcpdf/LICENSE.TXT | 858 + www/analytics/libs/tcpdf/README.TXT | 111 + www/analytics/libs/tcpdf/barcodes.php | 1965 + www/analytics/libs/tcpdf/composer.json | 40 + www/analytics/libs/tcpdf/config/lang/eng.php | 47 + .../libs/tcpdf/config/tcpdf_config.php | 219 + .../libs/tcpdf/config/tcpdf_config_alt.php | 234 + .../libs/tcpdf/fonts/almohanad.ctg.z | Bin 0 -> 2780 bytes www/analytics/libs/tcpdf/fonts/almohanad.php | 102 + www/analytics/libs/tcpdf/fonts/almohanad.z | Bin 0 -> 121292 bytes .../libs/tcpdf/fonts/dejavusans.ctg.z | Bin 0 -> 10120 bytes www/analytics/libs/tcpdf/fonts/dejavusans.php | 15 + www/analytics/libs/tcpdf/fonts/dejavusans.z | Bin 0 -> 361229 bytes www/analytics/libs/tcpdf/fonts/helvetica.php | 13 + www/analytics/libs/tcpdf/fonts/helveticab.php | 12 + .../libs/tcpdf/fonts/helveticabi.php | 12 + www/analytics/libs/tcpdf/fonts/helveticai.php | 12 + .../libs/tcpdf/fonts/hysmyeongjostdmedium.php | 48 + .../libs/tcpdf/fonts/kozgopromedium.php | 65 + .../libs/tcpdf/fonts/kozminproregular.php | 63 + .../libs/tcpdf/fonts/msungstdlight.php | 38 + .../libs/tcpdf/fonts/stsongstdlight.php | 39 + www/analytics/libs/tcpdf/fonts/symbol.php | 12 + www/analytics/libs/tcpdf/fonts/times.php | 12 + www/analytics/libs/tcpdf/fonts/timesb.php | 12 + www/analytics/libs/tcpdf/fonts/timesbi.php | 12 + www/analytics/libs/tcpdf/fonts/timesi.php | 12 + www/analytics/libs/tcpdf/gpl.txt | 674 + www/analytics/libs/tcpdf/htmlcolors.php | 199 + www/analytics/libs/tcpdf/include/sRGB.icc | Bin 0 -> 3048 bytes .../libs/tcpdf/include/tcpdf_colors.php | 462 + .../libs/tcpdf/include/tcpdf_filters.php | 481 + .../libs/tcpdf/include/tcpdf_font_data.php | 18447 +++++++++ .../libs/tcpdf/include/tcpdf_fonts.php | 2582 ++ .../libs/tcpdf/include/tcpdf_images.php | 355 + .../libs/tcpdf/include/tcpdf_static.php | 2837 ++ www/analytics/libs/tcpdf/lgpl-3.0.txt | 165 + www/analytics/libs/tcpdf/pdf417.php | 991 + www/analytics/libs/tcpdf/qrcode.php | 2866 ++ www/analytics/libs/tcpdf/spotcolors.php | 57 + www/analytics/libs/tcpdf/tcpdf.crt | 40 + www/analytics/libs/tcpdf/tcpdf.fdf | Bin 0 -> 1286 bytes www/analytics/libs/tcpdf/tcpdf.p12 | Bin 0 -> 1749 bytes www/analytics/libs/tcpdf/tcpdf.php | 24144 ++++++++++++ www/analytics/libs/tcpdf/tcpdf_autoconfig.php | 233 + www/analytics/libs/tcpdf/tcpdf_import.php | 104 + www/analytics/libs/tcpdf/tcpdf_parser.php | 798 + www/analytics/libs/tcpdf/unicode_data.php | 18371 +++++++++ www/analytics/libs/upgradephp/README | 14 + www/analytics/libs/upgradephp/upgrade.php | 676 + www/analytics/misc/How to install Piwik.html | 7 + www/analytics/misc/cron/archive.php | 51 + www/analytics/misc/cron/archive.sh | 99 + www/analytics/misc/cron/updatetoken.php | 47 + www/analytics/misc/gpl-3.0.txt | 674 + www/analytics/misc/log-analytics/README.md | 259 + .../misc/log-analytics/import_logs.py | 1765 + .../misc/others/ExamplePiwikTracker.php | 17 + .../misc/others/api_internal_call.php | 32 + www/analytics/misc/others/api_rest_call.php | 30 + .../misc/others/cli-script-bootstrap.php | 39 + www/analytics/misc/others/download-count.txt | 13 + www/analytics/misc/others/geoipUpdateRows.php | 233 + www/analytics/misc/others/iframeWidget.htm | 13 + .../misc/others/iframeWidget_localhost.php | 63 + .../phpstorm-codestyles/Piwik_codestyle.xml | 159 + .../misc/others/phpstorm-codestyles/README.md | 21 + www/analytics/misc/others/stress.sh | 5 + ...kies_GenerateHundredsWebsitesAndVisits.php | 27 + .../test_generateLotsVisitsWebsites.php | 154 + .../others/tracker_simpleImageTracker.php | 30 + .../uninstall-delete-piwik-directory.php | 26 + .../others/widget_example_lastvisits.html | 11 + .../misc/proxy-hide-piwik-url/README.md | 55 + .../misc/proxy-hide-piwik-url/piwik.php | 73 + www/analytics/misc/user/.gitkeep | 0 www/analytics/misc/user/.htaccess | 33 + www/analytics/misc/user/index.html | 1 + www/analytics/piwik.js | 31 + www/analytics/piwik.php | 135 + www/analytics/plugins/.htaccess | 33 + www/analytics/plugins/API/API.php | 723 + www/analytics/plugins/API/Controller.php | 128 + www/analytics/plugins/API/ProcessedReport.php | 718 + www/analytics/plugins/API/RowEvolution.php | 529 + .../plugins/API/stylesheets/listAllAPI.less | 48 + .../plugins/API/templates/listAllAPI.twig | 32 + www/analytics/plugins/Actions/API.php | 596 + www/analytics/plugins/Actions/Actions.php | 937 + www/analytics/plugins/Actions/Archiver.php | 548 + .../plugins/Actions/ArchivingHelper.php | 612 + www/analytics/plugins/Actions/Controller.php | 151 + .../Actions/javascripts/actionsDataTable.js | 328 + .../Actions/stylesheets/dataTableActions.less | 4 + .../Actions/templates/indexSiteSearch.twig | 17 + www/analytics/plugins/Annotations/API.php | 371 + .../plugins/Annotations/AnnotationList.php | 455 + .../plugins/Annotations/Annotations.php | 44 + .../plugins/Annotations/Controller.php | 215 + .../Annotations/javascripts/annotations.js | 599 + .../Annotations/stylesheets/annotations.less | 209 + .../Annotations/templates/_annotation.twig | 45 + .../templates/_annotationList.twig | 29 + .../templates/getAnnotationManager.twig | 27 + .../templates/getEvolutionIcons.twig | 14 + .../Annotations/templates/saveAnnotation.twig | 1 + www/analytics/plugins/CoreAdminHome/API.php | 209 + .../plugins/CoreAdminHome/Controller.php | 351 + .../plugins/CoreAdminHome/CoreAdminHome.php | 129 + .../plugins/CoreAdminHome/CustomLogo.php | 203 + .../javascripts/generalSettings.js | 142 + .../javascripts/jsTrackingGenerator.js | 310 + .../javascripts/pluginSettings.js | 82 + .../stylesheets/generalSettings.less | 176 + .../stylesheets/jsTrackingGenerator.css | 79 + .../CoreAdminHome/stylesheets/menu.less | 78 + .../stylesheets/pluginSettings.less | 40 + .../CoreAdminHome/templates/_menu.twig | 23 + .../templates/generalSettings.twig | 324 + .../CoreAdminHome/templates/optOut.twig | 31 + .../templates/pluginSettings.twig | 173 + .../templates/trackingCodeGenerator.twig | 272 + .../CoreConsole/Commands/CodeCoverage.php | 90 + .../CoreConsole/Commands/CoreArchiver.php | 55 + .../CoreConsole/Commands/GenerateApi.php | 58 + .../CoreConsole/Commands/GenerateCommand.php | 89 + .../Commands/GenerateController.php | 58 + .../CoreConsole/Commands/GeneratePlugin.php | 223 + .../Commands/GeneratePluginBase.php | 143 + .../CoreConsole/Commands/GenerateSettings.php | 58 + .../CoreConsole/Commands/GenerateTest.php | 189 + .../Commands/GenerateVisualizationPlugin.php | 96 + .../CoreConsole/Commands/GitCommit.php | 142 + .../plugins/CoreConsole/Commands/GitPull.php | 55 + .../plugins/CoreConsole/Commands/GitPush.php | 43 + .../CoreConsole/Commands/ManagePlugin.php | 68 + .../CoreConsole/Commands/ManageTestFiles.php | 60 + .../plugins/CoreConsole/Commands/RunTests.php | 87 + .../CoreConsole/Commands/RunUITests.php | 70 + .../CoreConsole/Commands/SetupFixture.php | 156 + .../Commands/SyncUITestScreenshots.php | 81 + .../plugins/CoreConsole/Commands/WatchLog.php | 33 + www/analytics/plugins/CoreHome/Controller.php | 242 + www/analytics/plugins/CoreHome/CoreHome.php | 201 + .../DataTableRowAction/MultiRowEvolution.php | 71 + .../DataTableRowAction/RowEvolution.php | 342 + .../CoreHome/angularjs/anchorLinkFix.js | 108 + .../common/directives/autocomplete-matched.js | 42 + .../directives/autocomplete-matched_spec.js | 43 + .../angularjs/common/directives/dialog.js | 41 + .../angularjs/common/directives/directive.js | 8 + .../directives/focus-anywhere-but-here.js | 40 + .../angularjs/common/directives/focusif.js | 27 + .../common/directives/ignore-click.js | 21 + .../angularjs/common/directives/onenter.js | 27 + .../angularjs/common/filters/evolution.js | 44 + .../angularjs/common/filters/filter.js | 7 + .../angularjs/common/filters/startfrom.js | 13 + .../common/filters/startfrom_spec.js | 40 + .../angularjs/common/filters/translate.js | 19 + .../angularjs/common/services/piwik-api.js | 186 + .../angularjs/common/services/piwik.js | 13 + .../angularjs/common/services/piwik_spec.js | 37 + .../angularjs/common/services/service.js | 8 + .../enrichedheadline-directive.js | 66 + .../enrichedheadline/enrichedheadline.html | 29 + .../enrichedheadline/enrichedheadline.less | 44 + .../angularjs/enrichedheadline/help.png | Bin 0 -> 350 bytes .../plugins/CoreHome/angularjs/piwikApp.js | 16 + .../CoreHome/angularjs/piwikAppConfig.js | 9 + .../siteselector/siteselector-controller.js | 49 + .../siteselector/siteselector-directive.js | 80 + .../siteselector/siteselector-model.js | 75 + .../angularjs/siteselector/siteselector.html | 61 + .../angularjs/siteselector/siteselector.less | 177 + .../plugins/CoreHome/images/bg_header.jpg | Bin 0 -> 9097 bytes .../plugins/CoreHome/images/bullet1.gif | Bin 0 -> 52 bytes .../plugins/CoreHome/images/bullet2.gif | Bin 0 -> 52 bytes .../plugins/CoreHome/images/favicon.ico | Bin 0 -> 17947 bytes .../plugins/CoreHome/images/googleplay.png | Bin 0 -> 16550 bytes .../plugins/CoreHome/images/more.png | Bin 0 -> 1045 bytes .../plugins/CoreHome/images/more_date.gif | Bin 0 -> 56 bytes .../plugins/CoreHome/images/more_period.gif | Bin 0 -> 53 bytes .../plugins/CoreHome/images/promo_splash.png | Bin 0 -> 12070 bytes .../plugins/CoreHome/images/reset_search.png | Bin 0 -> 1021 bytes .../plugins/CoreHome/images/search.png | Bin 0 -> 136 bytes .../plugins/CoreHome/javascripts/broadcast.js | 644 + .../plugins/CoreHome/javascripts/calendar.js | 545 + .../CoreHome/javascripts/color_manager.js | 225 + .../plugins/CoreHome/javascripts/corehome.js | 160 + .../plugins/CoreHome/javascripts/dataTable.js | 1767 + .../javascripts/dataTable_rowactions.js | 386 + .../plugins/CoreHome/javascripts/donate.js | 142 + .../plugins/CoreHome/javascripts/menu.js | 110 + .../plugins/CoreHome/javascripts/menu_init.js | 19 + .../CoreHome/javascripts/notification.js | 198 + .../javascripts/notification_parser.js | 31 + .../plugins/CoreHome/javascripts/popover.js | 254 + .../plugins/CoreHome/javascripts/promo.js | 12 + .../plugins/CoreHome/javascripts/require.js | 39 + .../plugins/CoreHome/javascripts/sparkline.js | 83 + .../CoreHome/javascripts/top_controls.js | 27 + .../plugins/CoreHome/javascripts/uiControl.js | 113 + .../plugins/CoreHome/stylesheets/_donate.less | 125 + .../plugins/CoreHome/stylesheets/cloud.less | 55 + .../CoreHome/stylesheets/color_manager.css | 3 + .../CoreHome/stylesheets/coreHome.less | 260 + .../CoreHome/stylesheets/dataTable.less | 10 + .../stylesheets/dataTable/_dataTable.less | 613 + .../dataTable/_limitSelection.less | 68 + .../dataTable/_reportDocumentation.less | 61 + .../stylesheets/dataTable/_rowActions.less | 36 + .../stylesheets/dataTable/_subDataTable.less | 46 + .../dataTable/_tableConfiguration.less | 82 + .../CoreHome/stylesheets/jqplotColors.less | 150 + .../stylesheets/jquery.ui.autocomplete.css | 70 + .../plugins/CoreHome/stylesheets/menu.less | 131 + .../CoreHome/stylesheets/notification.less | 93 + .../plugins/CoreHome/stylesheets/promo.less | 72 + .../CoreHome/stylesheets/sparklineColors.less | 30 + .../ReportRenderer/_htmlReportBody.twig | 80 + .../ReportRenderer/_htmlReportFooter.twig | 2 + .../ReportRenderer/_htmlReportHeader.twig | 36 + .../_reportsByDimension.twig | 29 + .../CoreHome/templates/_dataTable.twig | 40 + .../CoreHome/templates/_dataTableCell.twig | 49 + .../CoreHome/templates/_dataTableFooter.twig | 140 + .../CoreHome/templates/_dataTableHead.twig | 17 + .../CoreHome/templates/_dataTableJS.twig | 5 + .../plugins/CoreHome/templates/_donate.twig | 63 + .../CoreHome/templates/_headerMessage.twig | 47 + .../CoreHome/templates/_indexContent.twig | 20 + .../templates/_javaScriptDisabled.twig | 3 + .../plugins/CoreHome/templates/_logo.twig | 10 + .../plugins/CoreHome/templates/_menu.twig | 23 + .../CoreHome/templates/_notifications.twig | 9 + .../CoreHome/templates/_periodSelect.twig | 37 + .../CoreHome/templates/_singleReport.twig | 2 + .../CoreHome/templates/_siteSelectHeader.twig | 5 + .../plugins/CoreHome/templates/_topBar.twig | 5 + .../CoreHome/templates/_topBarHelloMenu.twig | 25 + .../CoreHome/templates/_topBarTopMenu.twig | 13 + .../CoreHome/templates/_topScreen.twig | 4 + .../CoreHome/templates/_uiControl.twig | 6 + .../templates/_warningInvalidHost.twig | 21 + .../CoreHome/templates/checkForUpdates.twig | 1 + .../templates/getDefaultIndexView.twig | 14 + .../CoreHome/templates/getDonateForm.twig | 1 + .../getMultiRowEvolutionPopover.twig | 40 + .../CoreHome/templates/getPromoVideo.twig | 37 + .../templates/getRowEvolutionPopover.twig | 39 + .../plugins/CorePluginsAdmin/Controller.php | 481 + .../CorePluginsAdmin/CorePluginsAdmin.php | 137 + .../plugins/CorePluginsAdmin/Marketplace.php | 197 + .../CorePluginsAdmin/MarketplaceApiClient.php | 202 + .../MarketplaceApiException.php | 17 + .../CorePluginsAdmin/PluginInstaller.php | 294 + .../PluginInstallerException.php | 17 + .../CorePluginsAdmin/UpdateCommunication.php | 210 + .../CorePluginsAdmin/images/plugins.png | Bin 0 -> 14076 bytes .../images/rating_important.png | Bin 0 -> 673 bytes .../CorePluginsAdmin/images/themes.png | Bin 0 -> 79517 bytes .../javascripts/pluginDetail.js | 88 + .../javascripts/pluginExtend.js | 31 + .../javascripts/pluginOverview.js | 37 + .../CorePluginsAdmin/javascripts/plugins.js | 93 + .../stylesheets/marketplace.less | 367 + .../stylesheets/plugins_admin.less | 54 + .../templates/browsePlugins.twig | 50 + .../templates/browsePluginsActions.twig | 12 + .../templates/browseThemes.twig | 45 + .../CorePluginsAdmin/templates/extend.twig | 70 + .../templates/installPlugin.twig | 41 + .../CorePluginsAdmin/templates/macros.twig | 256 + .../templates/pluginDetails.twig | 204 + .../templates/pluginMetadata.twig | 9 + .../templates/pluginOverview.twig | 30 + .../CorePluginsAdmin/templates/plugins.twig | 31 + .../CorePluginsAdmin/templates/safemode.twig | 114 + .../templates/themeOverview.twig | 30 + .../CorePluginsAdmin/templates/themes.twig | 33 + .../templates/updatePlugin.twig | 41 + .../templates/uploadPlugin.twig | 44 + .../plugins/CoreUpdater/Commands/Update.php | 62 + .../plugins/CoreUpdater/Controller.php | 432 + .../plugins/CoreUpdater/CoreUpdater.php | 160 + .../CoreUpdater/NoUpdatesFoundException.php | 13 + .../CoreUpdater/UpdateCommunication.php | 157 + .../CoreUpdater/javascripts/updateLayout.js | 8 + .../CoreUpdater/stylesheets/updateLayout.css | 38 + .../plugins/CoreUpdater/templates/layout.twig | 36 + .../templates/newVersionAvailable.twig | 42 + .../templates/oneClickResults.twig | 26 + .../templates/runUpdaterAndExit_done.twig | 78 + .../templates/runUpdaterAndExit_done_cli.twig | 55 + .../templates/runUpdaterAndExit_welcome.twig | 100 + .../runUpdaterAndExit_welcome_cli.twig | 48 + .../CoreVisualizations/CoreVisualizations.php | 71 + .../JqplotDataGenerator.php | 160 + .../JqplotDataGenerator/Chart.php | 119 + .../JqplotDataGenerator/Evolution.php | 188 + .../Visualizations/Cloud.php | 195 + .../Visualizations/Cloud/Config.php | 35 + .../Visualizations/Graph.php | 157 + .../Visualizations/Graph/Config.php | 122 + .../Visualizations/HtmlTable.php | 77 + .../Visualizations/HtmlTable/AllColumns.php | 66 + .../Visualizations/HtmlTable/Config.php | 119 + .../HtmlTable/RequestConfig.php | 54 + .../Visualizations/JqplotGraph.php | 48 + .../Visualizations/JqplotGraph/Bar.php | 43 + .../Visualizations/JqplotGraph/Config.php | 65 + .../Visualizations/JqplotGraph/Evolution.php | 200 + .../JqplotGraph/Evolution/Config.php | 41 + .../Visualizations/JqplotGraph/Pie.php | 58 + .../Visualizations/Sparkline.php | 128 + .../CoreVisualizations/javascripts/jqplot.js | 1100 + .../javascripts/jqplotBarGraph.js | 80 + .../javascripts/jqplotEvolutionGraph.js | 135 + .../javascripts/jqplotPieGraph.js | 81 + .../javascripts/seriesPicker.js | 366 + .../stylesheets/dataTableVisualizations.less | 28 + .../CoreVisualizations/stylesheets/jqplot.css | 259 + .../templates/_dataTableViz_htmlTable.twig | 50 + .../templates/_dataTableViz_jqplotGraph.twig | 3 + .../templates/_dataTableViz_tagCloud.twig | 18 + www/analytics/plugins/CustomVariables/API.php | 109 + .../plugins/CustomVariables/Archiver.php | 220 + .../plugins/CustomVariables/Commands/Info.php | 69 + .../Commands/SetNumberOfCustomVariables.php | 210 + .../plugins/CustomVariables/Controller.php | 36 + .../CustomVariables/CustomVariables.php | 215 + .../plugins/CustomVariables/Model.php | 186 + www/analytics/plugins/DBStats/.gitignore | 1 + www/analytics/plugins/DBStats/API.php | 283 + www/analytics/plugins/DBStats/Controller.php | 160 + www/analytics/plugins/DBStats/DBStats.php | 386 + .../DBStats/MySQLMetadataDataAccess.php | 70 + .../plugins/DBStats/MySQLMetadataProvider.php | 356 + www/analytics/plugins/DBStats/lang/am.json | 10 + www/analytics/plugins/DBStats/lang/ar.json | 17 + www/analytics/plugins/DBStats/lang/be.json | 13 + www/analytics/plugins/DBStats/lang/bg.json | 21 + www/analytics/plugins/DBStats/lang/bn.json | 5 + www/analytics/plugins/DBStats/lang/bs.json | 8 + www/analytics/plugins/DBStats/lang/ca.json | 21 + www/analytics/plugins/DBStats/lang/cs.json | 20 + www/analytics/plugins/DBStats/lang/da.json | 21 + www/analytics/plugins/DBStats/lang/de.json | 21 + www/analytics/plugins/DBStats/lang/el.json | 21 + www/analytics/plugins/DBStats/lang/en.json | 21 + www/analytics/plugins/DBStats/lang/es.json | 21 + www/analytics/plugins/DBStats/lang/et.json | 21 + www/analytics/plugins/DBStats/lang/eu.json | 12 + www/analytics/plugins/DBStats/lang/fa.json | 21 + www/analytics/plugins/DBStats/lang/fi.json | 21 + www/analytics/plugins/DBStats/lang/fr.json | 21 + www/analytics/plugins/DBStats/lang/he.json | 13 + www/analytics/plugins/DBStats/lang/hi.json | 21 + www/analytics/plugins/DBStats/lang/hu.json | 13 + www/analytics/plugins/DBStats/lang/id.json | 21 + www/analytics/plugins/DBStats/lang/is.json | 12 + www/analytics/plugins/DBStats/lang/it.json | 21 + www/analytics/plugins/DBStats/lang/ja.json | 21 + www/analytics/plugins/DBStats/lang/ka.json | 13 + www/analytics/plugins/DBStats/lang/ko.json | 21 + www/analytics/plugins/DBStats/lang/lt.json | 13 + www/analytics/plugins/DBStats/lang/lv.json | 13 + www/analytics/plugins/DBStats/lang/nb.json | 16 + www/analytics/plugins/DBStats/lang/nl.json | 21 + www/analytics/plugins/DBStats/lang/nn.json | 21 + www/analytics/plugins/DBStats/lang/pl.json | 13 + www/analytics/plugins/DBStats/lang/pt-br.json | 21 + www/analytics/plugins/DBStats/lang/pt.json | 13 + www/analytics/plugins/DBStats/lang/ro.json | 20 + www/analytics/plugins/DBStats/lang/ru.json | 21 + www/analytics/plugins/DBStats/lang/sk.json | 13 + www/analytics/plugins/DBStats/lang/sl.json | 14 + www/analytics/plugins/DBStats/lang/sq.json | 13 + www/analytics/plugins/DBStats/lang/sr.json | 21 + www/analytics/plugins/DBStats/lang/sv.json | 21 + www/analytics/plugins/DBStats/lang/ta.json | 15 + www/analytics/plugins/DBStats/lang/te.json | 6 + www/analytics/plugins/DBStats/lang/th.json | 14 + www/analytics/plugins/DBStats/lang/tr.json | 16 + www/analytics/plugins/DBStats/lang/uk.json | 13 + www/analytics/plugins/DBStats/lang/vi.json | 21 + www/analytics/plugins/DBStats/lang/zh-cn.json | 21 + www/analytics/plugins/DBStats/lang/zh-tw.json | 14 + .../DBStats/stylesheets/dbStatsTable.less | 16 + .../plugins/DBStats/templates/index.twig | 128 + www/analytics/plugins/Dashboard/API.php | 147 + .../plugins/Dashboard/Controller.php | 345 + www/analytics/plugins/Dashboard/Dashboard.php | 278 + .../Dashboard/DashboardManagerControl.php | 53 + .../DashboardSettingsControlBase.php | 30 + .../Dashboard/javascripts/dashboard.js | 306 + .../Dashboard/javascripts/dashboardObject.js | 577 + .../Dashboard/javascripts/dashboardWidget.js | 331 + .../Dashboard/javascripts/widgetMenu.js | 421 + .../Dashboard/stylesheets/dashboard.less | 540 + .../Dashboard/stylesheets/standalone.css | 72 + .../templates/_dashboardSettings.twig | 22 + .../plugins/Dashboard/templates/_header.twig | 16 + .../templates/_widgetFactoryTemplate.twig | 22 + .../Dashboard/templates/embeddedIndex.twig | 98 + .../plugins/Dashboard/templates/index.twig | 20 + .../plugins/DevicesDetection/API.php | 153 + .../plugins/DevicesDetection/Archiver.php | 67 + .../plugins/DevicesDetection/Controller.php | 172 + .../DevicesDetection/DevicesDetection.php | 380 + .../plugins/DevicesDetection/Updates/1.14.php | 37 + .../plugins/DevicesDetection/functions.php | 220 + .../DevicesDetection/images/brand/Acer.ico | Bin 0 -> 673 bytes .../DevicesDetection/images/brand/Alcatel.ico | Bin 0 -> 577 bytes .../DevicesDetection/images/brand/Apple.ico | Bin 0 -> 1179 bytes .../DevicesDetection/images/brand/Archos.ico | Bin 0 -> 205 bytes .../DevicesDetection/images/brand/Asus.ico | Bin 0 -> 1016 bytes .../images/brand/Audiovox.ico | Bin 0 -> 807 bytes .../DevicesDetection/images/brand/Avvio.ico | Bin 0 -> 964 bytes .../images/brand/BangOlufsen.ico | Bin 0 -> 3692 bytes .../DevicesDetection/images/brand/Becker.ico | Bin 0 -> 519 bytes .../DevicesDetection/images/brand/Beetel.ico | Bin 0 -> 1645 bytes .../DevicesDetection/images/brand/BenQ.ico | Bin 0 -> 846 bytes .../DevicesDetection/images/brand/Cat.ico | Bin 0 -> 809 bytes .../DevicesDetection/images/brand/CnM.ico | Bin 0 -> 421 bytes .../DevicesDetection/images/brand/Compal.ico | Bin 0 -> 432 bytes .../DevicesDetection/images/brand/CreNova.ico | Bin 0 -> 3142 bytes .../DevicesDetection/images/brand/Cricket.ico | Bin 0 -> 1483 bytes .../DevicesDetection/images/brand/DMM.ico | Bin 0 -> 3623 bytes .../DevicesDetection/images/brand/Dell.ico | Bin 0 -> 886 bytes .../DevicesDetection/images/brand/Denver.ico | Bin 0 -> 552 bytes .../DevicesDetection/images/brand/DoCoMo.ico | Bin 0 -> 636 bytes .../images/brand/Ericsson.ico | Bin 0 -> 684 bytes .../DevicesDetection/images/brand/Fly.ico | Bin 0 -> 572 bytes .../DevicesDetection/images/brand/Gemini.ico | Bin 0 -> 323 bytes .../DevicesDetection/images/brand/Google.ico | Bin 0 -> 863 bytes .../images/brand/Gradiente.ico | Bin 0 -> 1012 bytes .../DevicesDetection/images/brand/Grundig.ico | Bin 0 -> 3029 bytes .../DevicesDetection/images/brand/HP.ico | Bin 0 -> 936 bytes .../DevicesDetection/images/brand/HTC.ico | Bin 0 -> 1161 bytes .../DevicesDetection/images/brand/Haier.ico | Bin 0 -> 957 bytes .../DevicesDetection/images/brand/Huawei.ico | Bin 0 -> 1022 bytes .../DevicesDetection/images/brand/Humax.ico | Bin 0 -> 3010 bytes .../DevicesDetection/images/brand/INQ.ico | Bin 0 -> 1059 bytes .../DevicesDetection/images/brand/Ikea.ico | Bin 0 -> 3291 bytes .../DevicesDetection/images/brand/Intek.ico | Bin 0 -> 3121 bytes .../DevicesDetection/images/brand/Inverto.ico | Bin 0 -> 3292 bytes .../DevicesDetection/images/brand/Jolla.ico | Bin 0 -> 494 bytes .../DevicesDetection/images/brand/KDDI.ico | Bin 0 -> 473 bytes .../DevicesDetection/images/brand/Karbonn.ico | Bin 0 -> 1042 bytes .../DevicesDetection/images/brand/Kindle.ico | Bin 0 -> 720 bytes .../DevicesDetection/images/brand/Kyocera.ico | Bin 0 -> 639 bytes .../DevicesDetection/images/brand/LG.ico | Bin 0 -> 1510 bytes .../DevicesDetection/images/brand/LGUPlus.ico | Bin 0 -> 1081 bytes .../DevicesDetection/images/brand/Lanix.ico | Bin 0 -> 437 bytes .../DevicesDetection/images/brand/Lenovo.ico | Bin 0 -> 237 bytes .../DevicesDetection/images/brand/Loewe.ico | Bin 0 -> 2938 bytes .../images/brand/Manta_Multimedia.ico | Bin 0 -> 800 bytes .../images/brand/MediaTek.ico | Bin 0 -> 2976 bytes .../DevicesDetection/images/brand/Medion.ico | Bin 0 -> 3161 bytes .../DevicesDetection/images/brand/Metz.ico | Bin 0 -> 3244 bytes .../images/brand/MicroMax.ico | Bin 0 -> 1531 bytes .../images/brand/Microsoft.ico | Bin 0 -> 285 bytes .../DevicesDetection/images/brand/Mio.ico | Bin 0 -> 753 bytes .../images/brand/Mitsubishi.ico | Bin 0 -> 342 bytes .../images/brand/Motorola.ico | Bin 0 -> 465 bytes .../DevicesDetection/images/brand/MyPhone.ico | Bin 0 -> 933 bytes .../DevicesDetection/images/brand/NEC.ico | Bin 0 -> 450 bytes .../DevicesDetection/images/brand/NGM.ico | Bin 0 -> 1298 bytes .../DevicesDetection/images/brand/Nexian.ico | Bin 0 -> 2041 bytes .../images/brand/Nintendo.ico | Bin 0 -> 740 bytes .../DevicesDetection/images/brand/Nokia.ico | Bin 0 -> 1283 bytes .../DevicesDetection/images/brand/O2.ico | Bin 0 -> 768 bytes .../DevicesDetection/images/brand/OPPO.ico | Bin 0 -> 870 bytes .../DevicesDetection/images/brand/Onda.ico | Bin 0 -> 732 bytes .../DevicesDetection/images/brand/Orange.ico | Bin 0 -> 461 bytes .../DevicesDetection/images/brand/PEAQ.ico | Bin 0 -> 3060 bytes .../images/brand/Panasonic.ico | Bin 0 -> 3649 bytes .../DevicesDetection/images/brand/Pantech.ico | Bin 0 -> 605 bytes .../DevicesDetection/images/brand/Philips.ico | Bin 0 -> 3749 bytes .../images/brand/Polaroid.ico | Bin 0 -> 737 bytes .../DevicesDetection/images/brand/PolyPad.ico | Bin 0 -> 1381 bytes .../DevicesDetection/images/brand/RIM.ico | Bin 0 -> 705 bytes .../DevicesDetection/images/brand/Sagem.ico | Bin 0 -> 694 bytes .../DevicesDetection/images/brand/Samsung.ico | Bin 0 -> 3095 bytes .../DevicesDetection/images/brand/Sanyo.ico | Bin 0 -> 639 bytes .../DevicesDetection/images/brand/Sega.ico | Bin 0 -> 706 bytes .../images/brand/Selevision.ico | Bin 0 -> 3497 bytes .../DevicesDetection/images/brand/Sharp.ico | Bin 0 -> 403 bytes .../DevicesDetection/images/brand/Siemens.ico | Bin 0 -> 395 bytes .../DevicesDetection/images/brand/Smart.ico | Bin 0 -> 3419 bytes .../images/brand/Softbank.ico | Bin 0 -> 381 bytes .../DevicesDetection/images/brand/Sony.ico | Bin 0 -> 3525 bytes .../images/brand/Sony_Ericsson.ico | Bin 0 -> 628 bytes .../DevicesDetection/images/brand/Spice.ico | Bin 0 -> 556 bytes .../images/brand/T-Mobile.ico | Bin 0 -> 499 bytes .../DevicesDetection/images/brand/TCL.ico | Bin 0 -> 2927 bytes .../images/brand/TechniSat.ico | Bin 0 -> 3347 bytes .../images/brand/TechnoTrend.ico | Bin 0 -> 3500 bytes .../images/brand/Telefunken.ico | Bin 0 -> 3651 bytes .../DevicesDetection/images/brand/Telit.ico | Bin 0 -> 527 bytes .../DevicesDetection/images/brand/Thomson.ico | Bin 0 -> 2974 bytes .../DevicesDetection/images/brand/TiPhone.ico | Bin 0 -> 1179 bytes .../DevicesDetection/images/brand/Toshiba.ico | Bin 0 -> 248 bytes .../DevicesDetection/images/brand/Vertu.ico | Bin 0 -> 387 bytes .../DevicesDetection/images/brand/Vestel.ico | Bin 0 -> 3096 bytes .../images/brand/Videocon.ico | Bin 0 -> 617 bytes .../images/brand/Videoweb.ico | Bin 0 -> 3129 bytes .../images/brand/ViewSonic.ico | Bin 0 -> 605 bytes .../DevicesDetection/images/brand/Voxtel.ico | Bin 0 -> 222 bytes .../DevicesDetection/images/brand/Xiaomi.ico | Bin 0 -> 492 bytes .../DevicesDetection/images/brand/Yuandao.ico | Bin 0 -> 639 bytes .../DevicesDetection/images/brand/ZTE.ico | Bin 0 -> 555 bytes .../DevicesDetection/images/brand/Zonda.ico | Bin 0 -> 371 bytes .../DevicesDetection/images/brand/eTouch.ico | Bin 0 -> 889 bytes .../images/brand/i-mobile.ico | Bin 0 -> 615 bytes .../DevicesDetection/images/brand/unknown.ico | Bin 0 -> 1077 bytes .../images/screens/camera.png | Bin 0 -> 644 bytes .../images/screens/carbrowser.png | Bin 0 -> 3218 bytes .../images/screens/computer.png | Bin 0 -> 550 bytes .../images/screens/console.gif | Bin 0 -> 617 bytes .../DevicesDetection/images/screens/dual.gif | Bin 0 -> 1082 bytes .../images/screens/mobile.gif | Bin 0 -> 324 bytes .../images/screens/normal.gif | Bin 0 -> 1088 bytes .../images/screens/smartphone.png | Bin 0 -> 547 bytes .../images/screens/tablet.png | Bin 0 -> 602 bytes .../DevicesDetection/images/screens/tv.png | Bin 0 -> 644 bytes .../images/screens/unknown.gif | Bin 0 -> 80 bytes .../DevicesDetection/images/screens/wide.gif | Bin 0 -> 1025 bytes .../plugins/DevicesDetection/lang/bg.json | 27 + .../plugins/DevicesDetection/lang/cs.json | 11 + .../plugins/DevicesDetection/lang/da.json | 29 + .../plugins/DevicesDetection/lang/de.json | 29 + .../plugins/DevicesDetection/lang/el.json | 29 + .../plugins/DevicesDetection/lang/en.json | 29 + .../plugins/DevicesDetection/lang/es.json | 29 + .../plugins/DevicesDetection/lang/et.json | 28 + .../plugins/DevicesDetection/lang/fa.json | 28 + .../plugins/DevicesDetection/lang/fi.json | 29 + .../plugins/DevicesDetection/lang/fr.json | 29 + .../plugins/DevicesDetection/lang/it.json | 29 + .../plugins/DevicesDetection/lang/ja.json | 29 + .../plugins/DevicesDetection/lang/nb.json | 13 + .../plugins/DevicesDetection/lang/nl.json | 27 + .../plugins/DevicesDetection/lang/pt-br.json | 24 + .../plugins/DevicesDetection/lang/ro.json | 25 + .../plugins/DevicesDetection/lang/ru.json | 18 + .../plugins/DevicesDetection/lang/sr.json | 16 + .../plugins/DevicesDetection/lang/sv.json | 29 + .../DevicesDetection/templates/detection.twig | 97 + .../DevicesDetection/templates/index.twig | 15 + .../DevicesDetection/templates/list.twig | 7 + www/analytics/plugins/Events/API.php | 204 + www/analytics/plugins/Events/Archiver.php | 260 + www/analytics/plugins/Events/Controller.php | 115 + www/analytics/plugins/Events/Events.php | 306 + www/analytics/plugins/Events/lang/bg.json | 10 + www/analytics/plugins/Events/lang/da.json | 10 + www/analytics/plugins/Events/lang/de.json | 21 + www/analytics/plugins/Events/lang/el.json | 10 + www/analytics/plugins/Events/lang/en.json | 31 + www/analytics/plugins/Events/lang/es.json | 21 + www/analytics/plugins/Events/lang/et.json | 10 + www/analytics/plugins/Events/lang/fa.json | 10 + www/analytics/plugins/Events/lang/fi.json | 10 + www/analytics/plugins/Events/lang/fr.json | 10 + www/analytics/plugins/Events/lang/it.json | 21 + www/analytics/plugins/Events/lang/ja.json | 10 + www/analytics/plugins/Events/lang/nl.json | 10 + www/analytics/plugins/Events/lang/pt-br.json | 9 + www/analytics/plugins/Events/lang/ro.json | 21 + www/analytics/plugins/Events/lang/sr.json | 13 + www/analytics/plugins/Events/lang/sv.json | 10 + www/analytics/plugins/Events/lang/ta.json | 9 + www/analytics/plugins/Events/lang/vi.json | 9 + www/analytics/plugins/Events/lang/zh-cn.json | 9 + www/analytics/plugins/Events/plugin.json | 6 + .../plugins/Events/templates/index.twig | 2 + www/analytics/plugins/ExampleAPI/API.php | 159 + .../plugins/ExampleAPI/ExampleAPI.php | 18 + www/analytics/plugins/ExampleAPI/plugin.json | 15 + .../ExampleCommand/Commands/HelloWorld.php | 40 + .../plugins/ExampleCommand/plugin.json | 6 + .../plugins/ExamplePlugin/.gitignore | 1 + .../plugins/ExamplePlugin/.travis.yml | 42 + www/analytics/plugins/ExamplePlugin/API.php | 36 + .../plugins/ExamplePlugin/Controller.php | 27 + .../plugins/ExamplePlugin/ExamplePlugin.php | 29 + www/analytics/plugins/ExamplePlugin/README.md | 18 + .../ExamplePlugin/javascripts/plugin.js | 20 + .../plugins/ExamplePlugin/plugin.json | 13 + .../ExamplePlugin/screenshots/.gitkeep | 0 .../ExamplePlugin/templates/index.twig | 4 + .../plugins/ExampleRssWidget/Controller.php | 53 + .../ExampleRssWidget/ExampleRssWidget.php | 39 + .../plugins/ExampleRssWidget/RssRenderer.php | 84 + .../plugins/ExampleRssWidget/plugin.json | 15 + .../ExampleRssWidget/stylesheets/rss.less | 33 + .../ExampleSettingsPlugin/Settings.php | 157 + .../plugins/ExampleSettingsPlugin/plugin.json | 6 + www/analytics/plugins/ExampleTheme/README.md | 21 + .../plugins/ExampleTheme/plugin.json | 7 + .../ExampleTheme/stylesheets/theme.less | 0 www/analytics/plugins/ExampleUI/API.php | 102 + .../plugins/ExampleUI/Controller.php | 196 + www/analytics/plugins/ExampleUI/ExampleUI.php | 55 + .../ExampleUI/images/icons-planet/LICENSE | 3 + .../ExampleUI/images/icons-planet/earth.png | Bin 0 -> 11823 bytes .../ExampleUI/images/icons-planet/jupiter.png | Bin 0 -> 10686 bytes .../ExampleUI/images/icons-planet/mars.png | Bin 0 -> 9837 bytes .../ExampleUI/images/icons-planet/mercury.png | Bin 0 -> 10322 bytes .../ExampleUI/images/icons-planet/neptune.png | Bin 0 -> 9770 bytes .../ExampleUI/images/icons-planet/saturn.png | Bin 0 -> 10561 bytes .../ExampleUI/images/icons-planet/uranus.png | Bin 0 -> 10358 bytes .../ExampleUI/images/icons-planet/venus.png | Bin 0 -> 10557 bytes www/analytics/plugins/ExampleUI/plugin.json | 15 + .../ExampleUI/templates/evolutiongraph.twig | 3 + .../ExampleUI/templates/notifications.twig | 9 + .../ExampleUI/templates/sparklines.twig | 9 + .../ExampleVisualization.php | 29 + .../plugins/ExampleVisualization/README.md | 18 + .../ExampleVisualization/SimpleTable.php | 71 + .../ExampleVisualization/images/table.png | Bin 0 -> 151 bytes .../plugins/ExampleVisualization/plugin.json | 16 + .../templates/simpleTable.twig | 26 + www/analytics/plugins/Feedback/API.php | 108 + www/analytics/plugins/Feedback/Controller.php | 34 + www/analytics/plugins/Feedback/Feedback.php | 70 + .../angularjs/ratefeature/icon_license | 7 + .../ratefeature/ratefeature-controller.js | 23 + .../ratefeature/ratefeature-directive.js | 22 + .../ratefeature/ratefeature-model.js | 22 + .../angularjs/ratefeature/ratefeature.html | 38 + .../angularjs/ratefeature/ratefeature.less | 30 + .../angularjs/ratefeature/thumbs-down.png | Bin 0 -> 2188 bytes .../angularjs/ratefeature/thumbs-up.png | Bin 0 -> 2202 bytes .../plugins/Feedback/images/facebook.png | Bin 0 -> 302 bytes .../plugins/Feedback/images/github.png | Bin 0 -> 361 bytes .../plugins/Feedback/images/linkedin.png | Bin 0 -> 336 bytes .../plugins/Feedback/images/newsletter.png | Bin 0 -> 444 bytes .../plugins/Feedback/images/twitter.png | Bin 0 -> 376 bytes .../Feedback/stylesheets/feedback.less | 115 + .../plugins/Feedback/templates/index.twig | 106 + www/analytics/plugins/Goals/API.php | 567 + www/analytics/plugins/Goals/Archiver.php | 418 + www/analytics/plugins/Goals/Controller.php | 494 + www/analytics/plugins/Goals/Goals.php | 680 + .../plugins/Goals/Visualizations/Goals.php | 258 + .../plugins/Goals/javascripts/goalsForm.js | 173 + .../plugins/Goals/stylesheets/goals.css | 27 + .../plugins/Goals/templates/_addEditGoal.twig | 81 + .../plugins/Goals/templates/_formAddGoal.twig | 97 + .../Goals/templates/_listGoalEdit.twig | 64 + .../Goals/templates/_listTopDimension.twig | 16 + .../templates/_titleAndEvolutionGraph.twig | 81 + .../plugins/Goals/templates/addNewGoal.twig | 11 + .../Goals/templates/getGoalReportView.twig | 66 + .../Goals/templates/getOverviewView.twig | 50 + www/analytics/plugins/ImageGraph/API.php | 548 + .../plugins/ImageGraph/Controller.php | 76 + .../plugins/ImageGraph/ImageGraph.php | 161 + .../plugins/ImageGraph/StaticGraph.php | 355 + .../ImageGraph/StaticGraph/Evolution.php | 30 + .../ImageGraph/StaticGraph/Exception.php | 78 + .../ImageGraph/StaticGraph/GridGraph.php | 485 + .../ImageGraph/StaticGraph/HorizontalBar.php | 186 + .../plugins/ImageGraph/StaticGraph/Pie.php | 27 + .../plugins/ImageGraph/StaticGraph/Pie3D.php | 27 + .../ImageGraph/StaticGraph/PieGraph.php | 128 + .../ImageGraph/StaticGraph/VerticalBar.php | 35 + .../plugins/ImageGraph/fonts/tahoma.ttf | Bin 0 -> 94740 bytes .../plugins/ImageGraph/templates/index.twig | 6 + .../ImageGraph/templates/testAllSizes.twig | 55 + www/analytics/plugins/Insights/API.php | 350 + www/analytics/plugins/Insights/Controller.php | 84 + .../DataTable/Filter/ExcludeLowValue.php | 56 + .../Insights/DataTable/Filter/Insight.php | 119 + .../Insights/DataTable/Filter/Limit.php | 54 + .../Insights/DataTable/Filter/MinGrowth.php | 51 + .../Insights/DataTable/Filter/OrderBy.php | 92 + .../plugins/Insights/InsightReport.php | 288 + www/analytics/plugins/Insights/Insights.php | 51 + www/analytics/plugins/Insights/Model.php | 120 + .../Insights/Visualizations/Insight.php | 121 + .../Visualizations/Insight/RequestConfig.php | 45 + .../plugins/Insights/images/idea.png | Bin 0 -> 364 bytes .../Insights/javascripts/insightsDataTable.js | 118 + www/analytics/plugins/Insights/plugin.json | 15 + .../stylesheets/insightVisualization.less | 49 + .../templates/cannotDisplayReport.twig | 3 + .../Insights/templates/insightControls.twig | 65 + .../templates/insightVisualization.twig | 34 + .../templates/insightsOverviewWidget.twig | 5 + .../moversAndShakersOverviewWidget.twig | 6 + .../Insights/templates/overviewWidget.twig | 38 + .../Insights/templates/table_header.twig | 13 + .../plugins/Insights/templates/table_row.twig | 29 + .../plugins/Installation/Controller.php | 1122 + .../Installation/FormDatabaseSetup.php | 315 + .../Installation/FormFirstWebsiteSetup.php | 89 + .../plugins/Installation/FormGeneralSetup.php | 105 + .../plugins/Installation/Installation.php | 122 + .../Installation/ServerFilesGenerator.php | 132 + www/analytics/plugins/Installation/View.php | 51 + .../Installation/javascripts/installation.js | 8 + .../Installation/stylesheets/installation.css | 250 + .../stylesheets/systemCheckPage.less | 45 + .../Installation/templates/_allSteps.twig | 11 + .../templates/_integrityDetails.twig | 40 + .../templates/_systemCheckLegend.twig | 15 + .../templates/_systemCheckSection.twig | 329 + .../Installation/templates/databaseCheck.twig | 36 + .../Installation/templates/databaseSetup.twig | 18 + .../Installation/templates/finished.twig | 24 + .../templates/firstWebsiteSetup.twig | 27 + .../Installation/templates/generalSetup.twig | 18 + .../Installation/templates/layout.twig | 62 + .../Installation/templates/reuseTables.twig | 81 + .../Installation/templates/systemCheck.twig | 21 + .../templates/systemCheckPage.twig | 20 + .../templates/tablesCreation.twig | 61 + .../Installation/templates/trackingCode.twig | 17 + .../Installation/templates/welcome.twig | 45 + .../plugins/LanguagesManager/API.php | 270 + .../LanguagesManager/Commands/CreatePull.php | 220 + .../Commands/FetchFromOTrance.php | 172 + .../Commands/LanguageCodes.php | 41 + .../Commands/LanguageNames.php | 41 + .../Commands/PluginsWithTranslations.php | 39 + .../Commands/SetTranslations.php | 105 + .../LanguagesManager/Commands/Update.php | 162 + .../plugins/LanguagesManager/Controller.php | 37 + .../LanguagesManager/LanguagesManager.php | 213 + .../javascripts/languageSelector.js | 72 + .../templates/getLanguagesSelector.twig | 17 + www/analytics/plugins/LeftMenu/plugin.json | 5 + .../plugins/LeftMenu/stylesheets/theme.less | 139 + www/analytics/plugins/Live/API.php | 699 + www/analytics/plugins/Live/Controller.php | 253 + www/analytics/plugins/Live/Live.php | 77 + www/analytics/plugins/Live/Visitor.php | 992 + www/analytics/plugins/Live/VisitorLog.php | 107 + .../plugins/Live/images/avatar_frame.png | Bin 0 -> 5375 bytes www/analytics/plugins/Live/images/file0.png | Bin 0 -> 593 bytes www/analytics/plugins/Live/images/file1.png | Bin 0 -> 637 bytes www/analytics/plugins/Live/images/file2.png | Bin 0 -> 642 bytes www/analytics/plugins/Live/images/file3.png | Bin 0 -> 674 bytes www/analytics/plugins/Live/images/file4.png | Bin 0 -> 611 bytes www/analytics/plugins/Live/images/file5.png | Bin 0 -> 668 bytes www/analytics/plugins/Live/images/file6.png | Bin 0 -> 659 bytes www/analytics/plugins/Live/images/file7.png | Bin 0 -> 681 bytes www/analytics/plugins/Live/images/file8.png | Bin 0 -> 642 bytes www/analytics/plugins/Live/images/file9.png | Bin 0 -> 569 bytes .../plugins/Live/images/paperclip.png | Bin 0 -> 10924 bytes www/analytics/plugins/Live/images/pause.gif | Bin 0 -> 669 bytes .../plugins/Live/images/pause_disabled.gif | Bin 0 -> 619 bytes www/analytics/plugins/Live/images/play.gif | Bin 0 -> 666 bytes .../plugins/Live/images/play_disabled.gif | Bin 0 -> 407 bytes .../plugins/Live/images/returningVisitor.gif | Bin 0 -> 995 bytes .../plugins/Live/images/unknown_avatar.jpg | Bin 0 -> 13984 bytes .../Live/images/visitorProfileLaunch.png | Bin 0 -> 661 bytes .../images/visitor_profile_background.jpg | Bin 0 -> 11060 bytes .../Live/images/visitor_profile_close.png | Bin 0 -> 4734 bytes .../Live/images/visitor_profile_gradient.png | Bin 0 -> 2840 bytes .../plugins/Live/javascripts/live.js | 288 + .../plugins/Live/javascripts/visitorLog.js | 89 + .../Live/javascripts/visitorProfile.js | 287 + .../plugins/Live/stylesheets/live.less | 220 + .../Live/stylesheets/visitor_profile.less | 547 + .../plugins/Live/templates/_actionsList.twig | 121 + .../templates/_dataTableViz_visitorLog.twig | 202 + .../Live/templates/_totalVisitors.twig | 29 + .../Live/templates/ajaxTotalVisitors.twig | 1 + .../Live/templates/getLastVisitsStart.twig | 144 + .../templates/getSimpleLastVisitCount.twig | 21 + .../Live/templates/getSingleVisitSummary.twig | 62 + .../plugins/Live/templates/getVisitList.twig | 17 + .../templates/getVisitorProfilePopup.twig | 149 + .../plugins/Live/templates/index.twig | 49 + .../Live/templates/indexVisitorLog.twig | 3 + www/analytics/plugins/Login/Auth.php | 137 + www/analytics/plugins/Login/Controller.php | 462 + www/analytics/plugins/Login/FormLogin.php | 44 + .../plugins/Login/FormResetPassword.php | 40 + www/analytics/plugins/Login/Login.php | 154 + .../plugins/Login/javascripts/login.js | 100 + .../plugins/Login/stylesheets/login.css | 197 + .../plugins/Login/templates/login.twig | 160 + .../Login/templates/resetPassword.twig | 12 + www/analytics/plugins/MobileMessaging/API.php | 432 + .../plugins/MobileMessaging/APIException.php | 19 + .../plugins/MobileMessaging/Controller.php | 78 + .../MobileMessaging/CountryCallingCodes.php | 270 + .../plugins/MobileMessaging/GSMCharset.php | 158 + .../MobileMessaging/MobileMessaging.php | 257 + .../ReportRendererException.php | 71 + .../MobileMessaging/ReportRenderer/Sms.php | 131 + .../plugins/MobileMessaging/SMSProvider.php | 174 + .../MobileMessaging/SMSProvider/Clockwork.php | 108 + .../SMSProvider/StubbedProvider.php | 34 + .../MobileMessaging/images/Clockwork.png | Bin 0 -> 3585 bytes .../plugins/MobileMessaging/images/phone.png | Bin 0 -> 568 bytes .../javascripts/MobileMessagingSettings.js | 266 + .../stylesheets/MobileMessagingSettings.less | 13 + .../MobileMessaging/templates/SMSReport.twig | 48 + .../MobileMessaging/templates/index.twig | 200 + .../reportParametersScheduledReports.twig | 61 + www/analytics/plugins/Morpheus/images/add.png | Bin 0 -> 1261 bytes .../plugins/Morpheus/images/annotations.png | Bin 0 -> 1069 bytes .../Morpheus/images/annotations_starred.png | Bin 0 -> 248 bytes .../plugins/Morpheus/images/bullet.png | Bin 0 -> 963 bytes .../plugins/Morpheus/images/calendar.gif | Bin 0 -> 1260 bytes .../plugins/Morpheus/images/chart_bar.png | Bin 0 -> 968 bytes .../Morpheus/images/chart_line_edit.png | Bin 0 -> 421 bytes .../plugins/Morpheus/images/chart_pie.png | Bin 0 -> 1223 bytes .../plugins/Morpheus/images/cities.png | Bin 0 -> 1038 bytes .../plugins/Morpheus/images/close.png | Bin 0 -> 1122 bytes .../Morpheus/images/configure-highlight.png | Bin 0 -> 356 bytes .../plugins/Morpheus/images/configure.png | Bin 0 -> 1210 bytes .../Morpheus/images/datepicker_arr_l.png | Bin 0 -> 963 bytes .../Morpheus/images/datepicker_arr_r.png | Bin 0 -> 968 bytes .../plugins/Morpheus/images/export.png | Bin 0 -> 1182 bytes .../plugins/Morpheus/images/forms-sprite.png | Bin 0 -> 1758 bytes .../plugins/Morpheus/images/goal.png | Bin 0 -> 1042 bytes .../plugins/Morpheus/images/help.png | Bin 0 -> 1297 bytes .../plugins/Morpheus/images/ico_delete.png | Bin 0 -> 1306 bytes .../plugins/Morpheus/images/ico_edit.png | Bin 0 -> 1202 bytes .../plugins/Morpheus/images/icon-calendar.gif | Bin 0 -> 1260 bytes .../plugins/Morpheus/images/image.png | Bin 0 -> 1139 bytes .../plugins/Morpheus/images/info.png | Bin 0 -> 1278 bytes .../plugins/Morpheus/images/link.gif | Bin 0 -> 1147 bytes .../plugins/Morpheus/images/loading-blue.gif | Bin 0 -> 723 bytes .../plugins/Morpheus/images/logo-header.png | Bin 0 -> 2215 bytes .../plugins/Morpheus/images/logo.png | Bin 0 -> 3902 bytes .../plugins/Morpheus/images/logo.svg | 25 + .../plugins/Morpheus/images/maximise.png | Bin 0 -> 1053 bytes .../plugins/Morpheus/images/minimise.png | Bin 0 -> 968 bytes .../plugins/Morpheus/images/pause.gif | Bin 0 -> 1142 bytes .../Morpheus/images/pause_disabled.gif | Bin 0 -> 1141 bytes .../plugins/Morpheus/images/play.gif | Bin 0 -> 1184 bytes .../plugins/Morpheus/images/play_disabled.gif | Bin 0 -> 1155 bytes .../plugins/Morpheus/images/refresh.png | Bin 0 -> 1312 bytes .../plugins/Morpheus/images/regions.png | Bin 0 -> 1265 bytes .../plugins/Morpheus/images/search_ico.png | Bin 0 -> 1227 bytes .../plugins/Morpheus/images/segment-users.png | Bin 0 -> 1270 bytes .../Morpheus/images/sort_subtable_desc.png | Bin 0 -> 980 bytes .../plugins/Morpheus/images/sortasc.png | Bin 0 -> 964 bytes .../plugins/Morpheus/images/sortasc_dark.png | Bin 0 -> 92 bytes .../plugins/Morpheus/images/sortdesc.png | Bin 0 -> 980 bytes .../plugins/Morpheus/images/sortdesc_dark.png | Bin 0 -> 98 bytes .../plugins/Morpheus/images/table.png | Bin 0 -> 1056 bytes .../plugins/Morpheus/images/table_more.png | Bin 0 -> 1157 bytes .../plugins/Morpheus/images/tagcloud.png | Bin 0 -> 1098 bytes .../Morpheus/images/zoom-out-disabled.png | Bin 0 -> 1297 bytes .../plugins/Morpheus/images/zoom-out.png | Bin 0 -> 1300 bytes .../Morpheus/javascripts/jquery.icheck.min.js | 8 + .../plugins/Morpheus/javascripts/morpheus.js | 25 + www/analytics/plugins/Morpheus/plugin.json | 7 + .../plugins/Morpheus/stylesheets/admin.less | 118 + .../plugins/Morpheus/stylesheets/charts.less | 158 + .../plugins/Morpheus/stylesheets/colors.less | 58 + .../Morpheus/stylesheets/components.less | 362 + .../plugins/Morpheus/stylesheets/forms.less | 300 + .../plugins/Morpheus/stylesheets/map.less | 71 + .../plugins/Morpheus/stylesheets/mixins.less | 80 + .../plugins/Morpheus/stylesheets/popups.less | 46 + .../plugins/Morpheus/stylesheets/theme.less | 910 + .../plugins/Morpheus/stylesheets/tooltip.less | 30 + .../Morpheus/stylesheets/typography.less | 124 + www/analytics/plugins/MultiSites/API.php | 496 + .../plugins/MultiSites/Controller.php | 87 + .../plugins/MultiSites/MultiSites.php | 116 + .../dashboard/dashboard-controller.js | 34 + .../dashboard/dashboard-directive.js | 40 + .../angularjs/dashboard/dashboard-filter.js | 63 + .../angularjs/dashboard/dashboard-model.js | 273 + .../angularjs/dashboard/dashboard.html | 128 + .../angularjs/dashboard/dashboard.less | 185 + .../angularjs/site/site-directive.js | 55 + .../MultiSites/angularjs/site/site.html | 39 + .../plugins/MultiSites/images/arrow_asc.gif | Bin 0 -> 120 bytes .../plugins/MultiSites/images/arrow_desc.gif | Bin 0 -> 130 bytes .../plugins/MultiSites/images/arrow_down.png | Bin 0 -> 234 bytes .../MultiSites/images/arrow_down_green.png | Bin 0 -> 221 bytes .../plugins/MultiSites/images/arrow_up.png | Bin 0 -> 222 bytes .../MultiSites/images/arrow_up_red.png | Bin 0 -> 248 bytes .../plugins/MultiSites/images/door_in.png | Bin 0 -> 693 bytes .../plugins/MultiSites/images/link.gif | Bin 0 -> 75 bytes .../MultiSites/images/loading-blue.gif | Bin 0 -> 1849 bytes .../plugins/MultiSites/images/stop.png | Bin 0 -> 307 bytes .../MultiSites/templates/getSitesInfo.twig | 23 + www/analytics/plugins/Overlay/API.php | 136 + www/analytics/plugins/Overlay/Controller.php | 236 + www/analytics/plugins/Overlay/Overlay.php | 49 + .../plugins/Overlay/client/client.css | 138 + .../plugins/Overlay/client/client.js | 261 + .../plugins/Overlay/client/close.png | Bin 0 -> 655 bytes .../plugins/Overlay/client/followingpages.js | 544 + .../plugins/Overlay/client/linktags.eps | 5251 +++ .../plugins/Overlay/client/linktags.png | Bin 0 -> 6489 bytes .../plugins/Overlay/client/linktags.psd | Bin 0 -> 38518 bytes .../Overlay/client/linktags_lessshadow.png | Bin 0 -> 6353 bytes .../Overlay/client/linktags_noshadow.png | Bin 0 -> 5355 bytes .../plugins/Overlay/client/loading.gif | Bin 0 -> 723 bytes .../plugins/Overlay/client/translations.js | 30 + .../plugins/Overlay/client/urlnormalizer.js | 198 + www/analytics/plugins/Overlay/images/info.png | Bin 0 -> 778 bytes .../plugins/Overlay/images/overlay_icon.png | Bin 0 -> 359 bytes .../Overlay/images/overlay_icon_hover.png | Bin 0 -> 360 bytes .../Overlay/javascripts/Overlay_Helper.js | 31 + .../Overlay/javascripts/Piwik_Overlay.js | 252 + .../plugins/Overlay/javascripts/rowaction.js | 65 + .../plugins/Overlay/stylesheets/overlay.css | 159 + .../stylesheets/showErrorWrongDomain.css | 17 + .../plugins/Overlay/templates/index.twig | 74 + .../Overlay/templates/index_noframe.twig | 21 + .../Overlay/templates/notifyParentIframe.twig | 14 + .../Overlay/templates/renderSidebar.twig | 22 + .../templates/showErrorWrongDomain.twig | 15 + .../plugins/PrivacyManager/Config.php | 108 + .../plugins/PrivacyManager/Controller.php | 312 + .../DoNotTrackHeaderChecker.php | 87 + .../plugins/PrivacyManager/IPAnonymizer.php | 96 + .../plugins/PrivacyManager/LogDataPurger.php | 334 + .../plugins/PrivacyManager/PrivacyManager.php | 469 + .../plugins/PrivacyManager/ReportsPurger.php | 380 + .../javascripts/privacySettings.js | 206 + .../templates/getDatabaseSize.twig | 7 + .../templates/privacySettings.twig | 315 + www/analytics/plugins/Provider/API.php | 40 + www/analytics/plugins/Provider/Archiver.php | 29 + www/analytics/plugins/Provider/Controller.php | 27 + www/analytics/plugins/Provider/Provider.php | 236 + www/analytics/plugins/Provider/functions.php | 80 + www/analytics/plugins/Proxy/Controller.php | 130 + www/analytics/plugins/Proxy/Proxy.php | 35 + www/analytics/plugins/Referrers/API.php | 530 + www/analytics/plugins/Referrers/Archiver.php | 269 + .../plugins/Referrers/Controller.php | 533 + www/analytics/plugins/Referrers/Referrers.php | 546 + www/analytics/plugins/Referrers/functions.php | 283 + .../Referrers/images/searchEngines/1.cz.png | Bin 0 -> 736 bytes .../images/searchEngines/abcsok.no.png | Bin 0 -> 734 bytes .../images/searchEngines/alexa.com.png | Bin 0 -> 878 bytes .../Referrers/images/searchEngines/all.by.png | Bin 0 -> 736 bytes .../images/searchEngines/apollo.lv.png | Bin 0 -> 664 bytes .../images/searchEngines/apollo7.de.png | Bin 0 -> 477 bytes .../images/searchEngines/arama.com.png | Bin 0 -> 736 bytes .../searchEngines/ariadna.elmundo.es.png | Bin 0 -> 272 bytes .../searchEngines/arianna.libero.it.png | Bin 0 -> 763 bytes .../images/searchEngines/ask.com.png | Bin 0 -> 587 bytes .../images/searchEngines/bg.setooz.com.png | Bin 0 -> 493 bytes .../images/searchEngines/bing.com.png | Bin 0 -> 590 bytes .../images/searchEngines/blekko.com.png | Bin 0 -> 174 bytes .../searchEngines/blogs.icerocket.com.png | Bin 0 -> 461 bytes .../searchEngines/blogsearch.google.com.png | Bin 0 -> 545 bytes .../images/searchEngines/busca.orange.es.png | Bin 0 -> 430 bytes .../images/searchEngines/busca.uol.com.br.png | Bin 0 -> 701 bytes .../searchEngines/buscador.terra.es.png | Bin 0 -> 869 bytes .../cgi.search.biglobe.ne.jp.png | Bin 0 -> 716 bytes .../images/searchEngines/claro-search.com.png | Bin 0 -> 564 bytes .../searchEngines/daemon-search.com.png | Bin 0 -> 718 bytes .../images/searchEngines/digg.com.png | Bin 0 -> 465 bytes .../searchEngines/dir.gigablast.com.png | Bin 0 -> 846 bytes .../images/searchEngines/dmoz.org.png | Bin 0 -> 732 bytes .../images/searchEngines/duckduckgo.com.png | Bin 0 -> 900 bytes .../images/searchEngines/ecosia.org.png | Bin 0 -> 667 bytes .../searchEngines/encrypted.google.com.png | Bin 0 -> 545 bytes .../Referrers/images/searchEngines/eo.st.png | Bin 0 -> 445 bytes .../images/searchEngines/forestle.org.png | Bin 0 -> 814 bytes .../images/searchEngines/fr.dir.com.png | Bin 0 -> 735 bytes .../images/searchEngines/fr.wedoo.com.png | Bin 0 -> 490 bytes .../images/searchEngines/friendfeed.com.png | Bin 0 -> 524 bytes .../searchEngines/gais.cs.ccu.edu.tw.png | Bin 0 -> 736 bytes .../images/searchEngines/geona.net.png | Bin 0 -> 3072 bytes .../images/searchEngines/go.mail.ru.png | Bin 0 -> 409 bytes .../images/searchEngines/google.com.png | Bin 0 -> 545 bytes .../googlesyndicatedsearch.com.png | Bin 0 -> 545 bytes .../images/searchEngines/holmes.ge.png | Bin 0 -> 774 bytes .../searchEngines/images.google.com.png | Bin 0 -> 545 bytes .../searchEngines/images.search.yahoo.com.png | Bin 0 -> 538 bytes .../images/searchEngines/images.yandex.ru.png | Bin 0 -> 497 bytes .../images/searchEngines/infospace.com.png | Bin 0 -> 940 bytes .../images/searchEngines/iwon.ask.com.png | Bin 0 -> 587 bytes .../images/searchEngines/ixquick.com.png | Bin 0 -> 613 bytes .../images/searchEngines/junglekey.com.png | Bin 0 -> 580 bytes .../images/searchEngines/jyxo.1188.cz.png | Bin 0 -> 401 bytes .../searchEngines/ko.search.need2find.com.png | Bin 0 -> 736 bytes .../Referrers/images/searchEngines/lo.st.png | Bin 0 -> 828 bytes .../images/searchEngines/maps.google.com.png | Bin 0 -> 1132 bytes .../meta.rrzn.uni-hannover.de.png | Bin 0 -> 281 bytes .../images/searchEngines/meta.ua.png | Bin 0 -> 873 bytes .../images/searchEngines/metager2.de.png | Bin 0 -> 556 bytes .../images/searchEngines/news.google.com.png | Bin 0 -> 545 bytes .../images/searchEngines/nigma.ru.png | Bin 0 -> 673 bytes .../images/searchEngines/nova.rambler.ru.png | Bin 0 -> 765 bytes .../images/searchEngines/online.no.png | Bin 0 -> 591 bytes .../images/searchEngines/otsing.delfi.ee.png | Bin 0 -> 543 bytes .../images/searchEngines/p.zhongsou.com.png | Bin 0 -> 869 bytes .../images/searchEngines/pesquisa.clix.pt.png | Bin 0 -> 838 bytes .../images/searchEngines/pesquisa.sapo.pt.png | Bin 0 -> 718 bytes .../images/searchEngines/plusnetwork.com.png | Bin 0 -> 719 bytes .../images/searchEngines/poisk.ru.png | Bin 0 -> 275 bytes .../searchEngines/recherche.francite.com.png | Bin 0 -> 706 bytes .../searchEngines/rechercher.aliceadsl.fr.png | Bin 0 -> 755 bytes .../searchEngines/req.hit-parade.com.png | Bin 0 -> 275 bytes .../searchEngines/ricerca.virgilio.it.png | Bin 0 -> 333 bytes .../images/searchEngines/rpmfind.net.png | Bin 0 -> 867 bytes .../searchEngines/s1.metacrawler.de.png | Bin 0 -> 368 bytes .../searchEngines/scholar.google.com.png | Bin 0 -> 545 bytes .../images/searchEngines/scour.com.png | Bin 0 -> 706 bytes .../images/searchEngines/search.aol.com.png | Bin 0 -> 713 bytes .../searchEngines/search.babylon.com.png | Bin 0 -> 930 bytes .../searchEngines/search.bluewin.ch.png | Bin 0 -> 349 bytes .../searchEngines/search.centrum.cz.png | Bin 0 -> 599 bytes .../searchEngines/search.comcast.net.png | Bin 0 -> 839 bytes .../searchEngines/search.conduit.com.png | Bin 0 -> 617 bytes .../images/searchEngines/search.daum.net.png | Bin 0 -> 800 bytes .../searchEngines/search.earthlink.net.png | Bin 0 -> 564 bytes .../images/searchEngines/search.excite.it.png | Bin 0 -> 323 bytes .../images/searchEngines/search.free.fr.png | Bin 0 -> 881 bytes .../searchEngines/search.freecause.com.png | Bin 0 -> 951 bytes .../images/searchEngines/search.goo.ne.jp.png | Bin 0 -> 730 bytes .../images/searchEngines/search.imesh.com.png | Bin 0 -> 644 bytes .../searchEngines/search.ke.voila.fr.png | Bin 0 -> 331 bytes .../images/searchEngines/search.lycos.com.png | Bin 0 -> 367 bytes .../images/searchEngines/search.nate.com.png | Bin 0 -> 670 bytes .../images/searchEngines/search.naver.com.png | Bin 0 -> 317 bytes .../images/searchEngines/search.nifty.com.png | Bin 0 -> 565 bytes .../searchEngines/search.peoplepc.com.png | Bin 0 -> 832 bytes .../images/searchEngines/search.qip.ru.png | Bin 0 -> 556 bytes .../images/searchEngines/search.rr.com.png | Bin 0 -> 794 bytes .../images/searchEngines/search.seznam.cz.png | Bin 0 -> 553 bytes .../search.smartaddressbar.com.png | Bin 0 -> 624 bytes .../images/searchEngines/search.snap.do.png | Bin 0 -> 570 bytes .../searchEngines/search.softonic.com.png | Bin 0 -> 716 bytes .../searchEngines/search.tiscali.it.png | Bin 0 -> 548 bytes .../searchEngines/search.winamp.com.png | Bin 0 -> 753 bytes .../images/searchEngines/search.www.ee.png | Bin 0 -> 625 bytes .../images/searchEngines/search.yahoo.com.png | Bin 0 -> 522 bytes .../images/searchEngines/search.yam.com.png | Bin 0 -> 186 bytes .../images/searchEngines/search.yippy.com.png | Bin 0 -> 654 bytes .../images/searchEngines/searchalot.com.png | Bin 0 -> 369 bytes .../searchEngines/searchatlas.centrum.cz.png | Bin 0 -> 716 bytes .../searchservice.myspace.com.png | Bin 0 -> 610 bytes .../images/searchEngines/sm.aport.ru.png | Bin 0 -> 469 bytes .../images/searchEngines/smart.delfi.lv.png | Bin 0 -> 543 bytes .../images/searchEngines/so.360.cn.png | Bin 0 -> 480 bytes .../images/searchEngines/start.iplay.com.png | Bin 0 -> 293 bytes .../startgoogle.startpagina.nl.png | Bin 0 -> 801 bytes .../images/searchEngines/suche.freenet.de.png | Bin 0 -> 719 bytes .../images/searchEngines/suche.info.png | Bin 0 -> 888 bytes .../searchEngines/suche.t-online.de.png | Bin 0 -> 470 bytes .../images/searchEngines/suche.web.de.png | Bin 0 -> 350 bytes .../images/searchEngines/surfcanyon.com.png | Bin 0 -> 686 bytes .../images/searchEngines/szukaj.onet.pl.png | Bin 0 -> 796 bytes .../images/searchEngines/szukaj.wp.pl.png | Bin 0 -> 672 bytes .../images/searchEngines/technorati.com.png | Bin 0 -> 567 bytes .../searchEngines/translate.google.com.png | Bin 0 -> 545 bytes .../images/searchEngines/video.google.com.png | Bin 0 -> 545 bytes .../images/searchEngines/web.canoe.ca.png | Bin 0 -> 721 bytes .../images/searchEngines/web.volny.cz.png | Bin 0 -> 619 bytes .../images/searchEngines/websearch.cs.com.png | Bin 0 -> 806 bytes .../searchEngines/websearch.rakuten.co.jp.png | Bin 0 -> 513 bytes .../searchEngines/www.123people.com.png | Bin 0 -> 724 bytes .../images/searchEngines/www.1881.no.png | Bin 0 -> 528 bytes .../images/searchEngines/www.abacho.de.png | Bin 0 -> 545 bytes .../images/searchEngines/www.acoon.de.png | Bin 0 -> 736 bytes .../images/searchEngines/www.allesklar.de.png | Bin 0 -> 328 bytes .../searchEngines/www.alltheweb.com.png | Bin 0 -> 458 bytes .../searchEngines/www.altavista.com.png | Bin 0 -> 627 bytes .../images/searchEngines/www.arcor.de.png | Bin 0 -> 924 bytes .../images/searchEngines/www.baidu.com.png | Bin 0 -> 725 bytes .../searchEngines/www.blogdigger.com.png | Bin 0 -> 863 bytes .../searchEngines/www.blogpulse.com.png | Bin 0 -> 725 bytes .../images/searchEngines/www.charter.net.png | Bin 0 -> 861 bytes .../images/searchEngines/www.crawler.com.png | Bin 0 -> 392 bytes .../images/searchEngines/www.cuil.com.png | Bin 0 -> 708 bytes .../searchEngines/www.dasoertliche.de.png | Bin 0 -> 767 bytes .../images/searchEngines/www.eniro.se.png | Bin 0 -> 758 bytes .../images/searchEngines/www.eurip.com.png | Bin 0 -> 736 bytes .../images/searchEngines/www.euroseek.com.png | Bin 0 -> 841 bytes .../searchEngines/www.everyclick.com.png | Bin 0 -> 843 bytes .../images/searchEngines/www.exalead.fr.png | Bin 0 -> 880 bytes .../images/searchEngines/www.facebook.com.png | Bin 0 -> 349 bytes .../www.fastbrowsersearch.com.png | Bin 0 -> 965 bytes .../images/searchEngines/www.fireball.de.png | Bin 0 -> 275 bytes .../searchEngines/www.firstsfind.com.png | Bin 0 -> 736 bytes .../images/searchEngines/www.fixsuche.de.png | Bin 0 -> 975 bytes .../images/searchEngines/www.flix.de.png | Bin 0 -> 518 bytes .../searchEngines/www.gigablast.com.png | Bin 0 -> 846 bytes .../searchEngines/www.gnadenmeer.de.png | Bin 0 -> 895 bytes .../images/searchEngines/www.gomeo.com.png | Bin 0 -> 432 bytes .../searchEngines/www.google.interia.pl.png | Bin 0 -> 690 bytes .../images/searchEngines/www.goyellow.de.png | Bin 0 -> 778 bytes .../images/searchEngines/www.gulesider.no.png | Bin 0 -> 575 bytes .../images/searchEngines/www.highbeam.com.png | Bin 0 -> 705 bytes .../images/searchEngines/www.hooseek.com.png | Bin 0 -> 548 bytes .../images/searchEngines/www.hotbot.com.png | Bin 0 -> 275 bytes .../images/searchEngines/www.icq.com.png | Bin 0 -> 692 bytes .../images/searchEngines/www.ilse.nl.png | Bin 0 -> 854 bytes .../searchEngines/www.jungle-spider.de.png | Bin 0 -> 867 bytes .../images/searchEngines/www.kataweb.it.png | Bin 0 -> 273 bytes .../images/searchEngines/www.kvasir.no.png | Bin 0 -> 395 bytes .../images/searchEngines/www.latne.lv.png | Bin 0 -> 756 bytes .../searchEngines/www.looksmart.com.png | Bin 0 -> 423 bytes .../images/searchEngines/www.maailm.com.png | Bin 0 -> 736 bytes .../images/searchEngines/www.mamma.com.png | Bin 0 -> 931 bytes .../searchEngines/www.meinestadt.de.png | Bin 0 -> 545 bytes .../searchEngines/www.mister-wong.com.png | Bin 0 -> 1065 bytes .../searchEngines/www.monstercrawler.com.png | Bin 0 -> 992 bytes .../images/searchEngines/www.mozbot.fr.png | Bin 0 -> 539 bytes .../images/searchEngines/www.mysearch.com.png | Bin 0 -> 754 bytes .../images/searchEngines/www.najdi.si.png | Bin 0 -> 746 bytes .../images/searchEngines/www.neti.ee.png | Bin 0 -> 874 bytes .../images/searchEngines/www.paperball.de.png | Bin 0 -> 275 bytes .../searchEngines/www.picsearch.com.png | Bin 0 -> 661 bytes .../images/searchEngines/www.plazoo.com.png | Bin 0 -> 471 bytes .../images/searchEngines/www.qualigo.at.png | Bin 0 -> 627 bytes .../images/searchEngines/www.search.ch.png | Bin 0 -> 344 bytes .../images/searchEngines/www.search.com.png | Bin 0 -> 517 bytes .../searchEngines/www.searchcanvas.com.png | Bin 0 -> 867 bytes .../searchEngines/www.searchy.co.uk.png | Bin 0 -> 656 bytes .../images/searchEngines/www.sharelook.fr.png | Bin 0 -> 433 bytes .../images/searchEngines/www.skynet.be.png | Bin 0 -> 855 bytes .../images/searchEngines/www.sogou.com.png | Bin 0 -> 636 bytes .../images/searchEngines/www.soso.com.png | Bin 0 -> 895 bytes .../searchEngines/www.startsiden.no.png | Bin 0 -> 285 bytes .../searchEngines/www.suchmaschine.com.png | Bin 0 -> 605 bytes .../images/searchEngines/www.suchnase.de.png | Bin 0 -> 289 bytes .../images/searchEngines/www.talimba.com.png | Bin 0 -> 735 bytes .../searchEngines/www.talktalk.co.uk.png | Bin 0 -> 457 bytes .../images/searchEngines/www.teoma.com.png | Bin 0 -> 564 bytes .../images/searchEngines/www.tixuma.de.png | Bin 0 -> 933 bytes .../images/searchEngines/www.toile.com.png | Bin 0 -> 868 bytes .../searchEngines/www.toolbarhome.com.png | Bin 0 -> 617 bytes .../images/searchEngines/www.trouvez.com.png | Bin 0 -> 498 bytes .../searchEngines/www.trovarapido.com.png | Bin 0 -> 540 bytes .../searchEngines/www.trusted-search.com.png | Bin 0 -> 736 bytes .../images/searchEngines/www.twingly.com.png | Bin 0 -> 459 bytes .../images/searchEngines/www.url.org.png | Bin 0 -> 584 bytes .../images/searchEngines/www.vinden.nl.png | Bin 0 -> 550 bytes .../images/searchEngines/www.vindex.nl.png | Bin 0 -> 627 bytes .../searchEngines/www.walhello.info.png | Bin 0 -> 811 bytes .../images/searchEngines/www.web.nl.png | Bin 0 -> 736 bytes .../images/searchEngines/www.weborama.fr.png | Bin 0 -> 978 bytes .../searchEngines/www.websearch.com.png | Bin 0 -> 830 bytes .../images/searchEngines/www.witch.de.png | Bin 0 -> 384 bytes .../searchEngines/www.x-recherche.com.png | Bin 0 -> 546 bytes .../images/searchEngines/www.yasni.de.png | Bin 0 -> 747 bytes .../images/searchEngines/www.yatedo.com.png | Bin 0 -> 647 bytes .../images/searchEngines/www.yougoo.fr.png | Bin 0 -> 731 bytes .../images/searchEngines/www.zapmeta.com.png | Bin 0 -> 220 bytes .../images/searchEngines/www.zoeken.nl.png | Bin 0 -> 598 bytes .../images/searchEngines/www.zoznam.sk.png | Bin 0 -> 349 bytes .../searchEngines/www1.dastelefonbuch.de.png | Bin 0 -> 556 bytes .../searchEngines/www2.austronaut.at.png | Bin 0 -> 498 bytes .../images/searchEngines/www2.inbox.com.png | Bin 0 -> 569 bytes .../images/searchEngines/www3.zoek.nl.png | Bin 0 -> 1038 bytes .../Referrers/images/searchEngines/xx.gif | Bin 0 -> 55 bytes .../Referrers/images/searchEngines/xx.png | Bin 0 -> 265 bytes .../images/searchEngines/yandex.ru.png | Bin 0 -> 497 bytes .../images/searchEngines/yellowmap.de.png | Bin 0 -> 750 bytes .../images/searchEngines/zoohoo.cz.png | Bin 0 -> 305 bytes .../Referrers/images/socials/badoo.com.png | Bin 0 -> 1080 bytes .../Referrers/images/socials/bebo.com.png | Bin 0 -> 978 bytes .../images/socials/blackplanet.com.png | Bin 0 -> 432 bytes .../Referrers/images/socials/buzznet.com.png | Bin 0 -> 462 bytes .../images/socials/classmates.com.png | Bin 0 -> 861 bytes .../Referrers/images/socials/douban.com.png | Bin 0 -> 530 bytes .../Referrers/images/socials/facebook.com.png | Bin 0 -> 300 bytes .../Referrers/images/socials/flickr.com.png | Bin 0 -> 1120 bytes .../Referrers/images/socials/flixster.com.png | Bin 0 -> 908 bytes .../Referrers/images/socials/fotolog.com.png | Bin 0 -> 184 bytes .../images/socials/foursquare.com.png | Bin 0 -> 1026 bytes .../images/socials/friendsreunited.com.png | Bin 0 -> 1113 bytes .../images/socials/friendster.com.png | Bin 0 -> 589 bytes .../images/socials/gaiaonline.com.png | Bin 0 -> 1593 bytes .../Referrers/images/socials/geni.com.png | Bin 0 -> 947 bytes .../Referrers/images/socials/github.com.png | Bin 0 -> 399 bytes .../Referrers/images/socials/habbo.com.png | Bin 0 -> 1090 bytes .../Referrers/images/socials/hi5.com.png | Bin 0 -> 282 bytes .../Referrers/images/socials/hyves.nl.png | Bin 0 -> 1183 bytes .../Referrers/images/socials/identi.ca.png | Bin 0 -> 1166 bytes .../Referrers/images/socials/last.fm.png | Bin 0 -> 1265 bytes .../Referrers/images/socials/linkedin.com.png | Bin 0 -> 694 bytes .../images/socials/livejournal.ru.png | Bin 0 -> 984 bytes .../images/socials/login.live.com.png | Bin 0 -> 1581 bytes .../images/socials/login.tagged.com.png | Bin 0 -> 286 bytes .../Referrers/images/socials/meinvz.net.png | Bin 0 -> 554 bytes .../Referrers/images/socials/mixi.jp.png | Bin 0 -> 592 bytes .../Referrers/images/socials/moikrug.ru.png | Bin 0 -> 1206 bytes .../Referrers/images/socials/multiply.com.png | Bin 0 -> 586 bytes .../Referrers/images/socials/my.mail.ru.png | Bin 0 -> 750 bytes .../images/socials/myheritage.com.png | Bin 0 -> 1138 bytes .../Referrers/images/socials/mylife.ru.png | Bin 0 -> 465 bytes .../Referrers/images/socials/myspace.com.png | Bin 0 -> 280 bytes .../images/socials/myyearbook.com.png | Bin 0 -> 741 bytes .../Referrers/images/socials/netlog.com.png | Bin 0 -> 636 bytes .../images/socials/news.ycombinator.com.png | Bin 0 -> 1166 bytes .../Referrers/images/socials/nk.pl.png | Bin 0 -> 628 bytes .../images/socials/odnoklassniki.ru.png | Bin 0 -> 583 bytes .../Referrers/images/socials/orkut.com.png | Bin 0 -> 496 bytes .../images/socials/pinterest.com.png | Bin 0 -> 3369 bytes .../Referrers/images/socials/plaxo.com.png | Bin 0 -> 754 bytes .../Referrers/images/socials/qzone.qq.com.png | Bin 0 -> 604 bytes .../Referrers/images/socials/reddit.com.png | Bin 0 -> 1166 bytes .../Referrers/images/socials/renren.com.png | Bin 0 -> 784 bytes .../images/socials/ru.netlog.com.png | Bin 0 -> 1252 bytes .../Referrers/images/socials/skyrock.com.png | Bin 0 -> 527 bytes .../Referrers/images/socials/sonico.com.png | Bin 0 -> 1292 bytes .../images/socials/sourceforge.net.png | Bin 0 -> 1166 bytes .../images/socials/stackoverflow.com.png | Bin 0 -> 1166 bytes .../Referrers/images/socials/studivz.net.png | Bin 0 -> 1222 bytes .../images/socials/stumbleupon.com.png | Bin 0 -> 584 bytes .../Referrers/images/socials/tagged.com.png | Bin 0 -> 282 bytes .../Referrers/images/socials/taringa.net.png | Bin 0 -> 716 bytes .../Referrers/images/socials/tuenti.com.png | Bin 0 -> 902 bytes .../Referrers/images/socials/tumblr.com.png | Bin 0 -> 443 bytes .../Referrers/images/socials/twitter.com.png | Bin 0 -> 892 bytes .../images/socials/url.google.com.png | Bin 0 -> 1231 bytes .../Referrers/images/socials/viadeo.com.png | Bin 0 -> 710 bytes .../Referrers/images/socials/vimeo.com.png | Bin 0 -> 704 bytes .../Referrers/images/socials/vk.com.png | Bin 0 -> 370 bytes .../Referrers/images/socials/vkontakte.ru.png | Bin 0 -> 576 bytes .../images/socials/vkrugudruzei.ru.png | Bin 0 -> 788 bytes .../Referrers/images/socials/wayn.com.png | Bin 0 -> 648 bytes .../Referrers/images/socials/weeworld.com.png | Bin 0 -> 492 bytes .../Referrers/images/socials/weibo.com.png | Bin 0 -> 1179 bytes .../Referrers/images/socials/xanga.com.png | Bin 0 -> 265 bytes .../Referrers/images/socials/xing.com.png | Bin 0 -> 675 bytes .../plugins/Referrers/images/socials/xx.png | Bin 0 -> 265 bytes .../Referrers/images/socials/youtube.com.png | Bin 0 -> 695 bytes .../getSearchEnginesAndKeywords.twig | 9 + .../plugins/Referrers/templates/index.twig | 118 + .../Referrers/templates/indexWebsites.twig | 9 + www/analytics/plugins/SEO/API.php | 95 + www/analytics/plugins/SEO/Controller.php | 47 + www/analytics/plugins/SEO/MajesticClient.php | 97 + www/analytics/plugins/SEO/RankChecker.php | 377 + www/analytics/plugins/SEO/SEO.php | 45 + .../plugins/SEO/images/majesticseo.png | Bin 0 -> 674 bytes www/analytics/plugins/SEO/images/whois.png | Bin 0 -> 928 bytes www/analytics/plugins/SEO/javascripts/rank.js | 31 + .../plugins/SEO/templates/getRank.twig | 53 + .../plugins/ScheduledReports/API.php | 958 + .../plugins/ScheduledReports/Controller.php | 92 + .../ScheduledReports/ScheduledReports.php | 642 + .../ScheduledReports/config/tcpdf_config.php | 245 + .../ScheduledReports/javascripts/pdf.js | 202 + .../templates/_addReport.twig | 181 + .../templates/_listReports.twig | 103 + .../ScheduledReports/templates/index.twig | 62 + .../reportParametersScheduledReports.twig | 78 + www/analytics/plugins/SegmentEditor/API.php | 329 + .../plugins/SegmentEditor/Controller.php | 20 + www/analytics/plugins/SegmentEditor/Model.php | 89 + .../plugins/SegmentEditor/SegmentEditor.php | 104 + .../SegmentEditor/SegmentSelectorControl.php | 130 + .../SegmentEditor/images/ajax-loader.gif | Bin 0 -> 847 bytes .../images/bg-inverted-corners.png | Bin 0 -> 968 bytes .../images/bg-segment-search.png | Bin 0 -> 1068 bytes .../SegmentEditor/images/bg-select.png | Bin 0 -> 1035 bytes .../plugins/SegmentEditor/images/close.png | Bin 0 -> 288 bytes .../SegmentEditor/images/close_btn.png | Bin 0 -> 928 bytes .../images/dashboard_h_bg_hover.png | Bin 0 -> 378 bytes .../SegmentEditor/images/icon-users.png | Bin 0 -> 1728 bytes .../SegmentEditor/images/reset_search.png | Bin 0 -> 1021 bytes .../SegmentEditor/images/search_btn.png | Bin 0 -> 2825 bytes .../SegmentEditor/images/segment-close.png | Bin 0 -> 1302 bytes .../SegmentEditor/images/segment-move.png | Bin 0 -> 1447 bytes .../SegmentEditor/javascripts/Segmentation.js | 1216 + .../stylesheets/segmentation.less | 705 + .../templates/_segmentSelector.twig | 161 + www/analytics/plugins/SitesManager/API.php | 1555 + .../plugins/SitesManager/Controller.php | 158 + .../plugins/SitesManager/SitesManager.php | 216 + .../SitesManager/javascripts/SitesManager.js | 473 + .../stylesheets/SitesManager.less | 69 + .../templates/_displayJavascriptCode.twig | 18 + .../templates/displayJavascriptCode.twig | 6 + .../plugins/SitesManager/templates/index.twig | 426 + www/analytics/plugins/Transitions/API.php | 605 + .../plugins/Transitions/Controller.php | 89 + .../plugins/Transitions/Transitions.php | 43 + .../Transitions/images/transitions_icon.png | Bin 0 -> 643 bytes .../images/transitions_icon_hover.png | Bin 0 -> 647 bytes .../Transitions/javascripts/transitions.js | 1553 + .../stylesheets/_transitionColors.less | 98 + .../Transitions/stylesheets/transitions.less | 198 + .../Transitions/templates/renderPopover.twig | 56 + www/analytics/plugins/UserCountry/API.php | 211 + .../plugins/UserCountry/Archiver.php | 179 + .../plugins/UserCountry/Controller.php | 403 + .../plugins/UserCountry/GeoIPAutoUpdater.php | 682 + .../plugins/UserCountry/LocationProvider.php | 459 + .../UserCountry/LocationProvider/Default.php | 113 + .../UserCountry/LocationProvider/GeoIp.php | 274 + .../LocationProvider/GeoIp/Pecl.php | 330 + .../LocationProvider/GeoIp/Php.php | 357 + .../LocationProvider/GeoIp/ServerBased.php | 282 + .../plugins/UserCountry/UserCountry.php | 500 + .../plugins/UserCountry/functions.php | 169 + .../plugins/UserCountry/images/flags/a1.png | Bin 0 -> 290 bytes .../plugins/UserCountry/images/flags/a2.png | Bin 0 -> 290 bytes .../plugins/UserCountry/images/flags/ac.png | Bin 0 -> 545 bytes .../plugins/UserCountry/images/flags/ad.png | Bin 0 -> 454 bytes .../plugins/UserCountry/images/flags/ae.png | Bin 0 -> 277 bytes .../plugins/UserCountry/images/flags/af.png | Bin 0 -> 420 bytes .../plugins/UserCountry/images/flags/ag.png | Bin 0 -> 456 bytes .../plugins/UserCountry/images/flags/ai.png | Bin 0 -> 516 bytes .../plugins/UserCountry/images/flags/al.png | Bin 0 -> 434 bytes .../plugins/UserCountry/images/flags/am.png | Bin 0 -> 332 bytes .../plugins/UserCountry/images/flags/an.png | Bin 0 -> 365 bytes .../plugins/UserCountry/images/flags/ao.png | Bin 0 -> 395 bytes .../plugins/UserCountry/images/flags/ap.png | Bin 0 -> 290 bytes .../plugins/UserCountry/images/flags/aq.png | Bin 0 -> 376 bytes .../plugins/UserCountry/images/flags/ar.png | Bin 0 -> 367 bytes .../plugins/UserCountry/images/flags/as.png | Bin 0 -> 540 bytes .../plugins/UserCountry/images/flags/at.png | Bin 0 -> 290 bytes .../plugins/UserCountry/images/flags/au.png | Bin 0 -> 580 bytes .../plugins/UserCountry/images/flags/aw.png | Bin 0 -> 393 bytes .../plugins/UserCountry/images/flags/ax.png | Bin 0 -> 480 bytes .../plugins/UserCountry/images/flags/az.png | Bin 0 -> 423 bytes .../plugins/UserCountry/images/flags/ba.png | Bin 0 -> 471 bytes .../plugins/UserCountry/images/flags/bb.png | Bin 0 -> 403 bytes .../plugins/UserCountry/images/flags/bd.png | Bin 0 -> 372 bytes .../plugins/UserCountry/images/flags/be.png | Bin 0 -> 294 bytes .../plugins/UserCountry/images/flags/bf.png | Bin 0 -> 341 bytes .../plugins/UserCountry/images/flags/bg.png | Bin 0 -> 320 bytes .../plugins/UserCountry/images/flags/bh.png | Bin 0 -> 345 bytes .../plugins/UserCountry/images/flags/bi.png | Bin 0 -> 566 bytes .../plugins/UserCountry/images/flags/bj.png | Bin 0 -> 311 bytes .../plugins/UserCountry/images/flags/bl.png | Bin 0 -> 369 bytes .../plugins/UserCountry/images/flags/bm.png | Bin 0 -> 499 bytes .../plugins/UserCountry/images/flags/bn.png | Bin 0 -> 502 bytes .../plugins/UserCountry/images/flags/bo.png | Bin 0 -> 341 bytes .../plugins/UserCountry/images/flags/bq.png | Bin 0 -> 310 bytes .../plugins/UserCountry/images/flags/br.png | Bin 0 -> 486 bytes .../plugins/UserCountry/images/flags/bs.png | Bin 0 -> 391 bytes .../plugins/UserCountry/images/flags/bt.png | Bin 0 -> 471 bytes .../plugins/UserCountry/images/flags/bu.png | Bin 0 -> 336 bytes .../plugins/UserCountry/images/flags/bv.png | Bin 0 -> 397 bytes .../plugins/UserCountry/images/flags/bw.png | Bin 0 -> 327 bytes .../plugins/UserCountry/images/flags/by.png | Bin 0 -> 382 bytes .../plugins/UserCountry/images/flags/bz.png | Bin 0 -> 476 bytes .../plugins/UserCountry/images/flags/ca.png | Bin 0 -> 471 bytes .../plugins/UserCountry/images/flags/cat.png | Bin 0 -> 353 bytes .../plugins/UserCountry/images/flags/cc.png | Bin 0 -> 496 bytes .../plugins/UserCountry/images/flags/cd.png | Bin 0 -> 477 bytes .../plugins/UserCountry/images/flags/cf.png | Bin 0 -> 456 bytes .../plugins/UserCountry/images/flags/cg.png | Bin 0 -> 380 bytes .../plugins/UserCountry/images/flags/ch.png | Bin 0 -> 239 bytes .../plugins/UserCountry/images/flags/ci.png | Bin 0 -> 306 bytes .../plugins/UserCountry/images/flags/ck.png | Bin 0 -> 495 bytes .../plugins/UserCountry/images/flags/cl.png | Bin 0 -> 324 bytes .../plugins/UserCountry/images/flags/cm.png | Bin 0 -> 347 bytes .../plugins/UserCountry/images/flags/cn.png | Bin 0 -> 349 bytes .../plugins/UserCountry/images/flags/co.png | Bin 0 -> 330 bytes .../plugins/UserCountry/images/flags/cp.png | Bin 0 -> 369 bytes .../plugins/UserCountry/images/flags/cr.png | Bin 0 -> 349 bytes .../plugins/UserCountry/images/flags/cs.png | Bin 0 -> 321 bytes .../plugins/UserCountry/images/flags/cu.png | Bin 0 -> 445 bytes .../plugins/UserCountry/images/flags/cv.png | Bin 0 -> 441 bytes .../plugins/UserCountry/images/flags/cw.png | Bin 0 -> 308 bytes .../plugins/UserCountry/images/flags/cx.png | Bin 0 -> 498 bytes .../plugins/UserCountry/images/flags/cy.png | Bin 0 -> 337 bytes .../plugins/UserCountry/images/flags/cz.png | Bin 0 -> 367 bytes .../plugins/UserCountry/images/flags/de.png | Bin 0 -> 364 bytes .../plugins/UserCountry/images/flags/dg.png | Bin 0 -> 658 bytes .../plugins/UserCountry/images/flags/dj.png | Bin 0 -> 430 bytes .../plugins/UserCountry/images/flags/dk.png | Bin 0 -> 352 bytes .../plugins/UserCountry/images/flags/dm.png | Bin 0 -> 508 bytes .../plugins/UserCountry/images/flags/do.png | Bin 0 -> 368 bytes .../plugins/UserCountry/images/flags/dz.png | Bin 0 -> 454 bytes .../plugins/UserCountry/images/flags/ea.png | Bin 0 -> 344 bytes .../plugins/UserCountry/images/flags/ec.png | Bin 0 -> 355 bytes .../plugins/UserCountry/images/flags/ee.png | Bin 0 -> 297 bytes .../plugins/UserCountry/images/flags/eg.png | Bin 0 -> 348 bytes .../plugins/UserCountry/images/flags/eh.png | Bin 0 -> 388 bytes .../plugins/UserCountry/images/flags/er.png | Bin 0 -> 497 bytes .../plugins/UserCountry/images/flags/es.png | Bin 0 -> 344 bytes .../plugins/UserCountry/images/flags/et.png | Bin 0 -> 445 bytes .../plugins/UserCountry/images/flags/eu.png | Bin 0 -> 418 bytes .../plugins/UserCountry/images/flags/fi.png | Bin 0 -> 368 bytes .../plugins/UserCountry/images/flags/fj.png | Bin 0 -> 517 bytes .../plugins/UserCountry/images/flags/fk.png | Bin 0 -> 526 bytes .../plugins/UserCountry/images/flags/fm.png | Bin 0 -> 409 bytes .../plugins/UserCountry/images/flags/fo.png | Bin 0 -> 377 bytes .../plugins/UserCountry/images/flags/fr.png | Bin 0 -> 369 bytes .../plugins/UserCountry/images/flags/fx.png | Bin 0 -> 369 bytes .../plugins/UserCountry/images/flags/ga.png | Bin 0 -> 342 bytes .../plugins/UserCountry/images/flags/gb.png | Bin 0 -> 545 bytes .../plugins/UserCountry/images/flags/gd.png | Bin 0 -> 461 bytes .../plugins/UserCountry/images/flags/ge.png | Bin 0 -> 493 bytes .../plugins/UserCountry/images/flags/gf.png | Bin 0 -> 369 bytes .../plugins/UserCountry/images/flags/gg.png | Bin 0 -> 524 bytes .../plugins/UserCountry/images/flags/gh.png | Bin 0 -> 336 bytes .../plugins/UserCountry/images/flags/gi.png | Bin 0 -> 369 bytes .../plugins/UserCountry/images/flags/gl.png | Bin 0 -> 351 bytes .../plugins/UserCountry/images/flags/gm.png | Bin 0 -> 363 bytes .../plugins/UserCountry/images/flags/gn.png | Bin 0 -> 319 bytes .../plugins/UserCountry/images/flags/gp.png | Bin 0 -> 353 bytes .../plugins/UserCountry/images/flags/gq.png | Bin 0 -> 405 bytes .../plugins/UserCountry/images/flags/gr.png | Bin 0 -> 391 bytes .../plugins/UserCountry/images/flags/gs.png | Bin 0 -> 522 bytes .../plugins/UserCountry/images/flags/gt.png | Bin 0 -> 333 bytes .../plugins/UserCountry/images/flags/gu.png | Bin 0 -> 384 bytes .../plugins/UserCountry/images/flags/gw.png | Bin 0 -> 346 bytes .../plugins/UserCountry/images/flags/gy.png | Bin 0 -> 521 bytes .../plugins/UserCountry/images/flags/hk.png | Bin 0 -> 393 bytes .../plugins/UserCountry/images/flags/hm.png | Bin 0 -> 580 bytes .../plugins/UserCountry/images/flags/hn.png | Bin 0 -> 411 bytes .../plugins/UserCountry/images/flags/hr.png | Bin 0 -> 386 bytes .../plugins/UserCountry/images/flags/ht.png | Bin 0 -> 327 bytes .../plugins/UserCountry/images/flags/hu.png | Bin 0 -> 293 bytes .../plugins/UserCountry/images/flags/ic.png | Bin 0 -> 378 bytes .../plugins/UserCountry/images/flags/id.png | Bin 0 -> 301 bytes .../plugins/UserCountry/images/flags/ie.png | Bin 0 -> 333 bytes .../plugins/UserCountry/images/flags/il.png | Bin 0 -> 326 bytes .../plugins/UserCountry/images/flags/im.png | Bin 0 -> 320 bytes .../plugins/UserCountry/images/flags/in.png | Bin 0 -> 377 bytes .../plugins/UserCountry/images/flags/io.png | Bin 0 -> 575 bytes .../plugins/UserCountry/images/flags/iq.png | Bin 0 -> 403 bytes .../plugins/UserCountry/images/flags/ir.png | Bin 0 -> 398 bytes .../plugins/UserCountry/images/flags/is.png | Bin 0 -> 410 bytes .../plugins/UserCountry/images/flags/it.png | Bin 0 -> 283 bytes .../plugins/UserCountry/images/flags/je.png | Bin 0 -> 475 bytes .../plugins/UserCountry/images/flags/jm.png | Bin 0 -> 508 bytes .../plugins/UserCountry/images/flags/jo.png | Bin 0 -> 353 bytes .../plugins/UserCountry/images/flags/jp.png | Bin 0 -> 307 bytes .../plugins/UserCountry/images/flags/ke.png | Bin 0 -> 435 bytes .../plugins/UserCountry/images/flags/kg.png | Bin 0 -> 354 bytes .../plugins/UserCountry/images/flags/kh.png | Bin 0 -> 422 bytes .../plugins/UserCountry/images/flags/ki.png | Bin 0 -> 551 bytes .../plugins/UserCountry/images/flags/km.png | Bin 0 -> 456 bytes .../plugins/UserCountry/images/flags/kn.png | Bin 0 -> 480 bytes .../plugins/UserCountry/images/flags/kp.png | Bin 0 -> 424 bytes .../plugins/UserCountry/images/flags/kr.png | Bin 0 -> 507 bytes .../plugins/UserCountry/images/flags/kw.png | Bin 0 -> 351 bytes .../plugins/UserCountry/images/flags/ky.png | Bin 0 -> 532 bytes .../plugins/UserCountry/images/flags/kz.png | Bin 0 -> 459 bytes .../plugins/UserCountry/images/flags/la.png | Bin 0 -> 415 bytes .../plugins/UserCountry/images/flags/lb.png | Bin 0 -> 393 bytes .../plugins/UserCountry/images/flags/lc.png | Bin 0 -> 462 bytes .../plugins/UserCountry/images/flags/li.png | Bin 0 -> 399 bytes .../plugins/UserCountry/images/flags/lk.png | Bin 0 -> 464 bytes .../plugins/UserCountry/images/flags/lr.png | Bin 0 -> 365 bytes .../plugins/UserCountry/images/flags/ls.png | Bin 0 -> 500 bytes .../plugins/UserCountry/images/flags/lt.png | Bin 0 -> 345 bytes .../plugins/UserCountry/images/flags/lu.png | Bin 0 -> 338 bytes .../plugins/UserCountry/images/flags/lv.png | Bin 0 -> 339 bytes .../plugins/UserCountry/images/flags/ly.png | Bin 0 -> 277 bytes .../plugins/UserCountry/images/flags/ma.png | Bin 0 -> 293 bytes .../plugins/UserCountry/images/flags/mc.png | Bin 0 -> 254 bytes .../plugins/UserCountry/images/flags/md.png | Bin 0 -> 404 bytes .../plugins/UserCountry/images/flags/me.png | Bin 0 -> 394 bytes .../plugins/UserCountry/images/flags/mf.png | Bin 0 -> 369 bytes .../plugins/UserCountry/images/flags/mg.png | Bin 0 -> 313 bytes .../plugins/UserCountry/images/flags/mh.png | Bin 0 -> 518 bytes .../plugins/UserCountry/images/flags/mk.png | Bin 0 -> 449 bytes .../plugins/UserCountry/images/flags/ml.png | Bin 0 -> 322 bytes .../plugins/UserCountry/images/flags/mm.png | Bin 0 -> 336 bytes .../plugins/UserCountry/images/flags/mn.png | Bin 0 -> 343 bytes .../plugins/UserCountry/images/flags/mo.png | Bin 0 -> 456 bytes .../plugins/UserCountry/images/flags/mp.png | Bin 0 -> 481 bytes .../plugins/UserCountry/images/flags/mq.png | Bin 0 -> 541 bytes .../plugins/UserCountry/images/flags/mr.png | Bin 0 -> 408 bytes .../plugins/UserCountry/images/flags/ms.png | Bin 0 -> 497 bytes .../plugins/UserCountry/images/flags/mt.png | Bin 0 -> 296 bytes .../plugins/UserCountry/images/flags/mu.png | Bin 0 -> 360 bytes .../plugins/UserCountry/images/flags/mv.png | Bin 0 -> 391 bytes .../plugins/UserCountry/images/flags/mw.png | Bin 0 -> 365 bytes .../plugins/UserCountry/images/flags/mx.png | Bin 0 -> 424 bytes .../plugins/UserCountry/images/flags/my.png | Bin 0 -> 464 bytes .../plugins/UserCountry/images/flags/mz.png | Bin 0 -> 439 bytes .../plugins/UserCountry/images/flags/na.png | Bin 0 -> 559 bytes .../plugins/UserCountry/images/flags/nc.png | Bin 0 -> 470 bytes .../plugins/UserCountry/images/flags/ne.png | Bin 0 -> 393 bytes .../plugins/UserCountry/images/flags/nf.png | Bin 0 -> 474 bytes .../plugins/UserCountry/images/flags/ng.png | Bin 0 -> 341 bytes .../plugins/UserCountry/images/flags/ni.png | Bin 0 -> 372 bytes .../plugins/UserCountry/images/flags/nl.png | Bin 0 -> 310 bytes .../plugins/UserCountry/images/flags/no.png | Bin 0 -> 397 bytes .../plugins/UserCountry/images/flags/np.png | Bin 0 -> 349 bytes .../plugins/UserCountry/images/flags/nr.png | Bin 0 -> 391 bytes .../plugins/UserCountry/images/flags/nt.png | Bin 0 -> 198 bytes .../plugins/UserCountry/images/flags/nu.png | Bin 0 -> 468 bytes .../plugins/UserCountry/images/flags/nz.png | Bin 0 -> 529 bytes .../plugins/UserCountry/images/flags/o1.png | Bin 0 -> 290 bytes .../plugins/UserCountry/images/flags/om.png | Bin 0 -> 339 bytes .../plugins/UserCountry/images/flags/pa.png | Bin 0 -> 390 bytes .../plugins/UserCountry/images/flags/pe.png | Bin 0 -> 264 bytes .../plugins/UserCountry/images/flags/pf.png | Bin 0 -> 379 bytes .../plugins/UserCountry/images/flags/pg.png | Bin 0 -> 438 bytes .../plugins/UserCountry/images/flags/ph.png | Bin 0 -> 416 bytes .../plugins/UserCountry/images/flags/pk.png | Bin 0 -> 448 bytes .../plugins/UserCountry/images/flags/pl.png | Bin 0 -> 243 bytes .../plugins/UserCountry/images/flags/pm.png | Bin 0 -> 572 bytes .../plugins/UserCountry/images/flags/pn.png | Bin 0 -> 547 bytes .../plugins/UserCountry/images/flags/pr.png | Bin 0 -> 445 bytes .../plugins/UserCountry/images/flags/ps.png | Bin 0 -> 348 bytes .../plugins/UserCountry/images/flags/pt.png | Bin 0 -> 407 bytes .../plugins/UserCountry/images/flags/pw.png | Bin 0 -> 424 bytes .../plugins/UserCountry/images/flags/py.png | Bin 0 -> 344 bytes .../plugins/UserCountry/images/flags/qa.png | Bin 0 -> 343 bytes .../plugins/UserCountry/images/flags/re.png | Bin 0 -> 369 bytes .../plugins/UserCountry/images/flags/ro.png | Bin 0 -> 333 bytes .../plugins/UserCountry/images/flags/rs.png | Bin 0 -> 376 bytes .../plugins/UserCountry/images/flags/ru.png | Bin 0 -> 299 bytes .../plugins/UserCountry/images/flags/rw.png | Bin 0 -> 382 bytes .../plugins/UserCountry/images/flags/sa.png | Bin 0 -> 428 bytes .../plugins/UserCountry/images/flags/sb.png | Bin 0 -> 520 bytes .../plugins/UserCountry/images/flags/sc.png | Bin 0 -> 481 bytes .../plugins/UserCountry/images/flags/sd.png | Bin 0 -> 364 bytes .../plugins/UserCountry/images/flags/se.png | Bin 0 -> 389 bytes .../plugins/UserCountry/images/flags/sf.png | Bin 0 -> 368 bytes .../plugins/UserCountry/images/flags/sg.png | Bin 0 -> 350 bytes .../plugins/UserCountry/images/flags/sh.png | Bin 0 -> 524 bytes .../plugins/UserCountry/images/flags/si.png | Bin 0 -> 383 bytes .../plugins/UserCountry/images/flags/sj.png | Bin 0 -> 397 bytes .../plugins/UserCountry/images/flags/sk.png | Bin 0 -> 439 bytes .../plugins/UserCountry/images/flags/sl.png | Bin 0 -> 321 bytes .../plugins/UserCountry/images/flags/sm.png | Bin 0 -> 396 bytes .../plugins/UserCountry/images/flags/sn.png | Bin 0 -> 356 bytes .../plugins/UserCountry/images/flags/so.png | Bin 0 -> 376 bytes .../plugins/UserCountry/images/flags/sr.png | Bin 0 -> 370 bytes .../plugins/UserCountry/images/flags/ss.png | Bin 0 -> 422 bytes .../plugins/UserCountry/images/flags/st.png | Bin 0 -> 429 bytes .../plugins/UserCountry/images/flags/su.png | Bin 0 -> 273 bytes .../plugins/UserCountry/images/flags/sv.png | Bin 0 -> 373 bytes .../plugins/UserCountry/images/flags/sx.png | Bin 0 -> 416 bytes .../plugins/UserCountry/images/flags/sy.png | Bin 0 -> 322 bytes .../plugins/UserCountry/images/flags/sz.png | Bin 0 -> 508 bytes .../plugins/UserCountry/images/flags/ta.png | Bin 0 -> 512 bytes .../plugins/UserCountry/images/flags/tc.png | Bin 0 -> 509 bytes .../plugins/UserCountry/images/flags/td.png | Bin 0 -> 378 bytes .../plugins/UserCountry/images/flags/tf.png | Bin 0 -> 399 bytes .../plugins/UserCountry/images/flags/tg.png | Bin 0 -> 410 bytes .../plugins/UserCountry/images/flags/th.png | Bin 0 -> 327 bytes .../plugins/UserCountry/images/flags/ti.png | Bin 0 -> 811 bytes .../plugins/UserCountry/images/flags/tj.png | Bin 0 -> 367 bytes .../plugins/UserCountry/images/flags/tk.png | Bin 0 -> 522 bytes .../plugins/UserCountry/images/flags/tl.png | Bin 0 -> 395 bytes .../plugins/UserCountry/images/flags/tm.png | Bin 0 -> 456 bytes .../plugins/UserCountry/images/flags/tn.png | Bin 0 -> 367 bytes .../plugins/UserCountry/images/flags/to.png | Bin 0 -> 302 bytes .../plugins/UserCountry/images/flags/tp.png | Bin 0 -> 395 bytes .../plugins/UserCountry/images/flags/tr.png | Bin 0 -> 366 bytes .../plugins/UserCountry/images/flags/tt.png | Bin 0 -> 486 bytes .../plugins/UserCountry/images/flags/tv.png | Bin 0 -> 443 bytes .../plugins/UserCountry/images/flags/tw.png | Bin 0 -> 330 bytes .../plugins/UserCountry/images/flags/tz.png | Bin 0 -> 514 bytes .../plugins/UserCountry/images/flags/ua.png | Bin 0 -> 304 bytes .../plugins/UserCountry/images/flags/ug.png | Bin 0 -> 388 bytes .../plugins/UserCountry/images/flags/uk.png | Bin 0 -> 545 bytes .../plugins/UserCountry/images/flags/um.png | Bin 0 -> 455 bytes .../plugins/UserCountry/images/flags/us.png | Bin 0 -> 492 bytes .../plugins/UserCountry/images/flags/uy.png | Bin 0 -> 411 bytes .../plugins/UserCountry/images/flags/uz.png | Bin 0 -> 411 bytes .../plugins/UserCountry/images/flags/va.png | Bin 0 -> 419 bytes .../plugins/UserCountry/images/flags/vc.png | Bin 0 -> 412 bytes .../plugins/UserCountry/images/flags/ve.png | Bin 0 -> 412 bytes .../plugins/UserCountry/images/flags/vg.png | Bin 0 -> 510 bytes .../plugins/UserCountry/images/flags/vi.png | Bin 0 -> 523 bytes .../plugins/UserCountry/images/flags/vn.png | Bin 0 -> 324 bytes .../plugins/UserCountry/images/flags/vu.png | Bin 0 -> 450 bytes .../plugins/UserCountry/images/flags/wf.png | Bin 0 -> 438 bytes .../plugins/UserCountry/images/flags/ws.png | Bin 0 -> 352 bytes .../plugins/UserCountry/images/flags/xx.png | Bin 0 -> 290 bytes .../plugins/UserCountry/images/flags/ye.png | Bin 0 -> 302 bytes .../plugins/UserCountry/images/flags/yt.png | Bin 0 -> 456 bytes .../plugins/UserCountry/images/flags/yu.png | Bin 0 -> 321 bytes .../plugins/UserCountry/images/flags/za.png | Bin 0 -> 523 bytes .../plugins/UserCountry/images/flags/zm.png | Bin 0 -> 359 bytes .../plugins/UserCountry/images/flags/zr.png | Bin 0 -> 380 bytes .../plugins/UserCountry/images/flags/zw.png | Bin 0 -> 462 bytes .../UserCountry/javascripts/userCountry.js | 211 + .../UserCountry/stylesheets/userCountry.less | 74 + .../UserCountry/templates/_updaterManage.twig | 71 + .../templates/_updaterNextRunTime.twig | 9 + .../UserCountry/templates/adminIndex.twig | 135 + .../getGeoIpUpdaterManageScreen.twig | 1 + .../plugins/UserCountry/templates/index.twig | 26 + .../plugins/UserCountryMap/Controller.php | 266 + .../plugins/UserCountryMap/UserCountryMap.php | 81 + .../plugins/UserCountryMap/images/cities.png | Bin 0 -> 267 bytes .../images/realtimemap-loading.gif | Bin 0 -> 308 bytes .../plugins/UserCountryMap/images/regions.png | Bin 0 -> 296 bytes .../images/zoom-out-disabled.png | Bin 0 -> 270 bytes .../javascripts/realtime-map.js | 640 + .../javascripts/vendor/chroma.min.js | 33 + .../javascripts/vendor/jquery.qtip.min.js | 14 + .../javascripts/vendor/kartograph.min.js | 21 + .../javascripts/vendor/raphael.min.js | 10 + .../UserCountryMap/javascripts/visitor-map.js | 1366 + .../UserCountryMap/stylesheets/map.css | 84 + .../stylesheets/realtime-map.less | 146 + .../stylesheets/visitor-map.less | 222 + .../plugins/UserCountryMap/svg/AF.svg | 2 + .../plugins/UserCountryMap/svg/AFG.svg | 2 + .../plugins/UserCountryMap/svg/AGO.svg | 2 + .../plugins/UserCountryMap/svg/ALB.svg | 2 + .../plugins/UserCountryMap/svg/ARE.svg | 2 + .../plugins/UserCountryMap/svg/ARG.svg | 2 + .../plugins/UserCountryMap/svg/ARM.svg | 2 + .../plugins/UserCountryMap/svg/AS.svg | 1 + .../plugins/UserCountryMap/svg/AUS.svg | 2 + .../plugins/UserCountryMap/svg/AUT.svg | 2 + .../plugins/UserCountryMap/svg/AZE.svg | 2 + .../plugins/UserCountryMap/svg/BDI.svg | 2 + .../plugins/UserCountryMap/svg/BEL.svg | 1 + .../plugins/UserCountryMap/svg/BEN.svg | 2 + .../plugins/UserCountryMap/svg/BFA.svg | 2 + .../plugins/UserCountryMap/svg/BGD.svg | 1 + .../plugins/UserCountryMap/svg/BGR.svg | 2 + .../plugins/UserCountryMap/svg/BIH.svg | 2 + .../plugins/UserCountryMap/svg/BLR.svg | 2 + .../plugins/UserCountryMap/svg/BLZ.svg | 2 + .../plugins/UserCountryMap/svg/BOL.svg | 2 + .../plugins/UserCountryMap/svg/BRA.svg | 2 + .../plugins/UserCountryMap/svg/BRB.svg | 2 + .../plugins/UserCountryMap/svg/BRN.svg | 2 + .../plugins/UserCountryMap/svg/BTN.svg | 2 + .../plugins/UserCountryMap/svg/BWA.svg | 2 + .../plugins/UserCountryMap/svg/CAF.svg | 2 + .../plugins/UserCountryMap/svg/CAN.svg | 2 + .../plugins/UserCountryMap/svg/CHE.svg | 2 + .../plugins/UserCountryMap/svg/CHL.svg | 2 + .../plugins/UserCountryMap/svg/CHN.svg | 1 + .../plugins/UserCountryMap/svg/CIV.svg | 2 + .../plugins/UserCountryMap/svg/CMR.svg | 2 + .../plugins/UserCountryMap/svg/COD.svg | 2 + .../plugins/UserCountryMap/svg/COG.svg | 2 + .../plugins/UserCountryMap/svg/COL.svg | 2 + .../plugins/UserCountryMap/svg/CRI.svg | 2 + .../plugins/UserCountryMap/svg/CUB.svg | 2 + .../plugins/UserCountryMap/svg/CYP.svg | 2 + .../plugins/UserCountryMap/svg/CZE.svg | 1 + .../plugins/UserCountryMap/svg/DEU.svg | 1 + .../plugins/UserCountryMap/svg/DJI.svg | 2 + .../plugins/UserCountryMap/svg/DMA.svg | 2 + .../plugins/UserCountryMap/svg/DNK.svg | 1 + .../plugins/UserCountryMap/svg/DOM.svg | 2 + .../plugins/UserCountryMap/svg/DZA.svg | 2 + .../plugins/UserCountryMap/svg/ECU.svg | 2 + .../plugins/UserCountryMap/svg/EGY.svg | 2 + .../plugins/UserCountryMap/svg/ERI.svg | 2 + .../plugins/UserCountryMap/svg/ESP.svg | 2 + .../plugins/UserCountryMap/svg/EST.svg | 2 + .../plugins/UserCountryMap/svg/ETH.svg | 2 + .../plugins/UserCountryMap/svg/EU.svg | 2 + .../plugins/UserCountryMap/svg/FIN.svg | 2 + .../plugins/UserCountryMap/svg/FJI.svg | 2 + .../plugins/UserCountryMap/svg/FRA.svg | 1 + .../plugins/UserCountryMap/svg/FRO.svg | 2 + .../plugins/UserCountryMap/svg/GAB.svg | 2 + .../plugins/UserCountryMap/svg/GBR.svg | 1 + .../plugins/UserCountryMap/svg/GEO.svg | 2 + .../plugins/UserCountryMap/svg/GHA.svg | 2 + .../plugins/UserCountryMap/svg/GIN.svg | 2 + .../plugins/UserCountryMap/svg/GMB.svg | 2 + .../plugins/UserCountryMap/svg/GNB.svg | 2 + .../plugins/UserCountryMap/svg/GNQ.svg | 2 + .../plugins/UserCountryMap/svg/GRC.svg | 2 + .../plugins/UserCountryMap/svg/GRL.svg | 2 + .../plugins/UserCountryMap/svg/GTM.svg | 2 + .../plugins/UserCountryMap/svg/GUY.svg | 2 + .../plugins/UserCountryMap/svg/HND.svg | 2 + .../plugins/UserCountryMap/svg/HRV.svg | 2 + .../plugins/UserCountryMap/svg/HTI.svg | 2 + .../plugins/UserCountryMap/svg/HUN.svg | 2 + .../plugins/UserCountryMap/svg/IDN.svg | 2 + .../plugins/UserCountryMap/svg/IND.svg | 1 + .../plugins/UserCountryMap/svg/IRL.svg | 2 + .../plugins/UserCountryMap/svg/IRN.svg | 2 + .../plugins/UserCountryMap/svg/IRQ.svg | 2 + .../plugins/UserCountryMap/svg/ISL.svg | 2 + .../plugins/UserCountryMap/svg/ISR.svg | 2 + .../plugins/UserCountryMap/svg/ITA.svg | 2 + .../plugins/UserCountryMap/svg/JAM.svg | 2 + .../plugins/UserCountryMap/svg/JOR.svg | 2 + .../plugins/UserCountryMap/svg/JPN.svg | 1 + .../plugins/UserCountryMap/svg/KAZ.svg | 2 + .../plugins/UserCountryMap/svg/KEN.svg | 2 + .../plugins/UserCountryMap/svg/KGZ.svg | 2 + .../plugins/UserCountryMap/svg/KHM.svg | 2 + .../plugins/UserCountryMap/svg/KOR.svg | 2 + .../plugins/UserCountryMap/svg/KWT.svg | 2 + .../plugins/UserCountryMap/svg/LAO.svg | 2 + .../plugins/UserCountryMap/svg/LBN.svg | 2 + .../plugins/UserCountryMap/svg/LBR.svg | 2 + .../plugins/UserCountryMap/svg/LBY.svg | 2 + .../plugins/UserCountryMap/svg/LKA.svg | 2 + .../plugins/UserCountryMap/svg/LSO.svg | 2 + .../plugins/UserCountryMap/svg/LTU.svg | 2 + .../plugins/UserCountryMap/svg/LUX.svg | 2 + .../plugins/UserCountryMap/svg/LVA.svg | 2 + .../plugins/UserCountryMap/svg/MAR.svg | 2 + .../plugins/UserCountryMap/svg/MDA.svg | 2 + .../plugins/UserCountryMap/svg/MDG.svg | 2 + .../plugins/UserCountryMap/svg/MEX.svg | 2 + .../plugins/UserCountryMap/svg/MKD.svg | 2 + .../plugins/UserCountryMap/svg/MLI.svg | 2 + .../plugins/UserCountryMap/svg/MMR.svg | 1 + .../plugins/UserCountryMap/svg/MNE.svg | 2 + .../plugins/UserCountryMap/svg/MNG.svg | 2 + .../plugins/UserCountryMap/svg/MOZ.svg | 2 + .../plugins/UserCountryMap/svg/MRT.svg | 2 + .../plugins/UserCountryMap/svg/MWI.svg | 2 + .../plugins/UserCountryMap/svg/MYS.svg | 2 + .../plugins/UserCountryMap/svg/NA.svg | 2 + .../plugins/UserCountryMap/svg/NAM.svg | 2 + .../plugins/UserCountryMap/svg/NCL.svg | 2 + .../plugins/UserCountryMap/svg/NER.svg | 2 + .../plugins/UserCountryMap/svg/NFK.svg | 2 + .../plugins/UserCountryMap/svg/NGA.svg | 2 + .../plugins/UserCountryMap/svg/NIC.svg | 2 + .../plugins/UserCountryMap/svg/NLD.svg | 2 + .../plugins/UserCountryMap/svg/NOR.svg | 2 + .../plugins/UserCountryMap/svg/NPL.svg | 1 + .../plugins/UserCountryMap/svg/NZL.svg | 1 + .../plugins/UserCountryMap/svg/OC.svg | 2 + .../plugins/UserCountryMap/svg/OMN.svg | 2 + .../plugins/UserCountryMap/svg/PAK.svg | 1 + .../plugins/UserCountryMap/svg/PAN.svg | 2 + .../plugins/UserCountryMap/svg/PER.svg | 2 + .../plugins/UserCountryMap/svg/PHL.svg | 2 + .../plugins/UserCountryMap/svg/PNG.svg | 2 + .../plugins/UserCountryMap/svg/POL.svg | 1 + .../plugins/UserCountryMap/svg/PRK.svg | 2 + .../plugins/UserCountryMap/svg/PRT.svg | 2 + .../plugins/UserCountryMap/svg/PRY.svg | 2 + .../plugins/UserCountryMap/svg/QAT.svg | 2 + .../plugins/UserCountryMap/svg/ROU.svg | 2 + .../plugins/UserCountryMap/svg/RUS.svg | 2 + .../plugins/UserCountryMap/svg/RWA.svg | 2 + .../plugins/UserCountryMap/svg/SA.svg | 2 + .../plugins/UserCountryMap/svg/SAU.svg | 2 + .../plugins/UserCountryMap/svg/SDN.svg | 2 + .../plugins/UserCountryMap/svg/SDS.svg | 2 + .../plugins/UserCountryMap/svg/SEN.svg | 2 + .../plugins/UserCountryMap/svg/SLB.svg | 2 + .../plugins/UserCountryMap/svg/SLE.svg | 2 + .../plugins/UserCountryMap/svg/SLV.svg | 2 + .../plugins/UserCountryMap/svg/SOM.svg | 2 + .../plugins/UserCountryMap/svg/SRB.svg | 2 + .../plugins/UserCountryMap/svg/SUR.svg | 2 + .../plugins/UserCountryMap/svg/SVK.svg | 2 + .../plugins/UserCountryMap/svg/SVN.svg | 1 + .../plugins/UserCountryMap/svg/SWE.svg | 2 + .../plugins/UserCountryMap/svg/SWZ.svg | 2 + .../plugins/UserCountryMap/svg/SYR.svg | 2 + .../plugins/UserCountryMap/svg/TCD.svg | 2 + .../plugins/UserCountryMap/svg/TGO.svg | 2 + .../plugins/UserCountryMap/svg/THA.svg | 2 + .../plugins/UserCountryMap/svg/TIB.svg | 1 + .../plugins/UserCountryMap/svg/TJK.svg | 2 + .../plugins/UserCountryMap/svg/TKM.svg | 2 + .../plugins/UserCountryMap/svg/TLS.svg | 2 + .../plugins/UserCountryMap/svg/TTO.svg | 2 + .../plugins/UserCountryMap/svg/TUN.svg | 2 + .../plugins/UserCountryMap/svg/TUR.svg | 2 + .../plugins/UserCountryMap/svg/TWN.svg | 2 + .../plugins/UserCountryMap/svg/TZA.svg | 2 + .../plugins/UserCountryMap/svg/UGA.svg | 2 + .../plugins/UserCountryMap/svg/UKR.svg | 2 + .../plugins/UserCountryMap/svg/URY.svg | 2 + .../plugins/UserCountryMap/svg/USA.svg | 1 + .../plugins/UserCountryMap/svg/UZB.svg | 2 + .../plugins/UserCountryMap/svg/VEN.svg | 2 + .../plugins/UserCountryMap/svg/VNM.svg | 2 + .../plugins/UserCountryMap/svg/VUT.svg | 2 + .../plugins/UserCountryMap/svg/YEM.svg | 2 + .../plugins/UserCountryMap/svg/ZAF.svg | 2 + .../plugins/UserCountryMap/svg/ZMB.svg | 2 + .../plugins/UserCountryMap/svg/ZWE.svg | 2 + .../plugins/UserCountryMap/svg/tmp.svg | 2 + .../plugins/UserCountryMap/svg/world.svg | 1 + .../UserCountryMap/templates/realtimeMap.twig | 29 + .../UserCountryMap/templates/visitorMap.twig | 106 + www/analytics/plugins/UserSettings/API.php | 243 + .../plugins/UserSettings/Archiver.php | 171 + .../plugins/UserSettings/Controller.php | 89 + .../plugins/UserSettings/UserSettings.php | 465 + .../plugins/UserSettings/functions.php | 270 + .../UserSettings/images/browsers/AA.gif | Bin 0 -> 1092 bytes .../UserSettings/images/browsers/AB.gif | Bin 0 -> 1064 bytes .../UserSettings/images/browsers/AG.gif | Bin 0 -> 351 bytes .../UserSettings/images/browsers/AM.gif | Bin 0 -> 198 bytes .../UserSettings/images/browsers/AN.gif | Bin 0 -> 144 bytes .../UserSettings/images/browsers/AR.gif | Bin 0 -> 1057 bytes .../UserSettings/images/browsers/AV.gif | Bin 0 -> 151 bytes .../UserSettings/images/browsers/AW.gif | Bin 0 -> 574 bytes .../UserSettings/images/browsers/B2.gif | Bin 0 -> 1070 bytes .../UserSettings/images/browsers/BB.gif | Bin 0 -> 576 bytes .../UserSettings/images/browsers/BD.gif | Bin 0 -> 1051 bytes .../UserSettings/images/browsers/BE.gif | Bin 0 -> 1042 bytes .../UserSettings/images/browsers/BP.gif | Bin 0 -> 1070 bytes .../UserSettings/images/browsers/BX.gif | Bin 0 -> 522 bytes .../UserSettings/images/browsers/CA.gif | Bin 0 -> 573 bytes .../UserSettings/images/browsers/CD.gif | Bin 0 -> 1045 bytes .../UserSettings/images/browsers/CF.gif | Bin 0 -> 1074 bytes .../UserSettings/images/browsers/CH.gif | Bin 0 -> 1074 bytes .../UserSettings/images/browsers/CK.gif | Bin 0 -> 1024 bytes .../UserSettings/images/browsers/CM.gif | Bin 0 -> 1074 bytes .../UserSettings/images/browsers/CN.gif | Bin 0 -> 998 bytes .../UserSettings/images/browsers/CO.gif | Bin 0 -> 1042 bytes .../UserSettings/images/browsers/CP.gif | Bin 0 -> 998 bytes .../UserSettings/images/browsers/CS.gif | Bin 0 -> 549 bytes .../UserSettings/images/browsers/DF.gif | Bin 0 -> 545 bytes .../UserSettings/images/browsers/DI.gif | Bin 0 -> 1068 bytes .../UserSettings/images/browsers/EL.gif | Bin 0 -> 90 bytes .../UserSettings/images/browsers/EP.gif | Bin 0 -> 316 bytes .../UserSettings/images/browsers/ES.gif | Bin 0 -> 1013 bytes .../UserSettings/images/browsers/FB.gif | Bin 0 -> 254 bytes .../UserSettings/images/browsers/FD.gif | Bin 0 -> 1050 bytes .../UserSettings/images/browsers/FE.gif | Bin 0 -> 550 bytes .../UserSettings/images/browsers/FF.gif | Bin 0 -> 197 bytes .../UserSettings/images/browsers/FL.gif | Bin 0 -> 1034 bytes .../UserSettings/images/browsers/FN.gif | Bin 0 -> 1033 bytes .../UserSettings/images/browsers/GA.gif | Bin 0 -> 159 bytes .../UserSettings/images/browsers/GE.gif | Bin 0 -> 997 bytes .../UserSettings/images/browsers/HA.gif | Bin 0 -> 1009 bytes .../UserSettings/images/browsers/HJ.gif | Bin 0 -> 1022 bytes .../UserSettings/images/browsers/IA.gif | Bin 0 -> 391 bytes .../UserSettings/images/browsers/IB.gif | Bin 0 -> 168 bytes .../UserSettings/images/browsers/IC.gif | Bin 0 -> 131 bytes .../UserSettings/images/browsers/ID.gif | Bin 0 -> 1057 bytes .../UserSettings/images/browsers/IE.gif | Bin 0 -> 999 bytes .../UserSettings/images/browsers/IR.gif | Bin 0 -> 610 bytes .../UserSettings/images/browsers/IW.gif | Bin 0 -> 1066 bytes .../UserSettings/images/browsers/KI.gif | Bin 0 -> 1050 bytes .../UserSettings/images/browsers/KM.gif | Bin 0 -> 180 bytes .../UserSettings/images/browsers/KO.gif | Bin 0 -> 986 bytes .../UserSettings/images/browsers/KP.gif | Bin 0 -> 1037 bytes .../UserSettings/images/browsers/KZ.gif | Bin 0 -> 1061 bytes .../UserSettings/images/browsers/LI.gif | Bin 0 -> 104 bytes .../UserSettings/images/browsers/LS.gif | Bin 0 -> 1086 bytes .../UserSettings/images/browsers/LX.gif | Bin 0 -> 104 bytes .../UserSettings/images/browsers/MC.gif | Bin 0 -> 1023 bytes .../UserSettings/images/browsers/MI.gif | Bin 0 -> 1025 bytes .../UserSettings/images/browsers/MO.gif | Bin 0 -> 192 bytes .../UserSettings/images/browsers/MS.gif | Bin 0 -> 1094 bytes .../UserSettings/images/browsers/MX.gif | Bin 0 -> 985 bytes .../UserSettings/images/browsers/NB.gif | Bin 0 -> 977 bytes .../UserSettings/images/browsers/NF.gif | Bin 0 -> 612 bytes .../UserSettings/images/browsers/NL.gif | Bin 0 -> 1081 bytes .../UserSettings/images/browsers/NP.gif | Bin 0 -> 1020 bytes .../UserSettings/images/browsers/NS.gif | Bin 0 -> 98 bytes .../UserSettings/images/browsers/OB.gif | Bin 0 -> 1010 bytes .../UserSettings/images/browsers/ON.gif | Bin 0 -> 635 bytes .../UserSettings/images/browsers/OP.gif | Bin 0 -> 987 bytes .../UserSettings/images/browsers/OR.gif | Bin 0 -> 1024 bytes .../UserSettings/images/browsers/OV.gif | Bin 0 -> 978 bytes .../UserSettings/images/browsers/OW.gif | Bin 0 -> 197 bytes .../UserSettings/images/browsers/PL.gif | Bin 0 -> 1058 bytes .../UserSettings/images/browsers/PM.gif | Bin 0 -> 1082 bytes .../UserSettings/images/browsers/PO.gif | Bin 0 -> 1065 bytes .../UserSettings/images/browsers/PU.gif | Bin 0 -> 1094 bytes .../UserSettings/images/browsers/PW.gif | Bin 0 -> 1082 bytes .../UserSettings/images/browsers/PX.gif | Bin 0 -> 170 bytes .../UserSettings/images/browsers/RK.gif | Bin 0 -> 1035 bytes .../UserSettings/images/browsers/SA.gif | Bin 0 -> 1008 bytes .../UserSettings/images/browsers/SF.gif | Bin 0 -> 190 bytes .../UserSettings/images/browsers/SL.gif | Bin 0 -> 900 bytes .../UserSettings/images/browsers/SM.gif | Bin 0 -> 391 bytes .../UserSettings/images/browsers/TB.gif | Bin 0 -> 1014 bytes .../UserSettings/images/browsers/TI.gif | Bin 0 -> 595 bytes .../UserSettings/images/browsers/TZ.gif | Bin 0 -> 973 bytes .../UserSettings/images/browsers/UC.gif | Bin 0 -> 994 bytes .../UserSettings/images/browsers/UN.gif | Bin 0 -> 80 bytes .../UserSettings/images/browsers/UNK.gif | Bin 0 -> 80 bytes .../UserSettings/images/browsers/WE.gif | Bin 0 -> 1012 bytes .../UserSettings/images/browsers/WO.gif | Bin 0 -> 1065 bytes .../UserSettings/images/browsers/WP.gif | Bin 0 -> 982 bytes .../UserSettings/images/browsers/YA.gif | Bin 0 -> 1048 bytes .../plugins/UserSettings/images/os/3DS.gif | Bin 0 -> 1085 bytes .../plugins/UserSettings/images/os/AIX.gif | Bin 0 -> 176 bytes .../plugins/UserSettings/images/os/AMG.gif | Bin 0 -> 1001 bytes .../plugins/UserSettings/images/os/AMI.gif | Bin 0 -> 1055 bytes .../plugins/UserSettings/images/os/AND.gif | Bin 0 -> 144 bytes .../plugins/UserSettings/images/os/ARL.gif | Bin 0 -> 947 bytes .../plugins/UserSettings/images/os/BBX.gif | Bin 0 -> 590 bytes .../plugins/UserSettings/images/os/BEO.gif | Bin 0 -> 1035 bytes .../plugins/UserSettings/images/os/BLB.gif | Bin 0 -> 576 bytes .../plugins/UserSettings/images/os/BSD.gif | Bin 0 -> 1016 bytes .../plugins/UserSettings/images/os/BTR.gif | Bin 0 -> 946 bytes .../plugins/UserSettings/images/os/CES.gif | Bin 0 -> 1011 bytes .../plugins/UserSettings/images/os/COS.gif | Bin 0 -> 1074 bytes .../plugins/UserSettings/images/os/DFB.gif | Bin 0 -> 326 bytes .../plugins/UserSettings/images/os/DSI.gif | Bin 0 -> 1076 bytes .../plugins/UserSettings/images/os/FED.gif | Bin 0 -> 1022 bytes .../plugins/UserSettings/images/os/FOS.gif | Bin 0 -> 197 bytes .../plugins/UserSettings/images/os/GNT.gif | Bin 0 -> 1075 bytes .../plugins/UserSettings/images/os/GTV.gif | Bin 0 -> 1614 bytes .../plugins/UserSettings/images/os/HPX.gif | Bin 0 -> 191 bytes .../plugins/UserSettings/images/os/IOS.gif | Bin 0 -> 591 bytes .../plugins/UserSettings/images/os/IPA.gif | Bin 0 -> 587 bytes .../plugins/UserSettings/images/os/IPD.gif | Bin 0 -> 351 bytes .../plugins/UserSettings/images/os/IPH.gif | Bin 0 -> 577 bytes .../plugins/UserSettings/images/os/IRI.gif | Bin 0 -> 152 bytes .../plugins/UserSettings/images/os/KBT.gif | Bin 0 -> 998 bytes .../plugins/UserSettings/images/os/KNO.gif | Bin 0 -> 985 bytes .../plugins/UserSettings/images/os/LBT.gif | Bin 0 -> 951 bytes .../plugins/UserSettings/images/os/LIN.gif | Bin 0 -> 170 bytes .../plugins/UserSettings/images/os/MAC.gif | Bin 0 -> 171 bytes .../plugins/UserSettings/images/os/MAE.gif | Bin 0 -> 137 bytes .../plugins/UserSettings/images/os/MDR.gif | Bin 0 -> 918 bytes .../plugins/UserSettings/images/os/MIN.gif | Bin 0 -> 1009 bytes .../plugins/UserSettings/images/os/NBS.gif | Bin 0 -> 168 bytes .../plugins/UserSettings/images/os/NDS.gif | Bin 0 -> 1061 bytes .../plugins/UserSettings/images/os/OBS.gif | Bin 0 -> 571 bytes .../plugins/UserSettings/images/os/OS2.gif | Bin 0 -> 162 bytes .../plugins/UserSettings/images/os/POS.gif | Bin 0 -> 1060 bytes .../plugins/UserSettings/images/os/PPY.gif | Bin 0 -> 1037 bytes .../plugins/UserSettings/images/os/PS3.gif | Bin 0 -> 628 bytes .../plugins/UserSettings/images/os/PSP.gif | Bin 0 -> 592 bytes .../plugins/UserSettings/images/os/PSV.gif | Bin 0 -> 200 bytes .../plugins/UserSettings/images/os/QNX.gif | Bin 0 -> 241 bytes .../plugins/UserSettings/images/os/RHT.gif | Bin 0 -> 952 bytes .../plugins/UserSettings/images/os/ROS.gif | Bin 0 -> 956 bytes .../plugins/UserSettings/images/os/SAF.gif | Bin 0 -> 242 bytes .../plugins/UserSettings/images/os/SBA.gif | Bin 0 -> 990 bytes .../plugins/UserSettings/images/os/SLW.gif | Bin 0 -> 883 bytes .../plugins/UserSettings/images/os/SOS.gif | Bin 0 -> 1036 bytes .../plugins/UserSettings/images/os/SSE.gif | Bin 0 -> 1066 bytes .../plugins/UserSettings/images/os/SYL.gif | Bin 0 -> 1017 bytes .../plugins/UserSettings/images/os/SYM.gif | Bin 0 -> 1042 bytes .../plugins/UserSettings/images/os/T64.gif | Bin 0 -> 220 bytes .../plugins/UserSettings/images/os/TIZ.gif | Bin 0 -> 958 bytes .../plugins/UserSettings/images/os/UBT.gif | Bin 0 -> 986 bytes .../plugins/UserSettings/images/os/UNK.gif | Bin 0 -> 80 bytes .../plugins/UserSettings/images/os/VMS.gif | Bin 0 -> 572 bytes .../plugins/UserSettings/images/os/W2K.gif | Bin 0 -> 185 bytes .../plugins/UserSettings/images/os/W61.gif | Bin 0 -> 1060 bytes .../plugins/UserSettings/images/os/W65.gif | Bin 0 -> 1060 bytes .../plugins/UserSettings/images/os/W75.gif | Bin 0 -> 1089 bytes .../plugins/UserSettings/images/os/W95.gif | Bin 0 -> 185 bytes .../plugins/UserSettings/images/os/W98.gif | Bin 0 -> 185 bytes .../plugins/UserSettings/images/os/WCE.gif | Bin 0 -> 185 bytes .../plugins/UserSettings/images/os/WI7.gif | Bin 0 -> 191 bytes .../plugins/UserSettings/images/os/WI8.gif | Bin 0 -> 925 bytes .../plugins/UserSettings/images/os/WII.gif | Bin 0 -> 617 bytes .../plugins/UserSettings/images/os/WIN.gif | Bin 0 -> 191 bytes .../plugins/UserSettings/images/os/WIU.gif | Bin 0 -> 310 bytes .../plugins/UserSettings/images/os/WME.gif | Bin 0 -> 1025 bytes .../plugins/UserSettings/images/os/WMO.gif | Bin 0 -> 1060 bytes .../plugins/UserSettings/images/os/WNT.gif | Bin 0 -> 185 bytes .../plugins/UserSettings/images/os/WOS.gif | Bin 0 -> 70 bytes .../plugins/UserSettings/images/os/WP7.gif | Bin 0 -> 1089 bytes .../plugins/UserSettings/images/os/WPH.gif | Bin 0 -> 1089 bytes .../plugins/UserSettings/images/os/WRT.gif | Bin 0 -> 925 bytes .../plugins/UserSettings/images/os/WS3.gif | Bin 0 -> 191 bytes .../plugins/UserSettings/images/os/WVI.gif | Bin 0 -> 191 bytes .../plugins/UserSettings/images/os/WXP.gif | Bin 0 -> 191 bytes .../plugins/UserSettings/images/os/XBT.gif | Bin 0 -> 968 bytes .../plugins/UserSettings/images/os/XBX.gif | Bin 0 -> 1043 bytes .../plugins/UserSettings/images/os/YNS.gif | Bin 0 -> 913 bytes .../UserSettings/images/plugins/cookie.gif | Bin 0 -> 211 bytes .../UserSettings/images/plugins/director.gif | Bin 0 -> 198 bytes .../UserSettings/images/plugins/flash.gif | Bin 0 -> 1018 bytes .../UserSettings/images/plugins/gears.gif | Bin 0 -> 558 bytes .../UserSettings/images/plugins/java.gif | Bin 0 -> 565 bytes .../UserSettings/images/plugins/pdf.gif | Bin 0 -> 1021 bytes .../UserSettings/images/plugins/quicktime.gif | Bin 0 -> 1003 bytes .../images/plugins/realplayer.gif | Bin 0 -> 1025 bytes .../images/plugins/silverlight.gif | Bin 0 -> 1012 bytes .../images/plugins/windowsmedia.gif | Bin 0 -> 1026 bytes .../UserSettings/images/screens/dual.gif | Bin 0 -> 1082 bytes .../UserSettings/images/screens/mobile.gif | Bin 0 -> 324 bytes .../UserSettings/images/screens/normal.gif | Bin 0 -> 1088 bytes .../UserSettings/images/screens/unknown.gif | Bin 0 -> 80 bytes .../UserSettings/images/screens/wide.gif | Bin 0 -> 1025 bytes .../plugins/UserSettings/templates/index.twig | 27 + www/analytics/plugins/UsersManager/API.php | 646 + .../plugins/UsersManager/Controller.php | 340 + .../UsersManager/LastSeenTimeLogger.php | 72 + www/analytics/plugins/UsersManager/Model.php | 274 + .../plugins/UsersManager/UsersManager.php | 154 + .../plugins/UsersManager/images/add.png | Bin 0 -> 1366 bytes .../plugins/UsersManager/images/no-access.png | Bin 0 -> 653 bytes .../plugins/UsersManager/images/ok.png | Bin 0 -> 851 bytes .../UsersManager/javascripts/usersManager.js | 302 + .../UsersManager/javascripts/usersSettings.js | 96 + .../stylesheets/usersManager.less | 19 + .../plugins/UsersManager/templates/index.twig | 210 + .../UsersManager/templates/userSettings.twig | 181 + www/analytics/plugins/VisitFrequency/API.php | 84 + .../plugins/VisitFrequency/Controller.php | 105 + .../plugins/VisitFrequency/VisitFrequency.php | 70 + .../VisitFrequency/templates/_sparklines.twig | 22 + .../templates/getSparklines.twig | 1 + .../VisitFrequency/templates/index.twig | 9 + www/analytics/plugins/VisitTime/API.php | 156 + www/analytics/plugins/VisitTime/Archiver.php | 86 + .../plugins/VisitTime/Controller.php | 41 + www/analytics/plugins/VisitTime/VisitTime.php | 234 + www/analytics/plugins/VisitTime/functions.php | 40 + .../plugins/VisitTime/templates/index.twig | 9 + www/analytics/plugins/VisitorInterest/API.php | 114 + .../plugins/VisitorInterest/Archiver.php | 154 + .../plugins/VisitorInterest/Controller.php | 59 + .../VisitorInterest/VisitorInterest.php | 243 + .../VisitorInterest/templates/index.twig | 11 + www/analytics/plugins/VisitsSummary/API.php | 158 + .../plugins/VisitsSummary/Controller.php | 187 + .../plugins/VisitsSummary/VisitsSummary.php | 80 + .../VisitsSummary/stylesheets/datatable.less | 6 + .../VisitsSummary/templates/_sparklines.twig | 69 + .../templates/getSparklines.twig | 1 + .../VisitsSummary/templates/index.twig | 16 + .../plugins/Widgetize/Controller.php | 64 + www/analytics/plugins/Widgetize/Widgetize.php | 65 + .../Widgetize/javascripts/widgetize.js | 84 + .../Widgetize/stylesheets/widgetize.less | 31 + .../plugins/Widgetize/templates/iframe.twig | 22 + .../Widgetize/templates/iframe_empty.twig | 1 + .../plugins/Widgetize/templates/index.twig | 69 + .../Widgetize/templates/testJsInclude1.twig | 22 + .../Widgetize/templates/testJsInclude2.twig | 27 + .../plugins/Zeitgeist/images/affix-arrow.png | Bin 0 -> 3179 bytes .../plugins/Zeitgeist/images/annotations.png | Bin 0 -> 1627 bytes .../Zeitgeist/images/annotations_starred.png | Bin 0 -> 1618 bytes .../plugins/Zeitgeist/images/arr_r.png | Bin 0 -> 195 bytes .../Zeitgeist/images/background-submit.png | Bin 0 -> 1347 bytes .../plugins/Zeitgeist/images/chart_bar.png | Bin 0 -> 170 bytes .../Zeitgeist/images/chart_line_edit.png | Bin 0 -> 993 bytes .../plugins/Zeitgeist/images/chart_pie.png | Bin 0 -> 355 bytes .../plugins/Zeitgeist/images/close.png | Bin 0 -> 1089 bytes .../Zeitgeist/images/collapsed_arrows.gif | Bin 0 -> 54 bytes .../Zeitgeist/images/configure-highlight.png | Bin 0 -> 933 bytes .../plugins/Zeitgeist/images/configure.png | Bin 0 -> 387 bytes .../Zeitgeist/images/dashboard_h_bg.png | Bin 0 -> 162 bytes .../Zeitgeist/images/dashboard_h_bg_hover.png | Bin 0 -> 333 bytes .../images/data_table_footer_active_item.png | Bin 0 -> 145 bytes .../Zeitgeist/images/datepicker_arr_l.png | Bin 0 -> 191 bytes .../Zeitgeist/images/datepicker_arr_r.png | Bin 0 -> 196 bytes .../plugins/Zeitgeist/images/delete.png | Bin 0 -> 2175 bytes .../plugins/Zeitgeist/images/download.png | Bin 0 -> 734 bytes .../images/ecommerceAbandonedCart.gif | Bin 0 -> 369 bytes .../Zeitgeist/images/ecommerceOrder.gif | Bin 0 -> 570 bytes .../plugins/Zeitgeist/images/email.png | Bin 0 -> 754 bytes .../plugins/Zeitgeist/images/error.png | Bin 0 -> 1150 bytes .../plugins/Zeitgeist/images/error_medium.png | Bin 0 -> 2622 bytes .../plugins/Zeitgeist/images/event.png | Bin 0 -> 164 bytes .../Zeitgeist/images/expanded_arrows.gif | Bin 0 -> 60 bytes .../plugins/Zeitgeist/images/export.png | Bin 0 -> 219 bytes .../plugins/Zeitgeist/images/feed.png | Bin 0 -> 691 bytes .../plugins/Zeitgeist/images/fullscreen.png | Bin 0 -> 346 bytes .../plugins/Zeitgeist/images/goal.png | Bin 0 -> 270 bytes .../plugins/Zeitgeist/images/help.png | Bin 0 -> 942 bytes .../plugins/Zeitgeist/images/html_icon.png | Bin 0 -> 3503 bytes .../plugins/Zeitgeist/images/ico_alert.png | Bin 0 -> 1112 bytes .../plugins/Zeitgeist/images/ico_delete.png | Bin 0 -> 231 bytes .../plugins/Zeitgeist/images/ico_edit.png | Bin 0 -> 255 bytes .../plugins/Zeitgeist/images/ico_info.png | Bin 0 -> 978 bytes .../Zeitgeist/images/icon-calendar.gif | Bin 0 -> 331 bytes .../plugins/Zeitgeist/images/image.png | Bin 0 -> 306 bytes .../plugins/Zeitgeist/images/inp_bg.png | Bin 0 -> 137 bytes .../plugins/Zeitgeist/images/li_dbl_gray.gif | Bin 0 -> 48 bytes .../plugins/Zeitgeist/images/link.gif | Bin 0 -> 75 bytes .../plugins/Zeitgeist/images/loading-blue.gif | Bin 0 -> 723 bytes .../plugins/Zeitgeist/images/login-sprite.png | Bin 0 -> 10200 bytes .../plugins/Zeitgeist/images/logo-header.png | Bin 0 -> 3682 bytes .../Zeitgeist/images/logo-marketplace.png | Bin 0 -> 2927 bytes .../plugins/Zeitgeist/images/logo.png | Bin 0 -> 11152 bytes .../plugins/Zeitgeist/images/logo.svg | 9 + .../plugins/Zeitgeist/images/maximise.png | Bin 0 -> 3182 bytes .../plugins/Zeitgeist/images/minimise.png | Bin 0 -> 2869 bytes .../plugins/Zeitgeist/images/minus.png | Bin 0 -> 176 bytes .../plugins/Zeitgeist/images/newtab.png | Bin 0 -> 509 bytes www/analytics/plugins/Zeitgeist/images/ok.png | Bin 0 -> 626 bytes .../Zeitgeist/images/paypal_subscribe.gif | Bin 0 -> 3080 bytes .../plugins/Zeitgeist/images/plus.png | Bin 0 -> 174 bytes .../plugins/Zeitgeist/images/plus_blue.png | Bin 0 -> 157 bytes .../plugins/Zeitgeist/images/refresh.png | Bin 0 -> 2978 bytes .../plugins/Zeitgeist/images/reload.png | Bin 0 -> 892 bytes .../Zeitgeist/images/row_evolution.png | Bin 0 -> 1934 bytes .../Zeitgeist/images/row_evolution_hover.png | Bin 0 -> 601 bytes .../plugins/Zeitgeist/images/search_bg.png | Bin 0 -> 384 bytes .../plugins/Zeitgeist/images/search_ico.png | Bin 0 -> 175 bytes .../Zeitgeist/images/sites_selection.png | Bin 0 -> 120 bytes .../plugins/Zeitgeist/images/smileyprog_0.png | Bin 0 -> 4045 bytes .../plugins/Zeitgeist/images/smileyprog_1.png | Bin 0 -> 4268 bytes .../plugins/Zeitgeist/images/smileyprog_2.png | Bin 0 -> 4292 bytes .../plugins/Zeitgeist/images/smileyprog_3.png | Bin 0 -> 4589 bytes .../plugins/Zeitgeist/images/smileyprog_4.png | Bin 0 -> 4733 bytes .../Zeitgeist/images/sort_subtable_asc.png | Bin 0 -> 173 bytes .../images/sort_subtable_asc_light.png | Bin 0 -> 2866 bytes .../Zeitgeist/images/sort_subtable_desc.png | Bin 0 -> 171 bytes .../images/sort_subtable_desc_light.png | Bin 0 -> 286 bytes .../plugins/Zeitgeist/images/sortasc.png | Bin 0 -> 173 bytes .../plugins/Zeitgeist/images/sortdesc.png | Bin 0 -> 171 bytes .../plugins/Zeitgeist/images/star.png | Bin 0 -> 757 bytes .../plugins/Zeitgeist/images/star_empty.png | Bin 0 -> 658 bytes .../Zeitgeist/images/success_medium.png | Bin 0 -> 1346 bytes .../plugins/Zeitgeist/images/table.png | Bin 0 -> 151 bytes .../plugins/Zeitgeist/images/table_more.png | Bin 0 -> 200 bytes .../plugins/Zeitgeist/images/tagcloud.png | Bin 0 -> 202 bytes .../plugins/Zeitgeist/images/video_play.png | Bin 0 -> 517 bytes .../plugins/Zeitgeist/images/warning.png | Bin 0 -> 571 bytes .../Zeitgeist/images/warning_medium.png | Bin 0 -> 1283 bytes .../Zeitgeist/images/warning_small.png | Bin 0 -> 1083 bytes .../plugins/Zeitgeist/images/zoom-out.png | Bin 0 -> 289 bytes .../Zeitgeist/javascripts/ajaxHelper.js | 450 + .../Zeitgeist/javascripts/piwikHelper.js | 464 + www/analytics/plugins/Zeitgeist/plugin.json | 5 + .../plugins/Zeitgeist/stylesheets/base.less | 28 + .../stylesheets/general/_default.less | 115 + .../Zeitgeist/stylesheets/general/_form.less | 126 + .../stylesheets/general/_jqueryUI.less | 235 + .../Zeitgeist/stylesheets/general/_misc.less | 41 + .../Zeitgeist/stylesheets/general/_utils.less | 30 + .../plugins/Zeitgeist/stylesheets/ieonly.css | 35 + .../plugins/Zeitgeist/stylesheets/rtl.css | 1 + .../stylesheets/simple_structure.css | 100 + .../Zeitgeist/stylesheets/ui/_dataTable.less | 3 + .../Zeitgeist/stylesheets/ui/_header.less | 59 + .../stylesheets/ui/_headerMessage.less | 67 + .../stylesheets/ui/_languageSelect.less | 39 + .../Zeitgeist/stylesheets/ui/_loading.less | 26 + .../stylesheets/ui/_periodSelect.less | 81 + .../Zeitgeist/stylesheets/ui/_siteSelect.less | 176 + .../Zeitgeist/templates/_iframeBuster.twig | 11 + .../Zeitgeist/templates/_jsCssIncludes.twig | 7 + .../templates/_jsGlobalVariables.twig | 39 + .../Zeitgeist/templates/_piwikTag.twig | 30 + .../Zeitgeist/templates/_sparklineFooter.twig | 5 + .../plugins/Zeitgeist/templates/admin.twig | 59 + .../Zeitgeist/templates/ajaxMacros.twig | 18 + .../Zeitgeist/templates/dashboard.twig | 50 + .../plugins/Zeitgeist/templates/empty.twig | 2 + .../Zeitgeist/templates/genericForm.twig | 36 + .../Zeitgeist/templates/javascriptCode.tpl | 15 + .../plugins/Zeitgeist/templates/macros.twig | 23 + .../templates/simpleLayoutFooter.tpl | 3 + .../templates/simpleLayoutHeader.tpl | 11 + www/analytics/robots.txt | 0 www/analytics/tests/README.md | 140 + www/analytics/tmp/.htaccess | 13 + www/analytics/vendor/.htaccess | 33 + www/analytics/vendor/autoload.php | 7 + www/analytics/vendor/composer/ClassLoader.php | 378 + .../vendor/composer/autoload_classmap.php | 14 + .../vendor/composer/autoload_files.php | 11 + .../vendor/composer/autoload_namespaces.php | 12 + .../vendor/composer/autoload_psr4.php | 9 + .../vendor/composer/autoload_real.php | 58 + www/analytics/vendor/composer/installed.json | 299 + www/analytics/vendor/leafo/lessphp/.gitignore | 8 + .../vendor/leafo/lessphp/.travis.yml | 5 + www/analytics/vendor/leafo/lessphp/LICENSE | 660 + www/analytics/vendor/leafo/lessphp/Makefile | 7 + www/analytics/vendor/leafo/lessphp/README.md | 96 + .../vendor/leafo/lessphp/composer.json | 25 + .../vendor/leafo/lessphp/docs/docs.md | 1400 + .../vendor/leafo/lessphp/lessc.inc.php | 3675 ++ www/analytics/vendor/leafo/lessphp/lessify | 23 + .../vendor/leafo/lessphp/lessify.inc.php | 447 + www/analytics/vendor/leafo/lessphp/package.sh | 34 + www/analytics/vendor/leafo/lessphp/plessc | 250 + .../vendor/mustangostang/spyc/COPYING | 21 + .../vendor/mustangostang/spyc/README | 159 + .../vendor/mustangostang/spyc/Spyc.php | 1045 + .../vendor/mustangostang/spyc/composer.json | 27 + .../mustangostang/spyc/examples/yaml-dump.php | 25 + .../mustangostang/spyc/examples/yaml-load.php | 21 + .../vendor/mustangostang/spyc/php4/5to4.php | 17 + .../vendor/mustangostang/spyc/php4/spyc.php4 | 1023 + .../vendor/mustangostang/spyc/php4/test.php4 | 162 + .../vendor/mustangostang/spyc/spyc.yaml | 206 + .../vendor/piwik/device-detector/.gitignore | 3 + .../vendor/piwik/device-detector/.travis.yml | 13 + .../piwik/device-detector/DeviceDetector.php | 967 + .../vendor/piwik/device-detector/README.md | 7 + .../piwik/device-detector/composer.json | 28 + .../device-detector/regexes/browsers.yml | 540 + .../piwik/device-detector/regexes/mobiles.yml | 1322 + .../piwik/device-detector/regexes/oss.yml | 494 + .../device-detector/regexes/televisions.yml | 242 + .../Symfony/Component/Console/.gitignore | 3 + .../Symfony/Component/Console/Application.php | 1101 + .../Symfony/Component/Console/CHANGELOG.md | 45 + .../Component/Console/Command/Command.php | 622 + .../Component/Console/Command/HelpCommand.php | 91 + .../Component/Console/Command/ListCommand.php | 95 + .../Component/Console/ConsoleEvents.php | 55 + .../Descriptor/ApplicationDescription.php | 153 + .../Console/Descriptor/Descriptor.php | 119 + .../Descriptor/DescriptorInterface.php | 31 + .../Console/Descriptor/JsonDescriptor.php | 165 + .../Console/Descriptor/MarkdownDescriptor.php | 139 + .../Console/Descriptor/TextDescriptor.php | 229 + .../Console/Descriptor/XmlDescriptor.php | 264 + .../Console/Event/ConsoleCommandEvent.php | 21 + .../Component/Console/Event/ConsoleEvent.php | 67 + .../Console/Event/ConsoleExceptionEvent.php | 67 + .../Console/Event/ConsoleTerminateEvent.php | 58 + .../Console/Formatter/OutputFormatter.php | 236 + .../Formatter/OutputFormatterInterface.php | 83 + .../Formatter/OutputFormatterStyle.php | 222 + .../OutputFormatterStyleInterface.php | 72 + .../Formatter/OutputFormatterStyleStack.php | 121 + .../Console/Helper/DescriptorHelper.php | 96 + .../Component/Console/Helper/DialogHelper.php | 473 + .../Console/Helper/FormatterHelper.php | 80 + .../Component/Console/Helper/Helper.php | 62 + .../Console/Helper/HelperInterface.php | 49 + .../Component/Console/Helper/HelperSet.php | 108 + .../Console/Helper/InputAwareHelper.php | 33 + .../Console/Helper/ProgressHelper.php | 452 + .../Component/Console/Helper/TableHelper.php | 520 + .../Component/Console/Input/ArgvInput.php | 351 + .../Component/Console/Input/ArrayInput.php | 209 + .../Symfony/Component/Console/Input/Input.php | 226 + .../Component/Console/Input/InputArgument.php | 132 + .../Console/Input/InputAwareInterface.php | 28 + .../Console/Input/InputDefinition.php | 458 + .../Console/Input/InputInterface.php | 152 + .../Component/Console/Input/InputOption.php | 212 + .../Component/Console/Input/StringInput.php | 85 + .../console/Symfony/Component/Console/LICENSE | 19 + .../Console/Output/BufferedOutput.php | 48 + .../Console/Output/ConsoleOutput.php | 113 + .../Console/Output/ConsoleOutputInterface.php | 35 + .../Component/Console/Output/NullOutput.php | 93 + .../Component/Console/Output/Output.php | 165 + .../Console/Output/OutputInterface.php | 113 + .../Component/Console/Output/StreamOutput.php | 107 + .../Symfony/Component/Console/README.md | 63 + .../Symfony/Component/Console/Shell.php | 228 + .../Console/Tester/ApplicationTester.php | 128 + .../Console/Tester/CommandTester.php | 132 + .../Symfony/Component/Console/composer.json | 37 + .../Component/Console/phpunit.xml.dist | 30 + .../vendor/tedivm/jshrink/.gitignore | 7 + .../vendor/tedivm/jshrink/.travis.yml | 5 + www/analytics/vendor/tedivm/jshrink/LICENSE | 24 + www/analytics/vendor/tedivm/jshrink/README.md | 21 + .../vendor/tedivm/jshrink/composer.json | 20 + .../tedivm/jshrink/src/JShrink/Minifier.php | 470 + www/analytics/vendor/twig/twig/.editorconfig | 18 + www/analytics/vendor/twig/twig/.gitignore | 2 + www/analytics/vendor/twig/twig/.travis.yml | 21 + www/analytics/vendor/twig/twig/CHANGELOG | 677 + www/analytics/vendor/twig/twig/LICENSE | 31 + www/analytics/vendor/twig/twig/README.rst | 15 + www/analytics/vendor/twig/twig/composer.json | 42 + .../vendor/twig/twig/ext/twig/.gitignore | 30 + .../vendor/twig/twig/ext/twig/LICENSE | 31 + .../vendor/twig/twig/ext/twig/config.m4 | 8 + .../vendor/twig/twig/ext/twig/config.w32 | 8 + .../vendor/twig/twig/ext/twig/php_twig.h | 31 + .../vendor/twig/twig/ext/twig/twig.c | 1101 + .../vendor/twig/twig/lib/Twig/Autoloader.php | 48 + .../vendor/twig/twig/lib/Twig/Compiler.php | 270 + .../twig/twig/lib/Twig/CompilerInterface.php | 35 + .../vendor/twig/twig/lib/Twig/Environment.php | 1254 + .../vendor/twig/twig/lib/Twig/Error.php | 248 + .../twig/twig/lib/Twig/Error/Loader.php | 31 + .../twig/twig/lib/Twig/Error/Runtime.php | 20 + .../twig/twig/lib/Twig/Error/Syntax.php | 20 + .../twig/lib/Twig/ExistsLoaderInterface.php | 28 + .../twig/twig/lib/Twig/ExpressionParser.php | 598 + .../vendor/twig/twig/lib/Twig/Extension.php | 93 + .../twig/twig/lib/Twig/Extension/Core.php | 1463 + .../twig/twig/lib/Twig/Extension/Debug.php | 71 + .../twig/twig/lib/Twig/Extension/Escaper.php | 107 + .../twig/lib/Twig/Extension/Optimizer.php | 35 + .../twig/twig/lib/Twig/Extension/Sandbox.php | 112 + .../twig/twig/lib/Twig/Extension/Staging.php | 113 + .../twig/lib/Twig/Extension/StringLoader.php | 64 + .../twig/twig/lib/Twig/ExtensionInterface.php | 83 + .../vendor/twig/twig/lib/Twig/Filter.php | 81 + .../twig/twig/lib/Twig/Filter/Function.php | 37 + .../twig/twig/lib/Twig/Filter/Method.php | 39 + .../vendor/twig/twig/lib/Twig/Filter/Node.php | 39 + .../twig/lib/Twig/FilterCallableInterface.php | 23 + .../twig/twig/lib/Twig/FilterInterface.php | 42 + .../vendor/twig/twig/lib/Twig/Function.php | 71 + .../twig/twig/lib/Twig/Function/Function.php | 38 + .../twig/twig/lib/Twig/Function/Method.php | 40 + .../twig/twig/lib/Twig/Function/Node.php | 39 + .../lib/Twig/FunctionCallableInterface.php | 23 + .../twig/twig/lib/Twig/FunctionInterface.php | 39 + .../vendor/twig/twig/lib/Twig/Lexer.php | 409 + .../twig/twig/lib/Twig/LexerInterface.php | 31 + .../twig/twig/lib/Twig/Loader/Array.php | 95 + .../twig/twig/lib/Twig/Loader/Chain.php | 138 + .../twig/twig/lib/Twig/Loader/Filesystem.php | 229 + .../twig/twig/lib/Twig/Loader/String.php | 59 + .../twig/twig/lib/Twig/LoaderInterface.php | 52 + .../vendor/twig/twig/lib/Twig/Markup.php | 37 + .../vendor/twig/twig/lib/Twig/Node.php | 226 + .../twig/twig/lib/Twig/Node/AutoEscape.php | 39 + .../vendor/twig/twig/lib/Twig/Node/Block.php | 44 + .../twig/lib/Twig/Node/BlockReference.php | 37 + .../vendor/twig/twig/lib/Twig/Node/Body.php | 19 + .../vendor/twig/twig/lib/Twig/Node/Do.php | 38 + .../vendor/twig/twig/lib/Twig/Node/Embed.php | 38 + .../twig/twig/lib/Twig/Node/Expression.php | 20 + .../twig/lib/Twig/Node/Expression/Array.php | 86 + .../lib/Twig/Node/Expression/AssignName.php | 28 + .../twig/lib/Twig/Node/Expression/Binary.php | 40 + .../lib/Twig/Node/Expression/Binary/Add.php | 18 + .../lib/Twig/Node/Expression/Binary/And.php | 18 + .../Node/Expression/Binary/BitwiseAnd.php | 18 + .../Twig/Node/Expression/Binary/BitwiseOr.php | 18 + .../Node/Expression/Binary/BitwiseXor.php | 18 + .../Twig/Node/Expression/Binary/Concat.php | 18 + .../lib/Twig/Node/Expression/Binary/Div.php | 18 + .../Twig/Node/Expression/Binary/EndsWith.php | 30 + .../lib/Twig/Node/Expression/Binary/Equal.php | 17 + .../Twig/Node/Expression/Binary/FloorDiv.php | 29 + .../Twig/Node/Expression/Binary/Greater.php | 17 + .../Node/Expression/Binary/GreaterEqual.php | 17 + .../lib/Twig/Node/Expression/Binary/In.php | 33 + .../lib/Twig/Node/Expression/Binary/Less.php | 17 + .../Twig/Node/Expression/Binary/LessEqual.php | 17 + .../Twig/Node/Expression/Binary/Matches.php | 28 + .../lib/Twig/Node/Expression/Binary/Mod.php | 18 + .../lib/Twig/Node/Expression/Binary/Mul.php | 18 + .../Twig/Node/Expression/Binary/NotEqual.php | 17 + .../lib/Twig/Node/Expression/Binary/NotIn.php | 33 + .../lib/Twig/Node/Expression/Binary/Or.php | 18 + .../lib/Twig/Node/Expression/Binary/Power.php | 33 + .../lib/Twig/Node/Expression/Binary/Range.php | 33 + .../Node/Expression/Binary/StartsWith.php | 28 + .../lib/Twig/Node/Expression/Binary/Sub.php | 18 + .../Twig/Node/Expression/BlockReference.php | 51 + .../twig/lib/Twig/Node/Expression/Call.php | 178 + .../lib/Twig/Node/Expression/Conditional.php | 31 + .../lib/Twig/Node/Expression/Constant.php | 23 + .../Node/Expression/ExtensionReference.php | 33 + .../twig/lib/Twig/Node/Expression/Filter.php | 36 + .../Twig/Node/Expression/Filter/Default.php | 43 + .../lib/Twig/Node/Expression/Function.php | 35 + .../twig/lib/Twig/Node/Expression/GetAttr.php | 53 + .../lib/Twig/Node/Expression/MethodCall.php | 41 + .../twig/lib/Twig/Node/Expression/Name.php | 88 + .../twig/lib/Twig/Node/Expression/Parent.php | 47 + .../lib/Twig/Node/Expression/TempName.php | 26 + .../twig/lib/Twig/Node/Expression/Test.php | 32 + .../Twig/Node/Expression/Test/Constant.php | 46 + .../lib/Twig/Node/Expression/Test/Defined.php | 54 + .../Twig/Node/Expression/Test/Divisibleby.php | 33 + .../lib/Twig/Node/Expression/Test/Even.php | 32 + .../lib/Twig/Node/Expression/Test/Null.php | 31 + .../lib/Twig/Node/Expression/Test/Odd.php | 32 + .../lib/Twig/Node/Expression/Test/Sameas.php | 29 + .../twig/lib/Twig/Node/Expression/Unary.php | 30 + .../lib/Twig/Node/Expression/Unary/Neg.php | 18 + .../lib/Twig/Node/Expression/Unary/Not.php | 18 + .../lib/Twig/Node/Expression/Unary/Pos.php | 18 + .../vendor/twig/twig/lib/Twig/Node/Flush.php | 36 + .../vendor/twig/twig/lib/Twig/Node/For.php | 112 + .../twig/twig/lib/Twig/Node/ForLoop.php | 55 + .../vendor/twig/twig/lib/Twig/Node/If.php | 66 + .../vendor/twig/twig/lib/Twig/Node/Import.php | 50 + .../twig/twig/lib/Twig/Node/Include.php | 99 + .../vendor/twig/twig/lib/Twig/Node/Macro.php | 96 + .../vendor/twig/twig/lib/Twig/Node/Module.php | 383 + .../vendor/twig/twig/lib/Twig/Node/Print.php | 39 + .../twig/twig/lib/Twig/Node/Sandbox.php | 47 + .../twig/lib/Twig/Node/SandboxedModule.php | 60 + .../twig/lib/Twig/Node/SandboxedPrint.php | 59 + .../vendor/twig/twig/lib/Twig/Node/Set.php | 101 + .../twig/twig/lib/Twig/Node/SetTemp.php | 35 + .../twig/twig/lib/Twig/Node/Spaceless.php | 40 + .../vendor/twig/twig/lib/Twig/Node/Text.php | 39 + .../twig/twig/lib/Twig/NodeInterface.php | 30 + .../twig/lib/Twig/NodeOutputInterface.php | 19 + .../twig/twig/lib/Twig/NodeTraverser.php | 88 + .../twig/lib/Twig/NodeVisitor/Escaper.php | 167 + .../twig/lib/Twig/NodeVisitor/Optimizer.php | 246 + .../lib/Twig/NodeVisitor/SafeAnalysis.php | 139 + .../twig/lib/Twig/NodeVisitor/Sandbox.php | 92 + .../twig/lib/Twig/NodeVisitorInterface.php | 47 + .../vendor/twig/twig/lib/Twig/Parser.php | 390 + .../twig/twig/lib/Twig/ParserInterface.php | 30 + .../twig/lib/Twig/Sandbox/SecurityError.php | 19 + .../twig/lib/Twig/Sandbox/SecurityPolicy.php | 119 + .../Twig/Sandbox/SecurityPolicyInterface.php | 24 + .../twig/twig/lib/Twig/SimpleFilter.php | 94 + .../twig/twig/lib/Twig/SimpleFunction.php | 84 + .../vendor/twig/twig/lib/Twig/SimpleTest.php | 46 + .../vendor/twig/twig/lib/Twig/Template.php | 484 + .../twig/twig/lib/Twig/TemplateInterface.php | 47 + .../vendor/twig/twig/lib/Twig/Test.php | 34 + .../twig/twig/lib/Twig/Test/Function.php | 35 + .../lib/Twig/Test/IntegrationTestCase.php | 154 + .../vendor/twig/twig/lib/Twig/Test/Method.php | 37 + .../vendor/twig/twig/lib/Twig/Test/Node.php | 37 + .../twig/twig/lib/Twig/Test/NodeTestCase.php | 58 + .../twig/lib/Twig/TestCallableInterface.php | 21 + .../twig/twig/lib/Twig/TestInterface.php | 26 + .../vendor/twig/twig/lib/Twig/Token.php | 216 + .../vendor/twig/twig/lib/Twig/TokenParser.php | 33 + .../twig/lib/Twig/TokenParser/AutoEscape.php | 89 + .../twig/twig/lib/Twig/TokenParser/Block.php | 81 + .../twig/twig/lib/Twig/TokenParser/Do.php | 42 + .../twig/twig/lib/Twig/TokenParser/Embed.php | 66 + .../twig/lib/Twig/TokenParser/Extends.php | 52 + .../twig/twig/lib/Twig/TokenParser/Filter.php | 61 + .../twig/twig/lib/Twig/TokenParser/Flush.php | 42 + .../twig/twig/lib/Twig/TokenParser/For.php | 135 + .../twig/twig/lib/Twig/TokenParser/From.php | 70 + .../twig/twig/lib/Twig/TokenParser/If.php | 94 + .../twig/twig/lib/Twig/TokenParser/Import.php | 49 + .../twig/lib/Twig/TokenParser/Include.php | 75 + .../twig/twig/lib/Twig/TokenParser/Macro.php | 68 + .../twig/lib/Twig/TokenParser/Sandbox.php | 68 + .../twig/twig/lib/Twig/TokenParser/Set.php | 83 + .../twig/lib/Twig/TokenParser/Spaceless.php | 59 + .../twig/twig/lib/Twig/TokenParser/Use.php | 76 + .../twig/twig/lib/Twig/TokenParserBroker.php | 136 + .../lib/Twig/TokenParserBrokerInterface.php | 45 + .../twig/lib/Twig/TokenParserInterface.php | 43 + .../vendor/twig/twig/lib/Twig/TokenStream.php | 156 + .../vendor/twig/twig/phpunit.xml.dist | 25 + www/css/desktop.css | 527 + www/css/ol.css | 1 + www/error403.html | 14 + www/error404.html | 14 + www/error500.html | 14 + www/favicon.ico | Bin 0 -> 1150 bytes www/grafics/charactergroup.jpg | Bin 0 -> 1786 bytes www/grafics/lvlup.jpg | Bin 0 -> 4531 bytes www/grafics/paper.jpg | Bin 0 -> 3445 bytes www/grafics/questlab-logo.svg | 232 + www/grafics/questlab-text.svg | 263 + www/grafics/questlab.jpg | Bin 0 -> 80563 bytes www/index.php | 51 + www/js/imagelightbox.min.js | 6 + www/js/jquery-ui.min.js | 7 + www/js/jquery.nicescroll.min.js | 111 + www/js/ol.js | 1017 + www/js/scripts.js | 221 + www/markitup/jquery.markitup.js | 665 + www/markitup/sets/default/images/bold.png | Bin 0 -> 304 bytes www/markitup/sets/default/images/clean.png | Bin 0 -> 667 bytes www/markitup/sets/default/images/image.png | Bin 0 -> 516 bytes www/markitup/sets/default/images/italic.png | Bin 0 -> 223 bytes www/markitup/sets/default/images/link.png | Bin 0 -> 343 bytes .../sets/default/images/list-bullet.png | Bin 0 -> 344 bytes .../sets/default/images/list-numeric.png | Bin 0 -> 357 bytes www/markitup/sets/default/images/picture.png | Bin 0 -> 606 bytes www/markitup/sets/default/images/preview.png | Bin 0 -> 537 bytes www/markitup/sets/default/images/stroke.png | Bin 0 -> 269 bytes www/markitup/sets/default/set.js | 30 + www/markitup/sets/default/style.css | 34 + www/markitup/sets/textile/images/bold.png | Bin 0 -> 304 bytes www/markitup/sets/textile/images/code.png | Bin 0 -> 859 bytes www/markitup/sets/textile/images/h1.png | Bin 0 -> 276 bytes www/markitup/sets/textile/images/h2.png | Bin 0 -> 304 bytes www/markitup/sets/textile/images/h3.png | Bin 0 -> 306 bytes www/markitup/sets/textile/images/h4.png | Bin 0 -> 293 bytes www/markitup/sets/textile/images/h5.png | Bin 0 -> 304 bytes www/markitup/sets/textile/images/h6.png | Bin 0 -> 310 bytes www/markitup/sets/textile/images/italic.png | Bin 0 -> 223 bytes www/markitup/sets/textile/images/link.png | Bin 0 -> 343 bytes .../sets/textile/images/list-bullet.png | Bin 0 -> 344 bytes .../sets/textile/images/list-numeric.png | Bin 0 -> 357 bytes .../sets/textile/images/paragraph.png | Bin 0 -> 361 bytes www/markitup/sets/textile/images/picture.png | Bin 0 -> 606 bytes www/markitup/sets/textile/images/preview.png | Bin 0 -> 537 bytes www/markitup/sets/textile/images/quotes.png | Bin 0 -> 743 bytes www/markitup/sets/textile/images/stroke.png | Bin 0 -> 269 bytes www/markitup/sets/textile/set.js | 40 + www/markitup/sets/textile/style.css | 60 + .../skins/markitup/images/bg-container.png | Bin 0 -> 322 bytes .../markitup/images/bg-editor-bbcode.png | Bin 0 -> 1642 bytes .../markitup/images/bg-editor-dotclear.png | Bin 0 -> 1682 bytes .../skins/markitup/images/bg-editor-html.png | Bin 0 -> 1534 bytes .../skins/markitup/images/bg-editor-json.png | Bin 0 -> 1529 bytes .../markitup/images/bg-editor-markdown.png | Bin 0 -> 1783 bytes .../markitup/images/bg-editor-textile.png | Bin 0 -> 1659 bytes .../skins/markitup/images/bg-editor-wiki.png | Bin 0 -> 1488 bytes .../skins/markitup/images/bg-editor-xml.png | Bin 0 -> 1495 bytes .../skins/markitup/images/bg-editor.png | Bin 0 -> 1745 bytes www/markitup/skins/markitup/images/handle.png | Bin 0 -> 258 bytes www/markitup/skins/markitup/images/menu.png | Bin 0 -> 254 bytes .../skins/markitup/images/submenu.png | Bin 0 -> 240 bytes www/markitup/skins/markitup/style.css | 147 + www/markitup/skins/simple/images/handle.png | Bin 0 -> 258 bytes www/markitup/skins/simple/images/menu.png | Bin 0 -> 27151 bytes www/markitup/skins/simple/images/submenu.png | Bin 0 -> 240 bytes www/markitup/skins/simple/style.css | 118 + www/markitup/templates/preview.css | 5 + www/markitup/templates/preview.html | 11 + www/sounds/notification.mp3 | Bin 0 -> 30548 bytes 4371 files changed, 1220224 insertions(+) create mode 100644 .hgignore create mode 100644 .htaccess create mode 100644 agents/BottomlevelAgent.inc create mode 100644 agents/IntermediateAgent.inc create mode 100644 agents/ToplevelAgent.inc create mode 100644 agents/bottomlevel/MailreceiverAgent.inc create mode 100644 agents/bottomlevel/MenuAgent.inc create mode 100644 agents/bottomlevel/MoodpicAgent.inc create mode 100644 agents/bottomlevel/QuestgroupshierarchypathAgent.inc create mode 100644 agents/bottomlevel/SeminarybarAgent.inc create mode 100644 agents/bottomlevel/SeminarymenuAgent.inc create mode 100644 agents/bottomlevel/UserrolesAgent.inc create mode 100644 agents/intermediate/AchievementsAgent.inc create mode 100644 agents/intermediate/CharactergroupsAgent.inc create mode 100644 agents/intermediate/CharactergroupsachievementsAgent.inc create mode 100644 agents/intermediate/CharactergroupsquestsAgent.inc create mode 100644 agents/intermediate/CharactergroupsqueststationsAgent.inc create mode 100644 agents/intermediate/CharactersAgent.inc create mode 100644 agents/intermediate/CharactertitlesAgent.inc create mode 100644 agents/intermediate/CharactertypesAgent.inc create mode 100644 agents/intermediate/ErrorAgent.inc create mode 100644 agents/intermediate/IntroductionAgent.inc create mode 100644 agents/intermediate/LibraryAgent.inc create mode 100644 agents/intermediate/MailAgent.inc create mode 100644 agents/intermediate/MapAgent.inc create mode 100644 agents/intermediate/MediaAgent.inc create mode 100644 agents/intermediate/PagesAgent.inc create mode 100644 agents/intermediate/QrAgent.inc create mode 100644 agents/intermediate/QrcodesAgent.inc create mode 100644 agents/intermediate/QuestgroupsAgent.inc create mode 100644 agents/intermediate/QuestgroupshierarchyAgent.inc create mode 100644 agents/intermediate/QuestsAgent.inc create mode 100644 agents/intermediate/SeminariesAgent.inc create mode 100644 agents/intermediate/UploadsAgent.inc create mode 100644 agents/intermediate/UsersAgent.inc create mode 100644 agents/intermediate/XplevelsAgent.inc create mode 100644 agents/toplevel/AjaxAgent.inc create mode 100644 agents/toplevel/BinaryAgent.inc create mode 100644 agents/toplevel/FaultAgent.inc create mode 100644 agents/toplevel/HtmlAgent.inc create mode 100644 agents/toplevel/HtmlmailAgent.inc create mode 100644 agents/toplevel/TextmailAgent.inc create mode 100644 apis/WebApi.inc create mode 100644 app/Controller.inc create mode 100644 app/Model.inc create mode 100644 app/TextFormatter.inc create mode 100644 app/Utils.inc create mode 100644 app/agents/QuesttypeAgent.inc create mode 100644 app/agents/StationtypeAgent.inc create mode 100644 app/agents/ToplevelAgent.inc create mode 100644 app/apis/MailApi.inc create mode 100644 app/controllers/IntermediateController.inc create mode 100644 app/controllers/QuesttypeController.inc create mode 100644 app/controllers/SeminaryController.inc create mode 100644 app/controllers/StationtypeController.inc create mode 100644 app/exceptions/FileCopyException.inc create mode 100644 app/exceptions/FileUploadException.inc create mode 100644 app/exceptions/MailingException.inc create mode 100644 app/exceptions/MaxFilesizeException.inc create mode 100644 app/exceptions/QuesttypeAgentNotFoundException.inc create mode 100644 app/exceptions/QuesttypeAgentNotValidException.inc create mode 100644 app/exceptions/QuesttypeControllerNotFoundException.inc create mode 100644 app/exceptions/QuesttypeControllerNotValidException.inc create mode 100644 app/exceptions/QuesttypeModelNotFoundException.inc create mode 100644 app/exceptions/QuesttypeModelNotValidException.inc create mode 100644 app/exceptions/StationtypeAgentNotFoundException.inc create mode 100644 app/exceptions/StationtypeAgentNotValidException.inc create mode 100644 app/exceptions/StationtypeControllerNotFoundException.inc create mode 100644 app/exceptions/StationtypeControllerNotValidException.inc create mode 100644 app/exceptions/StationtypeModelNotFoundException.inc create mode 100644 app/exceptions/StationtypeModelNotValidException.inc create mode 100644 app/exceptions/SubmissionNotValidException.inc create mode 100644 app/exceptions/WrongFiletypeException.inc create mode 100644 app/lib/Netcarver/Textile/DataBag.php create mode 100644 app/lib/Netcarver/Textile/Parser.php create mode 100644 app/lib/Netcarver/Textile/Tag.php create mode 100644 app/lib/PHPMailer.inc create mode 100644 app/lib/PHPMailerAutoload.inc create mode 100644 app/lib/Password.inc create mode 100644 app/lib/Phpqrcode-lib.inc create mode 100644 app/lib/Phpqrcode.inc create mode 100644 app/lib/SMTP.inc create mode 100644 app/lib/Textile.inc create mode 100644 app/lib/phpqrcode/CHANGELOG create mode 100644 app/lib/phpqrcode/INSTALL create mode 100644 app/lib/phpqrcode/LICENSE create mode 100644 app/lib/phpqrcode/README create mode 100644 app/lib/phpqrcode/VERSION create mode 100644 app/lib/phpqrcode/bindings/tcpdf/qrcode.php create mode 100644 app/lib/phpqrcode/index.php create mode 100644 app/lib/phpqrcode/phpqrcode.php create mode 100644 app/lib/phpqrcode/qrbitstream.php create mode 100644 app/lib/phpqrcode/qrconfig.php create mode 100644 app/lib/phpqrcode/qrconst.php create mode 100644 app/lib/phpqrcode/qrencode.php create mode 100644 app/lib/phpqrcode/qrimage.php create mode 100644 app/lib/phpqrcode/qrinput.php create mode 100644 app/lib/phpqrcode/qrlib.php create mode 100644 app/lib/phpqrcode/qrmask.php create mode 100644 app/lib/phpqrcode/qrrscode.php create mode 100644 app/lib/phpqrcode/qrspec.php create mode 100644 app/lib/phpqrcode/qrsplit.php create mode 100644 app/lib/phpqrcode/qrtools.php create mode 100644 app/lib/phpqrcode/tools/merge.bat create mode 100644 app/lib/phpqrcode/tools/merge.php create mode 100644 app/lib/phpqrcode/tools/merge.sh create mode 100644 app/lib/phpqrcode/tools/merged_config.php create mode 100644 app/lib/phpqrcode/tools/merged_header.php create mode 100644 app/models/QuesttypeModel.inc create mode 100644 app/models/StationtypeModel.inc create mode 100644 app/requests/MailRequest.inc create mode 100644 app/responses/MailResponse.inc create mode 100644 app/views/QuesttypeView.inc create mode 100644 app/views/StationtypeView.inc create mode 100644 bootstrap.inc create mode 100644 configs/AppConfig.inc create mode 100644 configs/CoreConfig.inc create mode 100644 controllers/AchievementsController.inc create mode 100644 controllers/AjaxController.inc create mode 100644 controllers/BinaryController.inc create mode 100644 controllers/CharactergroupsController.inc create mode 100644 controllers/CharactergroupsachievementsController.inc create mode 100644 controllers/CharactergroupsquestsController.inc create mode 100644 controllers/CharactergroupsqueststationsController.inc create mode 100644 controllers/CharactersController.inc create mode 100644 controllers/CharactertitlesController.inc create mode 100644 controllers/CharactertypesController.inc create mode 100644 controllers/ErrorController.inc create mode 100644 controllers/FaultController.inc create mode 100644 controllers/HtmlController.inc create mode 100644 controllers/HtmlmailController.inc create mode 100644 controllers/IntroductionController.inc create mode 100644 controllers/LibraryController.inc create mode 100644 controllers/MailController.inc create mode 100644 controllers/MailreceiverController.inc create mode 100644 controllers/MapController.inc create mode 100644 controllers/MediaController.inc create mode 100644 controllers/MenuController.inc create mode 100644 controllers/MoodpicController.inc create mode 100644 controllers/PagesController.inc create mode 100644 controllers/QrController.inc create mode 100644 controllers/QrcodesController.inc create mode 100644 controllers/QuestgroupsController.inc create mode 100644 controllers/QuestgroupshierarchyController.inc create mode 100644 controllers/QuestgroupshierarchypathController.inc create mode 100644 controllers/QuestsController.inc create mode 100644 controllers/SeminariesController.inc create mode 100644 controllers/SeminarybarController.inc create mode 100644 controllers/SeminarymenuController.inc create mode 100644 controllers/TextmailController.inc create mode 100644 controllers/UploadsController.inc create mode 100644 controllers/UserrolesController.inc create mode 100644 controllers/UsersController.inc create mode 100644 controllers/XplevelsController.inc create mode 100644 controllers/components/AchievementComponent.inc create mode 100644 controllers/components/AuthComponent.inc create mode 100644 controllers/components/NotificationComponent.inc create mode 100644 controllers/components/QuesttypedataComponent.inc create mode 100644 controllers/components/ValidationComponent.inc create mode 100644 core/Agent.inc create mode 100644 core/Api.inc create mode 100644 core/Autoloader.inc create mode 100644 core/ClassLoader.inc create mode 100644 core/Component.inc create mode 100644 core/Config.inc create mode 100644 core/Controller.inc create mode 100644 core/Driver.inc create mode 100644 core/Exception.inc create mode 100644 core/Linker.inc create mode 100644 core/Logger.inc create mode 100644 core/Model.inc create mode 100644 core/Request.inc create mode 100644 core/Response.inc create mode 100644 core/View.inc create mode 100644 core/WebUtils.inc create mode 100644 db/create.sql create mode 100644 db/drop.sql create mode 100644 db/import.sql create mode 100644 db/procedures.sql create mode 100644 db/triggers.sql create mode 100644 doc/.htaccess create mode 100644 doc/classes/PHPMailer.html create mode 100644 doc/classes/SMTP.html create mode 100644 doc/classes/hhu.z.Controller.html create mode 100644 doc/classes/hhu.z.Model.html create mode 100644 doc/classes/hhu.z.TextFormatter.html create mode 100644 doc/classes/hhu.z.Utils.html create mode 100644 doc/classes/hhu.z.agents.QuesttypeAgent.html create mode 100644 doc/classes/hhu.z.agents.ToplevelAgent.html create mode 100644 doc/classes/hhu.z.agents.bottomlevel.MailreceiverAgent.html create mode 100644 doc/classes/hhu.z.agents.bottomlevel.MenuAgent.html create mode 100644 doc/classes/hhu.z.agents.bottomlevel.QuestgroupshierarchypathAgent.html create mode 100644 doc/classes/hhu.z.agents.bottomlevel.SeminarybarAgent.html create mode 100644 doc/classes/hhu.z.agents.bottomlevel.SeminarymenuAgent.html create mode 100644 doc/classes/hhu.z.agents.bottomlevel.UserrolesAgent.html create mode 100644 doc/classes/hhu.z.agents.intermediate.AchievementsAgent.html create mode 100644 doc/classes/hhu.z.agents.intermediate.CharactergroupsAgent.html create mode 100644 doc/classes/hhu.z.agents.intermediate.CharactergroupsquestsAgent.html create mode 100644 doc/classes/hhu.z.agents.intermediate.CharactersAgent.html create mode 100644 doc/classes/hhu.z.agents.intermediate.CharactertypesAgent.html create mode 100644 doc/classes/hhu.z.agents.intermediate.ErrorAgent.html create mode 100644 doc/classes/hhu.z.agents.intermediate.IntroductionAgent.html create mode 100644 doc/classes/hhu.z.agents.intermediate.LibraryAgent.html create mode 100644 doc/classes/hhu.z.agents.intermediate.MailAgent.html create mode 100644 doc/classes/hhu.z.agents.intermediate.MediaAgent.html create mode 100644 doc/classes/hhu.z.agents.intermediate.QuestgroupsAgent.html create mode 100644 doc/classes/hhu.z.agents.intermediate.QuestgroupshierarchyAgent.html create mode 100644 doc/classes/hhu.z.agents.intermediate.QuestsAgent.html create mode 100644 doc/classes/hhu.z.agents.intermediate.SeminariesAgent.html create mode 100644 doc/classes/hhu.z.agents.intermediate.UploadsAgent.html create mode 100644 doc/classes/hhu.z.agents.intermediate.UsersAgent.html create mode 100644 doc/classes/hhu.z.agents.intermediate.XplevelsAgent.html create mode 100644 doc/classes/hhu.z.agents.toplevel.AjaxAgent.html create mode 100644 doc/classes/hhu.z.agents.toplevel.BinaryAgent.html create mode 100644 doc/classes/hhu.z.agents.toplevel.FaultAgent.html create mode 100644 doc/classes/hhu.z.agents.toplevel.HtmlAgent.html create mode 100644 doc/classes/hhu.z.agents.toplevel.HtmlmailAgent.html create mode 100644 doc/classes/hhu.z.agents.toplevel.TextmailAgent.html create mode 100644 doc/classes/hhu.z.apis.MailApi.html create mode 100644 doc/classes/hhu.z.controllers.AchievementsController.html create mode 100644 doc/classes/hhu.z.controllers.AjaxController.html create mode 100644 doc/classes/hhu.z.controllers.BinaryController.html create mode 100644 doc/classes/hhu.z.controllers.CharactergroupsController.html create mode 100644 doc/classes/hhu.z.controllers.CharactergroupsquestsController.html create mode 100644 doc/classes/hhu.z.controllers.CharactersController.html create mode 100644 doc/classes/hhu.z.controllers.CharactertypesController.html create mode 100644 doc/classes/hhu.z.controllers.ErrorController.html create mode 100644 doc/classes/hhu.z.controllers.FaultController.html create mode 100644 doc/classes/hhu.z.controllers.HtmlController.html create mode 100644 doc/classes/hhu.z.controllers.HtmlmailController.html create mode 100644 doc/classes/hhu.z.controllers.IntermediateController.html create mode 100644 doc/classes/hhu.z.controllers.IntroductionController.html create mode 100644 doc/classes/hhu.z.controllers.LibraryController.html create mode 100644 doc/classes/hhu.z.controllers.MailController.html create mode 100644 doc/classes/hhu.z.controllers.MailreceiverController.html create mode 100644 doc/classes/hhu.z.controllers.MediaController.html create mode 100644 doc/classes/hhu.z.controllers.MenuController.html create mode 100644 doc/classes/hhu.z.controllers.QuestgroupsController.html create mode 100644 doc/classes/hhu.z.controllers.QuestgroupshierarchyController.html create mode 100644 doc/classes/hhu.z.controllers.QuestgroupshierarchypathController.html create mode 100644 doc/classes/hhu.z.controllers.QuestsController.html create mode 100644 doc/classes/hhu.z.controllers.QuesttypeController.html create mode 100644 doc/classes/hhu.z.controllers.SeminariesController.html create mode 100644 doc/classes/hhu.z.controllers.SeminaryController.html create mode 100644 doc/classes/hhu.z.controllers.SeminarybarController.html create mode 100644 doc/classes/hhu.z.controllers.SeminarymenuController.html create mode 100644 doc/classes/hhu.z.controllers.TextmailController.html create mode 100644 doc/classes/hhu.z.controllers.UploadsController.html create mode 100644 doc/classes/hhu.z.controllers.UserrolesController.html create mode 100644 doc/classes/hhu.z.controllers.UsersController.html create mode 100644 doc/classes/hhu.z.controllers.XplevelsController.html create mode 100644 doc/classes/hhu.z.controllers.components.AchievementComponent.html create mode 100644 doc/classes/hhu.z.controllers.components.AuthComponent.html create mode 100644 doc/classes/hhu.z.controllers.components.NotificationComponent.html create mode 100644 doc/classes/hhu.z.controllers.components.ValidationComponent.html create mode 100644 doc/classes/hhu.z.exceptions.FileUploadException.html create mode 100644 doc/classes/hhu.z.exceptions.MailingException.html create mode 100644 doc/classes/hhu.z.exceptions.MaxFilesizeException.html create mode 100644 doc/classes/hhu.z.exceptions.QuesttypeAgentNotFoundException.html create mode 100644 doc/classes/hhu.z.exceptions.QuesttypeAgentNotValidException.html create mode 100644 doc/classes/hhu.z.exceptions.QuesttypeControllerNotFoundException.html create mode 100644 doc/classes/hhu.z.exceptions.QuesttypeControllerNotValidException.html create mode 100644 doc/classes/hhu.z.exceptions.QuesttypeModelNotFoundException.html create mode 100644 doc/classes/hhu.z.exceptions.QuesttypeModelNotValidException.html create mode 100644 doc/classes/hhu.z.exceptions.SubmissionNotValidException.html create mode 100644 doc/classes/hhu.z.exceptions.WrongFiletypeException.html create mode 100644 doc/classes/hhu.z.lib.PHPMailer.html create mode 100644 doc/classes/hhu.z.lib.PHPMailerAutoload.html create mode 100644 doc/classes/hhu.z.lib.Password.html create mode 100644 doc/classes/hhu.z.lib.SMTP.html create mode 100644 doc/classes/hhu.z.models.AchievementsModel.html create mode 100644 doc/classes/hhu.z.models.AvatarsModel.html create mode 100644 doc/classes/hhu.z.models.CharactergroupsModel.html create mode 100644 doc/classes/hhu.z.models.CharactergroupsquestsModel.html create mode 100644 doc/classes/hhu.z.models.CharacterrolesModel.html create mode 100644 doc/classes/hhu.z.models.CharactersModel.html create mode 100644 doc/classes/hhu.z.models.CharactertypesModel.html create mode 100644 doc/classes/hhu.z.models.MediaModel.html create mode 100644 doc/classes/hhu.z.models.QuestgroupsModel.html create mode 100644 doc/classes/hhu.z.models.QuestgroupshierarchyModel.html create mode 100644 doc/classes/hhu.z.models.QuestgrouptextsModel.html create mode 100644 doc/classes/hhu.z.models.QuestsModel.html create mode 100644 doc/classes/hhu.z.models.QuesttextsModel.html create mode 100644 doc/classes/hhu.z.models.QuesttopicsModel.html create mode 100644 doc/classes/hhu.z.models.QuesttypeModel.html create mode 100644 doc/classes/hhu.z.models.QuesttypesModel.html create mode 100644 doc/classes/hhu.z.models.SeminariesModel.html create mode 100644 doc/classes/hhu.z.models.SeminarycharacterfieldsModel.html create mode 100644 doc/classes/hhu.z.models.UploadsModel.html create mode 100644 doc/classes/hhu.z.models.UserrolesModel.html create mode 100644 doc/classes/hhu.z.models.UsersModel.html create mode 100644 doc/classes/hhu.z.models.XplevelsModel.html create mode 100644 doc/classes/hhu.z.questtypes.BossfightQuesttypeAgent.html create mode 100644 doc/classes/hhu.z.questtypes.BossfightQuesttypeController.html create mode 100644 doc/classes/hhu.z.questtypes.BossfightQuesttypeModel.html create mode 100644 doc/classes/hhu.z.questtypes.ChoiceinputQuesttypeAgent.html create mode 100644 doc/classes/hhu.z.questtypes.ChoiceinputQuesttypeController.html create mode 100644 doc/classes/hhu.z.questtypes.ChoiceinputQuesttypeModel.html create mode 100644 doc/classes/hhu.z.questtypes.CrosswordQuesttypeAgent.html create mode 100644 doc/classes/hhu.z.questtypes.CrosswordQuesttypeController.html create mode 100644 doc/classes/hhu.z.questtypes.CrosswordQuesttypeModel.html create mode 100644 doc/classes/hhu.z.questtypes.DragndropQuesttypeAgent.html create mode 100644 doc/classes/hhu.z.questtypes.DragndropQuesttypeController.html create mode 100644 doc/classes/hhu.z.questtypes.DragndropQuesttypeModel.html create mode 100644 doc/classes/hhu.z.questtypes.MultiplechoiceQuesttypeAgent.html create mode 100644 doc/classes/hhu.z.questtypes.MultiplechoiceQuesttypeController.html create mode 100644 doc/classes/hhu.z.questtypes.MultiplechoiceQuesttypeModel.html create mode 100644 doc/classes/hhu.z.questtypes.SubmitQuesttypeAgent.html create mode 100644 doc/classes/hhu.z.questtypes.SubmitQuesttypeController.html create mode 100644 doc/classes/hhu.z.questtypes.SubmitQuesttypeModel.html create mode 100644 doc/classes/hhu.z.questtypes.TextinputQuesttypeAgent.html create mode 100644 doc/classes/hhu.z.questtypes.TextinputQuesttypeController.html create mode 100644 doc/classes/hhu.z.questtypes.TextinputQuesttypeModel.html create mode 100644 doc/classes/hhu.z.requests.MailRequest.html create mode 100644 doc/classes/hhu.z.responses.MailResponse.html create mode 100644 doc/classes/hhu.z.views.QuesttypeView.html create mode 100644 doc/classes/nre.agents.BottomlevelAgent.html create mode 100644 doc/classes/nre.agents.IntermediateAgent.html create mode 100644 doc/classes/nre.agents.ToplevelAgent.html create mode 100644 doc/classes/nre.apis.WebApi.html create mode 100644 doc/classes/nre.configs.AppConfig.html create mode 100644 doc/classes/nre.configs.CoreConfig.html create mode 100644 doc/classes/nre.core.Agent.html create mode 100644 doc/classes/nre.core.Api.html create mode 100644 doc/classes/nre.core.Autoloader.html create mode 100644 doc/classes/nre.core.ClassLoader.html create mode 100644 doc/classes/nre.core.Component.html create mode 100644 doc/classes/nre.core.Config.html create mode 100644 doc/classes/nre.core.Controller.html create mode 100644 doc/classes/nre.core.Driver.html create mode 100644 doc/classes/nre.core.Exception.html create mode 100644 doc/classes/nre.core.Linker.html create mode 100644 doc/classes/nre.core.Logger.html create mode 100644 doc/classes/nre.core.Model.html create mode 100644 doc/classes/nre.core.Request.html create mode 100644 doc/classes/nre.core.Response.html create mode 100644 doc/classes/nre.core.View.html create mode 100644 doc/classes/nre.core.WebUtils.html create mode 100644 doc/classes/nre.drivers.DatabaseDriver.html create mode 100644 doc/classes/nre.drivers.MysqliDriver.html create mode 100644 doc/classes/nre.exceptions.AccessDeniedException.html create mode 100644 doc/classes/nre.exceptions.ActionNotFoundException.html create mode 100644 doc/classes/nre.exceptions.AgentNotFoundException.html create mode 100644 doc/classes/nre.exceptions.AgentNotValidException.html create mode 100644 doc/classes/nre.exceptions.ClassNotFoundException.html create mode 100644 doc/classes/nre.exceptions.ClassNotValidException.html create mode 100644 doc/classes/nre.exceptions.ComponentNotFoundException.html create mode 100644 doc/classes/nre.exceptions.ComponentNotValidException.html create mode 100644 doc/classes/nre.exceptions.ControllerNotFoundException.html create mode 100644 doc/classes/nre.exceptions.ControllerNotValidException.html create mode 100644 doc/classes/nre.exceptions.DatamodelException.html create mode 100644 doc/classes/nre.exceptions.DriverNotFoundException.html create mode 100644 doc/classes/nre.exceptions.DriverNotValidException.html create mode 100644 doc/classes/nre.exceptions.FatalDatamodelException.html create mode 100644 doc/classes/nre.exceptions.IdNotFoundException.html create mode 100644 doc/classes/nre.exceptions.LayoutNotFoundException.html create mode 100644 doc/classes/nre.exceptions.LayoutNotValidException.html create mode 100644 doc/classes/nre.exceptions.ModelNotFoundException.html create mode 100644 doc/classes/nre.exceptions.ModelNotValidException.html create mode 100644 doc/classes/nre.exceptions.ParamsNotValidException.html create mode 100644 doc/classes/nre.exceptions.ServiceUnavailableException.html create mode 100644 doc/classes/nre.exceptions.ViewNotFoundException.html create mode 100644 doc/classes/nre.models.DatabaseModel.html create mode 100644 doc/classes/nre.requests.WebRequest.html create mode 100644 doc/classes/nre.responses.WebResponse.html create mode 100644 doc/classes/phpmailerException.html create mode 100644 doc/css/bootstrap-combined.no-icons.min.css create mode 100644 doc/css/font-awesome.min.css create mode 100644 doc/css/jquery.iviewer.css create mode 100644 doc/css/phpdocumentor-clean-icons/Read Me.txt create mode 100644 doc/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.dev.svg create mode 100644 doc/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.eot create mode 100644 doc/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.svg create mode 100644 doc/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.ttf create mode 100644 doc/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.woff create mode 100644 doc/css/phpdocumentor-clean-icons/lte-ie7.js create mode 100644 doc/css/phpdocumentor-clean-icons/style.css create mode 100644 doc/css/prism.css create mode 100644 doc/css/template.css create mode 100644 doc/empty create mode 100644 doc/files/agents.BottomlevelAgent.html create mode 100644 doc/files/agents.IntermediateAgent.html create mode 100644 doc/files/agents.ToplevelAgent.html create mode 100644 doc/files/agents.bottomlevel.MailreceiverAgent.html create mode 100644 doc/files/agents.bottomlevel.MenuAgent.html create mode 100644 doc/files/agents.bottomlevel.QuestgroupshierarchypathAgent.html create mode 100644 doc/files/agents.bottomlevel.SeminarybarAgent.html create mode 100644 doc/files/agents.bottomlevel.SeminarymenuAgent.html create mode 100644 doc/files/agents.bottomlevel.UserrolesAgent.html create mode 100644 doc/files/agents.intermediate.AchievementsAgent.html create mode 100644 doc/files/agents.intermediate.CharactergroupsAgent.html create mode 100644 doc/files/agents.intermediate.CharactergroupsquestsAgent.html create mode 100644 doc/files/agents.intermediate.CharactersAgent.html create mode 100644 doc/files/agents.intermediate.CharactertypesAgent.html create mode 100644 doc/files/agents.intermediate.ErrorAgent.html create mode 100644 doc/files/agents.intermediate.IntroductionAgent.html create mode 100644 doc/files/agents.intermediate.LibraryAgent.html create mode 100644 doc/files/agents.intermediate.MailAgent.html create mode 100644 doc/files/agents.intermediate.MediaAgent.html create mode 100644 doc/files/agents.intermediate.QuestgroupsAgent.html create mode 100644 doc/files/agents.intermediate.QuestgroupshierarchyAgent.html create mode 100644 doc/files/agents.intermediate.QuestsAgent.html create mode 100644 doc/files/agents.intermediate.SeminariesAgent.html create mode 100644 doc/files/agents.intermediate.UploadsAgent.html create mode 100644 doc/files/agents.intermediate.UsersAgent.html create mode 100644 doc/files/agents.intermediate.XplevelsAgent.html create mode 100644 doc/files/agents.toplevel.AjaxAgent.html create mode 100644 doc/files/agents.toplevel.BinaryAgent.html create mode 100644 doc/files/agents.toplevel.FaultAgent.html create mode 100644 doc/files/agents.toplevel.HtmlAgent.html create mode 100644 doc/files/agents.toplevel.HtmlmailAgent.html create mode 100644 doc/files/agents.toplevel.TextmailAgent.html create mode 100644 doc/files/agents/BottomlevelAgent.inc.txt create mode 100644 doc/files/agents/IntermediateAgent.inc.txt create mode 100644 doc/files/agents/ToplevelAgent.inc.txt create mode 100644 doc/files/agents/bottomlevel/MailreceiverAgent.inc.txt create mode 100644 doc/files/agents/bottomlevel/MenuAgent.inc.txt create mode 100644 doc/files/agents/bottomlevel/QuestgroupshierarchypathAgent.inc.txt create mode 100644 doc/files/agents/bottomlevel/SeminarybarAgent.inc.txt create mode 100644 doc/files/agents/bottomlevel/SeminarymenuAgent.inc.txt create mode 100644 doc/files/agents/bottomlevel/UserrolesAgent.inc.txt create mode 100644 doc/files/agents/intermediate/AchievementsAgent.inc.txt create mode 100644 doc/files/agents/intermediate/CharactergroupsAgent.inc.txt create mode 100644 doc/files/agents/intermediate/CharactergroupsquestsAgent.inc.txt create mode 100644 doc/files/agents/intermediate/CharactersAgent.inc.txt create mode 100644 doc/files/agents/intermediate/CharactertypesAgent.inc.txt create mode 100644 doc/files/agents/intermediate/ErrorAgent.inc.txt create mode 100644 doc/files/agents/intermediate/IntroductionAgent.inc.txt create mode 100644 doc/files/agents/intermediate/LibraryAgent.inc.txt create mode 100644 doc/files/agents/intermediate/MailAgent.inc.txt create mode 100644 doc/files/agents/intermediate/MediaAgent.inc.txt create mode 100644 doc/files/agents/intermediate/QuestgroupsAgent.inc.txt create mode 100644 doc/files/agents/intermediate/QuestgroupshierarchyAgent.inc.txt create mode 100644 doc/files/agents/intermediate/QuestsAgent.inc.txt create mode 100644 doc/files/agents/intermediate/SeminariesAgent.inc.txt create mode 100644 doc/files/agents/intermediate/UploadsAgent.inc.txt create mode 100644 doc/files/agents/intermediate/UsersAgent.inc.txt create mode 100644 doc/files/agents/intermediate/XplevelsAgent.inc.txt create mode 100644 doc/files/agents/toplevel/AjaxAgent.inc.txt create mode 100644 doc/files/agents/toplevel/BinaryAgent.inc.txt create mode 100644 doc/files/agents/toplevel/FaultAgent.inc.txt create mode 100644 doc/files/agents/toplevel/HtmlAgent.inc.txt create mode 100644 doc/files/agents/toplevel/HtmlmailAgent.inc.txt create mode 100644 doc/files/agents/toplevel/TextmailAgent.inc.txt create mode 100644 doc/files/apis.WebApi.html create mode 100644 doc/files/apis/WebApi.inc.txt create mode 100644 doc/files/app.Controller.html create mode 100644 doc/files/app.Model.html create mode 100644 doc/files/app.TextFormatter.html create mode 100644 doc/files/app.Utils.html create mode 100644 doc/files/app.agents.QuesttypeAgent.html create mode 100644 doc/files/app.agents.ToplevelAgent.html create mode 100644 doc/files/app.apis.MailApi.html create mode 100644 doc/files/app.controllers.IntermediateController.html create mode 100644 doc/files/app.controllers.QuesttypeController.html create mode 100644 doc/files/app.controllers.SeminaryController.html create mode 100644 doc/files/app.exceptions.FileUploadException.html create mode 100644 doc/files/app.exceptions.MailingException.html create mode 100644 doc/files/app.exceptions.MaxFilesizeException.html create mode 100644 doc/files/app.exceptions.QuesttypeAgentNotFoundException.html create mode 100644 doc/files/app.exceptions.QuesttypeAgentNotValidException.html create mode 100644 doc/files/app.exceptions.QuesttypeControllerNotFoundException.html create mode 100644 doc/files/app.exceptions.QuesttypeControllerNotValidException.html create mode 100644 doc/files/app.exceptions.QuesttypeModelNotFoundException.html create mode 100644 doc/files/app.exceptions.QuesttypeModelNotValidException.html create mode 100644 doc/files/app.exceptions.SubmissionNotValidException.html create mode 100644 doc/files/app.exceptions.WrongFiletypeException.html create mode 100644 doc/files/app.lib.PHPMailer.html create mode 100644 doc/files/app.lib.PHPMailerAutoload.html create mode 100644 doc/files/app.lib.Password.html create mode 100644 doc/files/app.lib.SMTP.html create mode 100644 doc/files/app.models.QuesttypeModel.html create mode 100644 doc/files/app.requests.MailRequest.html create mode 100644 doc/files/app.responses.MailResponse.html create mode 100644 doc/files/app.views.QuesttypeView.html create mode 100644 doc/files/app/Controller.inc.txt create mode 100644 doc/files/app/Model.inc.txt create mode 100644 doc/files/app/TextFormatter.inc.txt create mode 100644 doc/files/app/Utils.inc.txt create mode 100644 doc/files/app/agents/QuesttypeAgent.inc.txt create mode 100644 doc/files/app/agents/ToplevelAgent.inc.txt create mode 100644 doc/files/app/apis/MailApi.inc.txt create mode 100644 doc/files/app/controllers/IntermediateController.inc.txt create mode 100644 doc/files/app/controllers/QuesttypeController.inc.txt create mode 100644 doc/files/app/controllers/SeminaryController.inc.txt create mode 100644 doc/files/app/exceptions/FileUploadException.inc.txt create mode 100644 doc/files/app/exceptions/MailingException.inc.txt create mode 100644 doc/files/app/exceptions/MaxFilesizeException.inc.txt create mode 100644 doc/files/app/exceptions/QuesttypeAgentNotFoundException.inc.txt create mode 100644 doc/files/app/exceptions/QuesttypeAgentNotValidException.inc.txt create mode 100644 doc/files/app/exceptions/QuesttypeControllerNotFoundException.inc.txt create mode 100644 doc/files/app/exceptions/QuesttypeControllerNotValidException.inc.txt create mode 100644 doc/files/app/exceptions/QuesttypeModelNotFoundException.inc.txt create mode 100644 doc/files/app/exceptions/QuesttypeModelNotValidException.inc.txt create mode 100644 doc/files/app/exceptions/SubmissionNotValidException.inc.txt create mode 100644 doc/files/app/exceptions/WrongFiletypeException.inc.txt create mode 100644 doc/files/app/lib/PHPMailer.inc.txt create mode 100644 doc/files/app/lib/PHPMailerAutoload.inc.txt create mode 100644 doc/files/app/lib/Password.inc.txt create mode 100644 doc/files/app/lib/SMTP.inc.txt create mode 100644 doc/files/app/models/QuesttypeModel.inc.txt create mode 100644 doc/files/app/requests/MailRequest.inc.txt create mode 100644 doc/files/app/responses/MailResponse.inc.txt create mode 100644 doc/files/app/views/QuesttypeView.inc.txt create mode 100644 doc/files/bootstrap.html create mode 100644 doc/files/bootstrap.inc.txt create mode 100644 doc/files/configs.AppConfig.html create mode 100644 doc/files/configs.CoreConfig.html create mode 100644 doc/files/configs/AppConfig.inc.txt create mode 100644 doc/files/configs/CoreConfig.inc.txt create mode 100644 doc/files/controllers.AchievementsController.html create mode 100644 doc/files/controllers.AjaxController.html create mode 100644 doc/files/controllers.BinaryController.html create mode 100644 doc/files/controllers.CharactergroupsController.html create mode 100644 doc/files/controllers.CharactergroupsquestsController.html create mode 100644 doc/files/controllers.CharactersController.html create mode 100644 doc/files/controllers.CharactertypesController.html create mode 100644 doc/files/controllers.ErrorController.html create mode 100644 doc/files/controllers.FaultController.html create mode 100644 doc/files/controllers.HtmlController.html create mode 100644 doc/files/controllers.HtmlmailController.html create mode 100644 doc/files/controllers.IntroductionController.html create mode 100644 doc/files/controllers.LibraryController.html create mode 100644 doc/files/controllers.MailController.html create mode 100644 doc/files/controllers.MailreceiverController.html create mode 100644 doc/files/controllers.MediaController.html create mode 100644 doc/files/controllers.MenuController.html create mode 100644 doc/files/controllers.QuestgroupsController.html create mode 100644 doc/files/controllers.QuestgroupshierarchyController.html create mode 100644 doc/files/controllers.QuestgroupshierarchypathController.html create mode 100644 doc/files/controllers.QuestsController.html create mode 100644 doc/files/controllers.SeminariesController.html create mode 100644 doc/files/controllers.SeminarybarController.html create mode 100644 doc/files/controllers.SeminarymenuController.html create mode 100644 doc/files/controllers.TextmailController.html create mode 100644 doc/files/controllers.UploadsController.html create mode 100644 doc/files/controllers.UserrolesController.html create mode 100644 doc/files/controllers.UsersController.html create mode 100644 doc/files/controllers.XplevelsController.html create mode 100644 doc/files/controllers.components.AchievementComponent.html create mode 100644 doc/files/controllers.components.AuthComponent.html create mode 100644 doc/files/controllers.components.NotificationComponent.html create mode 100644 doc/files/controllers.components.ValidationComponent.html create mode 100644 doc/files/controllers/AchievementsController.inc.txt create mode 100644 doc/files/controllers/AjaxController.inc.txt create mode 100644 doc/files/controllers/BinaryController.inc.txt create mode 100644 doc/files/controllers/CharactergroupsController.inc.txt create mode 100644 doc/files/controllers/CharactergroupsquestsController.inc.txt create mode 100644 doc/files/controllers/CharactersController.inc.txt create mode 100644 doc/files/controllers/CharactertypesController.inc.txt create mode 100644 doc/files/controllers/ErrorController.inc.txt create mode 100644 doc/files/controllers/FaultController.inc.txt create mode 100644 doc/files/controllers/HtmlController.inc.txt create mode 100644 doc/files/controllers/HtmlmailController.inc.txt create mode 100644 doc/files/controllers/IntroductionController.inc.txt create mode 100644 doc/files/controllers/LibraryController.inc.txt create mode 100644 doc/files/controllers/MailController.inc.txt create mode 100644 doc/files/controllers/MailreceiverController.inc.txt create mode 100644 doc/files/controllers/MediaController.inc.txt create mode 100644 doc/files/controllers/MenuController.inc.txt create mode 100644 doc/files/controllers/QuestgroupsController.inc.txt create mode 100644 doc/files/controllers/QuestgroupshierarchyController.inc.txt create mode 100644 doc/files/controllers/QuestgroupshierarchypathController.inc.txt create mode 100644 doc/files/controllers/QuestsController.inc.txt create mode 100644 doc/files/controllers/SeminariesController.inc.txt create mode 100644 doc/files/controllers/SeminarybarController.inc.txt create mode 100644 doc/files/controllers/SeminarymenuController.inc.txt create mode 100644 doc/files/controllers/TextmailController.inc.txt create mode 100644 doc/files/controllers/UploadsController.inc.txt create mode 100644 doc/files/controllers/UserrolesController.inc.txt create mode 100644 doc/files/controllers/UsersController.inc.txt create mode 100644 doc/files/controllers/XplevelsController.inc.txt create mode 100644 doc/files/controllers/components/AchievementComponent.inc.txt create mode 100644 doc/files/controllers/components/AuthComponent.inc.txt create mode 100644 doc/files/controllers/components/NotificationComponent.inc.txt create mode 100644 doc/files/controllers/components/ValidationComponent.inc.txt create mode 100644 doc/files/core.Agent.html create mode 100644 doc/files/core.Api.html create mode 100644 doc/files/core.Autoloader.html create mode 100644 doc/files/core.ClassLoader.html create mode 100644 doc/files/core.Component.html create mode 100644 doc/files/core.Config.html create mode 100644 doc/files/core.Controller.html create mode 100644 doc/files/core.Driver.html create mode 100644 doc/files/core.Exception.html create mode 100644 doc/files/core.Linker.html create mode 100644 doc/files/core.Logger.html create mode 100644 doc/files/core.Model.html create mode 100644 doc/files/core.Request.html create mode 100644 doc/files/core.Response.html create mode 100644 doc/files/core.View.html create mode 100644 doc/files/core.WebUtils.html create mode 100644 doc/files/core/Agent.inc.txt create mode 100644 doc/files/core/Api.inc.txt create mode 100644 doc/files/core/Autoloader.inc.txt create mode 100644 doc/files/core/ClassLoader.inc.txt create mode 100644 doc/files/core/Component.inc.txt create mode 100644 doc/files/core/Config.inc.txt create mode 100644 doc/files/core/Controller.inc.txt create mode 100644 doc/files/core/Driver.inc.txt create mode 100644 doc/files/core/Exception.inc.txt create mode 100644 doc/files/core/Linker.inc.txt create mode 100644 doc/files/core/Logger.inc.txt create mode 100644 doc/files/core/Model.inc.txt create mode 100644 doc/files/core/Request.inc.txt create mode 100644 doc/files/core/Response.inc.txt create mode 100644 doc/files/core/View.inc.txt create mode 100644 doc/files/core/WebUtils.inc.txt create mode 100644 doc/files/drivers.DatabaseDriver.html create mode 100644 doc/files/drivers.MysqliDriver.html create mode 100644 doc/files/drivers/DatabaseDriver.inc.txt create mode 100644 doc/files/drivers/MysqliDriver.inc.txt create mode 100644 doc/files/exceptions.AccessDeniedException.html create mode 100644 doc/files/exceptions.ActionNotFoundException.html create mode 100644 doc/files/exceptions.AgentNotFoundException.html create mode 100644 doc/files/exceptions.AgentNotValidException.html create mode 100644 doc/files/exceptions.ClassNotFoundException.html create mode 100644 doc/files/exceptions.ClassNotValidException.html create mode 100644 doc/files/exceptions.ComponentNotFoundException.html create mode 100644 doc/files/exceptions.ComponentNotValidException.html create mode 100644 doc/files/exceptions.ControllerNotFoundException.html create mode 100644 doc/files/exceptions.ControllerNotValidException.html create mode 100644 doc/files/exceptions.DatamodelException.html create mode 100644 doc/files/exceptions.DriverNotFoundException.html create mode 100644 doc/files/exceptions.DriverNotValidException.html create mode 100644 doc/files/exceptions.FatalDatamodelException.html create mode 100644 doc/files/exceptions.IdNotFoundException.html create mode 100644 doc/files/exceptions.LayoutNotFoundException.html create mode 100644 doc/files/exceptions.LayoutNotValidException.html create mode 100644 doc/files/exceptions.ModelNotFoundException.html create mode 100644 doc/files/exceptions.ModelNotValidException.html create mode 100644 doc/files/exceptions.ParamsNotValidException.html create mode 100644 doc/files/exceptions.ServiceUnavailableException.html create mode 100644 doc/files/exceptions.ViewNotFoundException.html create mode 100644 doc/files/exceptions/AccessDeniedException.inc.txt create mode 100644 doc/files/exceptions/ActionNotFoundException.inc.txt create mode 100644 doc/files/exceptions/AgentNotFoundException.inc.txt create mode 100644 doc/files/exceptions/AgentNotValidException.inc.txt create mode 100644 doc/files/exceptions/ClassNotFoundException.inc.txt create mode 100644 doc/files/exceptions/ClassNotValidException.inc.txt create mode 100644 doc/files/exceptions/ComponentNotFoundException.inc.txt create mode 100644 doc/files/exceptions/ComponentNotValidException.inc.txt create mode 100644 doc/files/exceptions/ControllerNotFoundException.inc.txt create mode 100644 doc/files/exceptions/ControllerNotValidException.inc.txt create mode 100644 doc/files/exceptions/DatamodelException.inc.txt create mode 100644 doc/files/exceptions/DriverNotFoundException.inc.txt create mode 100644 doc/files/exceptions/DriverNotValidException.inc.txt create mode 100644 doc/files/exceptions/FatalDatamodelException.inc.txt create mode 100644 doc/files/exceptions/IdNotFoundException.inc.txt create mode 100644 doc/files/exceptions/LayoutNotFoundException.inc.txt create mode 100644 doc/files/exceptions/LayoutNotValidException.inc.txt create mode 100644 doc/files/exceptions/ModelNotFoundException.inc.txt create mode 100644 doc/files/exceptions/ModelNotValidException.inc.txt create mode 100644 doc/files/exceptions/ParamsNotValidException.inc.txt create mode 100644 doc/files/exceptions/ServiceUnavailableException.inc.txt create mode 100644 doc/files/exceptions/ViewNotFoundException.inc.txt create mode 100644 doc/files/models.AchievementsModel.html create mode 100644 doc/files/models.AvatarsModel.html create mode 100644 doc/files/models.CharactergroupsModel.html create mode 100644 doc/files/models.CharactergroupsquestsModel.html create mode 100644 doc/files/models.CharacterrolesModel.html create mode 100644 doc/files/models.CharactersModel.html create mode 100644 doc/files/models.CharactertypesModel.html create mode 100644 doc/files/models.DatabaseModel.html create mode 100644 doc/files/models.MediaModel.html create mode 100644 doc/files/models.QuestgroupsModel.html create mode 100644 doc/files/models.QuestgroupshierarchyModel.html create mode 100644 doc/files/models.QuestgrouptextsModel.html create mode 100644 doc/files/models.QuestsModel.html create mode 100644 doc/files/models.QuesttextsModel.html create mode 100644 doc/files/models.QuesttopicsModel.html create mode 100644 doc/files/models.QuesttypesModel.html create mode 100644 doc/files/models.SeminariesModel.html create mode 100644 doc/files/models.SeminarycharacterfieldsModel.html create mode 100644 doc/files/models.UploadsModel.html create mode 100644 doc/files/models.UserrolesModel.html create mode 100644 doc/files/models.UsersModel.html create mode 100644 doc/files/models.XplevelsModel.html create mode 100644 doc/files/models/AchievementsModel.inc.txt create mode 100644 doc/files/models/AvatarsModel.inc.txt create mode 100644 doc/files/models/CharactergroupsModel.inc.txt create mode 100644 doc/files/models/CharactergroupsquestsModel.inc.txt create mode 100644 doc/files/models/CharacterrolesModel.inc.txt create mode 100644 doc/files/models/CharactersModel.inc.txt create mode 100644 doc/files/models/CharactertypesModel.inc.txt create mode 100644 doc/files/models/DatabaseModel.inc.txt create mode 100644 doc/files/models/MediaModel.inc.txt create mode 100644 doc/files/models/QuestgroupsModel.inc.txt create mode 100644 doc/files/models/QuestgroupshierarchyModel.inc.txt create mode 100644 doc/files/models/QuestgrouptextsModel.inc.txt create mode 100644 doc/files/models/QuestsModel.inc.txt create mode 100644 doc/files/models/QuesttextsModel.inc.txt create mode 100644 doc/files/models/QuesttopicsModel.inc.txt create mode 100644 doc/files/models/QuesttypesModel.inc.txt create mode 100644 doc/files/models/SeminariesModel.inc.txt create mode 100644 doc/files/models/SeminarycharacterfieldsModel.inc.txt create mode 100644 doc/files/models/UploadsModel.inc.txt create mode 100644 doc/files/models/UserrolesModel.inc.txt create mode 100644 doc/files/models/UsersModel.inc.txt create mode 100644 doc/files/models/XplevelsModel.inc.txt create mode 100644 doc/files/questtypes.bossfight.BossfightQuesttypeAgent.html create mode 100644 doc/files/questtypes.bossfight.BossfightQuesttypeController.html create mode 100644 doc/files/questtypes.bossfight.BossfightQuesttypeModel.html create mode 100644 doc/files/questtypes.choiceinput.ChoiceinputQuesttypeAgent.html create mode 100644 doc/files/questtypes.choiceinput.ChoiceinputQuesttypeController.html create mode 100644 doc/files/questtypes.choiceinput.ChoiceinputQuesttypeModel.html create mode 100644 doc/files/questtypes.crossword.CrosswordQuesttypeAgent.html create mode 100644 doc/files/questtypes.crossword.CrosswordQuesttypeController.html create mode 100644 doc/files/questtypes.crossword.CrosswordQuesttypeModel.html create mode 100644 doc/files/questtypes.dragndrop.DragndropQuesttypeAgent.html create mode 100644 doc/files/questtypes.dragndrop.DragndropQuesttypeController.html create mode 100644 doc/files/questtypes.dragndrop.DragndropQuesttypeModel.html create mode 100644 doc/files/questtypes.multiplechoice.MultiplechoiceQuesttypeAgent.html create mode 100644 doc/files/questtypes.multiplechoice.MultiplechoiceQuesttypeController.html create mode 100644 doc/files/questtypes.multiplechoice.MultiplechoiceQuesttypeModel.html create mode 100644 doc/files/questtypes.submit.SubmitQuesttypeAgent.html create mode 100644 doc/files/questtypes.submit.SubmitQuesttypeController.html create mode 100644 doc/files/questtypes.submit.SubmitQuesttypeModel.html create mode 100644 doc/files/questtypes.textinput.TextinputQuesttypeAgent.html create mode 100644 doc/files/questtypes.textinput.TextinputQuesttypeController.html create mode 100644 doc/files/questtypes.textinput.TextinputQuesttypeModel.html create mode 100644 doc/files/questtypes/bossfight/BossfightQuesttypeAgent.inc.txt create mode 100644 doc/files/questtypes/bossfight/BossfightQuesttypeController.inc.txt create mode 100644 doc/files/questtypes/bossfight/BossfightQuesttypeModel.inc.txt create mode 100644 doc/files/questtypes/choiceinput/ChoiceinputQuesttypeAgent.inc.txt create mode 100644 doc/files/questtypes/choiceinput/ChoiceinputQuesttypeController.inc.txt create mode 100644 doc/files/questtypes/choiceinput/ChoiceinputQuesttypeModel.inc.txt create mode 100644 doc/files/questtypes/crossword/CrosswordQuesttypeAgent.inc.txt create mode 100644 doc/files/questtypes/crossword/CrosswordQuesttypeController.inc.txt create mode 100644 doc/files/questtypes/crossword/CrosswordQuesttypeModel.inc.txt create mode 100644 doc/files/questtypes/dragndrop/DragndropQuesttypeAgent.inc.txt create mode 100644 doc/files/questtypes/dragndrop/DragndropQuesttypeController.inc.txt create mode 100644 doc/files/questtypes/dragndrop/DragndropQuesttypeModel.inc.txt create mode 100644 doc/files/questtypes/multiplechoice/MultiplechoiceQuesttypeAgent.inc.txt create mode 100644 doc/files/questtypes/multiplechoice/MultiplechoiceQuesttypeController.inc.txt create mode 100644 doc/files/questtypes/multiplechoice/MultiplechoiceQuesttypeModel.inc.txt create mode 100644 doc/files/questtypes/submit/SubmitQuesttypeAgent.inc.txt create mode 100644 doc/files/questtypes/submit/SubmitQuesttypeController.inc.txt create mode 100644 doc/files/questtypes/submit/SubmitQuesttypeModel.inc.txt create mode 100644 doc/files/questtypes/textinput/TextinputQuesttypeAgent.inc.txt create mode 100644 doc/files/questtypes/textinput/TextinputQuesttypeController.inc.txt create mode 100644 doc/files/questtypes/textinput/TextinputQuesttypeModel.inc.txt create mode 100644 doc/files/requests.WebRequest.html create mode 100644 doc/files/requests/WebRequest.inc.txt create mode 100644 doc/files/responses.WebResponse.html create mode 100644 doc/files/responses/WebResponse.inc.txt create mode 100644 doc/files/www.index.html create mode 100644 doc/files/www/index.php.txt create mode 100644 doc/font/FontAwesome.otf create mode 100644 doc/font/fontawesome-webfont.eot create mode 100644 doc/font/fontawesome-webfont.svg create mode 100644 doc/font/fontawesome-webfont.ttf create mode 100644 doc/font/fontawesome-webfont.woff create mode 100644 doc/graphs/class.html create mode 100644 doc/graphs/classes.svg create mode 100644 doc/images/apple-touch-icon-114x114.png create mode 100644 doc/images/apple-touch-icon-72x72.png create mode 100644 doc/images/apple-touch-icon.png create mode 100644 doc/images/custom-icons.svg create mode 100644 doc/images/favicon.ico create mode 100644 doc/images/hierarchy-item.png create mode 100644 doc/images/icon-class-13x13.png create mode 100644 doc/images/icon-class.svg create mode 100644 doc/images/icon-interface-13x13.png create mode 100644 doc/images/icon-interface.svg create mode 100644 doc/images/icon-trait-13x13.png create mode 100644 doc/images/icon-trait.svg create mode 100644 doc/images/iviewer/grab.cur create mode 100644 doc/images/iviewer/hand.cur create mode 100644 doc/images/iviewer/iviewer.rotate_left.png create mode 100644 doc/images/iviewer/iviewer.rotate_right.png create mode 100644 doc/images/iviewer/iviewer.zoom_fit.png create mode 100644 doc/images/iviewer/iviewer.zoom_in.png create mode 100644 doc/images/iviewer/iviewer.zoom_out.png create mode 100644 doc/images/iviewer/iviewer.zoom_zero.png create mode 100644 doc/index.html create mode 100644 doc/js/bootstrap.min.js create mode 100644 doc/js/html5.js create mode 100644 doc/js/jquery-1.11.0.min.js create mode 100644 doc/js/jquery.dotdotdot-1.5.9.js create mode 100644 doc/js/jquery.dotdotdot-1.5.9.min.js create mode 100644 doc/js/jquery.iviewer.js create mode 100644 doc/js/jquery.iviewer.min.js create mode 100644 doc/js/jquery.mousewheel.js create mode 100644 doc/js/jquery.smooth-scroll.js create mode 100644 doc/js/prism.min.js create mode 100644 doc/js/ui/1.10.4/jquery-ui.min.js create mode 100644 doc/namespaces/default.html create mode 100644 doc/namespaces/hhu.html create mode 100644 doc/namespaces/hhu.z.agents.bottomlevel.html create mode 100644 doc/namespaces/hhu.z.agents.html create mode 100644 doc/namespaces/hhu.z.agents.intermediate.html create mode 100644 doc/namespaces/hhu.z.agents.toplevel.html create mode 100644 doc/namespaces/hhu.z.apis.html create mode 100644 doc/namespaces/hhu.z.controllers.components.html create mode 100644 doc/namespaces/hhu.z.controllers.html create mode 100644 doc/namespaces/hhu.z.exceptions.html create mode 100644 doc/namespaces/hhu.z.html create mode 100644 doc/namespaces/hhu.z.lib.html create mode 100644 doc/namespaces/hhu.z.models.html create mode 100644 doc/namespaces/hhu.z.questtypes.html create mode 100644 doc/namespaces/hhu.z.requests.html create mode 100644 doc/namespaces/hhu.z.responses.html create mode 100644 doc/namespaces/hhu.z.views.html create mode 100644 doc/namespaces/nre.agents.html create mode 100644 doc/namespaces/nre.apis.html create mode 100644 doc/namespaces/nre.configs.html create mode 100644 doc/namespaces/nre.core.html create mode 100644 doc/namespaces/nre.drivers.html create mode 100644 doc/namespaces/nre.exceptions.html create mode 100644 doc/namespaces/nre.html create mode 100644 doc/namespaces/nre.models.html create mode 100644 doc/namespaces/nre.requests.html create mode 100644 doc/namespaces/nre.responses.html create mode 100644 doc/reports/deprecated.html create mode 100644 doc/reports/errors.html create mode 100644 doc/reports/markers.html create mode 100644 drivers/DatabaseDriver.inc create mode 100644 drivers/MysqliDriver.inc create mode 100644 exceptions/AccessDeniedException.inc create mode 100644 exceptions/ActionNotFoundException.inc create mode 100644 exceptions/AgentNotFoundException.inc create mode 100644 exceptions/AgentNotValidException.inc create mode 100644 exceptions/ClassNotFoundException.inc create mode 100644 exceptions/ClassNotValidException.inc create mode 100644 exceptions/ComponentNotFoundException.inc create mode 100644 exceptions/ComponentNotValidException.inc create mode 100644 exceptions/ControllerNotFoundException.inc create mode 100644 exceptions/ControllerNotValidException.inc create mode 100644 exceptions/DatamodelException.inc create mode 100644 exceptions/DriverNotFoundException.inc create mode 100644 exceptions/DriverNotValidException.inc create mode 100644 exceptions/FatalDatamodelException.inc create mode 100644 exceptions/IdNotFoundException.inc create mode 100644 exceptions/LayoutNotFoundException.inc create mode 100644 exceptions/LayoutNotValidException.inc create mode 100644 exceptions/ModelNotFoundException.inc create mode 100644 exceptions/ModelNotValidException.inc create mode 100644 exceptions/ParamsNotValidException.inc create mode 100644 exceptions/ServiceUnavailableException.inc create mode 100644 exceptions/ViewNotFoundException.inc create mode 100644 locale/de_DE/LC_MESSAGES/The Legend of Z.mo create mode 100644 locale/de_DE/LC_MESSAGES/The Legend of Z.po create mode 100644 logs/empty create mode 100644 media/empty create mode 100644 models/AchievementsModel.inc create mode 100644 models/AvatarsModel.inc create mode 100644 models/CharactergroupsModel.inc create mode 100644 models/CharactergroupsachievementsModel.inc create mode 100644 models/CharactergroupsquestsModel.inc create mode 100644 models/CharactergroupsqueststationsModel.inc create mode 100644 models/CharacterrolesModel.inc create mode 100644 models/CharactersModel.inc create mode 100644 models/CharactertitlesModel.inc create mode 100644 models/CharactertypesModel.inc create mode 100644 models/DatabaseModel.inc create mode 100644 models/MapModel.inc create mode 100644 models/MediaModel.inc create mode 100644 models/PagesModel.inc create mode 100644 models/QuestgroupsModel.inc create mode 100644 models/QuestgroupshierarchyModel.inc create mode 100644 models/QuestgrouptextsModel.inc create mode 100644 models/QuestsModel.inc create mode 100644 models/QuesttextsModel.inc create mode 100644 models/QuesttopicsModel.inc create mode 100644 models/QuesttypesModel.inc create mode 100644 models/SeminariesModel.inc create mode 100644 models/SeminarycharacterfieldsModel.inc create mode 100644 models/StationtypesModel.inc create mode 100644 models/UploadsModel.inc create mode 100644 models/UserrolesModel.inc create mode 100644 models/UsersModel.inc create mode 100644 models/XplevelsModel.inc create mode 100644 phpdoc.dist.xml create mode 100644 questtypes/bossfight/BossfightQuesttypeAgent.inc create mode 100644 questtypes/bossfight/BossfightQuesttypeController.inc create mode 100644 questtypes/bossfight/BossfightQuesttypeModel.inc create mode 100644 questtypes/bossfight/html/edittask.tpl create mode 100644 questtypes/bossfight/html/quest.tpl create mode 100644 questtypes/bossfight/html/submission.tpl create mode 100644 questtypes/choiceinput/ChoiceinputQuesttypeAgent.inc create mode 100644 questtypes/choiceinput/ChoiceinputQuesttypeController.inc create mode 100644 questtypes/choiceinput/ChoiceinputQuesttypeModel.inc create mode 100644 questtypes/choiceinput/html/edittask.tpl create mode 100644 questtypes/choiceinput/html/quest.tpl create mode 100644 questtypes/choiceinput/html/submission.tpl create mode 100644 questtypes/crossword/CrosswordQuesttypeAgent.inc create mode 100644 questtypes/crossword/CrosswordQuesttypeController.inc create mode 100644 questtypes/crossword/CrosswordQuesttypeModel.inc create mode 100644 questtypes/crossword/html/edittask.tpl create mode 100644 questtypes/crossword/html/quest.tpl create mode 100644 questtypes/crossword/html/submission.tpl create mode 100644 questtypes/dragndrop/DragndropQuesttypeAgent.inc create mode 100644 questtypes/dragndrop/DragndropQuesttypeController.inc create mode 100644 questtypes/dragndrop/DragndropQuesttypeModel.inc create mode 100644 questtypes/dragndrop/html/edittask.tpl create mode 100644 questtypes/dragndrop/html/quest.tpl create mode 100644 questtypes/dragndrop/html/submission.tpl create mode 100644 questtypes/multiplechoice/MultiplechoiceQuesttypeAgent.inc create mode 100644 questtypes/multiplechoice/MultiplechoiceQuesttypeController.inc create mode 100644 questtypes/multiplechoice/MultiplechoiceQuesttypeModel.inc create mode 100644 questtypes/multiplechoice/html/edittask.tpl create mode 100644 questtypes/multiplechoice/html/quest.tpl create mode 100644 questtypes/multiplechoice/html/submission.tpl create mode 100644 questtypes/submit/SubmitQuesttypeAgent.inc create mode 100644 questtypes/submit/SubmitQuesttypeController.inc create mode 100644 questtypes/submit/SubmitQuesttypeModel.inc create mode 100644 questtypes/submit/html/edittask.tpl create mode 100644 questtypes/submit/html/quest.tpl create mode 100644 questtypes/submit/html/submission.tpl create mode 100644 questtypes/textinput/TextinputQuesttypeAgent.inc create mode 100644 questtypes/textinput/TextinputQuesttypeController.inc create mode 100644 questtypes/textinput/TextinputQuesttypeModel.inc create mode 100644 questtypes/textinput/html/edittask.tpl create mode 100644 questtypes/textinput/html/quest.tpl create mode 100644 questtypes/textinput/html/submission.tpl create mode 100644 requests/WebRequest.inc create mode 100644 responses/WebResponse.inc create mode 100644 seminarymedia/empty create mode 100644 seminaryuploads/empty create mode 100644 stationtypes/keyword/KeywordStationtypeAgent.inc create mode 100644 stationtypes/keyword/KeywordStationtypeController.inc create mode 100644 stationtypes/keyword/KeywordStationtypeModel.inc create mode 100644 stationtypes/keyword/html/edittask.tpl create mode 100644 stationtypes/keyword/html/quest.tpl create mode 100644 stationtypes/multiplechoice/MultiplechoiceStationtypeAgent.inc create mode 100644 stationtypes/multiplechoice/MultiplechoiceStationtypeController.inc create mode 100644 stationtypes/multiplechoice/MultiplechoiceStationtypeModel.inc create mode 100644 stationtypes/multiplechoice/html/edittask.tpl create mode 100644 stationtypes/multiplechoice/html/quest.tpl create mode 100644 stationtypes/singlechoice/SinglechoiceStationtypeAgent.inc create mode 100644 stationtypes/singlechoice/SinglechoiceStationtypeController.inc create mode 100644 stationtypes/singlechoice/SinglechoiceStationtypeModel.inc create mode 100644 stationtypes/singlechoice/html/edittask.tpl create mode 100644 stationtypes/singlechoice/html/quest.tpl create mode 100644 tmp/empty create mode 100644 uploads/empty create mode 100644 views/ajax/ajax.tpl create mode 100644 views/ajax/charactergroupsqueststations/index.tpl create mode 100644 views/ajax/characters/index.tpl create mode 100644 views/ajax/quests/index.tpl create mode 100644 views/ajax/users/index.tpl create mode 100644 views/binary/binary.tpl create mode 100644 views/binary/error/index.tpl create mode 100644 views/binary/media/achievement.tpl create mode 100644 views/binary/media/avatar.tpl create mode 100644 views/binary/media/charactergroup.tpl create mode 100644 views/binary/media/charactergroupsachievement.tpl create mode 100644 views/binary/media/charactergroupsquest.tpl create mode 100644 views/binary/media/charactergroupsqueststation.tpl create mode 100644 views/binary/media/index.tpl create mode 100644 views/binary/media/seminary.tpl create mode 100644 views/binary/media/seminarymap.tpl create mode 100644 views/binary/media/seminarymoodpic.tpl create mode 100644 views/binary/qrcodes/achievement.tpl create mode 100644 views/binary/qrcodes/charactergroupsachievements.tpl create mode 100644 views/binary/qrcodes/charactergroupsqueststation.tpl create mode 100644 views/binary/qrcodes/charactertitle.tpl create mode 100644 views/binary/uploads/charactergroup.tpl create mode 100644 views/binary/uploads/seminary.tpl create mode 100644 views/error.tpl create mode 100644 views/fault/error/index.tpl create mode 100644 views/fault/fault.tpl create mode 100644 views/html/achievements/conditions.tpl create mode 100644 views/html/achievements/create.tpl create mode 100644 views/html/achievements/delete.tpl create mode 100644 views/html/achievements/edit.tpl create mode 100644 views/html/achievements/index.tpl create mode 100644 views/html/achievements/manage.tpl create mode 100644 views/html/achievements/movedown.tpl create mode 100644 views/html/achievements/moveup.tpl create mode 100644 views/html/charactergroups/creategroup.tpl create mode 100644 views/html/charactergroups/creategroupsgroup.tpl create mode 100644 views/html/charactergroups/deletegroup.tpl create mode 100644 views/html/charactergroups/deletegroupsgroup.tpl create mode 100644 views/html/charactergroups/editgroup.tpl create mode 100644 views/html/charactergroups/editgroupsgroup.tpl create mode 100644 views/html/charactergroups/group.tpl create mode 100644 views/html/charactergroups/groupsgroup.tpl create mode 100644 views/html/charactergroups/index.tpl create mode 100644 views/html/charactergroups/managegroup.tpl create mode 100644 views/html/charactergroupsachievements/achievement.tpl create mode 100644 views/html/charactergroupsachievements/create.tpl create mode 100644 views/html/charactergroupsachievements/delete.tpl create mode 100644 views/html/charactergroupsachievements/edit.tpl create mode 100644 views/html/charactergroupsachievements/manage.tpl create mode 100644 views/html/charactergroupsachievements/movedown.tpl create mode 100644 views/html/charactergroupsachievements/moveup.tpl create mode 100644 views/html/charactergroupsquests/create.tpl create mode 100644 views/html/charactergroupsquests/delete.tpl create mode 100644 views/html/charactergroupsquests/edit.tpl create mode 100644 views/html/charactergroupsquests/manage.tpl create mode 100644 views/html/charactergroupsquests/quest.tpl create mode 100644 views/html/charactergroupsqueststations/create.tpl create mode 100644 views/html/charactergroupsqueststations/delete.tpl create mode 100644 views/html/charactergroupsqueststations/edit.tpl create mode 100644 views/html/charactergroupsqueststations/edittask.tpl create mode 100644 views/html/charactergroupsqueststations/station.tpl create mode 100644 views/html/characters/character.tpl create mode 100644 views/html/characters/delete.tpl create mode 100644 views/html/characters/edit.tpl create mode 100644 views/html/characters/index.tpl create mode 100644 views/html/characters/manage.tpl create mode 100644 views/html/characters/register.tpl create mode 100644 views/html/charactertitles/create.tpl create mode 100644 views/html/charactertitles/delete.tpl create mode 100644 views/html/charactertitles/edit.tpl create mode 100644 views/html/charactertitles/index.tpl create mode 100644 views/html/charactertypes/create.tpl create mode 100644 views/html/charactertypes/delete.tpl create mode 100644 views/html/charactertypes/edit.tpl create mode 100644 views/html/charactertypes/index.tpl create mode 100644 views/html/error/index.tpl create mode 100644 views/html/html.tpl create mode 100644 views/html/introduction/edit.tpl create mode 100644 views/html/introduction/index.tpl create mode 100644 views/html/library/create.tpl create mode 100644 views/html/library/delete.tpl create mode 100644 views/html/library/edit.tpl create mode 100644 views/html/library/index.tpl create mode 100644 views/html/library/manage.tpl create mode 100644 views/html/library/topic.tpl create mode 100644 views/html/map/edit.tpl create mode 100644 views/html/map/index.tpl create mode 100644 views/html/menu/index.tpl create mode 100644 views/html/moodpic/index.tpl create mode 100644 views/html/moodpic/questgroup.tpl create mode 100644 views/html/moodpic/seminary.tpl create mode 100644 views/html/pages/create.tpl create mode 100644 views/html/pages/delete.tpl create mode 100644 views/html/pages/edit.tpl create mode 100644 views/html/pages/index.tpl create mode 100644 views/html/pages/page.tpl create mode 100644 views/html/qr/a.tpl create mode 100644 views/html/qr/cga.tpl create mode 100644 views/html/qr/cgqs.tpl create mode 100644 views/html/qr/ct.tpl create mode 100644 views/html/questgroups/create.tpl create mode 100644 views/html/questgroups/delete.tpl create mode 100644 views/html/questgroups/edit.tpl create mode 100644 views/html/questgroups/edittexts.tpl create mode 100644 views/html/questgroups/movedown.tpl create mode 100644 views/html/questgroups/moveup.tpl create mode 100644 views/html/questgroups/questgroup.tpl create mode 100644 views/html/questgroupshierarchy/create.tpl create mode 100644 views/html/questgroupshierarchy/delete.tpl create mode 100644 views/html/questgroupshierarchy/edit.tpl create mode 100644 views/html/questgroupshierarchy/movedown.tpl create mode 100644 views/html/questgroupshierarchy/moveup.tpl create mode 100644 views/html/questgroupshierarchypath/index.tpl create mode 100644 views/html/quests/create.tpl create mode 100644 views/html/quests/delete.tpl create mode 100644 views/html/quests/edit.tpl create mode 100644 views/html/quests/edittask.tpl create mode 100644 views/html/quests/edittexts.tpl create mode 100644 views/html/quests/index.tpl create mode 100644 views/html/quests/quest.tpl create mode 100644 views/html/quests/submission.tpl create mode 100644 views/html/quests/submissions.tpl create mode 100644 views/html/seminaries/calculatexps.tpl create mode 100644 views/html/seminaries/copy.tpl create mode 100644 views/html/seminaries/create.tpl create mode 100644 views/html/seminaries/delete.tpl create mode 100644 views/html/seminaries/edit.tpl create mode 100644 views/html/seminaries/index.tpl create mode 100644 views/html/seminaries/seminary.tpl create mode 100644 views/html/seminarybar/index.tpl create mode 100644 views/html/seminarymenu/index.tpl create mode 100644 views/html/userroles/user.tpl create mode 100644 views/html/users/create.tpl create mode 100644 views/html/users/delete.tpl create mode 100644 views/html/users/edit.tpl create mode 100644 views/html/users/index.tpl create mode 100644 views/html/users/login.tpl create mode 100644 views/html/users/logout.tpl create mode 100644 views/html/users/manage.tpl create mode 100644 views/html/users/register.tpl create mode 100644 views/html/users/user.tpl create mode 100644 views/html/xplevels/manage.tpl create mode 100644 views/htmlmail/htmlmail.tpl create mode 100644 views/htmlmail/mail/characterregistration.tpl create mode 100644 views/htmlmail/mail/charactersubmission.tpl create mode 100644 views/htmlmail/mail/charactersubmissionapproved.tpl create mode 100644 views/htmlmail/mail/userregistration.tpl create mode 100644 views/htmlmail/mailreceiver/index.tpl create mode 100644 views/inlineerror.tpl create mode 100644 views/textmail/mail/characterregistration.tpl create mode 100644 views/textmail/mail/charactersubmission.tpl create mode 100644 views/textmail/mail/charactersubmissionapproved.tpl create mode 100644 views/textmail/mail/userregistration.tpl create mode 100644 views/textmail/mailreceiver/index.tpl create mode 100644 views/textmail/textmail.tpl create mode 100644 www/.htaccess create mode 100644 www/analytics/LEGALNOTICE create mode 100644 www/analytics/README.md create mode 100644 www/analytics/composer.json create mode 100644 www/analytics/composer.lock create mode 100644 www/analytics/config/.htaccess create mode 100644 www/analytics/config/global.ini.php create mode 100644 www/analytics/config/manifest.inc.php create mode 100755 www/analytics/console create mode 100644 www/analytics/core/.htaccess create mode 100644 www/analytics/core/API/DataTableGenericFilter.php create mode 100644 www/analytics/core/API/DataTableManipulator.php create mode 100644 www/analytics/core/API/DataTableManipulator/Flattener.php create mode 100644 www/analytics/core/API/DataTableManipulator/LabelFilter.php create mode 100644 www/analytics/core/API/DataTableManipulator/ReportTotalsCalculator.php create mode 100644 www/analytics/core/API/DocumentationGenerator.php create mode 100644 www/analytics/core/API/Proxy.php create mode 100644 www/analytics/core/API/Request.php create mode 100644 www/analytics/core/API/ResponseBuilder.php create mode 100644 www/analytics/core/Access.php create mode 100644 www/analytics/core/Archive.php create mode 100644 www/analytics/core/Archive/DataCollection.php create mode 100644 www/analytics/core/Archive/DataTableFactory.php create mode 100644 www/analytics/core/Archive/Parameters.php create mode 100644 www/analytics/core/ArchiveProcessor.php create mode 100644 www/analytics/core/ArchiveProcessor/Loader.php create mode 100644 www/analytics/core/ArchiveProcessor/Parameters.php create mode 100644 www/analytics/core/ArchiveProcessor/PluginsArchiver.php create mode 100644 www/analytics/core/ArchiveProcessor/Rules.php create mode 100644 www/analytics/core/AssetManager.php create mode 100644 www/analytics/core/AssetManager/UIAsset.php create mode 100644 www/analytics/core/AssetManager/UIAsset/InMemoryUIAsset.php create mode 100644 www/analytics/core/AssetManager/UIAsset/OnDiskUIAsset.php create mode 100644 www/analytics/core/AssetManager/UIAssetCacheBuster.php create mode 100644 www/analytics/core/AssetManager/UIAssetCatalog.php create mode 100644 www/analytics/core/AssetManager/UIAssetCatalogSorter.php create mode 100644 www/analytics/core/AssetManager/UIAssetFetcher.php create mode 100644 www/analytics/core/AssetManager/UIAssetFetcher/JScriptUIAssetFetcher.php create mode 100644 www/analytics/core/AssetManager/UIAssetFetcher/StaticUIAssetFetcher.php create mode 100644 www/analytics/core/AssetManager/UIAssetFetcher/StylesheetUIAssetFetcher.php create mode 100644 www/analytics/core/AssetManager/UIAssetMerger.php create mode 100644 www/analytics/core/AssetManager/UIAssetMerger/JScriptUIAssetMerger.php create mode 100644 www/analytics/core/AssetManager/UIAssetMerger/StylesheetUIAssetMerger.php create mode 100644 www/analytics/core/AssetManager/UIAssetMinifier.php create mode 100644 www/analytics/core/Auth.php create mode 100644 www/analytics/core/CacheFile.php create mode 100644 www/analytics/core/CliMulti.php create mode 100644 www/analytics/core/CliMulti/Output.php create mode 100644 www/analytics/core/CliMulti/Process.php create mode 100644 www/analytics/core/CliMulti/RequestCommand.php create mode 100644 www/analytics/core/Common.php create mode 100644 www/analytics/core/Config.php create mode 100644 www/analytics/core/Console.php create mode 100644 www/analytics/core/Cookie.php create mode 100644 www/analytics/core/CronArchive.php create mode 100644 www/analytics/core/CronArchive/FixedSiteIds.php create mode 100644 www/analytics/core/CronArchive/SharedSiteIds.php create mode 100644 www/analytics/core/DataAccess/ArchiveSelector.php create mode 100644 www/analytics/core/DataAccess/ArchiveTableCreator.php create mode 100644 www/analytics/core/DataAccess/ArchiveWriter.php create mode 100644 www/analytics/core/DataAccess/LogAggregator.php create mode 100644 www/analytics/core/DataArray.php create mode 100644 www/analytics/core/DataFiles/Countries.php create mode 100644 www/analytics/core/DataFiles/Currencies.php create mode 100644 www/analytics/core/DataFiles/LanguageToCountry.php create mode 100644 www/analytics/core/DataFiles/Languages.php create mode 100644 www/analytics/core/DataFiles/Providers.php create mode 100644 www/analytics/core/DataFiles/SearchEngines.php create mode 100755 www/analytics/core/DataFiles/Socials.php create mode 100644 www/analytics/core/DataTable.php create mode 100644 www/analytics/core/DataTable/BaseFilter.php create mode 100644 www/analytics/core/DataTable/Bridges.php create mode 100644 www/analytics/core/DataTable/DataTableInterface.php create mode 100644 www/analytics/core/DataTable/Filter/AddColumnsProcessedMetrics.php create mode 100644 www/analytics/core/DataTable/Filter/AddColumnsProcessedMetricsGoal.php create mode 100644 www/analytics/core/DataTable/Filter/AddSummaryRow.php create mode 100644 www/analytics/core/DataTable/Filter/BeautifyRangeLabels.php create mode 100644 www/analytics/core/DataTable/Filter/BeautifyTimeRangeLabels.php create mode 100755 www/analytics/core/DataTable/Filter/CalculateEvolutionFilter.php create mode 100755 www/analytics/core/DataTable/Filter/ColumnCallbackAddColumn.php create mode 100644 www/analytics/core/DataTable/Filter/ColumnCallbackAddColumnPercentage.php create mode 100644 www/analytics/core/DataTable/Filter/ColumnCallbackAddColumnQuotient.php create mode 100644 www/analytics/core/DataTable/Filter/ColumnCallbackAddMetadata.php create mode 100644 www/analytics/core/DataTable/Filter/ColumnCallbackDeleteRow.php create mode 100644 www/analytics/core/DataTable/Filter/ColumnCallbackReplace.php create mode 100644 www/analytics/core/DataTable/Filter/ColumnDelete.php create mode 100644 www/analytics/core/DataTable/Filter/ExcludeLowPopulation.php create mode 100755 www/analytics/core/DataTable/Filter/GroupBy.php create mode 100644 www/analytics/core/DataTable/Filter/Limit.php create mode 100644 www/analytics/core/DataTable/Filter/MetadataCallbackAddMetadata.php create mode 100644 www/analytics/core/DataTable/Filter/MetadataCallbackReplace.php create mode 100644 www/analytics/core/DataTable/Filter/Pattern.php create mode 100644 www/analytics/core/DataTable/Filter/PatternRecursive.php create mode 100644 www/analytics/core/DataTable/Filter/RangeCheck.php create mode 100644 www/analytics/core/DataTable/Filter/ReplaceColumnNames.php create mode 100644 www/analytics/core/DataTable/Filter/ReplaceSummaryRowLabel.php create mode 100644 www/analytics/core/DataTable/Filter/SafeDecodeLabel.php create mode 100644 www/analytics/core/DataTable/Filter/Sort.php create mode 100644 www/analytics/core/DataTable/Filter/Truncate.php create mode 100644 www/analytics/core/DataTable/Manager.php create mode 100644 www/analytics/core/DataTable/Map.php create mode 100644 www/analytics/core/DataTable/Renderer.php create mode 100644 www/analytics/core/DataTable/Renderer/Console.php create mode 100644 www/analytics/core/DataTable/Renderer/Csv.php create mode 100644 www/analytics/core/DataTable/Renderer/Html.php create mode 100644 www/analytics/core/DataTable/Renderer/Json.php create mode 100644 www/analytics/core/DataTable/Renderer/Php.php create mode 100644 www/analytics/core/DataTable/Renderer/Rss.php create mode 100644 www/analytics/core/DataTable/Renderer/Tsv.php create mode 100644 www/analytics/core/DataTable/Renderer/Xml.php create mode 100644 www/analytics/core/DataTable/Row.php create mode 100644 www/analytics/core/DataTable/Row/DataTableSummaryRow.php create mode 100644 www/analytics/core/DataTable/Simple.php create mode 100644 www/analytics/core/DataTable/TableNotFoundException.php create mode 100644 www/analytics/core/Date.php create mode 100644 www/analytics/core/Db.php create mode 100644 www/analytics/core/Db/Adapter.php create mode 100644 www/analytics/core/Db/Adapter/Mysqli.php create mode 100644 www/analytics/core/Db/Adapter/Pdo/Mssql.php create mode 100644 www/analytics/core/Db/Adapter/Pdo/Mysql.php create mode 100644 www/analytics/core/Db/Adapter/Pdo/Pgsql.php create mode 100644 www/analytics/core/Db/AdapterInterface.php create mode 100644 www/analytics/core/Db/BatchInsert.php create mode 100644 www/analytics/core/Db/Schema.php create mode 100644 www/analytics/core/Db/Schema/Mysql.php create mode 100644 www/analytics/core/Db/SchemaInterface.php create mode 100644 www/analytics/core/DbHelper.php create mode 100644 www/analytics/core/Error.php create mode 100644 www/analytics/core/EventDispatcher.php create mode 100644 www/analytics/core/ExceptionHandler.php create mode 100644 www/analytics/core/Filechecks.php create mode 100644 www/analytics/core/Filesystem.php create mode 100644 www/analytics/core/FrontController.php create mode 100644 www/analytics/core/Http.php create mode 100644 www/analytics/core/IP.php create mode 100644 www/analytics/core/Loader.php create mode 100644 www/analytics/core/Log.php create mode 100644 www/analytics/core/Mail.php create mode 100644 www/analytics/core/Menu/MenuAbstract.php create mode 100644 www/analytics/core/Menu/MenuAdmin.php create mode 100644 www/analytics/core/Menu/MenuMain.php create mode 100644 www/analytics/core/Menu/MenuTop.php create mode 100644 www/analytics/core/Metrics.php create mode 100644 www/analytics/core/MetricsFormatter.php create mode 100644 www/analytics/core/Nonce.php create mode 100644 www/analytics/core/Notification.php create mode 100644 www/analytics/core/Notification/Manager.php create mode 100644 www/analytics/core/Option.php create mode 100644 www/analytics/core/Period.php create mode 100644 www/analytics/core/Period/Day.php create mode 100644 www/analytics/core/Period/Month.php create mode 100644 www/analytics/core/Period/Range.php create mode 100644 www/analytics/core/Period/Week.php create mode 100644 www/analytics/core/Period/Year.php create mode 100644 www/analytics/core/Piwik.php create mode 100644 www/analytics/core/Plugin.php create mode 100644 www/analytics/core/Plugin/API.php create mode 100644 www/analytics/core/Plugin/Archiver.php create mode 100644 www/analytics/core/Plugin/ConsoleCommand.php create mode 100644 www/analytics/core/Plugin/Controller.php create mode 100644 www/analytics/core/Plugin/ControllerAdmin.php create mode 100644 www/analytics/core/Plugin/Dependency.php create mode 100644 www/analytics/core/Plugin/Manager.php create mode 100644 www/analytics/core/Plugin/MetadataLoader.php create mode 100644 www/analytics/core/Plugin/Settings.php create mode 100644 www/analytics/core/Plugin/ViewDataTable.php create mode 100644 www/analytics/core/Plugin/Visualization.php create mode 100644 www/analytics/core/Profiler.php create mode 100644 www/analytics/core/ProxyHeaders.php create mode 100644 www/analytics/core/ProxyHttp.php create mode 100644 www/analytics/core/QuickForm2.php create mode 100644 www/analytics/core/RankingQuery.php create mode 100644 www/analytics/core/Registry.php create mode 100644 www/analytics/core/ReportRenderer.php create mode 100644 www/analytics/core/ReportRenderer/Csv.php create mode 100644 www/analytics/core/ReportRenderer/Html.php create mode 100644 www/analytics/core/ReportRenderer/Pdf.php create mode 100644 www/analytics/core/ScheduledTask.php create mode 100644 www/analytics/core/ScheduledTaskTimetable.php create mode 100644 www/analytics/core/ScheduledTime.php create mode 100644 www/analytics/core/ScheduledTime/Daily.php create mode 100644 www/analytics/core/ScheduledTime/Hourly.php create mode 100644 www/analytics/core/ScheduledTime/Monthly.php create mode 100644 www/analytics/core/ScheduledTime/Weekly.php create mode 100644 www/analytics/core/Segment.php create mode 100644 www/analytics/core/SegmentExpression.php create mode 100644 www/analytics/core/Session.php create mode 100644 www/analytics/core/Session/SaveHandler/DbTable.php create mode 100644 www/analytics/core/Session/SessionNamespace.php create mode 100644 www/analytics/core/Settings/Manager.php create mode 100644 www/analytics/core/Settings/Setting.php create mode 100644 www/analytics/core/Settings/StorageInterface.php create mode 100644 www/analytics/core/Settings/SystemSetting.php create mode 100644 www/analytics/core/Settings/UserSetting.php create mode 100644 www/analytics/core/SettingsPiwik.php create mode 100644 www/analytics/core/SettingsServer.php create mode 100644 www/analytics/core/Singleton.php create mode 100644 www/analytics/core/Site.php create mode 100644 www/analytics/core/TCPDF.php create mode 100644 www/analytics/core/TaskScheduler.php create mode 100644 www/analytics/core/Theme.php create mode 100644 www/analytics/core/Timer.php create mode 100644 www/analytics/core/Tracker.php create mode 100644 www/analytics/core/Tracker/Action.php create mode 100644 www/analytics/core/Tracker/ActionClickUrl.php create mode 100644 www/analytics/core/Tracker/ActionEvent.php create mode 100644 www/analytics/core/Tracker/ActionPageview.php create mode 100644 www/analytics/core/Tracker/ActionSiteSearch.php create mode 100644 www/analytics/core/Tracker/Cache.php create mode 100644 www/analytics/core/Tracker/Db.php create mode 100644 www/analytics/core/Tracker/Db/DbException.php create mode 100644 www/analytics/core/Tracker/Db/Mysqli.php create mode 100644 www/analytics/core/Tracker/Db/Pdo/Mysql.php create mode 100644 www/analytics/core/Tracker/Db/Pdo/Pgsql.php create mode 100644 www/analytics/core/Tracker/GoalManager.php create mode 100644 www/analytics/core/Tracker/IgnoreCookie.php create mode 100644 www/analytics/core/Tracker/PageUrl.php create mode 100644 www/analytics/core/Tracker/Referrer.php create mode 100644 www/analytics/core/Tracker/Request.php create mode 100644 www/analytics/core/Tracker/TableLogAction.php create mode 100644 www/analytics/core/Tracker/Visit.php create mode 100644 www/analytics/core/Tracker/VisitExcluded.php create mode 100644 www/analytics/core/Tracker/VisitInterface.php create mode 100644 www/analytics/core/Tracker/VisitorNotFoundInDb.php create mode 100644 www/analytics/core/Translate.php create mode 100644 www/analytics/core/Translate/Filter/ByBaseTranslations.php create mode 100644 www/analytics/core/Translate/Filter/ByParameterCount.php create mode 100644 www/analytics/core/Translate/Filter/EmptyTranslations.php create mode 100644 www/analytics/core/Translate/Filter/EncodedEntities.php create mode 100644 www/analytics/core/Translate/Filter/FilterAbstract.php create mode 100644 www/analytics/core/Translate/Filter/UnnecassaryWhitespaces.php create mode 100644 www/analytics/core/Translate/Validate/CoreTranslations.php create mode 100644 www/analytics/core/Translate/Validate/NoScripts.php create mode 100644 www/analytics/core/Translate/Validate/ValidateAbstract.php create mode 100644 www/analytics/core/Translate/Writer.php create mode 100644 www/analytics/core/Twig.php create mode 100644 www/analytics/core/Unzip.php create mode 100755 www/analytics/core/Unzip/Gzip.php create mode 100644 www/analytics/core/Unzip/PclZip.php create mode 100755 www/analytics/core/Unzip/Tar.php create mode 100644 www/analytics/core/Unzip/UncompressInterface.php create mode 100644 www/analytics/core/Unzip/ZipArchive.php create mode 100644 www/analytics/core/UpdateCheck.php create mode 100644 www/analytics/core/Updater.php create mode 100644 www/analytics/core/Updates.php create mode 100644 www/analytics/core/Updates/0.2.10.php create mode 100644 www/analytics/core/Updates/0.2.12.php create mode 100644 www/analytics/core/Updates/0.2.13.php create mode 100644 www/analytics/core/Updates/0.2.24.php create mode 100644 www/analytics/core/Updates/0.2.27.php create mode 100644 www/analytics/core/Updates/0.2.32.php create mode 100644 www/analytics/core/Updates/0.2.33.php create mode 100644 www/analytics/core/Updates/0.2.34.php create mode 100644 www/analytics/core/Updates/0.2.35.php create mode 100644 www/analytics/core/Updates/0.2.37.php create mode 100644 www/analytics/core/Updates/0.4.1.php create mode 100644 www/analytics/core/Updates/0.4.2.php create mode 100644 www/analytics/core/Updates/0.4.4.php create mode 100644 www/analytics/core/Updates/0.4.php create mode 100644 www/analytics/core/Updates/0.5.4.php create mode 100644 www/analytics/core/Updates/0.5.5.php create mode 100644 www/analytics/core/Updates/0.5.php create mode 100644 www/analytics/core/Updates/0.6-rc1.php create mode 100644 www/analytics/core/Updates/0.6.2.php create mode 100644 www/analytics/core/Updates/0.6.3.php create mode 100644 www/analytics/core/Updates/0.7.php create mode 100644 www/analytics/core/Updates/0.9.1.php create mode 100644 www/analytics/core/Updates/1.1.php create mode 100755 www/analytics/core/Updates/1.10-b4.php create mode 100755 www/analytics/core/Updates/1.10.1.php create mode 100755 www/analytics/core/Updates/1.10.2-b1.php create mode 100644 www/analytics/core/Updates/1.10.2-b2.php create mode 100644 www/analytics/core/Updates/1.11-b1.php create mode 100644 www/analytics/core/Updates/1.12-b1.php create mode 100644 www/analytics/core/Updates/1.12-b15.php create mode 100644 www/analytics/core/Updates/1.12-b16.php create mode 100644 www/analytics/core/Updates/1.2-rc1.php create mode 100644 www/analytics/core/Updates/1.2-rc2.php create mode 100644 www/analytics/core/Updates/1.2.3.php create mode 100644 www/analytics/core/Updates/1.2.5-rc1.php create mode 100644 www/analytics/core/Updates/1.2.5-rc7.php create mode 100644 www/analytics/core/Updates/1.4-rc1.php create mode 100644 www/analytics/core/Updates/1.4-rc2.php create mode 100644 www/analytics/core/Updates/1.5-b1.php create mode 100644 www/analytics/core/Updates/1.5-b2.php create mode 100644 www/analytics/core/Updates/1.5-b3.php create mode 100644 www/analytics/core/Updates/1.5-b4.php create mode 100644 www/analytics/core/Updates/1.5-b5.php create mode 100644 www/analytics/core/Updates/1.5-rc6.php create mode 100644 www/analytics/core/Updates/1.6-b1.php create mode 100644 www/analytics/core/Updates/1.6-rc1.php create mode 100644 www/analytics/core/Updates/1.7-b1.php create mode 100644 www/analytics/core/Updates/1.7.2-rc5.php create mode 100755 www/analytics/core/Updates/1.7.2-rc7.php create mode 100644 www/analytics/core/Updates/1.8.3-b1.php create mode 100644 www/analytics/core/Updates/1.8.4-b1.php create mode 100755 www/analytics/core/Updates/1.9-b16.php create mode 100755 www/analytics/core/Updates/1.9-b19.php create mode 100755 www/analytics/core/Updates/1.9-b9.php create mode 100644 www/analytics/core/Updates/1.9.1-b2.php create mode 100755 www/analytics/core/Updates/1.9.3-b10.php create mode 100644 www/analytics/core/Updates/1.9.3-b3.php create mode 100755 www/analytics/core/Updates/1.9.3-b8.php create mode 100644 www/analytics/core/Updates/2.0-a12.php create mode 100644 www/analytics/core/Updates/2.0-a13.php create mode 100644 www/analytics/core/Updates/2.0-a17.php create mode 100644 www/analytics/core/Updates/2.0-a7.php create mode 100644 www/analytics/core/Updates/2.0-b10.php create mode 100644 www/analytics/core/Updates/2.0-b13.php create mode 100644 www/analytics/core/Updates/2.0-b3.php create mode 100644 www/analytics/core/Updates/2.0-b9.php create mode 100644 www/analytics/core/Updates/2.0-rc1.php create mode 100644 www/analytics/core/Updates/2.0.3-b7.php create mode 100644 www/analytics/core/Updates/2.0.4-b5.php create mode 100644 www/analytics/core/Updates/2.0.4-b7.php create mode 100644 www/analytics/core/Updates/2.0.4-b8.php create mode 100644 www/analytics/core/Updates/2.1.1-b11.php create mode 100644 www/analytics/core/Updates/2.2.0-b15.php create mode 100644 www/analytics/core/Url.php create mode 100644 www/analytics/core/UrlHelper.php create mode 100644 www/analytics/core/Version.php create mode 100644 www/analytics/core/View.php create mode 100644 www/analytics/core/View/OneClickDone.php create mode 100644 www/analytics/core/View/RenderTokenParser.php create mode 100644 www/analytics/core/View/ReportsByDimension.php create mode 100644 www/analytics/core/View/UIControl.php create mode 100644 www/analytics/core/View/ViewInterface.php create mode 100644 www/analytics/core/ViewDataTable/Config.php create mode 100644 www/analytics/core/ViewDataTable/Factory.php create mode 100644 www/analytics/core/ViewDataTable/Manager.php create mode 100644 www/analytics/core/ViewDataTable/Request.php create mode 100644 www/analytics/core/ViewDataTable/RequestConfig.php create mode 100644 www/analytics/core/Visualization/Sparkline.php create mode 100644 www/analytics/core/WidgetsList.php create mode 100644 www/analytics/core/dispatch.php create mode 100644 www/analytics/core/testMinimumPhpVersion.php create mode 100644 www/analytics/favicon.ico create mode 100644 www/analytics/index.php create mode 100644 www/analytics/js/.htaccess create mode 100644 www/analytics/js/LICENSE.txt create mode 100644 www/analytics/js/README.md create mode 100644 www/analytics/js/index.php create mode 100644 www/analytics/js/piwik.js create mode 100644 www/analytics/lang/.htaccess create mode 100644 www/analytics/lang/README.md create mode 100644 www/analytics/lang/am.json create mode 100644 www/analytics/lang/ar.json create mode 100644 www/analytics/lang/be.json create mode 100644 www/analytics/lang/bg.json create mode 100644 www/analytics/lang/bn.json create mode 100644 www/analytics/lang/bs.json create mode 100644 www/analytics/lang/ca.json create mode 100644 www/analytics/lang/cs.json create mode 100644 www/analytics/lang/cy.json create mode 100644 www/analytics/lang/da.json create mode 100644 www/analytics/lang/de.json create mode 100644 www/analytics/lang/el.json create mode 100644 www/analytics/lang/en.json create mode 100644 www/analytics/lang/es.json create mode 100644 www/analytics/lang/et.json create mode 100644 www/analytics/lang/eu.json create mode 100644 www/analytics/lang/fa.json create mode 100644 www/analytics/lang/fi.json create mode 100644 www/analytics/lang/fr.json create mode 100644 www/analytics/lang/gl.json create mode 100644 www/analytics/lang/he.json create mode 100644 www/analytics/lang/hi.json create mode 100644 www/analytics/lang/hr.json create mode 100644 www/analytics/lang/hu.json create mode 100644 www/analytics/lang/id.json create mode 100644 www/analytics/lang/is.json create mode 100644 www/analytics/lang/it.json create mode 100644 www/analytics/lang/ja.json create mode 100644 www/analytics/lang/ka.json create mode 100644 www/analytics/lang/ko.json create mode 100644 www/analytics/lang/lt.json create mode 100644 www/analytics/lang/lv.json create mode 100644 www/analytics/lang/nb.json create mode 100644 www/analytics/lang/nl.json create mode 100644 www/analytics/lang/nn.json create mode 100644 www/analytics/lang/pl.json create mode 100644 www/analytics/lang/pt-br.json create mode 100644 www/analytics/lang/pt.json create mode 100644 www/analytics/lang/ro.json create mode 100644 www/analytics/lang/ru.json create mode 100644 www/analytics/lang/sk.json create mode 100644 www/analytics/lang/sl.json create mode 100644 www/analytics/lang/sq.json create mode 100644 www/analytics/lang/sr.json create mode 100644 www/analytics/lang/sv.json create mode 100644 www/analytics/lang/ta.json create mode 100644 www/analytics/lang/te.json create mode 100644 www/analytics/lang/th.json create mode 100644 www/analytics/lang/tr.json create mode 100644 www/analytics/lang/uk.json create mode 100644 www/analytics/lang/vi.json create mode 100644 www/analytics/lang/zh-cn.json create mode 100644 www/analytics/lang/zh-tw.json create mode 100644 www/analytics/libs/.htaccess create mode 100755 www/analytics/libs/Archive_Tar/Tar.php create mode 100644 www/analytics/libs/HTML/Common2.php create mode 100644 www/analytics/libs/HTML/QuickForm2.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Container.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Container/Fieldset.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Container/Group.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Controller.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Controller/Action.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Controller/Action/Back.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Controller/Action/Direct.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Controller/Action/Display.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Controller/Action/Jump.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Controller/Action/Next.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Controller/Action/Submit.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Controller/DefaultAction.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Controller/Page.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Controller/SessionContainer.php create mode 100644 www/analytics/libs/HTML/QuickForm2/DataSource.php create mode 100644 www/analytics/libs/HTML/QuickForm2/DataSource/Array.php create mode 100644 www/analytics/libs/HTML/QuickForm2/DataSource/Session.php create mode 100644 www/analytics/libs/HTML/QuickForm2/DataSource/Submit.php create mode 100644 www/analytics/libs/HTML/QuickForm2/DataSource/SuperGlobal.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Element.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Element/Button.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Element/Date.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Element/Input.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Element/InputButton.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Element/InputCheckable.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Element/InputCheckbox.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Element/InputFile.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Element/InputHidden.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Element/InputImage.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Element/InputPassword.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Element/InputRadio.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Element/InputReset.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Element/InputSubmit.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Element/InputText.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Element/Select.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Element/Static.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Element/Textarea.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Exception.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Factory.php create mode 100644 www/analytics/libs/HTML/QuickForm2/JavascriptBuilder.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Loader.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Node.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Renderer.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Renderer/Array.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Renderer/Default.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Renderer/Plugin.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Renderer/Proxy.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Renderer/Smarty.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Rule.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Rule/Callback.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Rule/Compare.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Rule/Each.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Rule/Empty.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Rule/Length.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Rule/MaxFileSize.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Rule/MimeType.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Rule/Nonempty.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Rule/NotCallback.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Rule/NotRegex.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Rule/Regex.php create mode 100644 www/analytics/libs/HTML/QuickForm2/Rule/Required.php create mode 100755 www/analytics/libs/MaxMindGeoIP/geoip.inc create mode 100755 www/analytics/libs/MaxMindGeoIP/geoipcity.inc create mode 100755 www/analytics/libs/MaxMindGeoIP/geoipregionvars.php create mode 100644 www/analytics/libs/PEAR.php create mode 100644 www/analytics/libs/PEAR/Exception.php create mode 100644 www/analytics/libs/PEAR/FixPHP5PEARWarnings.php create mode 100644 www/analytics/libs/PEAR/LICENSE create mode 100644 www/analytics/libs/PEAR5.php create mode 100644 www/analytics/libs/PclZip/lgpl-2.1.txt create mode 100644 www/analytics/libs/PclZip/pclzip.lib.php create mode 100644 www/analytics/libs/PiwikTracker/LICENSE.txt create mode 100644 www/analytics/libs/PiwikTracker/PiwikTracker.php create mode 100644 www/analytics/libs/README.md create mode 100644 www/analytics/libs/UserAgentParser/README.md create mode 100644 www/analytics/libs/UserAgentParser/UserAgentParser.php create mode 100644 www/analytics/libs/UserAgentParser/UserAgentParser.test.php create mode 100644 www/analytics/libs/Zend/Cache.php create mode 100644 www/analytics/libs/Zend/Cache/Backend.php create mode 100644 www/analytics/libs/Zend/Cache/Backend/Apc.php create mode 100644 www/analytics/libs/Zend/Cache/Backend/BlackHole.php create mode 100644 www/analytics/libs/Zend/Cache/Backend/ExtendedInterface.php create mode 100644 www/analytics/libs/Zend/Cache/Backend/File.php create mode 100644 www/analytics/libs/Zend/Cache/Backend/Interface.php create mode 100644 www/analytics/libs/Zend/Cache/Backend/Libmemcached.php create mode 100644 www/analytics/libs/Zend/Cache/Backend/Memcached.php create mode 100644 www/analytics/libs/Zend/Cache/Backend/Sqlite.php create mode 100644 www/analytics/libs/Zend/Cache/Backend/Static.php create mode 100644 www/analytics/libs/Zend/Cache/Backend/Test.php create mode 100644 www/analytics/libs/Zend/Cache/Backend/TwoLevels.php create mode 100644 www/analytics/libs/Zend/Cache/Backend/WinCache.php create mode 100644 www/analytics/libs/Zend/Cache/Backend/Xcache.php create mode 100644 www/analytics/libs/Zend/Cache/Backend/ZendPlatform.php create mode 100644 www/analytics/libs/Zend/Cache/Backend/ZendServer.php create mode 100644 www/analytics/libs/Zend/Cache/Backend/ZendServer/Disk.php create mode 100644 www/analytics/libs/Zend/Cache/Backend/ZendServer/ShMem.php create mode 100644 www/analytics/libs/Zend/Cache/Core.php create mode 100644 www/analytics/libs/Zend/Cache/Exception.php create mode 100644 www/analytics/libs/Zend/Cache/Frontend/Capture.php create mode 100644 www/analytics/libs/Zend/Cache/Frontend/Class.php create mode 100644 www/analytics/libs/Zend/Cache/Frontend/File.php create mode 100644 www/analytics/libs/Zend/Cache/Frontend/Function.php create mode 100644 www/analytics/libs/Zend/Cache/Frontend/Output.php create mode 100644 www/analytics/libs/Zend/Cache/Frontend/Page.php create mode 100644 www/analytics/libs/Zend/Cache/Manager.php create mode 100644 www/analytics/libs/Zend/Config.php create mode 100644 www/analytics/libs/Zend/Config/Exception.php create mode 100644 www/analytics/libs/Zend/Config/Ini.php create mode 100755 www/analytics/libs/Zend/Config/Json.php create mode 100644 www/analytics/libs/Zend/Config/Writer.php create mode 100644 www/analytics/libs/Zend/Config/Writer/Array.php create mode 100644 www/analytics/libs/Zend/Config/Writer/FileAbstract.php create mode 100644 www/analytics/libs/Zend/Config/Writer/Ini.php create mode 100755 www/analytics/libs/Zend/Config/Writer/Json.php create mode 100644 www/analytics/libs/Zend/Config/Writer/Xml.php create mode 100755 www/analytics/libs/Zend/Config/Writer/Yaml.php create mode 100644 www/analytics/libs/Zend/Config/Xml.php create mode 100755 www/analytics/libs/Zend/Config/Yaml.php create mode 100644 www/analytics/libs/Zend/Db.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Abstract.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Db2.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Db2/Exception.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Exception.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Mysqli.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Mysqli/Exception.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Oracle.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Oracle/Exception.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Pdo/Abstract.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Pdo/Ibm.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Pdo/Ibm/Db2.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Pdo/Ibm/Ids.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Pdo/Mssql.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Pdo/Mysql.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Pdo/Oci.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Pdo/Pgsql.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Pdo/Sqlite.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Sqlsrv.php create mode 100644 www/analytics/libs/Zend/Db/Adapter/Sqlsrv/Exception.php create mode 100644 www/analytics/libs/Zend/Db/Exception.php create mode 100644 www/analytics/libs/Zend/Db/Expr.php create mode 100644 www/analytics/libs/Zend/Db/Profiler.php create mode 100644 www/analytics/libs/Zend/Db/Profiler/Exception.php create mode 100644 www/analytics/libs/Zend/Db/Profiler/Firebug.php create mode 100644 www/analytics/libs/Zend/Db/Profiler/Query.php create mode 100644 www/analytics/libs/Zend/Db/Select.php create mode 100644 www/analytics/libs/Zend/Db/Select/Exception.php create mode 100644 www/analytics/libs/Zend/Db/Statement.php create mode 100644 www/analytics/libs/Zend/Db/Statement/Db2.php create mode 100644 www/analytics/libs/Zend/Db/Statement/Db2/Exception.php create mode 100644 www/analytics/libs/Zend/Db/Statement/Exception.php create mode 100644 www/analytics/libs/Zend/Db/Statement/Interface.php create mode 100644 www/analytics/libs/Zend/Db/Statement/Mysqli.php create mode 100644 www/analytics/libs/Zend/Db/Statement/Mysqli/Exception.php create mode 100644 www/analytics/libs/Zend/Db/Statement/Oracle.php create mode 100644 www/analytics/libs/Zend/Db/Statement/Oracle/Exception.php create mode 100644 www/analytics/libs/Zend/Db/Statement/Pdo.php create mode 100644 www/analytics/libs/Zend/Db/Statement/Pdo/Ibm.php create mode 100644 www/analytics/libs/Zend/Db/Statement/Pdo/Oci.php create mode 100644 www/analytics/libs/Zend/Db/Statement/Sqlsrv.php create mode 100644 www/analytics/libs/Zend/Db/Statement/Sqlsrv/Exception.php create mode 100644 www/analytics/libs/Zend/Db/Table.php create mode 100644 www/analytics/libs/Zend/Db/Table/Abstract.php create mode 100644 www/analytics/libs/Zend/Db/Table/Definition.php create mode 100644 www/analytics/libs/Zend/Db/Table/Exception.php create mode 100644 www/analytics/libs/Zend/Db/Table/Row.php create mode 100644 www/analytics/libs/Zend/Db/Table/Row/Abstract.php create mode 100644 www/analytics/libs/Zend/Db/Table/Row/Exception.php create mode 100644 www/analytics/libs/Zend/Db/Table/Rowset.php create mode 100644 www/analytics/libs/Zend/Db/Table/Rowset/Abstract.php create mode 100644 www/analytics/libs/Zend/Db/Table/Rowset/Exception.php create mode 100644 www/analytics/libs/Zend/Db/Table/Select.php create mode 100644 www/analytics/libs/Zend/Db/Table/Select/Exception.php create mode 100644 www/analytics/libs/Zend/Exception.php create mode 100644 www/analytics/libs/Zend/LICENSE.txt create mode 100644 www/analytics/libs/Zend/Mail.php create mode 100644 www/analytics/libs/Zend/Mail/Exception.php create mode 100644 www/analytics/libs/Zend/Mail/Message.php create mode 100644 www/analytics/libs/Zend/Mail/Message/File.php create mode 100644 www/analytics/libs/Zend/Mail/Message/Interface.php create mode 100644 www/analytics/libs/Zend/Mail/Part.php create mode 100644 www/analytics/libs/Zend/Mail/Part/File.php create mode 100644 www/analytics/libs/Zend/Mail/Part/Interface.php create mode 100644 www/analytics/libs/Zend/Mail/Protocol/Abstract.php create mode 100644 www/analytics/libs/Zend/Mail/Protocol/Exception.php create mode 100644 www/analytics/libs/Zend/Mail/Protocol/Imap.php create mode 100644 www/analytics/libs/Zend/Mail/Protocol/Pop3.php create mode 100644 www/analytics/libs/Zend/Mail/Protocol/Smtp.php create mode 100644 www/analytics/libs/Zend/Mail/Protocol/Smtp/Auth/Crammd5.php create mode 100644 www/analytics/libs/Zend/Mail/Protocol/Smtp/Auth/Login.php create mode 100644 www/analytics/libs/Zend/Mail/Protocol/Smtp/Auth/Plain.php create mode 100644 www/analytics/libs/Zend/Mail/Storage.php create mode 100644 www/analytics/libs/Zend/Mail/Storage/Abstract.php create mode 100644 www/analytics/libs/Zend/Mail/Storage/Exception.php create mode 100644 www/analytics/libs/Zend/Mail/Storage/Folder.php create mode 100644 www/analytics/libs/Zend/Mail/Storage/Folder/Interface.php create mode 100644 www/analytics/libs/Zend/Mail/Storage/Folder/Maildir.php create mode 100644 www/analytics/libs/Zend/Mail/Storage/Folder/Mbox.php create mode 100644 www/analytics/libs/Zend/Mail/Storage/Imap.php create mode 100644 www/analytics/libs/Zend/Mail/Storage/Maildir.php create mode 100644 www/analytics/libs/Zend/Mail/Storage/Mbox.php create mode 100644 www/analytics/libs/Zend/Mail/Storage/Pop3.php create mode 100644 www/analytics/libs/Zend/Mail/Storage/Writable/Interface.php create mode 100644 www/analytics/libs/Zend/Mail/Storage/Writable/Maildir.php create mode 100644 www/analytics/libs/Zend/Mail/Transport/Abstract.php create mode 100644 www/analytics/libs/Zend/Mail/Transport/Exception.php create mode 100644 www/analytics/libs/Zend/Mail/Transport/File.php create mode 100644 www/analytics/libs/Zend/Mail/Transport/Sendmail.php create mode 100644 www/analytics/libs/Zend/Mail/Transport/Smtp.php create mode 100644 www/analytics/libs/Zend/Mime.php create mode 100644 www/analytics/libs/Zend/Mime/Decode.php create mode 100644 www/analytics/libs/Zend/Mime/Exception.php create mode 100644 www/analytics/libs/Zend/Mime/Message.php create mode 100644 www/analytics/libs/Zend/Mime/Part.php create mode 100644 www/analytics/libs/Zend/Registry.php create mode 100644 www/analytics/libs/Zend/Session.php create mode 100644 www/analytics/libs/Zend/Session/Abstract.php create mode 100644 www/analytics/libs/Zend/Session/Exception.php create mode 100644 www/analytics/libs/Zend/Session/Namespace.php create mode 100644 www/analytics/libs/Zend/Session/SaveHandler/DbTable.php create mode 100644 www/analytics/libs/Zend/Session/SaveHandler/Exception.php create mode 100644 www/analytics/libs/Zend/Session/SaveHandler/Interface.php create mode 100644 www/analytics/libs/Zend/Session/Validator/Abstract.php create mode 100644 www/analytics/libs/Zend/Session/Validator/HttpUserAgent.php create mode 100644 www/analytics/libs/Zend/Session/Validator/Interface.php create mode 100644 www/analytics/libs/Zend/Validate.php create mode 100644 www/analytics/libs/Zend/Validate/Abstract.php create mode 100644 www/analytics/libs/Zend/Validate/Alnum.php create mode 100644 www/analytics/libs/Zend/Validate/Alpha.php create mode 100644 www/analytics/libs/Zend/Validate/Between.php create mode 100644 www/analytics/libs/Zend/Validate/Callback.php create mode 100644 www/analytics/libs/Zend/Validate/Ccnum.php create mode 100644 www/analytics/libs/Zend/Validate/CreditCard.php create mode 100644 www/analytics/libs/Zend/Validate/Date.php create mode 100644 www/analytics/libs/Zend/Validate/Digits.php create mode 100644 www/analytics/libs/Zend/Validate/EmailAddress.php create mode 100644 www/analytics/libs/Zend/Validate/Exception.php create mode 100644 www/analytics/libs/Zend/Validate/File/Count.php create mode 100644 www/analytics/libs/Zend/Validate/File/Crc32.php create mode 100644 www/analytics/libs/Zend/Validate/File/ExcludeExtension.php create mode 100644 www/analytics/libs/Zend/Validate/File/ExcludeMimeType.php create mode 100644 www/analytics/libs/Zend/Validate/File/Exists.php create mode 100644 www/analytics/libs/Zend/Validate/File/Extension.php create mode 100644 www/analytics/libs/Zend/Validate/File/FilesSize.php create mode 100644 www/analytics/libs/Zend/Validate/File/Hash.php create mode 100644 www/analytics/libs/Zend/Validate/File/ImageSize.php create mode 100644 www/analytics/libs/Zend/Validate/File/IsCompressed.php create mode 100644 www/analytics/libs/Zend/Validate/File/IsImage.php create mode 100644 www/analytics/libs/Zend/Validate/File/Md5.php create mode 100644 www/analytics/libs/Zend/Validate/File/MimeType.php create mode 100644 www/analytics/libs/Zend/Validate/File/NotExists.php create mode 100644 www/analytics/libs/Zend/Validate/File/Sha1.php create mode 100644 www/analytics/libs/Zend/Validate/File/Size.php create mode 100644 www/analytics/libs/Zend/Validate/File/Upload.php create mode 100644 www/analytics/libs/Zend/Validate/File/WordCount.php create mode 100644 www/analytics/libs/Zend/Validate/Float.php create mode 100644 www/analytics/libs/Zend/Validate/GreaterThan.php create mode 100644 www/analytics/libs/Zend/Validate/Hex.php create mode 100644 www/analytics/libs/Zend/Validate/Hostname.php create mode 100644 www/analytics/libs/Zend/Validate/Hostname/Biz.php create mode 100644 www/analytics/libs/Zend/Validate/Hostname/Cn.php create mode 100644 www/analytics/libs/Zend/Validate/Hostname/Com.php create mode 100644 www/analytics/libs/Zend/Validate/Hostname/Jp.php create mode 100644 www/analytics/libs/Zend/Validate/Iban.php create mode 100644 www/analytics/libs/Zend/Validate/Identical.php create mode 100644 www/analytics/libs/Zend/Validate/InArray.php create mode 100644 www/analytics/libs/Zend/Validate/Int.php create mode 100644 www/analytics/libs/Zend/Validate/Interface.php create mode 100644 www/analytics/libs/Zend/Validate/Ip.php create mode 100644 www/analytics/libs/Zend/Validate/Isbn.php create mode 100644 www/analytics/libs/Zend/Validate/LessThan.php create mode 100644 www/analytics/libs/Zend/Validate/NotEmpty.php create mode 100644 www/analytics/libs/Zend/Validate/PostCode.php create mode 100644 www/analytics/libs/Zend/Validate/Regex.php create mode 100644 www/analytics/libs/Zend/Validate/StringLength.php create mode 100644 www/analytics/libs/Zend/Version.php create mode 100755 www/analytics/libs/angularjs/LICENSE create mode 100755 www/analytics/libs/angularjs/angular-animate.js create mode 100755 www/analytics/libs/angularjs/angular-animate.min.js create mode 100755 www/analytics/libs/angularjs/angular-cookies.js create mode 100755 www/analytics/libs/angularjs/angular-cookies.min.js create mode 100755 www/analytics/libs/angularjs/angular-csp.css create mode 100755 www/analytics/libs/angularjs/angular-loader.js create mode 100755 www/analytics/libs/angularjs/angular-loader.min.js create mode 100755 www/analytics/libs/angularjs/angular-mocks.js create mode 100755 www/analytics/libs/angularjs/angular-resource.js create mode 100755 www/analytics/libs/angularjs/angular-resource.min.js create mode 100755 www/analytics/libs/angularjs/angular-route.js create mode 100755 www/analytics/libs/angularjs/angular-route.min.js create mode 100755 www/analytics/libs/angularjs/angular-sanitize.js create mode 100755 www/analytics/libs/angularjs/angular-sanitize.min.js create mode 100755 www/analytics/libs/angularjs/angular-scenario.js create mode 100755 www/analytics/libs/angularjs/angular-touch.js create mode 100755 www/analytics/libs/angularjs/angular-touch.min.js create mode 100755 www/analytics/libs/angularjs/angular.js create mode 100755 www/analytics/libs/angularjs/angular.min.js create mode 100755 www/analytics/libs/angularjs/errors.json create mode 100755 www/analytics/libs/angularjs/version.json create mode 100755 www/analytics/libs/angularjs/version.txt create mode 100644 www/analytics/libs/html5shiv/html5shiv.js create mode 100644 www/analytics/libs/javascript/json2.js create mode 100644 www/analytics/libs/javascript/sprintf.js create mode 100644 www/analytics/libs/jqplot/MIT-LICENSE.txt create mode 100755 www/analytics/libs/jqplot/build_minified_script.sh create mode 100644 www/analytics/libs/jqplot/excanvas.min.js create mode 100644 www/analytics/libs/jqplot/gpl-2.0.txt create mode 100644 www/analytics/libs/jqplot/jqplot-custom.min.js create mode 100644 www/analytics/libs/jqplot/jqplot.axisLabelRenderer.js create mode 100644 www/analytics/libs/jqplot/jqplot.axisTickRenderer.js create mode 100644 www/analytics/libs/jqplot/jqplot.canvasGridRenderer.js create mode 100644 www/analytics/libs/jqplot/jqplot.core.js create mode 100644 www/analytics/libs/jqplot/jqplot.divTitleRenderer.js create mode 100644 www/analytics/libs/jqplot/jqplot.linePattern.js create mode 100644 www/analytics/libs/jqplot/jqplot.lineRenderer.js create mode 100644 www/analytics/libs/jqplot/jqplot.linearAxisRenderer.js create mode 100644 www/analytics/libs/jqplot/jqplot.markerRenderer.js create mode 100644 www/analytics/libs/jqplot/jqplot.shadowRenderer.js create mode 100644 www/analytics/libs/jqplot/jqplot.shapeRenderer.js create mode 100644 www/analytics/libs/jqplot/jqplot.sprintf.js create mode 100644 www/analytics/libs/jqplot/jqplot.tableLegendRenderer.js create mode 100644 www/analytics/libs/jqplot/jqplot.themeEngine.js create mode 100644 www/analytics/libs/jqplot/plugins/jqplot.barRenderer.js create mode 100644 www/analytics/libs/jqplot/plugins/jqplot.canvasAxisTickRenderer.js create mode 100644 www/analytics/libs/jqplot/plugins/jqplot.canvasTextRenderer.js create mode 100644 www/analytics/libs/jqplot/plugins/jqplot.categoryAxisRenderer.js create mode 100644 www/analytics/libs/jqplot/plugins/jqplot.pieRenderer.js create mode 100644 www/analytics/libs/jquery/LICENSE-sizzle.txt create mode 100644 www/analytics/libs/jquery/MIT-LICENSE-history.txt create mode 100644 www/analytics/libs/jquery/MIT-LICENSE-jquery.txt create mode 100644 www/analytics/libs/jquery/MIT-LICENSE-jqueryui.txt create mode 100644 www/analytics/libs/jquery/MIT-LICENSE-placeholder.txt create mode 100644 www/analytics/libs/jquery/MIT-LICENSE-scrollto.txt create mode 100644 www/analytics/libs/jquery/MIT-LICENSE-smartbanner.txt create mode 100644 www/analytics/libs/jquery/gpl-2.0.txt create mode 100644 www/analytics/libs/jquery/gpl-3.0.txt create mode 100644 www/analytics/libs/jquery/images/down_arrow.png create mode 100644 www/analytics/libs/jquery/images/scroller.png create mode 100644 www/analytics/libs/jquery/images/slide.png create mode 100644 www/analytics/libs/jquery/images/up_arrow.png create mode 100644 www/analytics/libs/jquery/jquery-ui.js create mode 100644 www/analytics/libs/jquery/jquery.browser.js create mode 100644 www/analytics/libs/jquery/jquery.history.js create mode 100644 www/analytics/libs/jquery/jquery.js create mode 100644 www/analytics/libs/jquery/jquery.jscrollpane.js create mode 100644 www/analytics/libs/jquery/jquery.mousewheel.js create mode 100644 www/analytics/libs/jquery/jquery.placeholder.js create mode 100644 www/analytics/libs/jquery/jquery.scrollTo.js create mode 100644 www/analytics/libs/jquery/jquery.smartbanner.js create mode 100644 www/analytics/libs/jquery/jquery.truncate.js create mode 100644 www/analytics/libs/jquery/mwheelIntent.js create mode 100644 www/analytics/libs/jquery/stylesheets/jquery.jscrollpane.css create mode 100644 www/analytics/libs/jquery/stylesheets/jquery.smartbanner.css create mode 100644 www/analytics/libs/jquery/stylesheets/scroll.less create mode 100644 www/analytics/libs/jquery/themes/base/images/ui-anim_basic_16x16.gif create mode 100644 www/analytics/libs/jquery/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 www/analytics/libs/jquery/themes/base/images/ui-bg_flat_75_ffffff_40x100.png create mode 100644 www/analytics/libs/jquery/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 www/analytics/libs/jquery/themes/base/images/ui-bg_glass_65_ffffff_1x400.png create mode 100644 www/analytics/libs/jquery/themes/base/images/ui-bg_glass_75_dadada_1x400.png create mode 100644 www/analytics/libs/jquery/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100644 www/analytics/libs/jquery/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 www/analytics/libs/jquery/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100644 www/analytics/libs/jquery/themes/base/images/ui-icons_222222_256x240.png create mode 100644 www/analytics/libs/jquery/themes/base/images/ui-icons_2e83ff_256x240.png create mode 100644 www/analytics/libs/jquery/themes/base/images/ui-icons_454545_256x240.png create mode 100644 www/analytics/libs/jquery/themes/base/images/ui-icons_888888_256x240.png create mode 100644 www/analytics/libs/jquery/themes/base/images/ui-icons_cd0a0a_256x240.png create mode 100644 www/analytics/libs/jquery/themes/base/jquery-ui.css create mode 100644 www/analytics/libs/pChart2.1.3/GPLv3.txt create mode 100644 www/analytics/libs/pChart2.1.3/change.log create mode 100644 www/analytics/libs/pChart2.1.3/class/pData.class.php create mode 100644 www/analytics/libs/pChart2.1.3/class/pDraw.class.php create mode 100644 www/analytics/libs/pChart2.1.3/class/pImage.class.php create mode 100644 www/analytics/libs/pChart2.1.3/class/pPie.class.php create mode 100644 www/analytics/libs/pChart2.1.3/readme.txt create mode 100644 www/analytics/libs/sparkline/CHANGES create mode 100644 www/analytics/libs/sparkline/DESIGN create mode 100644 www/analytics/libs/sparkline/LICENSE-BSD.txt create mode 100644 www/analytics/libs/sparkline/README create mode 100644 www/analytics/libs/sparkline/gpl-2.0.txt create mode 100644 www/analytics/libs/sparkline/lib/Object.php create mode 100644 www/analytics/libs/sparkline/lib/Sparkline.php create mode 100644 www/analytics/libs/sparkline/lib/Sparkline_Bar.php create mode 100644 www/analytics/libs/sparkline/lib/Sparkline_Line.php create mode 100644 www/analytics/libs/tcpdf/2dbarcodes.php create mode 100644 www/analytics/libs/tcpdf/LICENSE.TXT create mode 100644 www/analytics/libs/tcpdf/README.TXT create mode 100644 www/analytics/libs/tcpdf/barcodes.php create mode 100644 www/analytics/libs/tcpdf/composer.json create mode 100644 www/analytics/libs/tcpdf/config/lang/eng.php create mode 100644 www/analytics/libs/tcpdf/config/tcpdf_config.php create mode 100644 www/analytics/libs/tcpdf/config/tcpdf_config_alt.php create mode 100644 www/analytics/libs/tcpdf/fonts/almohanad.ctg.z create mode 100644 www/analytics/libs/tcpdf/fonts/almohanad.php create mode 100644 www/analytics/libs/tcpdf/fonts/almohanad.z create mode 100644 www/analytics/libs/tcpdf/fonts/dejavusans.ctg.z create mode 100644 www/analytics/libs/tcpdf/fonts/dejavusans.php create mode 100644 www/analytics/libs/tcpdf/fonts/dejavusans.z create mode 100644 www/analytics/libs/tcpdf/fonts/helvetica.php create mode 100644 www/analytics/libs/tcpdf/fonts/helveticab.php create mode 100644 www/analytics/libs/tcpdf/fonts/helveticabi.php create mode 100644 www/analytics/libs/tcpdf/fonts/helveticai.php create mode 100644 www/analytics/libs/tcpdf/fonts/hysmyeongjostdmedium.php create mode 100644 www/analytics/libs/tcpdf/fonts/kozgopromedium.php create mode 100644 www/analytics/libs/tcpdf/fonts/kozminproregular.php create mode 100644 www/analytics/libs/tcpdf/fonts/msungstdlight.php create mode 100644 www/analytics/libs/tcpdf/fonts/stsongstdlight.php create mode 100644 www/analytics/libs/tcpdf/fonts/symbol.php create mode 100644 www/analytics/libs/tcpdf/fonts/times.php create mode 100644 www/analytics/libs/tcpdf/fonts/timesb.php create mode 100644 www/analytics/libs/tcpdf/fonts/timesbi.php create mode 100644 www/analytics/libs/tcpdf/fonts/timesi.php create mode 100644 www/analytics/libs/tcpdf/gpl.txt create mode 100644 www/analytics/libs/tcpdf/htmlcolors.php create mode 100644 www/analytics/libs/tcpdf/include/sRGB.icc create mode 100644 www/analytics/libs/tcpdf/include/tcpdf_colors.php create mode 100644 www/analytics/libs/tcpdf/include/tcpdf_filters.php create mode 100644 www/analytics/libs/tcpdf/include/tcpdf_font_data.php create mode 100644 www/analytics/libs/tcpdf/include/tcpdf_fonts.php create mode 100644 www/analytics/libs/tcpdf/include/tcpdf_images.php create mode 100644 www/analytics/libs/tcpdf/include/tcpdf_static.php create mode 100644 www/analytics/libs/tcpdf/lgpl-3.0.txt create mode 100644 www/analytics/libs/tcpdf/pdf417.php create mode 100644 www/analytics/libs/tcpdf/qrcode.php create mode 100644 www/analytics/libs/tcpdf/spotcolors.php create mode 100644 www/analytics/libs/tcpdf/tcpdf.crt create mode 100644 www/analytics/libs/tcpdf/tcpdf.fdf create mode 100644 www/analytics/libs/tcpdf/tcpdf.p12 create mode 100644 www/analytics/libs/tcpdf/tcpdf.php create mode 100644 www/analytics/libs/tcpdf/tcpdf_autoconfig.php create mode 100644 www/analytics/libs/tcpdf/tcpdf_import.php create mode 100644 www/analytics/libs/tcpdf/tcpdf_parser.php create mode 100644 www/analytics/libs/tcpdf/unicode_data.php create mode 100644 www/analytics/libs/upgradephp/README create mode 100644 www/analytics/libs/upgradephp/upgrade.php create mode 100644 www/analytics/misc/How to install Piwik.html create mode 100644 www/analytics/misc/cron/archive.php create mode 100755 www/analytics/misc/cron/archive.sh create mode 100644 www/analytics/misc/cron/updatetoken.php create mode 100644 www/analytics/misc/gpl-3.0.txt create mode 100644 www/analytics/misc/log-analytics/README.md create mode 100755 www/analytics/misc/log-analytics/import_logs.py create mode 100644 www/analytics/misc/others/ExamplePiwikTracker.php create mode 100644 www/analytics/misc/others/api_internal_call.php create mode 100644 www/analytics/misc/others/api_rest_call.php create mode 100644 www/analytics/misc/others/cli-script-bootstrap.php create mode 100644 www/analytics/misc/others/download-count.txt create mode 100755 www/analytics/misc/others/geoipUpdateRows.php create mode 100644 www/analytics/misc/others/iframeWidget.htm create mode 100644 www/analytics/misc/others/iframeWidget_localhost.php create mode 100644 www/analytics/misc/others/phpstorm-codestyles/Piwik_codestyle.xml create mode 100644 www/analytics/misc/others/phpstorm-codestyles/README.md create mode 100644 www/analytics/misc/others/stress.sh create mode 100644 www/analytics/misc/others/test_cookies_GenerateHundredsWebsitesAndVisits.php create mode 100644 www/analytics/misc/others/test_generateLotsVisitsWebsites.php create mode 100644 www/analytics/misc/others/tracker_simpleImageTracker.php create mode 100644 www/analytics/misc/others/uninstall-delete-piwik-directory.php create mode 100644 www/analytics/misc/others/widget_example_lastvisits.html create mode 100644 www/analytics/misc/proxy-hide-piwik-url/README.md create mode 100644 www/analytics/misc/proxy-hide-piwik-url/piwik.php create mode 100755 www/analytics/misc/user/.gitkeep create mode 100644 www/analytics/misc/user/.htaccess create mode 100644 www/analytics/misc/user/index.html create mode 100644 www/analytics/piwik.js create mode 100644 www/analytics/piwik.php create mode 100644 www/analytics/plugins/.htaccess create mode 100644 www/analytics/plugins/API/API.php create mode 100644 www/analytics/plugins/API/Controller.php create mode 100644 www/analytics/plugins/API/ProcessedReport.php create mode 100644 www/analytics/plugins/API/RowEvolution.php create mode 100644 www/analytics/plugins/API/stylesheets/listAllAPI.less create mode 100644 www/analytics/plugins/API/templates/listAllAPI.twig create mode 100644 www/analytics/plugins/Actions/API.php create mode 100644 www/analytics/plugins/Actions/Actions.php create mode 100644 www/analytics/plugins/Actions/Archiver.php create mode 100644 www/analytics/plugins/Actions/ArchivingHelper.php create mode 100644 www/analytics/plugins/Actions/Controller.php create mode 100644 www/analytics/plugins/Actions/javascripts/actionsDataTable.js create mode 100644 www/analytics/plugins/Actions/stylesheets/dataTableActions.less create mode 100644 www/analytics/plugins/Actions/templates/indexSiteSearch.twig create mode 100755 www/analytics/plugins/Annotations/API.php create mode 100755 www/analytics/plugins/Annotations/AnnotationList.php create mode 100755 www/analytics/plugins/Annotations/Annotations.php create mode 100755 www/analytics/plugins/Annotations/Controller.php create mode 100755 www/analytics/plugins/Annotations/javascripts/annotations.js create mode 100755 www/analytics/plugins/Annotations/stylesheets/annotations.less create mode 100755 www/analytics/plugins/Annotations/templates/_annotation.twig create mode 100755 www/analytics/plugins/Annotations/templates/_annotationList.twig create mode 100755 www/analytics/plugins/Annotations/templates/getAnnotationManager.twig create mode 100755 www/analytics/plugins/Annotations/templates/getEvolutionIcons.twig create mode 100644 www/analytics/plugins/Annotations/templates/saveAnnotation.twig create mode 100644 www/analytics/plugins/CoreAdminHome/API.php create mode 100644 www/analytics/plugins/CoreAdminHome/Controller.php create mode 100644 www/analytics/plugins/CoreAdminHome/CoreAdminHome.php create mode 100644 www/analytics/plugins/CoreAdminHome/CustomLogo.php create mode 100644 www/analytics/plugins/CoreAdminHome/javascripts/generalSettings.js create mode 100644 www/analytics/plugins/CoreAdminHome/javascripts/jsTrackingGenerator.js create mode 100644 www/analytics/plugins/CoreAdminHome/javascripts/pluginSettings.js create mode 100644 www/analytics/plugins/CoreAdminHome/stylesheets/generalSettings.less create mode 100644 www/analytics/plugins/CoreAdminHome/stylesheets/jsTrackingGenerator.css create mode 100644 www/analytics/plugins/CoreAdminHome/stylesheets/menu.less create mode 100644 www/analytics/plugins/CoreAdminHome/stylesheets/pluginSettings.less create mode 100644 www/analytics/plugins/CoreAdminHome/templates/_menu.twig create mode 100644 www/analytics/plugins/CoreAdminHome/templates/generalSettings.twig create mode 100644 www/analytics/plugins/CoreAdminHome/templates/optOut.twig create mode 100644 www/analytics/plugins/CoreAdminHome/templates/pluginSettings.twig create mode 100644 www/analytics/plugins/CoreAdminHome/templates/trackingCodeGenerator.twig create mode 100644 www/analytics/plugins/CoreConsole/Commands/CodeCoverage.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/CoreArchiver.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/GenerateApi.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/GenerateCommand.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/GenerateController.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/GeneratePlugin.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/GeneratePluginBase.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/GenerateSettings.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/GenerateTest.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/GenerateVisualizationPlugin.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/GitCommit.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/GitPull.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/GitPush.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/ManagePlugin.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/ManageTestFiles.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/RunTests.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/RunUITests.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/SetupFixture.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/SyncUITestScreenshots.php create mode 100644 www/analytics/plugins/CoreConsole/Commands/WatchLog.php create mode 100644 www/analytics/plugins/CoreHome/Controller.php create mode 100644 www/analytics/plugins/CoreHome/CoreHome.php create mode 100644 www/analytics/plugins/CoreHome/DataTableRowAction/MultiRowEvolution.php create mode 100644 www/analytics/plugins/CoreHome/DataTableRowAction/RowEvolution.php create mode 100644 www/analytics/plugins/CoreHome/angularjs/anchorLinkFix.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/common/directives/autocomplete-matched.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/common/directives/autocomplete-matched_spec.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/common/directives/dialog.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/common/directives/directive.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/common/directives/focus-anywhere-but-here.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/common/directives/focusif.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/common/directives/ignore-click.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/common/directives/onenter.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/common/filters/evolution.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/common/filters/filter.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/common/filters/startfrom.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/common/filters/startfrom_spec.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/common/filters/translate.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/common/services/piwik-api.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/common/services/piwik.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/common/services/piwik_spec.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/common/services/service.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/enrichedheadline/enrichedheadline-directive.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/enrichedheadline/enrichedheadline.html create mode 100644 www/analytics/plugins/CoreHome/angularjs/enrichedheadline/enrichedheadline.less create mode 100644 www/analytics/plugins/CoreHome/angularjs/enrichedheadline/help.png create mode 100644 www/analytics/plugins/CoreHome/angularjs/piwikApp.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/piwikAppConfig.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/siteselector/siteselector-controller.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/siteselector/siteselector-directive.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/siteselector/siteselector-model.js create mode 100644 www/analytics/plugins/CoreHome/angularjs/siteselector/siteselector.html create mode 100644 www/analytics/plugins/CoreHome/angularjs/siteselector/siteselector.less create mode 100644 www/analytics/plugins/CoreHome/images/bg_header.jpg create mode 100644 www/analytics/plugins/CoreHome/images/bullet1.gif create mode 100644 www/analytics/plugins/CoreHome/images/bullet2.gif create mode 100644 www/analytics/plugins/CoreHome/images/favicon.ico create mode 100644 www/analytics/plugins/CoreHome/images/googleplay.png create mode 100644 www/analytics/plugins/CoreHome/images/more.png create mode 100644 www/analytics/plugins/CoreHome/images/more_date.gif create mode 100644 www/analytics/plugins/CoreHome/images/more_period.gif create mode 100755 www/analytics/plugins/CoreHome/images/promo_splash.png create mode 100644 www/analytics/plugins/CoreHome/images/reset_search.png create mode 100644 www/analytics/plugins/CoreHome/images/search.png create mode 100644 www/analytics/plugins/CoreHome/javascripts/broadcast.js create mode 100644 www/analytics/plugins/CoreHome/javascripts/calendar.js create mode 100644 www/analytics/plugins/CoreHome/javascripts/color_manager.js create mode 100755 www/analytics/plugins/CoreHome/javascripts/corehome.js create mode 100644 www/analytics/plugins/CoreHome/javascripts/dataTable.js create mode 100644 www/analytics/plugins/CoreHome/javascripts/dataTable_rowactions.js create mode 100755 www/analytics/plugins/CoreHome/javascripts/donate.js create mode 100644 www/analytics/plugins/CoreHome/javascripts/menu.js create mode 100644 www/analytics/plugins/CoreHome/javascripts/menu_init.js create mode 100644 www/analytics/plugins/CoreHome/javascripts/notification.js create mode 100644 www/analytics/plugins/CoreHome/javascripts/notification_parser.js create mode 100644 www/analytics/plugins/CoreHome/javascripts/popover.js create mode 100644 www/analytics/plugins/CoreHome/javascripts/promo.js create mode 100644 www/analytics/plugins/CoreHome/javascripts/require.js create mode 100644 www/analytics/plugins/CoreHome/javascripts/sparkline.js create mode 100644 www/analytics/plugins/CoreHome/javascripts/top_controls.js create mode 100644 www/analytics/plugins/CoreHome/javascripts/uiControl.js create mode 100755 www/analytics/plugins/CoreHome/stylesheets/_donate.less create mode 100644 www/analytics/plugins/CoreHome/stylesheets/cloud.less create mode 100644 www/analytics/plugins/CoreHome/stylesheets/color_manager.css create mode 100644 www/analytics/plugins/CoreHome/stylesheets/coreHome.less create mode 100644 www/analytics/plugins/CoreHome/stylesheets/dataTable.less create mode 100644 www/analytics/plugins/CoreHome/stylesheets/dataTable/_dataTable.less create mode 100644 www/analytics/plugins/CoreHome/stylesheets/dataTable/_limitSelection.less create mode 100644 www/analytics/plugins/CoreHome/stylesheets/dataTable/_reportDocumentation.less create mode 100644 www/analytics/plugins/CoreHome/stylesheets/dataTable/_rowActions.less create mode 100644 www/analytics/plugins/CoreHome/stylesheets/dataTable/_subDataTable.less create mode 100644 www/analytics/plugins/CoreHome/stylesheets/dataTable/_tableConfiguration.less create mode 100644 www/analytics/plugins/CoreHome/stylesheets/jqplotColors.less create mode 100644 www/analytics/plugins/CoreHome/stylesheets/jquery.ui.autocomplete.css create mode 100644 www/analytics/plugins/CoreHome/stylesheets/menu.less create mode 100644 www/analytics/plugins/CoreHome/stylesheets/notification.less create mode 100644 www/analytics/plugins/CoreHome/stylesheets/promo.less create mode 100644 www/analytics/plugins/CoreHome/stylesheets/sparklineColors.less create mode 100644 www/analytics/plugins/CoreHome/templates/ReportRenderer/_htmlReportBody.twig create mode 100644 www/analytics/plugins/CoreHome/templates/ReportRenderer/_htmlReportFooter.twig create mode 100644 www/analytics/plugins/CoreHome/templates/ReportRenderer/_htmlReportHeader.twig create mode 100644 www/analytics/plugins/CoreHome/templates/ReportsByDimension/_reportsByDimension.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_dataTable.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_dataTableCell.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_dataTableFooter.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_dataTableHead.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_dataTableJS.twig create mode 100755 www/analytics/plugins/CoreHome/templates/_donate.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_headerMessage.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_indexContent.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_javaScriptDisabled.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_logo.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_menu.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_notifications.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_periodSelect.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_singleReport.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_siteSelectHeader.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_topBar.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_topBarHelloMenu.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_topBarTopMenu.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_topScreen.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_uiControl.twig create mode 100644 www/analytics/plugins/CoreHome/templates/_warningInvalidHost.twig create mode 100644 www/analytics/plugins/CoreHome/templates/checkForUpdates.twig create mode 100644 www/analytics/plugins/CoreHome/templates/getDefaultIndexView.twig create mode 100644 www/analytics/plugins/CoreHome/templates/getDonateForm.twig create mode 100644 www/analytics/plugins/CoreHome/templates/getMultiRowEvolutionPopover.twig create mode 100755 www/analytics/plugins/CoreHome/templates/getPromoVideo.twig create mode 100644 www/analytics/plugins/CoreHome/templates/getRowEvolutionPopover.twig create mode 100644 www/analytics/plugins/CorePluginsAdmin/Controller.php create mode 100644 www/analytics/plugins/CorePluginsAdmin/CorePluginsAdmin.php create mode 100644 www/analytics/plugins/CorePluginsAdmin/Marketplace.php create mode 100644 www/analytics/plugins/CorePluginsAdmin/MarketplaceApiClient.php create mode 100644 www/analytics/plugins/CorePluginsAdmin/MarketplaceApiException.php create mode 100644 www/analytics/plugins/CorePluginsAdmin/PluginInstaller.php create mode 100644 www/analytics/plugins/CorePluginsAdmin/PluginInstallerException.php create mode 100644 www/analytics/plugins/CorePluginsAdmin/UpdateCommunication.php create mode 100644 www/analytics/plugins/CorePluginsAdmin/images/plugins.png create mode 100755 www/analytics/plugins/CorePluginsAdmin/images/rating_important.png create mode 100644 www/analytics/plugins/CorePluginsAdmin/images/themes.png create mode 100755 www/analytics/plugins/CorePluginsAdmin/javascripts/pluginDetail.js create mode 100644 www/analytics/plugins/CorePluginsAdmin/javascripts/pluginExtend.js create mode 100644 www/analytics/plugins/CorePluginsAdmin/javascripts/pluginOverview.js create mode 100644 www/analytics/plugins/CorePluginsAdmin/javascripts/plugins.js create mode 100644 www/analytics/plugins/CorePluginsAdmin/stylesheets/marketplace.less create mode 100644 www/analytics/plugins/CorePluginsAdmin/stylesheets/plugins_admin.less create mode 100644 www/analytics/plugins/CorePluginsAdmin/templates/browsePlugins.twig create mode 100644 www/analytics/plugins/CorePluginsAdmin/templates/browsePluginsActions.twig create mode 100644 www/analytics/plugins/CorePluginsAdmin/templates/browseThemes.twig create mode 100644 www/analytics/plugins/CorePluginsAdmin/templates/extend.twig create mode 100644 www/analytics/plugins/CorePluginsAdmin/templates/installPlugin.twig create mode 100644 www/analytics/plugins/CorePluginsAdmin/templates/macros.twig create mode 100644 www/analytics/plugins/CorePluginsAdmin/templates/pluginDetails.twig create mode 100644 www/analytics/plugins/CorePluginsAdmin/templates/pluginMetadata.twig create mode 100644 www/analytics/plugins/CorePluginsAdmin/templates/pluginOverview.twig create mode 100644 www/analytics/plugins/CorePluginsAdmin/templates/plugins.twig create mode 100644 www/analytics/plugins/CorePluginsAdmin/templates/safemode.twig create mode 100644 www/analytics/plugins/CorePluginsAdmin/templates/themeOverview.twig create mode 100644 www/analytics/plugins/CorePluginsAdmin/templates/themes.twig create mode 100644 www/analytics/plugins/CorePluginsAdmin/templates/updatePlugin.twig create mode 100644 www/analytics/plugins/CorePluginsAdmin/templates/uploadPlugin.twig create mode 100644 www/analytics/plugins/CoreUpdater/Commands/Update.php create mode 100644 www/analytics/plugins/CoreUpdater/Controller.php create mode 100644 www/analytics/plugins/CoreUpdater/CoreUpdater.php create mode 100644 www/analytics/plugins/CoreUpdater/NoUpdatesFoundException.php create mode 100644 www/analytics/plugins/CoreUpdater/UpdateCommunication.php create mode 100644 www/analytics/plugins/CoreUpdater/javascripts/updateLayout.js create mode 100644 www/analytics/plugins/CoreUpdater/stylesheets/updateLayout.css create mode 100644 www/analytics/plugins/CoreUpdater/templates/layout.twig create mode 100644 www/analytics/plugins/CoreUpdater/templates/newVersionAvailable.twig create mode 100644 www/analytics/plugins/CoreUpdater/templates/oneClickResults.twig create mode 100644 www/analytics/plugins/CoreUpdater/templates/runUpdaterAndExit_done.twig create mode 100644 www/analytics/plugins/CoreUpdater/templates/runUpdaterAndExit_done_cli.twig create mode 100644 www/analytics/plugins/CoreUpdater/templates/runUpdaterAndExit_welcome.twig create mode 100644 www/analytics/plugins/CoreUpdater/templates/runUpdaterAndExit_welcome_cli.twig create mode 100644 www/analytics/plugins/CoreVisualizations/CoreVisualizations.php create mode 100644 www/analytics/plugins/CoreVisualizations/JqplotDataGenerator.php create mode 100644 www/analytics/plugins/CoreVisualizations/JqplotDataGenerator/Chart.php create mode 100644 www/analytics/plugins/CoreVisualizations/JqplotDataGenerator/Evolution.php create mode 100644 www/analytics/plugins/CoreVisualizations/Visualizations/Cloud.php create mode 100644 www/analytics/plugins/CoreVisualizations/Visualizations/Cloud/Config.php create mode 100644 www/analytics/plugins/CoreVisualizations/Visualizations/Graph.php create mode 100644 www/analytics/plugins/CoreVisualizations/Visualizations/Graph/Config.php create mode 100644 www/analytics/plugins/CoreVisualizations/Visualizations/HtmlTable.php create mode 100644 www/analytics/plugins/CoreVisualizations/Visualizations/HtmlTable/AllColumns.php create mode 100644 www/analytics/plugins/CoreVisualizations/Visualizations/HtmlTable/Config.php create mode 100644 www/analytics/plugins/CoreVisualizations/Visualizations/HtmlTable/RequestConfig.php create mode 100644 www/analytics/plugins/CoreVisualizations/Visualizations/JqplotGraph.php create mode 100644 www/analytics/plugins/CoreVisualizations/Visualizations/JqplotGraph/Bar.php create mode 100644 www/analytics/plugins/CoreVisualizations/Visualizations/JqplotGraph/Config.php create mode 100644 www/analytics/plugins/CoreVisualizations/Visualizations/JqplotGraph/Evolution.php create mode 100644 www/analytics/plugins/CoreVisualizations/Visualizations/JqplotGraph/Evolution/Config.php create mode 100644 www/analytics/plugins/CoreVisualizations/Visualizations/JqplotGraph/Pie.php create mode 100644 www/analytics/plugins/CoreVisualizations/Visualizations/Sparkline.php create mode 100644 www/analytics/plugins/CoreVisualizations/javascripts/jqplot.js create mode 100644 www/analytics/plugins/CoreVisualizations/javascripts/jqplotBarGraph.js create mode 100644 www/analytics/plugins/CoreVisualizations/javascripts/jqplotEvolutionGraph.js create mode 100644 www/analytics/plugins/CoreVisualizations/javascripts/jqplotPieGraph.js create mode 100644 www/analytics/plugins/CoreVisualizations/javascripts/seriesPicker.js create mode 100644 www/analytics/plugins/CoreVisualizations/stylesheets/dataTableVisualizations.less create mode 100644 www/analytics/plugins/CoreVisualizations/stylesheets/jqplot.css create mode 100644 www/analytics/plugins/CoreVisualizations/templates/_dataTableViz_htmlTable.twig create mode 100644 www/analytics/plugins/CoreVisualizations/templates/_dataTableViz_jqplotGraph.twig create mode 100644 www/analytics/plugins/CoreVisualizations/templates/_dataTableViz_tagCloud.twig create mode 100644 www/analytics/plugins/CustomVariables/API.php create mode 100644 www/analytics/plugins/CustomVariables/Archiver.php create mode 100644 www/analytics/plugins/CustomVariables/Commands/Info.php create mode 100644 www/analytics/plugins/CustomVariables/Commands/SetNumberOfCustomVariables.php create mode 100644 www/analytics/plugins/CustomVariables/Controller.php create mode 100644 www/analytics/plugins/CustomVariables/CustomVariables.php create mode 100644 www/analytics/plugins/CustomVariables/Model.php create mode 100644 www/analytics/plugins/DBStats/.gitignore create mode 100644 www/analytics/plugins/DBStats/API.php create mode 100644 www/analytics/plugins/DBStats/Controller.php create mode 100644 www/analytics/plugins/DBStats/DBStats.php create mode 100644 www/analytics/plugins/DBStats/MySQLMetadataDataAccess.php create mode 100755 www/analytics/plugins/DBStats/MySQLMetadataProvider.php create mode 100644 www/analytics/plugins/DBStats/lang/am.json create mode 100644 www/analytics/plugins/DBStats/lang/ar.json create mode 100644 www/analytics/plugins/DBStats/lang/be.json create mode 100644 www/analytics/plugins/DBStats/lang/bg.json create mode 100644 www/analytics/plugins/DBStats/lang/bn.json create mode 100644 www/analytics/plugins/DBStats/lang/bs.json create mode 100644 www/analytics/plugins/DBStats/lang/ca.json create mode 100644 www/analytics/plugins/DBStats/lang/cs.json create mode 100644 www/analytics/plugins/DBStats/lang/da.json create mode 100644 www/analytics/plugins/DBStats/lang/de.json create mode 100644 www/analytics/plugins/DBStats/lang/el.json create mode 100644 www/analytics/plugins/DBStats/lang/en.json create mode 100644 www/analytics/plugins/DBStats/lang/es.json create mode 100644 www/analytics/plugins/DBStats/lang/et.json create mode 100644 www/analytics/plugins/DBStats/lang/eu.json create mode 100644 www/analytics/plugins/DBStats/lang/fa.json create mode 100644 www/analytics/plugins/DBStats/lang/fi.json create mode 100644 www/analytics/plugins/DBStats/lang/fr.json create mode 100644 www/analytics/plugins/DBStats/lang/he.json create mode 100644 www/analytics/plugins/DBStats/lang/hi.json create mode 100644 www/analytics/plugins/DBStats/lang/hu.json create mode 100644 www/analytics/plugins/DBStats/lang/id.json create mode 100644 www/analytics/plugins/DBStats/lang/is.json create mode 100644 www/analytics/plugins/DBStats/lang/it.json create mode 100644 www/analytics/plugins/DBStats/lang/ja.json create mode 100644 www/analytics/plugins/DBStats/lang/ka.json create mode 100644 www/analytics/plugins/DBStats/lang/ko.json create mode 100644 www/analytics/plugins/DBStats/lang/lt.json create mode 100644 www/analytics/plugins/DBStats/lang/lv.json create mode 100644 www/analytics/plugins/DBStats/lang/nb.json create mode 100644 www/analytics/plugins/DBStats/lang/nl.json create mode 100644 www/analytics/plugins/DBStats/lang/nn.json create mode 100644 www/analytics/plugins/DBStats/lang/pl.json create mode 100644 www/analytics/plugins/DBStats/lang/pt-br.json create mode 100644 www/analytics/plugins/DBStats/lang/pt.json create mode 100644 www/analytics/plugins/DBStats/lang/ro.json create mode 100644 www/analytics/plugins/DBStats/lang/ru.json create mode 100644 www/analytics/plugins/DBStats/lang/sk.json create mode 100644 www/analytics/plugins/DBStats/lang/sl.json create mode 100644 www/analytics/plugins/DBStats/lang/sq.json create mode 100644 www/analytics/plugins/DBStats/lang/sr.json create mode 100644 www/analytics/plugins/DBStats/lang/sv.json create mode 100644 www/analytics/plugins/DBStats/lang/ta.json create mode 100644 www/analytics/plugins/DBStats/lang/te.json create mode 100644 www/analytics/plugins/DBStats/lang/th.json create mode 100644 www/analytics/plugins/DBStats/lang/tr.json create mode 100644 www/analytics/plugins/DBStats/lang/uk.json create mode 100644 www/analytics/plugins/DBStats/lang/vi.json create mode 100644 www/analytics/plugins/DBStats/lang/zh-cn.json create mode 100644 www/analytics/plugins/DBStats/lang/zh-tw.json create mode 100644 www/analytics/plugins/DBStats/stylesheets/dbStatsTable.less create mode 100755 www/analytics/plugins/DBStats/templates/index.twig create mode 100644 www/analytics/plugins/Dashboard/API.php create mode 100644 www/analytics/plugins/Dashboard/Controller.php create mode 100644 www/analytics/plugins/Dashboard/Dashboard.php create mode 100644 www/analytics/plugins/Dashboard/DashboardManagerControl.php create mode 100644 www/analytics/plugins/Dashboard/DashboardSettingsControlBase.php create mode 100644 www/analytics/plugins/Dashboard/javascripts/dashboard.js create mode 100644 www/analytics/plugins/Dashboard/javascripts/dashboardObject.js create mode 100755 www/analytics/plugins/Dashboard/javascripts/dashboardWidget.js create mode 100644 www/analytics/plugins/Dashboard/javascripts/widgetMenu.js create mode 100644 www/analytics/plugins/Dashboard/stylesheets/dashboard.less create mode 100644 www/analytics/plugins/Dashboard/stylesheets/standalone.css create mode 100644 www/analytics/plugins/Dashboard/templates/_dashboardSettings.twig create mode 100644 www/analytics/plugins/Dashboard/templates/_header.twig create mode 100644 www/analytics/plugins/Dashboard/templates/_widgetFactoryTemplate.twig create mode 100644 www/analytics/plugins/Dashboard/templates/embeddedIndex.twig create mode 100644 www/analytics/plugins/Dashboard/templates/index.twig create mode 100644 www/analytics/plugins/DevicesDetection/API.php create mode 100644 www/analytics/plugins/DevicesDetection/Archiver.php create mode 100644 www/analytics/plugins/DevicesDetection/Controller.php create mode 100644 www/analytics/plugins/DevicesDetection/DevicesDetection.php create mode 100644 www/analytics/plugins/DevicesDetection/Updates/1.14.php create mode 100644 www/analytics/plugins/DevicesDetection/functions.php create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Acer.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Alcatel.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Apple.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Archos.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Asus.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Audiovox.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Avvio.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/BangOlufsen.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Becker.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Beetel.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/BenQ.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Cat.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/CnM.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Compal.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/CreNova.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Cricket.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/DMM.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Dell.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Denver.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/DoCoMo.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Ericsson.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Fly.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Gemini.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Google.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Gradiente.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Grundig.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/HP.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/HTC.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Haier.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Huawei.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Humax.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/INQ.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Ikea.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Intek.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Inverto.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Jolla.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/KDDI.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Karbonn.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Kindle.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Kyocera.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/LG.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/LGUPlus.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Lanix.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Lenovo.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Loewe.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Manta_Multimedia.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/MediaTek.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Medion.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Metz.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/MicroMax.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Microsoft.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Mio.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Mitsubishi.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Motorola.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/MyPhone.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/NEC.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/NGM.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Nexian.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Nintendo.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Nokia.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/O2.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/OPPO.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Onda.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Orange.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/PEAQ.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Panasonic.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Pantech.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Philips.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Polaroid.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/PolyPad.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/RIM.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Sagem.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Samsung.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Sanyo.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Sega.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Selevision.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Sharp.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Siemens.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Smart.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Softbank.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Sony.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Sony_Ericsson.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Spice.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/T-Mobile.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/TCL.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/TechniSat.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/TechnoTrend.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Telefunken.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Telit.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Thomson.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/TiPhone.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Toshiba.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Vertu.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Vestel.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Videocon.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Videoweb.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/ViewSonic.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Voxtel.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Xiaomi.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Yuandao.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/ZTE.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/Zonda.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/eTouch.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/i-mobile.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/brand/unknown.ico create mode 100644 www/analytics/plugins/DevicesDetection/images/screens/camera.png create mode 100644 www/analytics/plugins/DevicesDetection/images/screens/carbrowser.png create mode 100644 www/analytics/plugins/DevicesDetection/images/screens/computer.png create mode 100644 www/analytics/plugins/DevicesDetection/images/screens/console.gif create mode 100644 www/analytics/plugins/DevicesDetection/images/screens/dual.gif create mode 100644 www/analytics/plugins/DevicesDetection/images/screens/mobile.gif create mode 100644 www/analytics/plugins/DevicesDetection/images/screens/normal.gif create mode 100644 www/analytics/plugins/DevicesDetection/images/screens/smartphone.png create mode 100644 www/analytics/plugins/DevicesDetection/images/screens/tablet.png create mode 100644 www/analytics/plugins/DevicesDetection/images/screens/tv.png create mode 100644 www/analytics/plugins/DevicesDetection/images/screens/unknown.gif create mode 100644 www/analytics/plugins/DevicesDetection/images/screens/wide.gif create mode 100644 www/analytics/plugins/DevicesDetection/lang/bg.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/cs.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/da.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/de.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/el.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/en.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/es.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/et.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/fa.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/fi.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/fr.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/it.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/ja.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/nb.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/nl.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/pt-br.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/ro.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/ru.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/sr.json create mode 100644 www/analytics/plugins/DevicesDetection/lang/sv.json create mode 100644 www/analytics/plugins/DevicesDetection/templates/detection.twig create mode 100644 www/analytics/plugins/DevicesDetection/templates/index.twig create mode 100644 www/analytics/plugins/DevicesDetection/templates/list.twig create mode 100644 www/analytics/plugins/Events/API.php create mode 100644 www/analytics/plugins/Events/Archiver.php create mode 100644 www/analytics/plugins/Events/Controller.php create mode 100644 www/analytics/plugins/Events/Events.php create mode 100644 www/analytics/plugins/Events/lang/bg.json create mode 100644 www/analytics/plugins/Events/lang/da.json create mode 100644 www/analytics/plugins/Events/lang/de.json create mode 100644 www/analytics/plugins/Events/lang/el.json create mode 100644 www/analytics/plugins/Events/lang/en.json create mode 100644 www/analytics/plugins/Events/lang/es.json create mode 100644 www/analytics/plugins/Events/lang/et.json create mode 100644 www/analytics/plugins/Events/lang/fa.json create mode 100644 www/analytics/plugins/Events/lang/fi.json create mode 100644 www/analytics/plugins/Events/lang/fr.json create mode 100644 www/analytics/plugins/Events/lang/it.json create mode 100644 www/analytics/plugins/Events/lang/ja.json create mode 100644 www/analytics/plugins/Events/lang/nl.json create mode 100644 www/analytics/plugins/Events/lang/pt-br.json create mode 100644 www/analytics/plugins/Events/lang/ro.json create mode 100644 www/analytics/plugins/Events/lang/sr.json create mode 100644 www/analytics/plugins/Events/lang/sv.json create mode 100644 www/analytics/plugins/Events/lang/ta.json create mode 100644 www/analytics/plugins/Events/lang/vi.json create mode 100644 www/analytics/plugins/Events/lang/zh-cn.json create mode 100644 www/analytics/plugins/Events/plugin.json create mode 100644 www/analytics/plugins/Events/templates/index.twig create mode 100644 www/analytics/plugins/ExampleAPI/API.php create mode 100644 www/analytics/plugins/ExampleAPI/ExampleAPI.php create mode 100644 www/analytics/plugins/ExampleAPI/plugin.json create mode 100644 www/analytics/plugins/ExampleCommand/Commands/HelloWorld.php create mode 100644 www/analytics/plugins/ExampleCommand/plugin.json create mode 100644 www/analytics/plugins/ExamplePlugin/.gitignore create mode 100644 www/analytics/plugins/ExamplePlugin/.travis.yml create mode 100644 www/analytics/plugins/ExamplePlugin/API.php create mode 100644 www/analytics/plugins/ExamplePlugin/Controller.php create mode 100644 www/analytics/plugins/ExamplePlugin/ExamplePlugin.php create mode 100644 www/analytics/plugins/ExamplePlugin/README.md create mode 100644 www/analytics/plugins/ExamplePlugin/javascripts/plugin.js create mode 100644 www/analytics/plugins/ExamplePlugin/plugin.json create mode 100644 www/analytics/plugins/ExamplePlugin/screenshots/.gitkeep create mode 100644 www/analytics/plugins/ExamplePlugin/templates/index.twig create mode 100644 www/analytics/plugins/ExampleRssWidget/Controller.php create mode 100644 www/analytics/plugins/ExampleRssWidget/ExampleRssWidget.php create mode 100644 www/analytics/plugins/ExampleRssWidget/RssRenderer.php create mode 100644 www/analytics/plugins/ExampleRssWidget/plugin.json create mode 100644 www/analytics/plugins/ExampleRssWidget/stylesheets/rss.less create mode 100644 www/analytics/plugins/ExampleSettingsPlugin/Settings.php create mode 100644 www/analytics/plugins/ExampleSettingsPlugin/plugin.json create mode 100644 www/analytics/plugins/ExampleTheme/README.md create mode 100644 www/analytics/plugins/ExampleTheme/plugin.json create mode 100644 www/analytics/plugins/ExampleTheme/stylesheets/theme.less create mode 100644 www/analytics/plugins/ExampleUI/API.php create mode 100644 www/analytics/plugins/ExampleUI/Controller.php create mode 100644 www/analytics/plugins/ExampleUI/ExampleUI.php create mode 100644 www/analytics/plugins/ExampleUI/images/icons-planet/LICENSE create mode 100644 www/analytics/plugins/ExampleUI/images/icons-planet/earth.png create mode 100644 www/analytics/plugins/ExampleUI/images/icons-planet/jupiter.png create mode 100644 www/analytics/plugins/ExampleUI/images/icons-planet/mars.png create mode 100644 www/analytics/plugins/ExampleUI/images/icons-planet/mercury.png create mode 100644 www/analytics/plugins/ExampleUI/images/icons-planet/neptune.png create mode 100644 www/analytics/plugins/ExampleUI/images/icons-planet/saturn.png create mode 100644 www/analytics/plugins/ExampleUI/images/icons-planet/uranus.png create mode 100644 www/analytics/plugins/ExampleUI/images/icons-planet/venus.png create mode 100644 www/analytics/plugins/ExampleUI/plugin.json create mode 100644 www/analytics/plugins/ExampleUI/templates/evolutiongraph.twig create mode 100644 www/analytics/plugins/ExampleUI/templates/notifications.twig create mode 100644 www/analytics/plugins/ExampleUI/templates/sparklines.twig create mode 100644 www/analytics/plugins/ExampleVisualization/ExampleVisualization.php create mode 100644 www/analytics/plugins/ExampleVisualization/README.md create mode 100644 www/analytics/plugins/ExampleVisualization/SimpleTable.php create mode 100644 www/analytics/plugins/ExampleVisualization/images/table.png create mode 100644 www/analytics/plugins/ExampleVisualization/plugin.json create mode 100644 www/analytics/plugins/ExampleVisualization/templates/simpleTable.twig create mode 100644 www/analytics/plugins/Feedback/API.php create mode 100644 www/analytics/plugins/Feedback/Controller.php create mode 100644 www/analytics/plugins/Feedback/Feedback.php create mode 100644 www/analytics/plugins/Feedback/angularjs/ratefeature/icon_license create mode 100644 www/analytics/plugins/Feedback/angularjs/ratefeature/ratefeature-controller.js create mode 100644 www/analytics/plugins/Feedback/angularjs/ratefeature/ratefeature-directive.js create mode 100644 www/analytics/plugins/Feedback/angularjs/ratefeature/ratefeature-model.js create mode 100644 www/analytics/plugins/Feedback/angularjs/ratefeature/ratefeature.html create mode 100644 www/analytics/plugins/Feedback/angularjs/ratefeature/ratefeature.less create mode 100644 www/analytics/plugins/Feedback/angularjs/ratefeature/thumbs-down.png create mode 100644 www/analytics/plugins/Feedback/angularjs/ratefeature/thumbs-up.png create mode 100644 www/analytics/plugins/Feedback/images/facebook.png create mode 100644 www/analytics/plugins/Feedback/images/github.png create mode 100644 www/analytics/plugins/Feedback/images/linkedin.png create mode 100644 www/analytics/plugins/Feedback/images/newsletter.png create mode 100644 www/analytics/plugins/Feedback/images/twitter.png create mode 100644 www/analytics/plugins/Feedback/stylesheets/feedback.less create mode 100644 www/analytics/plugins/Feedback/templates/index.twig create mode 100644 www/analytics/plugins/Goals/API.php create mode 100644 www/analytics/plugins/Goals/Archiver.php create mode 100644 www/analytics/plugins/Goals/Controller.php create mode 100644 www/analytics/plugins/Goals/Goals.php create mode 100644 www/analytics/plugins/Goals/Visualizations/Goals.php create mode 100644 www/analytics/plugins/Goals/javascripts/goalsForm.js create mode 100644 www/analytics/plugins/Goals/stylesheets/goals.css create mode 100644 www/analytics/plugins/Goals/templates/_addEditGoal.twig create mode 100644 www/analytics/plugins/Goals/templates/_formAddGoal.twig create mode 100644 www/analytics/plugins/Goals/templates/_listGoalEdit.twig create mode 100644 www/analytics/plugins/Goals/templates/_listTopDimension.twig create mode 100644 www/analytics/plugins/Goals/templates/_titleAndEvolutionGraph.twig create mode 100644 www/analytics/plugins/Goals/templates/addNewGoal.twig create mode 100644 www/analytics/plugins/Goals/templates/getGoalReportView.twig create mode 100644 www/analytics/plugins/Goals/templates/getOverviewView.twig create mode 100644 www/analytics/plugins/ImageGraph/API.php create mode 100644 www/analytics/plugins/ImageGraph/Controller.php create mode 100644 www/analytics/plugins/ImageGraph/ImageGraph.php create mode 100644 www/analytics/plugins/ImageGraph/StaticGraph.php create mode 100644 www/analytics/plugins/ImageGraph/StaticGraph/Evolution.php create mode 100644 www/analytics/plugins/ImageGraph/StaticGraph/Exception.php create mode 100644 www/analytics/plugins/ImageGraph/StaticGraph/GridGraph.php create mode 100644 www/analytics/plugins/ImageGraph/StaticGraph/HorizontalBar.php create mode 100644 www/analytics/plugins/ImageGraph/StaticGraph/Pie.php create mode 100644 www/analytics/plugins/ImageGraph/StaticGraph/Pie3D.php create mode 100644 www/analytics/plugins/ImageGraph/StaticGraph/PieGraph.php create mode 100644 www/analytics/plugins/ImageGraph/StaticGraph/VerticalBar.php create mode 100644 www/analytics/plugins/ImageGraph/fonts/tahoma.ttf create mode 100644 www/analytics/plugins/ImageGraph/templates/index.twig create mode 100644 www/analytics/plugins/ImageGraph/templates/testAllSizes.twig create mode 100644 www/analytics/plugins/Insights/API.php create mode 100644 www/analytics/plugins/Insights/Controller.php create mode 100644 www/analytics/plugins/Insights/DataTable/Filter/ExcludeLowValue.php create mode 100644 www/analytics/plugins/Insights/DataTable/Filter/Insight.php create mode 100644 www/analytics/plugins/Insights/DataTable/Filter/Limit.php create mode 100644 www/analytics/plugins/Insights/DataTable/Filter/MinGrowth.php create mode 100644 www/analytics/plugins/Insights/DataTable/Filter/OrderBy.php create mode 100644 www/analytics/plugins/Insights/InsightReport.php create mode 100644 www/analytics/plugins/Insights/Insights.php create mode 100644 www/analytics/plugins/Insights/Model.php create mode 100644 www/analytics/plugins/Insights/Visualizations/Insight.php create mode 100644 www/analytics/plugins/Insights/Visualizations/Insight/RequestConfig.php create mode 100644 www/analytics/plugins/Insights/images/idea.png create mode 100644 www/analytics/plugins/Insights/javascripts/insightsDataTable.js create mode 100644 www/analytics/plugins/Insights/plugin.json create mode 100644 www/analytics/plugins/Insights/stylesheets/insightVisualization.less create mode 100644 www/analytics/plugins/Insights/templates/cannotDisplayReport.twig create mode 100644 www/analytics/plugins/Insights/templates/insightControls.twig create mode 100644 www/analytics/plugins/Insights/templates/insightVisualization.twig create mode 100644 www/analytics/plugins/Insights/templates/insightsOverviewWidget.twig create mode 100644 www/analytics/plugins/Insights/templates/moversAndShakersOverviewWidget.twig create mode 100644 www/analytics/plugins/Insights/templates/overviewWidget.twig create mode 100644 www/analytics/plugins/Insights/templates/table_header.twig create mode 100644 www/analytics/plugins/Insights/templates/table_row.twig create mode 100644 www/analytics/plugins/Installation/Controller.php create mode 100644 www/analytics/plugins/Installation/FormDatabaseSetup.php create mode 100644 www/analytics/plugins/Installation/FormFirstWebsiteSetup.php create mode 100644 www/analytics/plugins/Installation/FormGeneralSetup.php create mode 100644 www/analytics/plugins/Installation/Installation.php create mode 100644 www/analytics/plugins/Installation/ServerFilesGenerator.php create mode 100644 www/analytics/plugins/Installation/View.php create mode 100644 www/analytics/plugins/Installation/javascripts/installation.js create mode 100644 www/analytics/plugins/Installation/stylesheets/installation.css create mode 100755 www/analytics/plugins/Installation/stylesheets/systemCheckPage.less create mode 100644 www/analytics/plugins/Installation/templates/_allSteps.twig create mode 100644 www/analytics/plugins/Installation/templates/_integrityDetails.twig create mode 100644 www/analytics/plugins/Installation/templates/_systemCheckLegend.twig create mode 100755 www/analytics/plugins/Installation/templates/_systemCheckSection.twig create mode 100644 www/analytics/plugins/Installation/templates/databaseCheck.twig create mode 100644 www/analytics/plugins/Installation/templates/databaseSetup.twig create mode 100644 www/analytics/plugins/Installation/templates/finished.twig create mode 100644 www/analytics/plugins/Installation/templates/firstWebsiteSetup.twig create mode 100644 www/analytics/plugins/Installation/templates/generalSetup.twig create mode 100644 www/analytics/plugins/Installation/templates/layout.twig create mode 100644 www/analytics/plugins/Installation/templates/reuseTables.twig create mode 100644 www/analytics/plugins/Installation/templates/systemCheck.twig create mode 100755 www/analytics/plugins/Installation/templates/systemCheckPage.twig create mode 100644 www/analytics/plugins/Installation/templates/tablesCreation.twig create mode 100644 www/analytics/plugins/Installation/templates/trackingCode.twig create mode 100644 www/analytics/plugins/Installation/templates/welcome.twig create mode 100644 www/analytics/plugins/LanguagesManager/API.php create mode 100644 www/analytics/plugins/LanguagesManager/Commands/CreatePull.php create mode 100644 www/analytics/plugins/LanguagesManager/Commands/FetchFromOTrance.php create mode 100644 www/analytics/plugins/LanguagesManager/Commands/LanguageCodes.php create mode 100644 www/analytics/plugins/LanguagesManager/Commands/LanguageNames.php create mode 100644 www/analytics/plugins/LanguagesManager/Commands/PluginsWithTranslations.php create mode 100644 www/analytics/plugins/LanguagesManager/Commands/SetTranslations.php create mode 100644 www/analytics/plugins/LanguagesManager/Commands/Update.php create mode 100644 www/analytics/plugins/LanguagesManager/Controller.php create mode 100644 www/analytics/plugins/LanguagesManager/LanguagesManager.php create mode 100644 www/analytics/plugins/LanguagesManager/javascripts/languageSelector.js create mode 100644 www/analytics/plugins/LanguagesManager/templates/getLanguagesSelector.twig create mode 100644 www/analytics/plugins/LeftMenu/plugin.json create mode 100644 www/analytics/plugins/LeftMenu/stylesheets/theme.less create mode 100644 www/analytics/plugins/Live/API.php create mode 100644 www/analytics/plugins/Live/Controller.php create mode 100644 www/analytics/plugins/Live/Live.php create mode 100644 www/analytics/plugins/Live/Visitor.php create mode 100644 www/analytics/plugins/Live/VisitorLog.php create mode 100644 www/analytics/plugins/Live/images/avatar_frame.png create mode 100644 www/analytics/plugins/Live/images/file0.png create mode 100644 www/analytics/plugins/Live/images/file1.png create mode 100644 www/analytics/plugins/Live/images/file2.png create mode 100644 www/analytics/plugins/Live/images/file3.png create mode 100644 www/analytics/plugins/Live/images/file4.png create mode 100644 www/analytics/plugins/Live/images/file5.png create mode 100644 www/analytics/plugins/Live/images/file6.png create mode 100644 www/analytics/plugins/Live/images/file7.png create mode 100644 www/analytics/plugins/Live/images/file8.png create mode 100644 www/analytics/plugins/Live/images/file9.png create mode 100644 www/analytics/plugins/Live/images/paperclip.png create mode 100644 www/analytics/plugins/Live/images/pause.gif create mode 100644 www/analytics/plugins/Live/images/pause_disabled.gif create mode 100644 www/analytics/plugins/Live/images/play.gif create mode 100644 www/analytics/plugins/Live/images/play_disabled.gif create mode 100644 www/analytics/plugins/Live/images/returningVisitor.gif create mode 100644 www/analytics/plugins/Live/images/unknown_avatar.jpg create mode 100644 www/analytics/plugins/Live/images/visitorProfileLaunch.png create mode 100644 www/analytics/plugins/Live/images/visitor_profile_background.jpg create mode 100644 www/analytics/plugins/Live/images/visitor_profile_close.png create mode 100644 www/analytics/plugins/Live/images/visitor_profile_gradient.png create mode 100644 www/analytics/plugins/Live/javascripts/live.js create mode 100644 www/analytics/plugins/Live/javascripts/visitorLog.js create mode 100644 www/analytics/plugins/Live/javascripts/visitorProfile.js create mode 100644 www/analytics/plugins/Live/stylesheets/live.less create mode 100644 www/analytics/plugins/Live/stylesheets/visitor_profile.less create mode 100644 www/analytics/plugins/Live/templates/_actionsList.twig create mode 100644 www/analytics/plugins/Live/templates/_dataTableViz_visitorLog.twig create mode 100644 www/analytics/plugins/Live/templates/_totalVisitors.twig create mode 100644 www/analytics/plugins/Live/templates/ajaxTotalVisitors.twig create mode 100644 www/analytics/plugins/Live/templates/getLastVisitsStart.twig create mode 100644 www/analytics/plugins/Live/templates/getSimpleLastVisitCount.twig create mode 100644 www/analytics/plugins/Live/templates/getSingleVisitSummary.twig create mode 100644 www/analytics/plugins/Live/templates/getVisitList.twig create mode 100644 www/analytics/plugins/Live/templates/getVisitorProfilePopup.twig create mode 100644 www/analytics/plugins/Live/templates/index.twig create mode 100644 www/analytics/plugins/Live/templates/indexVisitorLog.twig create mode 100644 www/analytics/plugins/Login/Auth.php create mode 100644 www/analytics/plugins/Login/Controller.php create mode 100644 www/analytics/plugins/Login/FormLogin.php create mode 100644 www/analytics/plugins/Login/FormResetPassword.php create mode 100644 www/analytics/plugins/Login/Login.php create mode 100755 www/analytics/plugins/Login/javascripts/login.js create mode 100644 www/analytics/plugins/Login/stylesheets/login.css create mode 100644 www/analytics/plugins/Login/templates/login.twig create mode 100755 www/analytics/plugins/Login/templates/resetPassword.twig create mode 100644 www/analytics/plugins/MobileMessaging/API.php create mode 100644 www/analytics/plugins/MobileMessaging/APIException.php create mode 100644 www/analytics/plugins/MobileMessaging/Controller.php create mode 100644 www/analytics/plugins/MobileMessaging/CountryCallingCodes.php create mode 100644 www/analytics/plugins/MobileMessaging/GSMCharset.php create mode 100644 www/analytics/plugins/MobileMessaging/MobileMessaging.php create mode 100644 www/analytics/plugins/MobileMessaging/ReportRenderer/ReportRendererException.php create mode 100644 www/analytics/plugins/MobileMessaging/ReportRenderer/Sms.php create mode 100644 www/analytics/plugins/MobileMessaging/SMSProvider.php create mode 100644 www/analytics/plugins/MobileMessaging/SMSProvider/Clockwork.php create mode 100644 www/analytics/plugins/MobileMessaging/SMSProvider/StubbedProvider.php create mode 100644 www/analytics/plugins/MobileMessaging/images/Clockwork.png create mode 100644 www/analytics/plugins/MobileMessaging/images/phone.png create mode 100644 www/analytics/plugins/MobileMessaging/javascripts/MobileMessagingSettings.js create mode 100644 www/analytics/plugins/MobileMessaging/stylesheets/MobileMessagingSettings.less create mode 100644 www/analytics/plugins/MobileMessaging/templates/SMSReport.twig create mode 100644 www/analytics/plugins/MobileMessaging/templates/index.twig create mode 100644 www/analytics/plugins/MobileMessaging/templates/reportParametersScheduledReports.twig create mode 100644 www/analytics/plugins/Morpheus/images/add.png create mode 100644 www/analytics/plugins/Morpheus/images/annotations.png create mode 100644 www/analytics/plugins/Morpheus/images/annotations_starred.png create mode 100644 www/analytics/plugins/Morpheus/images/bullet.png create mode 100644 www/analytics/plugins/Morpheus/images/calendar.gif create mode 100644 www/analytics/plugins/Morpheus/images/chart_bar.png create mode 100644 www/analytics/plugins/Morpheus/images/chart_line_edit.png create mode 100644 www/analytics/plugins/Morpheus/images/chart_pie.png create mode 100644 www/analytics/plugins/Morpheus/images/cities.png create mode 100644 www/analytics/plugins/Morpheus/images/close.png create mode 100644 www/analytics/plugins/Morpheus/images/configure-highlight.png create mode 100644 www/analytics/plugins/Morpheus/images/configure.png create mode 100644 www/analytics/plugins/Morpheus/images/datepicker_arr_l.png create mode 100644 www/analytics/plugins/Morpheus/images/datepicker_arr_r.png create mode 100644 www/analytics/plugins/Morpheus/images/export.png create mode 100644 www/analytics/plugins/Morpheus/images/forms-sprite.png create mode 100644 www/analytics/plugins/Morpheus/images/goal.png create mode 100644 www/analytics/plugins/Morpheus/images/help.png create mode 100644 www/analytics/plugins/Morpheus/images/ico_delete.png create mode 100644 www/analytics/plugins/Morpheus/images/ico_edit.png create mode 100644 www/analytics/plugins/Morpheus/images/icon-calendar.gif create mode 100644 www/analytics/plugins/Morpheus/images/image.png create mode 100644 www/analytics/plugins/Morpheus/images/info.png create mode 100644 www/analytics/plugins/Morpheus/images/link.gif create mode 100644 www/analytics/plugins/Morpheus/images/loading-blue.gif create mode 100644 www/analytics/plugins/Morpheus/images/logo-header.png create mode 100644 www/analytics/plugins/Morpheus/images/logo.png create mode 100644 www/analytics/plugins/Morpheus/images/logo.svg create mode 100644 www/analytics/plugins/Morpheus/images/maximise.png create mode 100644 www/analytics/plugins/Morpheus/images/minimise.png create mode 100644 www/analytics/plugins/Morpheus/images/pause.gif create mode 100644 www/analytics/plugins/Morpheus/images/pause_disabled.gif create mode 100644 www/analytics/plugins/Morpheus/images/play.gif create mode 100644 www/analytics/plugins/Morpheus/images/play_disabled.gif create mode 100644 www/analytics/plugins/Morpheus/images/refresh.png create mode 100644 www/analytics/plugins/Morpheus/images/regions.png create mode 100644 www/analytics/plugins/Morpheus/images/search_ico.png create mode 100644 www/analytics/plugins/Morpheus/images/segment-users.png create mode 100644 www/analytics/plugins/Morpheus/images/sort_subtable_desc.png create mode 100644 www/analytics/plugins/Morpheus/images/sortasc.png create mode 100644 www/analytics/plugins/Morpheus/images/sortasc_dark.png create mode 100644 www/analytics/plugins/Morpheus/images/sortdesc.png create mode 100644 www/analytics/plugins/Morpheus/images/sortdesc_dark.png create mode 100644 www/analytics/plugins/Morpheus/images/table.png create mode 100644 www/analytics/plugins/Morpheus/images/table_more.png create mode 100644 www/analytics/plugins/Morpheus/images/tagcloud.png create mode 100644 www/analytics/plugins/Morpheus/images/zoom-out-disabled.png create mode 100644 www/analytics/plugins/Morpheus/images/zoom-out.png create mode 100644 www/analytics/plugins/Morpheus/javascripts/jquery.icheck.min.js create mode 100644 www/analytics/plugins/Morpheus/javascripts/morpheus.js create mode 100644 www/analytics/plugins/Morpheus/plugin.json create mode 100644 www/analytics/plugins/Morpheus/stylesheets/admin.less create mode 100644 www/analytics/plugins/Morpheus/stylesheets/charts.less create mode 100644 www/analytics/plugins/Morpheus/stylesheets/colors.less create mode 100644 www/analytics/plugins/Morpheus/stylesheets/components.less create mode 100644 www/analytics/plugins/Morpheus/stylesheets/forms.less create mode 100644 www/analytics/plugins/Morpheus/stylesheets/map.less create mode 100644 www/analytics/plugins/Morpheus/stylesheets/mixins.less create mode 100644 www/analytics/plugins/Morpheus/stylesheets/popups.less create mode 100644 www/analytics/plugins/Morpheus/stylesheets/theme.less create mode 100644 www/analytics/plugins/Morpheus/stylesheets/tooltip.less create mode 100644 www/analytics/plugins/Morpheus/stylesheets/typography.less create mode 100755 www/analytics/plugins/MultiSites/API.php create mode 100644 www/analytics/plugins/MultiSites/Controller.php create mode 100644 www/analytics/plugins/MultiSites/MultiSites.php create mode 100644 www/analytics/plugins/MultiSites/angularjs/dashboard/dashboard-controller.js create mode 100644 www/analytics/plugins/MultiSites/angularjs/dashboard/dashboard-directive.js create mode 100644 www/analytics/plugins/MultiSites/angularjs/dashboard/dashboard-filter.js create mode 100644 www/analytics/plugins/MultiSites/angularjs/dashboard/dashboard-model.js create mode 100644 www/analytics/plugins/MultiSites/angularjs/dashboard/dashboard.html create mode 100644 www/analytics/plugins/MultiSites/angularjs/dashboard/dashboard.less create mode 100644 www/analytics/plugins/MultiSites/angularjs/site/site-directive.js create mode 100644 www/analytics/plugins/MultiSites/angularjs/site/site.html create mode 100644 www/analytics/plugins/MultiSites/images/arrow_asc.gif create mode 100644 www/analytics/plugins/MultiSites/images/arrow_desc.gif create mode 100644 www/analytics/plugins/MultiSites/images/arrow_down.png create mode 100644 www/analytics/plugins/MultiSites/images/arrow_down_green.png create mode 100644 www/analytics/plugins/MultiSites/images/arrow_up.png create mode 100644 www/analytics/plugins/MultiSites/images/arrow_up_red.png create mode 100644 www/analytics/plugins/MultiSites/images/door_in.png create mode 100644 www/analytics/plugins/MultiSites/images/link.gif create mode 100644 www/analytics/plugins/MultiSites/images/loading-blue.gif create mode 100644 www/analytics/plugins/MultiSites/images/stop.png create mode 100644 www/analytics/plugins/MultiSites/templates/getSitesInfo.twig create mode 100644 www/analytics/plugins/Overlay/API.php create mode 100644 www/analytics/plugins/Overlay/Controller.php create mode 100644 www/analytics/plugins/Overlay/Overlay.php create mode 100644 www/analytics/plugins/Overlay/client/client.css create mode 100644 www/analytics/plugins/Overlay/client/client.js create mode 100644 www/analytics/plugins/Overlay/client/close.png create mode 100644 www/analytics/plugins/Overlay/client/followingpages.js create mode 100644 www/analytics/plugins/Overlay/client/linktags.eps create mode 100644 www/analytics/plugins/Overlay/client/linktags.png create mode 100644 www/analytics/plugins/Overlay/client/linktags.psd create mode 100644 www/analytics/plugins/Overlay/client/linktags_lessshadow.png create mode 100644 www/analytics/plugins/Overlay/client/linktags_noshadow.png create mode 100644 www/analytics/plugins/Overlay/client/loading.gif create mode 100644 www/analytics/plugins/Overlay/client/translations.js create mode 100644 www/analytics/plugins/Overlay/client/urlnormalizer.js create mode 100644 www/analytics/plugins/Overlay/images/info.png create mode 100755 www/analytics/plugins/Overlay/images/overlay_icon.png create mode 100755 www/analytics/plugins/Overlay/images/overlay_icon_hover.png create mode 100644 www/analytics/plugins/Overlay/javascripts/Overlay_Helper.js create mode 100644 www/analytics/plugins/Overlay/javascripts/Piwik_Overlay.js create mode 100644 www/analytics/plugins/Overlay/javascripts/rowaction.js create mode 100644 www/analytics/plugins/Overlay/stylesheets/overlay.css create mode 100644 www/analytics/plugins/Overlay/stylesheets/showErrorWrongDomain.css create mode 100644 www/analytics/plugins/Overlay/templates/index.twig create mode 100644 www/analytics/plugins/Overlay/templates/index_noframe.twig create mode 100644 www/analytics/plugins/Overlay/templates/notifyParentIframe.twig create mode 100644 www/analytics/plugins/Overlay/templates/renderSidebar.twig create mode 100644 www/analytics/plugins/Overlay/templates/showErrorWrongDomain.twig create mode 100644 www/analytics/plugins/PrivacyManager/Config.php create mode 100644 www/analytics/plugins/PrivacyManager/Controller.php create mode 100644 www/analytics/plugins/PrivacyManager/DoNotTrackHeaderChecker.php create mode 100644 www/analytics/plugins/PrivacyManager/IPAnonymizer.php create mode 100755 www/analytics/plugins/PrivacyManager/LogDataPurger.php create mode 100644 www/analytics/plugins/PrivacyManager/PrivacyManager.php create mode 100755 www/analytics/plugins/PrivacyManager/ReportsPurger.php create mode 100644 www/analytics/plugins/PrivacyManager/javascripts/privacySettings.js create mode 100755 www/analytics/plugins/PrivacyManager/templates/getDatabaseSize.twig create mode 100644 www/analytics/plugins/PrivacyManager/templates/privacySettings.twig create mode 100644 www/analytics/plugins/Provider/API.php create mode 100644 www/analytics/plugins/Provider/Archiver.php create mode 100644 www/analytics/plugins/Provider/Controller.php create mode 100644 www/analytics/plugins/Provider/Provider.php create mode 100644 www/analytics/plugins/Provider/functions.php create mode 100644 www/analytics/plugins/Proxy/Controller.php create mode 100644 www/analytics/plugins/Proxy/Proxy.php create mode 100644 www/analytics/plugins/Referrers/API.php create mode 100644 www/analytics/plugins/Referrers/Archiver.php create mode 100644 www/analytics/plugins/Referrers/Controller.php create mode 100644 www/analytics/plugins/Referrers/Referrers.php create mode 100644 www/analytics/plugins/Referrers/functions.php create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/1.cz.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/abcsok.no.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/alexa.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/all.by.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/apollo.lv.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/apollo7.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/arama.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/ariadna.elmundo.es.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/arianna.libero.it.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/ask.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/bg.setooz.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/bing.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/blekko.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/blogs.icerocket.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/blogsearch.google.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/busca.orange.es.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/busca.uol.com.br.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/buscador.terra.es.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/cgi.search.biglobe.ne.jp.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/claro-search.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/daemon-search.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/digg.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/dir.gigablast.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/dmoz.org.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/duckduckgo.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/ecosia.org.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/encrypted.google.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/eo.st.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/forestle.org.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/fr.dir.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/fr.wedoo.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/friendfeed.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/gais.cs.ccu.edu.tw.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/geona.net.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/go.mail.ru.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/google.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/googlesyndicatedsearch.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/holmes.ge.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/images.google.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/images.search.yahoo.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/images.yandex.ru.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/infospace.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/iwon.ask.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/ixquick.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/junglekey.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/jyxo.1188.cz.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/ko.search.need2find.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/lo.st.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/maps.google.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/meta.rrzn.uni-hannover.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/meta.ua.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/metager2.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/news.google.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/nigma.ru.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/nova.rambler.ru.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/online.no.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/otsing.delfi.ee.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/p.zhongsou.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/pesquisa.clix.pt.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/pesquisa.sapo.pt.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/plusnetwork.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/poisk.ru.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/recherche.francite.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/rechercher.aliceadsl.fr.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/req.hit-parade.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/ricerca.virgilio.it.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/rpmfind.net.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/s1.metacrawler.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/scholar.google.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/scour.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.aol.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.babylon.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.bluewin.ch.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.centrum.cz.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.comcast.net.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.conduit.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.daum.net.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.earthlink.net.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.excite.it.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.free.fr.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.freecause.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.goo.ne.jp.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.imesh.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.ke.voila.fr.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.lycos.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.nate.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.naver.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.nifty.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.peoplepc.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.qip.ru.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.rr.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.seznam.cz.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.smartaddressbar.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.snap.do.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.softonic.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.tiscali.it.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.winamp.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.www.ee.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.yahoo.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.yam.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/search.yippy.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/searchalot.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/searchatlas.centrum.cz.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/searchservice.myspace.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/sm.aport.ru.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/smart.delfi.lv.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/so.360.cn.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/start.iplay.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/startgoogle.startpagina.nl.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/suche.freenet.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/suche.info.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/suche.t-online.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/suche.web.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/surfcanyon.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/szukaj.onet.pl.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/szukaj.wp.pl.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/technorati.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/translate.google.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/video.google.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/web.canoe.ca.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/web.volny.cz.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/websearch.cs.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/websearch.rakuten.co.jp.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.123people.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.1881.no.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.abacho.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.acoon.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.allesklar.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.alltheweb.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.altavista.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.arcor.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.baidu.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.blogdigger.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.blogpulse.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.charter.net.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.crawler.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.cuil.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.dasoertliche.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.eniro.se.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.eurip.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.euroseek.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.everyclick.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.exalead.fr.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.facebook.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.fastbrowsersearch.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.fireball.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.firstsfind.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.fixsuche.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.flix.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.gigablast.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.gnadenmeer.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.gomeo.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.google.interia.pl.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.goyellow.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.gulesider.no.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.highbeam.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.hooseek.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.hotbot.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.icq.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.ilse.nl.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.jungle-spider.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.kataweb.it.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.kvasir.no.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.latne.lv.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.looksmart.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.maailm.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.mamma.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.meinestadt.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.mister-wong.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.monstercrawler.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.mozbot.fr.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.mysearch.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.najdi.si.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.neti.ee.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.paperball.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.picsearch.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.plazoo.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.qualigo.at.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.search.ch.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.search.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.searchcanvas.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.searchy.co.uk.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.sharelook.fr.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.skynet.be.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.sogou.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.soso.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.startsiden.no.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.suchmaschine.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.suchnase.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.talimba.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.talktalk.co.uk.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.teoma.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.tixuma.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.toile.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.toolbarhome.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.trouvez.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.trovarapido.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.trusted-search.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.twingly.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.url.org.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.vinden.nl.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.vindex.nl.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.walhello.info.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.web.nl.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.weborama.fr.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.websearch.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.witch.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.x-recherche.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.yasni.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.yatedo.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.yougoo.fr.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.zapmeta.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.zoeken.nl.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www.zoznam.sk.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www1.dastelefonbuch.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www2.austronaut.at.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www2.inbox.com.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/www3.zoek.nl.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/xx.gif create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/xx.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/yandex.ru.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/yellowmap.de.png create mode 100644 www/analytics/plugins/Referrers/images/searchEngines/zoohoo.cz.png create mode 100644 www/analytics/plugins/Referrers/images/socials/badoo.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/bebo.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/blackplanet.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/buzznet.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/classmates.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/douban.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/facebook.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/flickr.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/flixster.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/fotolog.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/foursquare.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/friendsreunited.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/friendster.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/gaiaonline.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/geni.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/github.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/habbo.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/hi5.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/hyves.nl.png create mode 100644 www/analytics/plugins/Referrers/images/socials/identi.ca.png create mode 100644 www/analytics/plugins/Referrers/images/socials/last.fm.png create mode 100644 www/analytics/plugins/Referrers/images/socials/linkedin.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/livejournal.ru.png create mode 100644 www/analytics/plugins/Referrers/images/socials/login.live.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/login.tagged.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/meinvz.net.png create mode 100644 www/analytics/plugins/Referrers/images/socials/mixi.jp.png create mode 100644 www/analytics/plugins/Referrers/images/socials/moikrug.ru.png create mode 100644 www/analytics/plugins/Referrers/images/socials/multiply.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/my.mail.ru.png create mode 100644 www/analytics/plugins/Referrers/images/socials/myheritage.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/mylife.ru.png create mode 100644 www/analytics/plugins/Referrers/images/socials/myspace.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/myyearbook.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/netlog.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/news.ycombinator.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/nk.pl.png create mode 100644 www/analytics/plugins/Referrers/images/socials/odnoklassniki.ru.png create mode 100644 www/analytics/plugins/Referrers/images/socials/orkut.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/pinterest.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/plaxo.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/qzone.qq.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/reddit.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/renren.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/ru.netlog.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/skyrock.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/sonico.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/sourceforge.net.png create mode 100644 www/analytics/plugins/Referrers/images/socials/stackoverflow.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/studivz.net.png create mode 100644 www/analytics/plugins/Referrers/images/socials/stumbleupon.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/tagged.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/taringa.net.png create mode 100644 www/analytics/plugins/Referrers/images/socials/tuenti.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/tumblr.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/twitter.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/url.google.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/viadeo.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/vimeo.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/vk.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/vkontakte.ru.png create mode 100644 www/analytics/plugins/Referrers/images/socials/vkrugudruzei.ru.png create mode 100644 www/analytics/plugins/Referrers/images/socials/wayn.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/weeworld.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/weibo.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/xanga.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/xing.com.png create mode 100644 www/analytics/plugins/Referrers/images/socials/xx.png create mode 100644 www/analytics/plugins/Referrers/images/socials/youtube.com.png create mode 100644 www/analytics/plugins/Referrers/templates/getSearchEnginesAndKeywords.twig create mode 100644 www/analytics/plugins/Referrers/templates/index.twig create mode 100644 www/analytics/plugins/Referrers/templates/indexWebsites.twig create mode 100644 www/analytics/plugins/SEO/API.php create mode 100644 www/analytics/plugins/SEO/Controller.php create mode 100644 www/analytics/plugins/SEO/MajesticClient.php create mode 100644 www/analytics/plugins/SEO/RankChecker.php create mode 100644 www/analytics/plugins/SEO/SEO.php create mode 100644 www/analytics/plugins/SEO/images/majesticseo.png create mode 100644 www/analytics/plugins/SEO/images/whois.png create mode 100644 www/analytics/plugins/SEO/javascripts/rank.js create mode 100644 www/analytics/plugins/SEO/templates/getRank.twig create mode 100644 www/analytics/plugins/ScheduledReports/API.php create mode 100644 www/analytics/plugins/ScheduledReports/Controller.php create mode 100644 www/analytics/plugins/ScheduledReports/ScheduledReports.php create mode 100644 www/analytics/plugins/ScheduledReports/config/tcpdf_config.php create mode 100644 www/analytics/plugins/ScheduledReports/javascripts/pdf.js create mode 100644 www/analytics/plugins/ScheduledReports/templates/_addReport.twig create mode 100644 www/analytics/plugins/ScheduledReports/templates/_listReports.twig create mode 100644 www/analytics/plugins/ScheduledReports/templates/index.twig create mode 100644 www/analytics/plugins/ScheduledReports/templates/reportParametersScheduledReports.twig create mode 100644 www/analytics/plugins/SegmentEditor/API.php create mode 100644 www/analytics/plugins/SegmentEditor/Controller.php create mode 100644 www/analytics/plugins/SegmentEditor/Model.php create mode 100644 www/analytics/plugins/SegmentEditor/SegmentEditor.php create mode 100644 www/analytics/plugins/SegmentEditor/SegmentSelectorControl.php create mode 100644 www/analytics/plugins/SegmentEditor/images/ajax-loader.gif create mode 100644 www/analytics/plugins/SegmentEditor/images/bg-inverted-corners.png create mode 100644 www/analytics/plugins/SegmentEditor/images/bg-segment-search.png create mode 100644 www/analytics/plugins/SegmentEditor/images/bg-select.png create mode 100644 www/analytics/plugins/SegmentEditor/images/close.png create mode 100644 www/analytics/plugins/SegmentEditor/images/close_btn.png create mode 100644 www/analytics/plugins/SegmentEditor/images/dashboard_h_bg_hover.png create mode 100644 www/analytics/plugins/SegmentEditor/images/icon-users.png create mode 100644 www/analytics/plugins/SegmentEditor/images/reset_search.png create mode 100644 www/analytics/plugins/SegmentEditor/images/search_btn.png create mode 100644 www/analytics/plugins/SegmentEditor/images/segment-close.png create mode 100644 www/analytics/plugins/SegmentEditor/images/segment-move.png create mode 100644 www/analytics/plugins/SegmentEditor/javascripts/Segmentation.js create mode 100644 www/analytics/plugins/SegmentEditor/stylesheets/segmentation.less create mode 100644 www/analytics/plugins/SegmentEditor/templates/_segmentSelector.twig create mode 100644 www/analytics/plugins/SitesManager/API.php create mode 100644 www/analytics/plugins/SitesManager/Controller.php create mode 100644 www/analytics/plugins/SitesManager/SitesManager.php create mode 100644 www/analytics/plugins/SitesManager/javascripts/SitesManager.js create mode 100644 www/analytics/plugins/SitesManager/stylesheets/SitesManager.less create mode 100644 www/analytics/plugins/SitesManager/templates/_displayJavascriptCode.twig create mode 100644 www/analytics/plugins/SitesManager/templates/displayJavascriptCode.twig create mode 100644 www/analytics/plugins/SitesManager/templates/index.twig create mode 100644 www/analytics/plugins/Transitions/API.php create mode 100644 www/analytics/plugins/Transitions/Controller.php create mode 100644 www/analytics/plugins/Transitions/Transitions.php create mode 100755 www/analytics/plugins/Transitions/images/transitions_icon.png create mode 100755 www/analytics/plugins/Transitions/images/transitions_icon_hover.png create mode 100644 www/analytics/plugins/Transitions/javascripts/transitions.js create mode 100644 www/analytics/plugins/Transitions/stylesheets/_transitionColors.less create mode 100644 www/analytics/plugins/Transitions/stylesheets/transitions.less create mode 100644 www/analytics/plugins/Transitions/templates/renderPopover.twig create mode 100644 www/analytics/plugins/UserCountry/API.php create mode 100644 www/analytics/plugins/UserCountry/Archiver.php create mode 100644 www/analytics/plugins/UserCountry/Controller.php create mode 100755 www/analytics/plugins/UserCountry/GeoIPAutoUpdater.php create mode 100755 www/analytics/plugins/UserCountry/LocationProvider.php create mode 100755 www/analytics/plugins/UserCountry/LocationProvider/Default.php create mode 100755 www/analytics/plugins/UserCountry/LocationProvider/GeoIp.php create mode 100755 www/analytics/plugins/UserCountry/LocationProvider/GeoIp/Pecl.php create mode 100755 www/analytics/plugins/UserCountry/LocationProvider/GeoIp/Php.php create mode 100755 www/analytics/plugins/UserCountry/LocationProvider/GeoIp/ServerBased.php create mode 100644 www/analytics/plugins/UserCountry/UserCountry.php create mode 100644 www/analytics/plugins/UserCountry/functions.php create mode 100644 www/analytics/plugins/UserCountry/images/flags/a1.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/a2.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ac.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ad.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ae.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/af.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ag.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ai.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/al.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/am.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/an.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ao.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ap.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/aq.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ar.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/as.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/at.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/au.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/aw.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ax.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/az.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ba.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/bb.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/bd.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/be.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/bf.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/bg.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/bh.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/bi.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/bj.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/bl.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/bm.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/bn.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/bo.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/bq.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/br.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/bs.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/bt.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/bu.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/bv.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/bw.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/by.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/bz.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ca.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/cat.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/cc.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/cd.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/cf.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/cg.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ch.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ci.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ck.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/cl.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/cm.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/cn.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/co.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/cp.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/cr.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/cs.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/cu.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/cv.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/cw.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/cx.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/cy.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/cz.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/de.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/dg.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/dj.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/dk.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/dm.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/do.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/dz.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ea.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ec.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ee.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/eg.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/eh.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/er.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/es.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/et.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/eu.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/fi.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/fj.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/fk.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/fm.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/fo.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/fr.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/fx.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ga.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/gb.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/gd.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ge.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/gf.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/gg.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/gh.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/gi.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/gl.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/gm.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/gn.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/gp.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/gq.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/gr.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/gs.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/gt.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/gu.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/gw.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/gy.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/hk.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/hm.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/hn.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/hr.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ht.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/hu.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ic.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/id.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ie.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/il.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/im.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/in.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/io.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/iq.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ir.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/is.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/it.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/je.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/jm.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/jo.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/jp.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ke.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/kg.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/kh.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ki.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/km.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/kn.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/kp.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/kr.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/kw.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ky.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/kz.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/la.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/lb.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/lc.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/li.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/lk.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/lr.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ls.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/lt.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/lu.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/lv.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ly.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ma.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/mc.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/md.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/me.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/mf.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/mg.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/mh.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/mk.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ml.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/mm.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/mn.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/mo.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/mp.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/mq.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/mr.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ms.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/mt.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/mu.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/mv.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/mw.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/mx.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/my.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/mz.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/na.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/nc.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ne.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/nf.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ng.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ni.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/nl.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/no.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/np.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/nr.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/nt.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/nu.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/nz.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/o1.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/om.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/pa.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/pe.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/pf.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/pg.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ph.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/pk.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/pl.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/pm.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/pn.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/pr.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ps.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/pt.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/pw.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/py.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/qa.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/re.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ro.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/rs.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ru.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/rw.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/sa.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/sb.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/sc.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/sd.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/se.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/sf.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/sg.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/sh.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/si.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/sj.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/sk.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/sl.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/sm.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/sn.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/so.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/sr.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ss.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/st.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/su.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/sv.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/sx.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/sy.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/sz.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ta.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/tc.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/td.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/tf.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/tg.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/th.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ti.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/tj.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/tk.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/tl.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/tm.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/tn.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/to.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/tp.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/tr.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/tt.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/tv.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/tw.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/tz.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ua.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ug.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/uk.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/um.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/us.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/uy.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/uz.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/va.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/vc.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ve.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/vg.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/vi.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/vn.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/vu.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/wf.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ws.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/xx.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/ye.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/yt.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/yu.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/za.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/zm.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/zr.png create mode 100644 www/analytics/plugins/UserCountry/images/flags/zw.png create mode 100755 www/analytics/plugins/UserCountry/javascripts/userCountry.js create mode 100755 www/analytics/plugins/UserCountry/stylesheets/userCountry.less create mode 100755 www/analytics/plugins/UserCountry/templates/_updaterManage.twig create mode 100644 www/analytics/plugins/UserCountry/templates/_updaterNextRunTime.twig create mode 100755 www/analytics/plugins/UserCountry/templates/adminIndex.twig create mode 100755 www/analytics/plugins/UserCountry/templates/getGeoIpUpdaterManageScreen.twig create mode 100644 www/analytics/plugins/UserCountry/templates/index.twig create mode 100644 www/analytics/plugins/UserCountryMap/Controller.php create mode 100644 www/analytics/plugins/UserCountryMap/UserCountryMap.php create mode 100644 www/analytics/plugins/UserCountryMap/images/cities.png create mode 100644 www/analytics/plugins/UserCountryMap/images/realtimemap-loading.gif create mode 100644 www/analytics/plugins/UserCountryMap/images/regions.png create mode 100644 www/analytics/plugins/UserCountryMap/images/zoom-out-disabled.png create mode 100644 www/analytics/plugins/UserCountryMap/javascripts/realtime-map.js create mode 100644 www/analytics/plugins/UserCountryMap/javascripts/vendor/chroma.min.js create mode 100644 www/analytics/plugins/UserCountryMap/javascripts/vendor/jquery.qtip.min.js create mode 100644 www/analytics/plugins/UserCountryMap/javascripts/vendor/kartograph.min.js create mode 100644 www/analytics/plugins/UserCountryMap/javascripts/vendor/raphael.min.js create mode 100644 www/analytics/plugins/UserCountryMap/javascripts/visitor-map.js create mode 100644 www/analytics/plugins/UserCountryMap/stylesheets/map.css create mode 100644 www/analytics/plugins/UserCountryMap/stylesheets/realtime-map.less create mode 100644 www/analytics/plugins/UserCountryMap/stylesheets/visitor-map.less create mode 100644 www/analytics/plugins/UserCountryMap/svg/AF.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/AFG.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/AGO.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/ALB.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/ARE.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/ARG.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/ARM.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/AS.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/AUS.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/AUT.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/AZE.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/BDI.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/BEL.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/BEN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/BFA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/BGD.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/BGR.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/BIH.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/BLR.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/BLZ.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/BOL.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/BRA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/BRB.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/BRN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/BTN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/BWA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/CAF.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/CAN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/CHE.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/CHL.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/CHN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/CIV.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/CMR.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/COD.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/COG.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/COL.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/CRI.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/CUB.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/CYP.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/CZE.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/DEU.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/DJI.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/DMA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/DNK.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/DOM.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/DZA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/ECU.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/EGY.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/ERI.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/ESP.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/EST.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/ETH.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/EU.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/FIN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/FJI.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/FRA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/FRO.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/GAB.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/GBR.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/GEO.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/GHA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/GIN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/GMB.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/GNB.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/GNQ.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/GRC.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/GRL.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/GTM.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/GUY.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/HND.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/HRV.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/HTI.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/HUN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/IDN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/IND.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/IRL.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/IRN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/IRQ.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/ISL.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/ISR.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/ITA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/JAM.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/JOR.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/JPN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/KAZ.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/KEN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/KGZ.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/KHM.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/KOR.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/KWT.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/LAO.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/LBN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/LBR.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/LBY.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/LKA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/LSO.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/LTU.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/LUX.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/LVA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/MAR.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/MDA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/MDG.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/MEX.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/MKD.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/MLI.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/MMR.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/MNE.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/MNG.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/MOZ.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/MRT.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/MWI.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/MYS.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/NA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/NAM.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/NCL.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/NER.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/NFK.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/NGA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/NIC.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/NLD.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/NOR.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/NPL.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/NZL.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/OC.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/OMN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/PAK.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/PAN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/PER.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/PHL.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/PNG.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/POL.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/PRK.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/PRT.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/PRY.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/QAT.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/ROU.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/RUS.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/RWA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/SA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/SAU.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/SDN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/SDS.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/SEN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/SLB.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/SLE.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/SLV.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/SOM.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/SRB.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/SUR.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/SVK.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/SVN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/SWE.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/SWZ.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/SYR.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/TCD.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/TGO.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/THA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/TIB.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/TJK.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/TKM.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/TLS.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/TTO.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/TUN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/TUR.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/TWN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/TZA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/UGA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/UKR.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/URY.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/USA.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/UZB.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/VEN.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/VNM.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/VUT.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/YEM.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/ZAF.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/ZMB.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/ZWE.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/tmp.svg create mode 100644 www/analytics/plugins/UserCountryMap/svg/world.svg create mode 100644 www/analytics/plugins/UserCountryMap/templates/realtimeMap.twig create mode 100644 www/analytics/plugins/UserCountryMap/templates/visitorMap.twig create mode 100644 www/analytics/plugins/UserSettings/API.php create mode 100644 www/analytics/plugins/UserSettings/Archiver.php create mode 100644 www/analytics/plugins/UserSettings/Controller.php create mode 100644 www/analytics/plugins/UserSettings/UserSettings.php create mode 100644 www/analytics/plugins/UserSettings/functions.php create mode 100644 www/analytics/plugins/UserSettings/images/browsers/AA.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/AB.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/AG.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/AM.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/AN.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/AR.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/AV.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/AW.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/B2.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/BB.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/BD.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/BE.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/BP.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/BX.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/CA.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/CD.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/CF.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/CH.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/CK.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/CM.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/CN.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/CO.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/CP.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/CS.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/DF.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/DI.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/EL.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/EP.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/ES.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/FB.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/FD.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/FE.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/FF.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/FL.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/FN.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/GA.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/GE.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/HA.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/HJ.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/IA.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/IB.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/IC.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/ID.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/IE.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/IR.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/IW.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/KI.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/KM.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/KO.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/KP.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/KZ.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/LI.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/LS.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/LX.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/MC.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/MI.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/MO.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/MS.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/MX.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/NB.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/NF.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/NL.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/NP.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/NS.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/OB.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/ON.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/OP.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/OR.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/OV.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/OW.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/PL.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/PM.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/PO.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/PU.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/PW.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/PX.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/RK.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/SA.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/SF.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/SL.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/SM.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/TB.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/TI.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/TZ.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/UC.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/UN.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/UNK.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/WE.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/WO.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/WP.gif create mode 100644 www/analytics/plugins/UserSettings/images/browsers/YA.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/3DS.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/AIX.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/AMG.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/AMI.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/AND.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/ARL.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/BBX.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/BEO.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/BLB.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/BSD.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/BTR.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/CES.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/COS.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/DFB.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/DSI.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/FED.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/FOS.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/GNT.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/GTV.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/HPX.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/IOS.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/IPA.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/IPD.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/IPH.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/IRI.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/KBT.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/KNO.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/LBT.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/LIN.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/MAC.gif create mode 100755 www/analytics/plugins/UserSettings/images/os/MAE.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/MDR.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/MIN.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/NBS.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/NDS.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/OBS.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/OS2.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/POS.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/PPY.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/PS3.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/PSP.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/PSV.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/QNX.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/RHT.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/ROS.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/SAF.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/SBA.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/SLW.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/SOS.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/SSE.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/SYL.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/SYM.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/T64.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/TIZ.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/UBT.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/UNK.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/VMS.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/W2K.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/W61.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/W65.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/W75.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/W95.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/W98.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/WCE.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/WI7.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/WI8.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/WII.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/WIN.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/WIU.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/WME.gif create mode 100755 www/analytics/plugins/UserSettings/images/os/WMO.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/WNT.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/WOS.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/WP7.gif create mode 100755 www/analytics/plugins/UserSettings/images/os/WPH.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/WRT.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/WS3.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/WVI.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/WXP.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/XBT.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/XBX.gif create mode 100644 www/analytics/plugins/UserSettings/images/os/YNS.gif create mode 100644 www/analytics/plugins/UserSettings/images/plugins/cookie.gif create mode 100644 www/analytics/plugins/UserSettings/images/plugins/director.gif create mode 100644 www/analytics/plugins/UserSettings/images/plugins/flash.gif create mode 100644 www/analytics/plugins/UserSettings/images/plugins/gears.gif create mode 100644 www/analytics/plugins/UserSettings/images/plugins/java.gif create mode 100644 www/analytics/plugins/UserSettings/images/plugins/pdf.gif create mode 100644 www/analytics/plugins/UserSettings/images/plugins/quicktime.gif create mode 100644 www/analytics/plugins/UserSettings/images/plugins/realplayer.gif create mode 100644 www/analytics/plugins/UserSettings/images/plugins/silverlight.gif create mode 100644 www/analytics/plugins/UserSettings/images/plugins/windowsmedia.gif create mode 100644 www/analytics/plugins/UserSettings/images/screens/dual.gif create mode 100644 www/analytics/plugins/UserSettings/images/screens/mobile.gif create mode 100644 www/analytics/plugins/UserSettings/images/screens/normal.gif create mode 100644 www/analytics/plugins/UserSettings/images/screens/unknown.gif create mode 100644 www/analytics/plugins/UserSettings/images/screens/wide.gif create mode 100644 www/analytics/plugins/UserSettings/templates/index.twig create mode 100644 www/analytics/plugins/UsersManager/API.php create mode 100644 www/analytics/plugins/UsersManager/Controller.php create mode 100644 www/analytics/plugins/UsersManager/LastSeenTimeLogger.php create mode 100644 www/analytics/plugins/UsersManager/Model.php create mode 100644 www/analytics/plugins/UsersManager/UsersManager.php create mode 100644 www/analytics/plugins/UsersManager/images/add.png create mode 100644 www/analytics/plugins/UsersManager/images/no-access.png create mode 100644 www/analytics/plugins/UsersManager/images/ok.png create mode 100644 www/analytics/plugins/UsersManager/javascripts/usersManager.js create mode 100644 www/analytics/plugins/UsersManager/javascripts/usersSettings.js create mode 100644 www/analytics/plugins/UsersManager/stylesheets/usersManager.less create mode 100644 www/analytics/plugins/UsersManager/templates/index.twig create mode 100644 www/analytics/plugins/UsersManager/templates/userSettings.twig create mode 100644 www/analytics/plugins/VisitFrequency/API.php create mode 100644 www/analytics/plugins/VisitFrequency/Controller.php create mode 100644 www/analytics/plugins/VisitFrequency/VisitFrequency.php create mode 100644 www/analytics/plugins/VisitFrequency/templates/_sparklines.twig create mode 100644 www/analytics/plugins/VisitFrequency/templates/getSparklines.twig create mode 100644 www/analytics/plugins/VisitFrequency/templates/index.twig create mode 100644 www/analytics/plugins/VisitTime/API.php create mode 100644 www/analytics/plugins/VisitTime/Archiver.php create mode 100644 www/analytics/plugins/VisitTime/Controller.php create mode 100644 www/analytics/plugins/VisitTime/VisitTime.php create mode 100644 www/analytics/plugins/VisitTime/functions.php create mode 100644 www/analytics/plugins/VisitTime/templates/index.twig create mode 100644 www/analytics/plugins/VisitorInterest/API.php create mode 100644 www/analytics/plugins/VisitorInterest/Archiver.php create mode 100644 www/analytics/plugins/VisitorInterest/Controller.php create mode 100644 www/analytics/plugins/VisitorInterest/VisitorInterest.php create mode 100644 www/analytics/plugins/VisitorInterest/templates/index.twig create mode 100644 www/analytics/plugins/VisitsSummary/API.php create mode 100644 www/analytics/plugins/VisitsSummary/Controller.php create mode 100644 www/analytics/plugins/VisitsSummary/VisitsSummary.php create mode 100644 www/analytics/plugins/VisitsSummary/stylesheets/datatable.less create mode 100644 www/analytics/plugins/VisitsSummary/templates/_sparklines.twig create mode 100644 www/analytics/plugins/VisitsSummary/templates/getSparklines.twig create mode 100644 www/analytics/plugins/VisitsSummary/templates/index.twig create mode 100644 www/analytics/plugins/Widgetize/Controller.php create mode 100644 www/analytics/plugins/Widgetize/Widgetize.php create mode 100644 www/analytics/plugins/Widgetize/javascripts/widgetize.js create mode 100644 www/analytics/plugins/Widgetize/stylesheets/widgetize.less create mode 100644 www/analytics/plugins/Widgetize/templates/iframe.twig create mode 100644 www/analytics/plugins/Widgetize/templates/iframe_empty.twig create mode 100644 www/analytics/plugins/Widgetize/templates/index.twig create mode 100644 www/analytics/plugins/Widgetize/templates/testJsInclude1.twig create mode 100644 www/analytics/plugins/Widgetize/templates/testJsInclude2.twig create mode 100644 www/analytics/plugins/Zeitgeist/images/affix-arrow.png create mode 100644 www/analytics/plugins/Zeitgeist/images/annotations.png create mode 100644 www/analytics/plugins/Zeitgeist/images/annotations_starred.png create mode 100644 www/analytics/plugins/Zeitgeist/images/arr_r.png create mode 100644 www/analytics/plugins/Zeitgeist/images/background-submit.png create mode 100644 www/analytics/plugins/Zeitgeist/images/chart_bar.png create mode 100755 www/analytics/plugins/Zeitgeist/images/chart_line_edit.png create mode 100644 www/analytics/plugins/Zeitgeist/images/chart_pie.png create mode 100644 www/analytics/plugins/Zeitgeist/images/close.png create mode 100644 www/analytics/plugins/Zeitgeist/images/collapsed_arrows.gif create mode 100755 www/analytics/plugins/Zeitgeist/images/configure-highlight.png create mode 100755 www/analytics/plugins/Zeitgeist/images/configure.png create mode 100644 www/analytics/plugins/Zeitgeist/images/dashboard_h_bg.png create mode 100644 www/analytics/plugins/Zeitgeist/images/dashboard_h_bg_hover.png create mode 100644 www/analytics/plugins/Zeitgeist/images/data_table_footer_active_item.png create mode 100644 www/analytics/plugins/Zeitgeist/images/datepicker_arr_l.png create mode 100644 www/analytics/plugins/Zeitgeist/images/datepicker_arr_r.png create mode 100644 www/analytics/plugins/Zeitgeist/images/delete.png create mode 100644 www/analytics/plugins/Zeitgeist/images/download.png create mode 100644 www/analytics/plugins/Zeitgeist/images/ecommerceAbandonedCart.gif create mode 100644 www/analytics/plugins/Zeitgeist/images/ecommerceOrder.gif create mode 100644 www/analytics/plugins/Zeitgeist/images/email.png create mode 100644 www/analytics/plugins/Zeitgeist/images/error.png create mode 100644 www/analytics/plugins/Zeitgeist/images/error_medium.png create mode 100644 www/analytics/plugins/Zeitgeist/images/event.png create mode 100644 www/analytics/plugins/Zeitgeist/images/expanded_arrows.gif create mode 100644 www/analytics/plugins/Zeitgeist/images/export.png create mode 100644 www/analytics/plugins/Zeitgeist/images/feed.png create mode 100755 www/analytics/plugins/Zeitgeist/images/fullscreen.png create mode 100644 www/analytics/plugins/Zeitgeist/images/goal.png create mode 100644 www/analytics/plugins/Zeitgeist/images/help.png create mode 100644 www/analytics/plugins/Zeitgeist/images/html_icon.png create mode 100644 www/analytics/plugins/Zeitgeist/images/ico_alert.png create mode 100644 www/analytics/plugins/Zeitgeist/images/ico_delete.png create mode 100644 www/analytics/plugins/Zeitgeist/images/ico_edit.png create mode 100644 www/analytics/plugins/Zeitgeist/images/ico_info.png create mode 100644 www/analytics/plugins/Zeitgeist/images/icon-calendar.gif create mode 100644 www/analytics/plugins/Zeitgeist/images/image.png create mode 100644 www/analytics/plugins/Zeitgeist/images/inp_bg.png create mode 100644 www/analytics/plugins/Zeitgeist/images/li_dbl_gray.gif create mode 100644 www/analytics/plugins/Zeitgeist/images/link.gif create mode 100644 www/analytics/plugins/Zeitgeist/images/loading-blue.gif create mode 100644 www/analytics/plugins/Zeitgeist/images/login-sprite.png create mode 100644 www/analytics/plugins/Zeitgeist/images/logo-header.png create mode 100644 www/analytics/plugins/Zeitgeist/images/logo-marketplace.png create mode 100644 www/analytics/plugins/Zeitgeist/images/logo.png create mode 100644 www/analytics/plugins/Zeitgeist/images/logo.svg create mode 100644 www/analytics/plugins/Zeitgeist/images/maximise.png create mode 100644 www/analytics/plugins/Zeitgeist/images/minimise.png create mode 100644 www/analytics/plugins/Zeitgeist/images/minus.png create mode 100755 www/analytics/plugins/Zeitgeist/images/newtab.png create mode 100644 www/analytics/plugins/Zeitgeist/images/ok.png create mode 100755 www/analytics/plugins/Zeitgeist/images/paypal_subscribe.gif create mode 100644 www/analytics/plugins/Zeitgeist/images/plus.png create mode 100755 www/analytics/plugins/Zeitgeist/images/plus_blue.png create mode 100644 www/analytics/plugins/Zeitgeist/images/refresh.png create mode 100755 www/analytics/plugins/Zeitgeist/images/reload.png create mode 100644 www/analytics/plugins/Zeitgeist/images/row_evolution.png create mode 100755 www/analytics/plugins/Zeitgeist/images/row_evolution_hover.png create mode 100644 www/analytics/plugins/Zeitgeist/images/search_bg.png create mode 100644 www/analytics/plugins/Zeitgeist/images/search_ico.png create mode 100644 www/analytics/plugins/Zeitgeist/images/sites_selection.png create mode 100755 www/analytics/plugins/Zeitgeist/images/smileyprog_0.png create mode 100755 www/analytics/plugins/Zeitgeist/images/smileyprog_1.png create mode 100755 www/analytics/plugins/Zeitgeist/images/smileyprog_2.png create mode 100755 www/analytics/plugins/Zeitgeist/images/smileyprog_3.png create mode 100755 www/analytics/plugins/Zeitgeist/images/smileyprog_4.png create mode 100644 www/analytics/plugins/Zeitgeist/images/sort_subtable_asc.png create mode 100755 www/analytics/plugins/Zeitgeist/images/sort_subtable_asc_light.png create mode 100644 www/analytics/plugins/Zeitgeist/images/sort_subtable_desc.png create mode 100644 www/analytics/plugins/Zeitgeist/images/sort_subtable_desc_light.png create mode 100644 www/analytics/plugins/Zeitgeist/images/sortasc.png create mode 100644 www/analytics/plugins/Zeitgeist/images/sortdesc.png create mode 100755 www/analytics/plugins/Zeitgeist/images/star.png create mode 100755 www/analytics/plugins/Zeitgeist/images/star_empty.png create mode 100644 www/analytics/plugins/Zeitgeist/images/success_medium.png create mode 100644 www/analytics/plugins/Zeitgeist/images/table.png create mode 100644 www/analytics/plugins/Zeitgeist/images/table_more.png create mode 100644 www/analytics/plugins/Zeitgeist/images/tagcloud.png create mode 100755 www/analytics/plugins/Zeitgeist/images/video_play.png create mode 100644 www/analytics/plugins/Zeitgeist/images/warning.png create mode 100644 www/analytics/plugins/Zeitgeist/images/warning_medium.png create mode 100644 www/analytics/plugins/Zeitgeist/images/warning_small.png create mode 100644 www/analytics/plugins/Zeitgeist/images/zoom-out.png create mode 100644 www/analytics/plugins/Zeitgeist/javascripts/ajaxHelper.js create mode 100644 www/analytics/plugins/Zeitgeist/javascripts/piwikHelper.js create mode 100644 www/analytics/plugins/Zeitgeist/plugin.json create mode 100644 www/analytics/plugins/Zeitgeist/stylesheets/base.less create mode 100644 www/analytics/plugins/Zeitgeist/stylesheets/general/_default.less create mode 100644 www/analytics/plugins/Zeitgeist/stylesheets/general/_form.less create mode 100644 www/analytics/plugins/Zeitgeist/stylesheets/general/_jqueryUI.less create mode 100644 www/analytics/plugins/Zeitgeist/stylesheets/general/_misc.less create mode 100644 www/analytics/plugins/Zeitgeist/stylesheets/general/_utils.less create mode 100644 www/analytics/plugins/Zeitgeist/stylesheets/ieonly.css create mode 100644 www/analytics/plugins/Zeitgeist/stylesheets/rtl.css create mode 100644 www/analytics/plugins/Zeitgeist/stylesheets/simple_structure.css create mode 100644 www/analytics/plugins/Zeitgeist/stylesheets/ui/_dataTable.less create mode 100644 www/analytics/plugins/Zeitgeist/stylesheets/ui/_header.less create mode 100644 www/analytics/plugins/Zeitgeist/stylesheets/ui/_headerMessage.less create mode 100644 www/analytics/plugins/Zeitgeist/stylesheets/ui/_languageSelect.less create mode 100644 www/analytics/plugins/Zeitgeist/stylesheets/ui/_loading.less create mode 100644 www/analytics/plugins/Zeitgeist/stylesheets/ui/_periodSelect.less create mode 100644 www/analytics/plugins/Zeitgeist/stylesheets/ui/_siteSelect.less create mode 100644 www/analytics/plugins/Zeitgeist/templates/_iframeBuster.twig create mode 100644 www/analytics/plugins/Zeitgeist/templates/_jsCssIncludes.twig create mode 100644 www/analytics/plugins/Zeitgeist/templates/_jsGlobalVariables.twig create mode 100644 www/analytics/plugins/Zeitgeist/templates/_piwikTag.twig create mode 100644 www/analytics/plugins/Zeitgeist/templates/_sparklineFooter.twig create mode 100644 www/analytics/plugins/Zeitgeist/templates/admin.twig create mode 100644 www/analytics/plugins/Zeitgeist/templates/ajaxMacros.twig create mode 100644 www/analytics/plugins/Zeitgeist/templates/dashboard.twig create mode 100644 www/analytics/plugins/Zeitgeist/templates/empty.twig create mode 100644 www/analytics/plugins/Zeitgeist/templates/genericForm.twig create mode 100644 www/analytics/plugins/Zeitgeist/templates/javascriptCode.tpl create mode 100644 www/analytics/plugins/Zeitgeist/templates/macros.twig create mode 100644 www/analytics/plugins/Zeitgeist/templates/simpleLayoutFooter.tpl create mode 100644 www/analytics/plugins/Zeitgeist/templates/simpleLayoutHeader.tpl create mode 100644 www/analytics/robots.txt create mode 100644 www/analytics/tests/README.md create mode 100644 www/analytics/tmp/.htaccess create mode 100644 www/analytics/vendor/.htaccess create mode 100644 www/analytics/vendor/autoload.php create mode 100644 www/analytics/vendor/composer/ClassLoader.php create mode 100644 www/analytics/vendor/composer/autoload_classmap.php create mode 100644 www/analytics/vendor/composer/autoload_files.php create mode 100644 www/analytics/vendor/composer/autoload_namespaces.php create mode 100644 www/analytics/vendor/composer/autoload_psr4.php create mode 100644 www/analytics/vendor/composer/autoload_real.php create mode 100644 www/analytics/vendor/composer/installed.json create mode 100644 www/analytics/vendor/leafo/lessphp/.gitignore create mode 100644 www/analytics/vendor/leafo/lessphp/.travis.yml create mode 100644 www/analytics/vendor/leafo/lessphp/LICENSE create mode 100644 www/analytics/vendor/leafo/lessphp/Makefile create mode 100644 www/analytics/vendor/leafo/lessphp/README.md create mode 100644 www/analytics/vendor/leafo/lessphp/composer.json create mode 100644 www/analytics/vendor/leafo/lessphp/docs/docs.md create mode 100644 www/analytics/vendor/leafo/lessphp/lessc.inc.php create mode 100755 www/analytics/vendor/leafo/lessphp/lessify create mode 100644 www/analytics/vendor/leafo/lessphp/lessify.inc.php create mode 100755 www/analytics/vendor/leafo/lessphp/package.sh create mode 100755 www/analytics/vendor/leafo/lessphp/plessc create mode 100644 www/analytics/vendor/mustangostang/spyc/COPYING create mode 100644 www/analytics/vendor/mustangostang/spyc/README create mode 100644 www/analytics/vendor/mustangostang/spyc/Spyc.php create mode 100644 www/analytics/vendor/mustangostang/spyc/composer.json create mode 100644 www/analytics/vendor/mustangostang/spyc/examples/yaml-dump.php create mode 100644 www/analytics/vendor/mustangostang/spyc/examples/yaml-load.php create mode 100644 www/analytics/vendor/mustangostang/spyc/php4/5to4.php create mode 100644 www/analytics/vendor/mustangostang/spyc/php4/spyc.php4 create mode 100644 www/analytics/vendor/mustangostang/spyc/php4/test.php4 create mode 100644 www/analytics/vendor/mustangostang/spyc/spyc.yaml create mode 100644 www/analytics/vendor/piwik/device-detector/.gitignore create mode 100644 www/analytics/vendor/piwik/device-detector/.travis.yml create mode 100644 www/analytics/vendor/piwik/device-detector/DeviceDetector.php create mode 100644 www/analytics/vendor/piwik/device-detector/README.md create mode 100644 www/analytics/vendor/piwik/device-detector/composer.json create mode 100644 www/analytics/vendor/piwik/device-detector/regexes/browsers.yml create mode 100644 www/analytics/vendor/piwik/device-detector/regexes/mobiles.yml create mode 100644 www/analytics/vendor/piwik/device-detector/regexes/oss.yml create mode 100644 www/analytics/vendor/piwik/device-detector/regexes/televisions.yml create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/.gitignore create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Application.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/CHANGELOG.md create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Command/Command.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Command/HelpCommand.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Command/ListCommand.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/ConsoleEvents.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Descriptor/ApplicationDescription.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Descriptor/Descriptor.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Descriptor/DescriptorInterface.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Descriptor/JsonDescriptor.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Descriptor/MarkdownDescriptor.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Descriptor/TextDescriptor.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Descriptor/XmlDescriptor.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Event/ConsoleCommandEvent.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Event/ConsoleEvent.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Event/ConsoleExceptionEvent.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Event/ConsoleTerminateEvent.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Formatter/OutputFormatter.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Formatter/OutputFormatterInterface.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Formatter/OutputFormatterStyle.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Formatter/OutputFormatterStyleInterface.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Formatter/OutputFormatterStyleStack.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Helper/DescriptorHelper.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Helper/DialogHelper.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Helper/FormatterHelper.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Helper/Helper.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Helper/HelperInterface.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Helper/HelperSet.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Helper/InputAwareHelper.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Helper/ProgressHelper.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Helper/TableHelper.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Input/ArgvInput.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Input/ArrayInput.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Input/Input.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Input/InputArgument.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Input/InputAwareInterface.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Input/InputDefinition.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Input/InputInterface.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Input/InputOption.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Input/StringInput.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/LICENSE create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Output/BufferedOutput.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Output/ConsoleOutput.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Output/ConsoleOutputInterface.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Output/NullOutput.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Output/Output.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Output/OutputInterface.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Output/StreamOutput.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/README.md create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Shell.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Tester/ApplicationTester.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/Tester/CommandTester.php create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/composer.json create mode 100644 www/analytics/vendor/symfony/console/Symfony/Component/Console/phpunit.xml.dist create mode 100644 www/analytics/vendor/tedivm/jshrink/.gitignore create mode 100644 www/analytics/vendor/tedivm/jshrink/.travis.yml create mode 100644 www/analytics/vendor/tedivm/jshrink/LICENSE create mode 100644 www/analytics/vendor/tedivm/jshrink/README.md create mode 100644 www/analytics/vendor/tedivm/jshrink/composer.json create mode 100644 www/analytics/vendor/tedivm/jshrink/src/JShrink/Minifier.php create mode 100644 www/analytics/vendor/twig/twig/.editorconfig create mode 100644 www/analytics/vendor/twig/twig/.gitignore create mode 100644 www/analytics/vendor/twig/twig/.travis.yml create mode 100644 www/analytics/vendor/twig/twig/CHANGELOG create mode 100644 www/analytics/vendor/twig/twig/LICENSE create mode 100644 www/analytics/vendor/twig/twig/README.rst create mode 100644 www/analytics/vendor/twig/twig/composer.json create mode 100644 www/analytics/vendor/twig/twig/ext/twig/.gitignore create mode 100644 www/analytics/vendor/twig/twig/ext/twig/LICENSE create mode 100644 www/analytics/vendor/twig/twig/ext/twig/config.m4 create mode 100644 www/analytics/vendor/twig/twig/ext/twig/config.w32 create mode 100644 www/analytics/vendor/twig/twig/ext/twig/php_twig.h create mode 100644 www/analytics/vendor/twig/twig/ext/twig/twig.c create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Autoloader.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Compiler.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/CompilerInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Environment.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Error.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Error/Loader.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Error/Runtime.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Error/Syntax.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/ExistsLoaderInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/ExpressionParser.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Extension.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Extension/Core.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Extension/Debug.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Extension/Escaper.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Extension/Optimizer.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Extension/Sandbox.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Extension/Staging.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Extension/StringLoader.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/ExtensionInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Filter.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Filter/Function.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Filter/Method.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Filter/Node.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/FilterCallableInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/FilterInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Function.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Function/Function.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Function/Method.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Function/Node.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/FunctionCallableInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/FunctionInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Lexer.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/LexerInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Loader/Array.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Loader/Chain.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Loader/Filesystem.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Loader/String.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/LoaderInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Markup.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/AutoEscape.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Block.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/BlockReference.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Body.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Do.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Embed.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Array.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/AssignName.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Add.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/And.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseAnd.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseOr.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseXor.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Concat.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Div.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/EndsWith.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Equal.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/FloorDiv.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Greater.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/GreaterEqual.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/In.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Less.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/LessEqual.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Matches.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Mod.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Mul.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/NotEqual.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/NotIn.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Or.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Power.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Range.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/StartsWith.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Sub.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/BlockReference.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Call.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Conditional.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Constant.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/ExtensionReference.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Filter.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Filter/Default.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Function.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/GetAttr.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/MethodCall.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Name.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Parent.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/TempName.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Test.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Test/Constant.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Test/Defined.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Test/Divisibleby.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Test/Even.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Test/Null.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Test/Odd.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Test/Sameas.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Unary.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Neg.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Not.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Pos.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Flush.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/For.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/ForLoop.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/If.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Import.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Include.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Macro.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Module.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Print.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Sandbox.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/SandboxedModule.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/SandboxedPrint.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Set.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/SetTemp.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Spaceless.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Node/Text.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/NodeInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/NodeOutputInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/NodeTraverser.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/NodeVisitor/Escaper.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/NodeVisitor/Optimizer.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/NodeVisitor/SafeAnalysis.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/NodeVisitor/Sandbox.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/NodeVisitorInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Parser.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/ParserInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Sandbox/SecurityError.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicy.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicyInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/SimpleFilter.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/SimpleFunction.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/SimpleTest.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Template.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TemplateInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Test.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Test/Function.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Test/IntegrationTestCase.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Test/Method.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Test/Node.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Test/NodeTestCase.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TestCallableInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TestInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/Token.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParser.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParser/AutoEscape.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParser/Block.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParser/Do.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParser/Embed.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParser/Extends.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParser/Filter.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParser/Flush.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParser/For.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParser/From.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParser/If.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParser/Import.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParser/Include.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParser/Macro.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParser/Sandbox.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParser/Set.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParser/Spaceless.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParser/Use.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParserBroker.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParserBrokerInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenParserInterface.php create mode 100644 www/analytics/vendor/twig/twig/lib/Twig/TokenStream.php create mode 100644 www/analytics/vendor/twig/twig/phpunit.xml.dist create mode 100644 www/css/desktop.css create mode 100644 www/css/ol.css create mode 100644 www/error403.html create mode 100644 www/error404.html create mode 100644 www/error500.html create mode 100644 www/favicon.ico create mode 100644 www/grafics/charactergroup.jpg create mode 100644 www/grafics/lvlup.jpg create mode 100644 www/grafics/paper.jpg create mode 100644 www/grafics/questlab-logo.svg create mode 100644 www/grafics/questlab-text.svg create mode 100644 www/grafics/questlab.jpg create mode 100644 www/index.php create mode 100644 www/js/imagelightbox.min.js create mode 100644 www/js/jquery-ui.min.js create mode 100644 www/js/jquery.nicescroll.min.js create mode 100644 www/js/ol.js create mode 100644 www/js/scripts.js create mode 100644 www/markitup/jquery.markitup.js create mode 100644 www/markitup/sets/default/images/bold.png create mode 100644 www/markitup/sets/default/images/clean.png create mode 100644 www/markitup/sets/default/images/image.png create mode 100644 www/markitup/sets/default/images/italic.png create mode 100644 www/markitup/sets/default/images/link.png create mode 100644 www/markitup/sets/default/images/list-bullet.png create mode 100644 www/markitup/sets/default/images/list-numeric.png create mode 100644 www/markitup/sets/default/images/picture.png create mode 100644 www/markitup/sets/default/images/preview.png create mode 100644 www/markitup/sets/default/images/stroke.png create mode 100644 www/markitup/sets/default/set.js create mode 100644 www/markitup/sets/default/style.css create mode 100644 www/markitup/sets/textile/images/bold.png create mode 100644 www/markitup/sets/textile/images/code.png create mode 100644 www/markitup/sets/textile/images/h1.png create mode 100644 www/markitup/sets/textile/images/h2.png create mode 100644 www/markitup/sets/textile/images/h3.png create mode 100644 www/markitup/sets/textile/images/h4.png create mode 100644 www/markitup/sets/textile/images/h5.png create mode 100644 www/markitup/sets/textile/images/h6.png create mode 100644 www/markitup/sets/textile/images/italic.png create mode 100644 www/markitup/sets/textile/images/link.png create mode 100644 www/markitup/sets/textile/images/list-bullet.png create mode 100644 www/markitup/sets/textile/images/list-numeric.png create mode 100644 www/markitup/sets/textile/images/paragraph.png create mode 100644 www/markitup/sets/textile/images/picture.png create mode 100644 www/markitup/sets/textile/images/preview.png create mode 100644 www/markitup/sets/textile/images/quotes.png create mode 100644 www/markitup/sets/textile/images/stroke.png create mode 100644 www/markitup/sets/textile/set.js create mode 100644 www/markitup/sets/textile/style.css create mode 100644 www/markitup/skins/markitup/images/bg-container.png create mode 100644 www/markitup/skins/markitup/images/bg-editor-bbcode.png create mode 100644 www/markitup/skins/markitup/images/bg-editor-dotclear.png create mode 100644 www/markitup/skins/markitup/images/bg-editor-html.png create mode 100644 www/markitup/skins/markitup/images/bg-editor-json.png create mode 100644 www/markitup/skins/markitup/images/bg-editor-markdown.png create mode 100644 www/markitup/skins/markitup/images/bg-editor-textile.png create mode 100644 www/markitup/skins/markitup/images/bg-editor-wiki.png create mode 100644 www/markitup/skins/markitup/images/bg-editor-xml.png create mode 100644 www/markitup/skins/markitup/images/bg-editor.png create mode 100644 www/markitup/skins/markitup/images/handle.png create mode 100644 www/markitup/skins/markitup/images/menu.png create mode 100644 www/markitup/skins/markitup/images/submenu.png create mode 100644 www/markitup/skins/markitup/style.css create mode 100644 www/markitup/skins/simple/images/handle.png create mode 100644 www/markitup/skins/simple/images/menu.png create mode 100644 www/markitup/skins/simple/images/submenu.png create mode 100644 www/markitup/skins/simple/style.css create mode 100644 www/markitup/templates/preview.css create mode 100644 www/markitup/templates/preview.html create mode 100644 www/sounds/notification.mp3 diff --git a/.hgignore b/.hgignore new file mode 100644 index 00000000..94d6c873 --- /dev/null +++ b/.hgignore @@ -0,0 +1,10 @@ +syntax: regexp +^logs/* +^media/* +^tmp/* +^uploads/* +^seminarymedia/* +^seminaryuploads/* +^www/analytics/config/config.ini.php* +^www/analytics/temp/* +^app/lib/phpqrcode/cache/* diff --git a/.htaccess b/.htaccess new file mode 100644 index 00000000..258afda9 --- /dev/null +++ b/.htaccess @@ -0,0 +1,50 @@ +Options -Indexes -MultiViews + +ErrorDocument 403 /www/error403.html +ErrorDocument 404 /www/error404.html +ErrorDocument 500 /www/error500.html + + + + + Require all granted + + + Require all denied + + + + Require all denied + + + + Require all denied + + + + + Allow From All + + + Order Deny,Allow + Deny From All + + + + Order Deny,Allow + Deny From All + + + + Order Deny,Allow + Deny From All + + + + + + RewriteEngine On + + RewriteBase / + RewriteRule ^(.*)$ www/$1 [L] + diff --git a/agents/BottomlevelAgent.inc b/agents/BottomlevelAgent.inc new file mode 100644 index 00000000..648c1fb7 --- /dev/null +++ b/agents/BottomlevelAgent.inc @@ -0,0 +1,25 @@ + + * @copyright 2013 coderkun (http://www.coderkun.de) + * @license http://www.gnu.org/licenses/gpl.html + * @link http://www.coderkun.de/projects/nre + */ + + namespace nre\agents; + + + /** + * The BottomlevelAgent is the standard Agent and can have indefinite + * SubAgents. + * + * @author coderkun + */ + abstract class BottomlevelAgent extends \nre\core\Agent + { + } + +?> diff --git a/agents/IntermediateAgent.inc b/agents/IntermediateAgent.inc new file mode 100644 index 00000000..4828cfbb --- /dev/null +++ b/agents/IntermediateAgent.inc @@ -0,0 +1,49 @@ + + * @copyright 2013 coderkun (http://www.coderkun.de) + * @license http://www.gnu.org/licenses/gpl.html + * @link http://www.coderkun.de/projects/nre + */ + + namespace nre\agents; + + + /** + * The IntermediateAgent assumes the task of a module. There is only one + * IntermediateAgent per request. + * + * @author coderkun + */ + abstract class IntermediateAgent extends \nre\core\Agent + { + + + + + /** + * Get the layout if it was explicitly defined. + * + * @param string $agentName Agent name + * @return string Layout of the IntermediateAgent + */ + public static function getLayout($agentName) + { + // Determine classname + $className = Autoloader::concatClassNames($agentName, 'Agent'); + + // Check property + if(isset($className::$layout)) { + return $className::$layout; + } + + + return null; + } + + } + +?> diff --git a/agents/ToplevelAgent.inc b/agents/ToplevelAgent.inc new file mode 100644 index 00000000..0c4e64ea --- /dev/null +++ b/agents/ToplevelAgent.inc @@ -0,0 +1,395 @@ + + * @copyright 2013 coderkun (http://www.coderkun.de) + * @license http://www.gnu.org/licenses/gpl.html + * @link http://www.coderkun.de/projects/nre + */ + + namespace nre\agents; + + + /** + * The ToplevelAgent assumes the task of a FrontController. There is + * only one per request. + * + * @author coderkun + */ + class ToplevelAgent extends \nre\core\Agent + { + /** + * Stage: Load + * + * @var string + */ + const STAGE_LOAD = 'load'; + /** + * Stage: Run + * + * @var string + */ + const STAGE_RUN = 'run'; + + /** + * Current request + * + * @var \nre\core\Request + */ + private $request; + /** + * Current response + * + * @var \nre\core\Response + */ + private $response; + /** + * Layout instace + * + * @var \nre\core\Layout + */ + private $layout = null; + /** + * IntermediateAgent instance + * + * @var IntermediateAgent + */ + private $intermediateAgent = null; + + + + + /** + * Construct a ToplevelAgent. + * + * @throws \nre\exceptions\ServiceUnavailableException + * @throws \nre\exceptions\DatamodelException + * @throws \nre\exceptions\DriverNotValidException + * @throws \nre\exceptions\DriverNotFoundException + * @throws \nre\exceptions\ViewNotFoundException + * @throws \nre\exceptions\ModelNotValidException + * @throws \nre\exceptions\ModelNotFoundException + * @throws \nre\exceptions\ControllerNotValidException + * @throws \nre\exceptions\ControllerNotFoundException + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + * @param \nre\core\Logger $log Log-system + */ + protected function __construct(\nre\core\Request $request, \nre\core\Response $response, \nre\core\Logger $log=null) + { + // Store values + $this->request = $request; + $this->response = $response; + + + // Create response + $response = clone $response; + $response->clearParams(1); + $response->addParams( + null, + \nre\configs\CoreConfig::$defaults['action'] + ); + + // Call parent constructor + parent::__construct($request, $response, $log, true); + + + // Load IntermediateAgent + $this->loadIntermediateAgent(); + } + + + + + /** + * Run the Controller of this Agent and its SubAgents. + * + * @throws \nre\exceptions\ServiceUnavailableException + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + * @return \Exception Last occurred exception of SubAgents + */ + public function run(\nre\core\Request $request, \nre\core\Response $response) + { + try { + return $this->_run($request, $response); + } + catch(\nre\exceptions\AccessDeniedException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_FORBIDDEN, self::STAGE_RUN); + } + catch(\nre\exceptions\ParamsNotValidException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_NOT_FOUND, self::STAGE_RUN); + } + catch(\nre\exceptions\IdNotFoundException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_NOT_FOUND, self::STAGE_RUN); + } + catch(\nre\exceptions\DatamodelException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_SERVICE_UNAVAILABLE, self::STAGE_RUN); + } + catch(\nre\exceptions\ActionNotFoundException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_NOT_FOUND, self::STAGE_RUN); + } + } + + + /** + * Generate output of the Controller of this Agent and its + * SubAgents. + * + * @param array $data View data + * @return string Generated output + */ + public function render($data=array()) + { + // Render IntermediateAgent + $data = array(); + $data['intermediate'] = $this->intermediateAgent->render(); + + + // Render ToplevelAgent + return parent::render($data); + } + + + /** + * Return the IntermediateAgent. + * + * @return \nre\agents\IntermediateAgent IntermediateAgent + */ + public function getIntermediateAgent() + { + return $this->intermediateAgent; + } + + + + + /** + * Load a SubAgent and add it. + * + * @throws \nre\exceptions\ServiceUnavailableException + * @throws \nre\exceptions\FatalDatamodelException + * @throws \nre\exceptions\AgentNotFoundException + * @throws \nre\exceptions\AgentNotValidException + * @param string $agentName Name of the Agent to load + * @param mixed … Additional parameters for the agent + */ + protected function addSubAgent($agentName) + { + try { + call_user_func_array( + array( + $this, + '_addSubAgent' + ), + func_get_args() + ); + } + catch(\nre\exceptions\DatamodelException $e) { + throw new \nre\exceptions\FatalDatamodelException($e->getDatamodelMessage(), $e->getDatamodelErrorNumber()); + } + } + + + + + /** + * Load IntermediateAgent defined by the current request. + * + * @throws \nre\exceptions\ServiceUnavailableException + */ + private function loadIntermediateAgent() + { + try { + $this->_loadIntermediateAgent(); + } + catch(\nre\exceptions\ViewNotFoundException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_NOT_FOUND); + } + catch(\nre\exceptions\DatamodelException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_SERVICE_UNAVAILABLE); + } + catch(\nre\exceptions\DriverNotValidException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_SERVICE_UNAVAILABLE); + } + catch(\nre\exceptions\DriverNotFoundException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_SERVICE_UNAVAILABLE); + } + catch(\nre\exceptions\ModelNotValidException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_SERVICE_UNAVAILABLE); + } + catch(\nre\exceptions\ModelNotFoundException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_SERVICE_UNAVAILABLE); + } + catch(\nre\exceptions\ControllerNotValidException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_SERVICE_UNAVAILABLE); + } + catch(\nre\exceptions\ControllerNotFoundException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_NOT_FOUND); + } + catch(\nre\exceptions\AgentNotValidException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_SERVICE_UNAVAILABLE); + } + catch(\nre\exceptions\AgentNotFoundException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_NOT_FOUND); + } + } + + + /** + * Load IntermediateAgent defined by the current request. + * + * @throws \nre\exceptions\ServiceUnavailableException + */ + private function _loadIntermediateAgent() + { + // Determine IntermediateAgent + $agentName = $this->response->getParam(1); + if(is_null($agentName)) { + $agentName = $this->request->getParam(1, 'intermediate'); + $this->response->addParam($agentName); + } + + // Load IntermediateAgent + IntermediateAgent::load($agentName); + + + // Determine Action + $action = $this->response->getParam(2); + if(is_null($action)) { + $action = $this->request->getParam(2, 'action'); + $this->response->addParam($action); + } + + // Construct IntermediateAgent + $this->intermediateAgent = \nre\agents\IntermediateAgent::factory( + $agentName, + $this->request, + $this->response, + $this->log + ); + } + + + /** + * Run the Controller of this Agent and its SubAgents. + * + * @throws \nre\exceptions\AccessDeniedException + * @throws \nre\exceptions\IdNotFoundException + * @throws \nre\exceptions\ServiceUnavailableException + * @throws \nre\exceptions\DatamodelException + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + * @return \Exception Last occurred exception of SubAgents + */ + private function _run(\nre\core\Request $request, \nre\core\Response $response) + { + // Run IntermediateAgent + $this->runIntermediateAgent(); + + + // TODO Request instead of response? + $response = clone $response; + $response->clearParams(2); + $response->addParam(\nre\configs\CoreConfig::$defaults['action']); + + + // Run ToplevelAgent + return parent::run($request, $response); + } + + + /** + * Run IntermediateAgent. + * + * @throws \nre\exceptions\AccessDeniedException + * @throws \nre\exceptions\ParamsNotValidException + * @throws \nre\exceptions\IdNotFoundException + * @throws \nre\exceptions\ServiceUnavailableException + * @throws \nre\exceptions\DatamodelException + */ + private function runIntermediateAgent() + { + $this->intermediateAgent->run( + $this->request, + $this->response + ); + } + + + /** + * Handle an error that occurred during + * loading/cnostructing/running of the IntermediateAgent. + * + * @throws \nre\exceptions\ServiceUnavailableException + * @param \Exception $exception Occurred exception + * @param int $httpStatusCode HTTP-statuscode + * @param string $stage Stage of execution + */ + private function error($exception, $httpStatusCode, $stage=self::STAGE_LOAD) + { + // Log error + $this->log($exception, \nre\core\Logger::LOGMODE_AUTO); + + + try { + // Define ErrorAgent + $this->response->clearParams(1); + $this->response->addParams( + \nre\configs\AppConfig::$defaults['intermediate-error'], + \nre\configs\CoreConfig::$defaults['action'], + $httpStatusCode + ); + + // Load ErrorAgent + $this->_loadIntermediateAgent(); + + // Run ErrorAgent + if($stage == self::STAGE_RUN) { + $this->_run($this->request, $this->response); + } + } + catch(\nre\exceptions\ActionNotFoundException $e) { + throw new \nre\exceptions\ServiceUnavailableException($e); + } + catch(\nre\exceptions\DatamodelException $e) { + throw new \nre\exceptions\ServiceUnavailableException($e); + } + catch(\nre\exceptions\DriverNotValidException $e) { + throw new \nre\exceptions\ServiceUnavailableException($e); + } + catch(\nre\exceptions\DriverNotFoundException $e) { + throw new \nre\exceptions\ServiceUnavailableException($e); + } + catch(\nre\exceptions\ModelNotValidException $e) { + throw new \nre\exceptions\ServiceUnavailableException($e); + } + catch(\nre\exceptions\ModelNotFoundException $e) { + throw new \nre\exceptions\ServiceUnavailableException($e); + } + catch(\nre\exceptions\ViewNotFoundException $e) { + throw new \nre\exceptions\ServiceUnavailableException($e); + } + catch(\nre\exceptions\ControllerNotValidException $e) { + throw new \nre\exceptions\ServiceUnavailableException($e); + } + catch(\nre\exceptions\ControllerNotFoundException $e) { + throw new \nre\exceptions\ServiceUnavailableException($e); + } + catch(\nre\exceptions\AgentNotValidException $e) { + throw new \nre\exceptions\ServiceUnavailableException($e); + } + catch(\nre\exceptions\AgentNotFoundException $e) { + throw new \nre\exceptions\ServiceUnavailableException($e); + } + catch(Exception $e) { + throw new \nre\exceptions\ServiceUnavailableException($e); + } + } + + + } + +?> diff --git a/agents/bottomlevel/MailreceiverAgent.inc b/agents/bottomlevel/MailreceiverAgent.inc new file mode 100644 index 00000000..2321e34a --- /dev/null +++ b/agents/bottomlevel/MailreceiverAgent.inc @@ -0,0 +1,38 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\bottomlevel; + + + /** + * Agent to generate a mail receiver salutation. + * + * @author Oliver Hanraths + */ + class MailreceiverAgent extends \nre\agents\BottomlevelAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + } + + } + +?> diff --git a/agents/bottomlevel/MenuAgent.inc b/agents/bottomlevel/MenuAgent.inc new file mode 100644 index 00000000..724cce6e --- /dev/null +++ b/agents/bottomlevel/MenuAgent.inc @@ -0,0 +1,40 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\bottomlevel; + + + /** + * Agent to display a menu. + * + * @author Oliver Hanraths + */ + class MenuAgent extends \nre\agents\BottomlevelAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Seminary menu + $this->addSubAgent('Seminarymenu'); + } + + } + +?> diff --git a/agents/bottomlevel/MoodpicAgent.inc b/agents/bottomlevel/MoodpicAgent.inc new file mode 100644 index 00000000..0257d9db --- /dev/null +++ b/agents/bottomlevel/MoodpicAgent.inc @@ -0,0 +1,38 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\bottomlevel; + + + /** + * Agent to display a Moodpic. + * + * @author Oliver Hanraths + */ + class MoodpicAgent extends \nre\agents\BottomlevelAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + } + + } + +?> diff --git a/agents/bottomlevel/QuestgroupshierarchypathAgent.inc b/agents/bottomlevel/QuestgroupshierarchypathAgent.inc new file mode 100644 index 00000000..43dba806 --- /dev/null +++ b/agents/bottomlevel/QuestgroupshierarchypathAgent.inc @@ -0,0 +1,38 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\bottomlevel; + + + /** + * Agent to display the Questgroups hierarchy path. + * + * @author Oliver Hanraths + */ + class QuestgroupshierarchypathAgent extends \nre\agents\BottomlevelAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + } + + } + +?> diff --git a/agents/bottomlevel/SeminarybarAgent.inc b/agents/bottomlevel/SeminarybarAgent.inc new file mode 100644 index 00000000..62a30ccd --- /dev/null +++ b/agents/bottomlevel/SeminarybarAgent.inc @@ -0,0 +1,38 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\bottomlevel; + + + /** + * Agent to display a sidebar with Seminary related information. + * + * @author Oliver Hanraths + */ + class SeminarybarAgent extends \nre\agents\BottomlevelAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + } + + } + +?> diff --git a/agents/bottomlevel/SeminarymenuAgent.inc b/agents/bottomlevel/SeminarymenuAgent.inc new file mode 100644 index 00000000..9367cf7d --- /dev/null +++ b/agents/bottomlevel/SeminarymenuAgent.inc @@ -0,0 +1,38 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\bottomlevel; + + + /** + * Agent to display a menu with Seminary related links. + * + * @author Oliver Hanraths + */ + class SeminarymenuAgent extends \nre\agents\BottomlevelAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + } + + } + +?> diff --git a/agents/bottomlevel/UserrolesAgent.inc b/agents/bottomlevel/UserrolesAgent.inc new file mode 100644 index 00000000..791846cd --- /dev/null +++ b/agents/bottomlevel/UserrolesAgent.inc @@ -0,0 +1,38 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\bottomlevel; + + + /** + * Agent to display and manage userroles. + * + * @author Oliver Hanraths + */ + class UserrolesAgent extends \nre\agents\BottomlevelAgent + { + + + + + /** + * Action: user. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function user(\nre\core\Request $request, \nre\core\Response $response) + { + } + + } + +?> diff --git a/agents/intermediate/AchievementsAgent.inc b/agents/intermediate/AchievementsAgent.inc new file mode 100644 index 00000000..39f97abb --- /dev/null +++ b/agents/intermediate/AchievementsAgent.inc @@ -0,0 +1,105 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to list Achievements. + * + * @author Oliver Hanraths + */ + class AchievementsAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: create. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function create(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: edit. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function edit(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: manage. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function manage(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: conditions. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function conditions(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3)); + } + + + /** + * Action: delete. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function delete(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + } + +?> diff --git a/agents/intermediate/CharactergroupsAgent.inc b/agents/intermediate/CharactergroupsAgent.inc new file mode 100644 index 00000000..30164865 --- /dev/null +++ b/agents/intermediate/CharactergroupsAgent.inc @@ -0,0 +1,157 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to display Character groups. + * + * @author Oliver Hanraths + */ + class CharactergroupsAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: groupsgroup. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function groupsgroup(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: creategroupsgroups. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function creategroupsgroup(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: editgroupsgroup. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function editgroupsgroup(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: deletegroupsgroup. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function deletegroupsgroup(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: group. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function group(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: creategroup. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function creategroup(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: managegroup. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function managegroup(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: editgroup. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function editgroup(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: deletegroup. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function deletegroup(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + } + +?> diff --git a/agents/intermediate/CharactergroupsachievementsAgent.inc b/agents/intermediate/CharactergroupsachievementsAgent.inc new file mode 100644 index 00000000..d247ff7f --- /dev/null +++ b/agents/intermediate/CharactergroupsachievementsAgent.inc @@ -0,0 +1,92 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to list Charactergroups Achievements. + * + * @author Oliver Hanraths + */ + class CharactergroupsachievementsAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: achievement. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function achievement(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: create. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function create(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: edit. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function edit(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: manage. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function manage(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: delete. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function delete(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + } + +?> diff --git a/agents/intermediate/CharactergroupsquestsAgent.inc b/agents/intermediate/CharactergroupsquestsAgent.inc new file mode 100644 index 00000000..1d4d8c50 --- /dev/null +++ b/agents/intermediate/CharactergroupsquestsAgent.inc @@ -0,0 +1,105 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to display Character groups Quests. + * + * @author Oliver Hanraths + */ + class CharactergroupsquestsAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), 'charactergroups'); + } + + + /** + * Action: quest. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function quest(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), 'charactergroups'); + } + + + /** + * Action: create. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function create(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), 'charactergroups'); + } + + + /** + * Action: manage. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function manage(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), 'charactergroups'); + } + + + /** + * Action: edit. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function edit(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), 'charactergroups'); + } + + + /** + * Action: delete. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function delete(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), 'charactergroups'); + } + + } + +?> diff --git a/agents/intermediate/CharactergroupsqueststationsAgent.inc b/agents/intermediate/CharactergroupsqueststationsAgent.inc new file mode 100644 index 00000000..9de435b3 --- /dev/null +++ b/agents/intermediate/CharactergroupsqueststationsAgent.inc @@ -0,0 +1,103 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to display Character groups Quest stations. + * + * @author Oliver Hanraths + */ + class CharactergroupsqueststationsAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + } + + + /** + * Action: station. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function station(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), 'charactergroups'); + } + + + /** + * Action: create. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function create(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), 'charactergroups'); + } + + + /** + * Action: edit. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function edit(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), 'charactergroups'); + } + + + /** + * Action: edittask. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function edittask(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), 'charactergroups'); + } + + + /** + * Action: delete. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function delete(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), 'charactergroups'); + } + + } + +?> diff --git a/agents/intermediate/CharactersAgent.inc b/agents/intermediate/CharactersAgent.inc new file mode 100644 index 00000000..1ba9bf4e --- /dev/null +++ b/agents/intermediate/CharactersAgent.inc @@ -0,0 +1,105 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to list registered Characters and their data. + * + * @author Oliver Hanraths + */ + class CharactersAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3)); + } + + + /** + * Action: character. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function character(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3)); + } + + + /** + * Action: register. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function register(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3)); + } + + + /** + * Action: manage. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function manage(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3)); + } + + + /** + * Action: edit. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function edit(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3)); + } + + + /** + * Action: delete. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function delete(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3)); + } + + } + +?> diff --git a/agents/intermediate/CharactertitlesAgent.inc b/agents/intermediate/CharactertitlesAgent.inc new file mode 100644 index 00000000..cd68a5d8 --- /dev/null +++ b/agents/intermediate/CharactertitlesAgent.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to handle Character titles of a Seminary. + * + * @author Oliver Hanraths + */ + class CharactertitlesAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: create. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function create(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: edit. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function edit(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: delete. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function delete(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + } + +?> diff --git a/agents/intermediate/CharactertypesAgent.inc b/agents/intermediate/CharactertypesAgent.inc new file mode 100644 index 00000000..61083255 --- /dev/null +++ b/agents/intermediate/CharactertypesAgent.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to handle Charactertyes of a Seminary. + * + * @author Oliver Hanraths + */ + class CharactertypesAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: create. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function create(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: edit. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function edit(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: delete. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function delete(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + } + +?> diff --git a/agents/intermediate/ErrorAgent.inc b/agents/intermediate/ErrorAgent.inc new file mode 100644 index 00000000..94b170a8 --- /dev/null +++ b/agents/intermediate/ErrorAgent.inc @@ -0,0 +1,38 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to show an error page. + * + * @author Oliver Hanraths + */ + class ErrorAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + } + + } + +?> diff --git a/agents/intermediate/IntroductionAgent.inc b/agents/intermediate/IntroductionAgent.inc new file mode 100644 index 00000000..1b5ebd8b --- /dev/null +++ b/agents/intermediate/IntroductionAgent.inc @@ -0,0 +1,38 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to show an introduction page. + * + * @author Oliver Hanraths + */ + class IntroductionAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + } + + } + +?> diff --git a/agents/intermediate/LibraryAgent.inc b/agents/intermediate/LibraryAgent.inc new file mode 100644 index 00000000..ec6d703a --- /dev/null +++ b/agents/intermediate/LibraryAgent.inc @@ -0,0 +1,105 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to list Quest topics. + * + * @author Oliver Hanraths + */ + class LibraryAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: create. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function create(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: topic. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function topic(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: manage. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function manage(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: edit. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function edit(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: delete. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function delete(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + } + +?> diff --git a/agents/intermediate/MailAgent.inc b/agents/intermediate/MailAgent.inc new file mode 100644 index 00000000..f221f3fb --- /dev/null +++ b/agents/intermediate/MailAgent.inc @@ -0,0 +1,38 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to generate a mail-message. + * + * @author Oliver Hanraths + */ + class MailAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + } + + } + +?> diff --git a/agents/intermediate/MapAgent.inc b/agents/intermediate/MapAgent.inc new file mode 100644 index 00000000..d0e9cbdc --- /dev/null +++ b/agents/intermediate/MapAgent.inc @@ -0,0 +1,53 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to display a map. + * + * @author Oliver Hanraths + */ + class MapAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: edit. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function edit(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + } + +?> diff --git a/agents/intermediate/MediaAgent.inc b/agents/intermediate/MediaAgent.inc new file mode 100644 index 00000000..89e773b2 --- /dev/null +++ b/agents/intermediate/MediaAgent.inc @@ -0,0 +1,38 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to process and show media. + * + * @author Oliver Hanraths + */ + class MediaAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + } + + } + +?> diff --git a/agents/intermediate/PagesAgent.inc b/agents/intermediate/PagesAgent.inc new file mode 100644 index 00000000..3af3036f --- /dev/null +++ b/agents/intermediate/PagesAgent.inc @@ -0,0 +1,38 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to manage additional pages. + * + * @author Oliver Hanraths + */ + class PagesAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + } + + } + +?> diff --git a/agents/intermediate/QrAgent.inc b/agents/intermediate/QrAgent.inc new file mode 100644 index 00000000..89314a46 --- /dev/null +++ b/agents/intermediate/QrAgent.inc @@ -0,0 +1,38 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to redirect to a page from a (short) QR-code link. + * + * @author Oliver Hanraths + */ + class QrAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + } + + } + +?> diff --git a/agents/intermediate/QrcodesAgent.inc b/agents/intermediate/QrcodesAgent.inc new file mode 100644 index 00000000..45a15782 --- /dev/null +++ b/agents/intermediate/QrcodesAgent.inc @@ -0,0 +1,38 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to generate and show QR-codes. + * + * @author Oliver Hanraths + */ + class QrcodesAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + } + + } + +?> diff --git a/agents/intermediate/QuestgroupsAgent.inc b/agents/intermediate/QuestgroupsAgent.inc new file mode 100644 index 00000000..e30e2a55 --- /dev/null +++ b/agents/intermediate/QuestgroupsAgent.inc @@ -0,0 +1,136 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to display Questgroups. + * + * @author Oliver Hanraths + */ + class QuestgroupsAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: questgroup. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function questgroup(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'questgroup', $request->getParam(3), $request->getParam(4)); + + // Add Questgroups hierarchy path + $this->addSubAgent('Questgroupshierarchypath', 'index', $request->getParam(3), $request->getParam(4)); + } + + + /** + * Action: create. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function create(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3)); + } + + + /** + * Action: edit. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function edit(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'questgroup', $request->getParam(3), $request->getParam(4)); + + // Add Questgroups hierarchy path + $this->addSubAgent('Questgroupshierarchypath', 'index', $request->getParam(3), $request->getParam(4)); + } + + + /** + * Action: edittexts. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function edittexts(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'questgroup', $request->getParam(3), $request->getParam(4)); + + // Add Questgroups hierarchy path + $this->addSubAgent('Questgroupshierarchypath', 'index', $request->getParam(3), $request->getParam(4)); + } + + + /** + * Action: moveup. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function moveup(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'questgroup', $request->getParam(3), $request->getParam(4)); + + // Add Questgroups hierarchy path + $this->addSubAgent('Questgroupshierarchypath', 'index', $request->getParam(3), $request->getParam(4)); + } + + + /** + * Action: movedown. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function movedown(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'questgroup', $request->getParam(3), $request->getParam(4)); + + // Add Questgroups hierarchy path + $this->addSubAgent('Questgroupshierarchypath', 'index', $request->getParam(3), $request->getParam(4)); + } + + + /** + * Action: delete. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function delete(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'questgroup', $request->getParam(3), $request->getParam(4)); + + // Add Questgroups hierarchy path + $this->addSubAgent('Questgroupshierarchypath', 'index', $request->getParam(3), $request->getParam(4)); + } + + } + +?> diff --git a/agents/intermediate/QuestgroupshierarchyAgent.inc b/agents/intermediate/QuestgroupshierarchyAgent.inc new file mode 100644 index 00000000..7ede785a --- /dev/null +++ b/agents/intermediate/QuestgroupshierarchyAgent.inc @@ -0,0 +1,24 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to manage Questgroupshierarchy. + * + * @author Oliver Hanraths + */ + class QuestgroupshierarchyAgent extends \nre\agents\IntermediateAgent + { + } + +?> diff --git a/agents/intermediate/QuestsAgent.inc b/agents/intermediate/QuestsAgent.inc new file mode 100644 index 00000000..9e1950ed --- /dev/null +++ b/agents/intermediate/QuestsAgent.inc @@ -0,0 +1,168 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to display Quests. + * + * @author Oliver Hanraths + */ + class QuestsAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3)); + } + + + /** + * Action: quest. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function quest(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'questgroup', $request->getParam(3), $request->getParam(4)); + + // Add Questgroups hierarchy path + $this->addSubAgent('Questgroupshierarchypath', 'index', $request->getParam(3), $request->getParam(4), true); + } + + + /** + * Action: submissions. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function submissions(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'questgroup', $request->getParam(3), $request->getParam(4)); + + // Add Questgroups hierarchy path + $this->addSubAgent('Questgroupshierarchypath', 'index', $request->getParam(3), $request->getParam(4), true); + } + + + /** + * Action: submission. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function submission(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'questgroup', $request->getParam(3), $request->getParam(4)); + + // Add Questgroups hierarchy path + $this->addSubAgent('Questgroupshierarchypath', 'index', $request->getParam(3), $request->getParam(4), true); + } + + + /** + * Action: create. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function create(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'questgroup', $request->getParam(3), $request->getParam(4)); + + // Add Questgroups hierarchy path + $this->addSubAgent('Questgroupshierarchypath', 'index', $request->getParam(3), $request->getParam(4), true); + } + + + /** + * Action: edit. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function edit(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'questgroup', $request->getParam(3), $request->getParam(4)); + + // Add Questgroups hierarchy path + $this->addSubAgent('Questgroupshierarchypath', 'index', $request->getParam(3), $request->getParam(4), true); + } + + + /** + * Action: edittask. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function edittask(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'questgroup', $request->getParam(3), $request->getParam(4)); + + // Add Questgroups hierarchy path + $this->addSubAgent('Questgroupshierarchypath', 'index', $request->getParam(3), $request->getParam(4), true); + } + + + /** + * Action: edittexts. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function edittexts(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'questgroup', $request->getParam(3), $request->getParam(4)); + + // Add Questgroups hierarchy path + $this->addSubAgent('Questgroupshierarchypath', 'index', $request->getParam(3), $request->getParam(4), true); + } + + + /** + * Action: delete. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function delete(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'questgroup', $request->getParam(3), $request->getParam(4)); + + // Add Questgroups hierarchy path + $this->addSubAgent('Questgroupshierarchypath', 'index', $request->getParam(3), $request->getParam(4), true); + } + + } + +?> diff --git a/agents/intermediate/SeminariesAgent.inc b/agents/intermediate/SeminariesAgent.inc new file mode 100644 index 00000000..aecb054b --- /dev/null +++ b/agents/intermediate/SeminariesAgent.inc @@ -0,0 +1,105 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to list registered seminaries. + * + * @author Oliver Hanraths + */ + class SeminariesAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'index'); + } + + + /** + * Action: seminary. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function seminary(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3)); + } + + + /** + * Action: create. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function create(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'index'); + } + + + /** + * Action: edit. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function edit(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: copy. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function copy(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + + /** + * Action: delete. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function delete(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3), $request->getParam(1)); + } + + } + +?> diff --git a/agents/intermediate/UploadsAgent.inc b/agents/intermediate/UploadsAgent.inc new file mode 100644 index 00000000..ff492f82 --- /dev/null +++ b/agents/intermediate/UploadsAgent.inc @@ -0,0 +1,38 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to process and show user uploads. + * + * @author Oliver Hanraths + */ + class UploadsAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + } + + } + +?> diff --git a/agents/intermediate/UsersAgent.inc b/agents/intermediate/UsersAgent.inc new file mode 100644 index 00000000..c99d870e --- /dev/null +++ b/agents/intermediate/UsersAgent.inc @@ -0,0 +1,50 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to list registered users and their data. + * + * @author Oliver Hanraths + */ + class UsersAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + } + + + /** + * Action: user. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function user(\nre\core\Request $request, \nre\core\Response $response) + { + $this->addSubAgent('Userroles', 'user'); + } + + } + +?> diff --git a/agents/intermediate/XplevelsAgent.inc b/agents/intermediate/XplevelsAgent.inc new file mode 100644 index 00000000..e810d4e8 --- /dev/null +++ b/agents/intermediate/XplevelsAgent.inc @@ -0,0 +1,40 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\intermediate; + + + /** + * Agent to handle XP-levels of a Seminary. + * + * @author Oliver Hanraths + */ + class XplevelsAgent extends \nre\agents\IntermediateAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function manage(\nre\core\Request $request, \nre\core\Response $response) + { + // Add Moodpic + $this->addSubAgent('Moodpic', 'seminary', $request->getParam(3)); + } + + } + +?> diff --git a/agents/toplevel/AjaxAgent.inc b/agents/toplevel/AjaxAgent.inc new file mode 100644 index 00000000..4b56cf98 --- /dev/null +++ b/agents/toplevel/AjaxAgent.inc @@ -0,0 +1,80 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\toplevel; + + + /** + * Agent to return a JSON-string used by AJAX. + * + * @author Oliver Hanraths + */ + class AjaxAgent extends \hhu\z\agents\ToplevelAgent + { + + + + + /** + * Construct a new AjaxAgent. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + * @param \nre\core\Logger $log Logger instance + */ + protected function __construct(\nre\core\Request $request, \nre\core\Response $response, \nre\core\Logger $log=null) + { + parent::__construct($request, $response, $log); + + + $this->setLanguage($request); + } + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + } + + + + + /** + * Set requested language. + * + * @param \nre\core\Request $request Current request + */ + private function setLanguage(\nre\core\Request $request) + { + // Set domain + $domain = \nre\configs\AppConfig::$app['genericname']; + + // Get language + $locale = $request->getGetParam('lang', 'language'); + if(is_null($locale)) { + return; + } + + // Load translation + putenv("LC_ALL=$locale"); + setlocale(LC_ALL, $locale); + bindtextdomain($domain, ROOT.DS.\nre\configs\AppConfig::$dirs['locale']); + textdomain($domain); + } + + } + +?> diff --git a/agents/toplevel/BinaryAgent.inc b/agents/toplevel/BinaryAgent.inc new file mode 100644 index 00000000..6130a1c0 --- /dev/null +++ b/agents/toplevel/BinaryAgent.inc @@ -0,0 +1,51 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\toplevel; + + + /** + * Agent to display binary data (e. g. images). + * + * @author Oliver Hanraths + */ + class BinaryAgent extends \hhu\z\agents\ToplevelAgent + { + + + + + /** + * Construct a new BinaryAgent. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + * @param \nre\core\Logger $log Logger instance + */ + protected function __construct(\nre\core\Request $request, \nre\core\Response $response, \nre\core\Logger $log=null) + { + parent::__construct($request, $response, $log); + } + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + } + + } + +?> diff --git a/agents/toplevel/FaultAgent.inc b/agents/toplevel/FaultAgent.inc new file mode 100644 index 00000000..dc4b101b --- /dev/null +++ b/agents/toplevel/FaultAgent.inc @@ -0,0 +1,38 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\toplevel; + + + /** + * Agent to display a toplevel error page. + * + * @author Oliver Hanraths + */ + class FaultAgent extends \nre\agents\ToplevelAgent + { + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + } + + } + +?> diff --git a/agents/toplevel/HtmlAgent.inc b/agents/toplevel/HtmlAgent.inc new file mode 100644 index 00000000..6a8e4ac5 --- /dev/null +++ b/agents/toplevel/HtmlAgent.inc @@ -0,0 +1,155 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\toplevel; + + + /** + * Agent to display a HTML-page. + * + * @author Oliver Hanraths + */ + class HtmlAgent extends \hhu\z\agents\ToplevelAgent + { + + + + + /** + * Construct a new HtmlAgent. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + * @param \nre\core\Logger $log Logger instance + */ + protected function __construct(\nre\core\Request $request, \nre\core\Response $response, \nre\core\Logger $log=null) + { + parent::__construct($request, $response, $log); + + + $this->setLanguage($request); + } + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + // Add menu + $this->addSubAgent('Menu'); + + // Add Seminary sidebar + $this->addSubAgent('Seminarybar'); + } + + + + + /** + * Set requested language. + * + * @param \nre\core\Request $request Current request + */ + private function setLanguage(\nre\core\Request $request) + { + // Set domain + $domain = \nre\configs\AppConfig::$app['genericname']; + + // Get language + $locale = $this->determineLanguage($request); + + // Set Locale and Load translation + if(!is_null($locale)) + { + putenv("LC_ALL=$locale"); + setlocale(LC_ALL, $locale); + \Locale::setDefault($locale); + + bindtextdomain($domain, ROOT.DS.\nre\configs\AppConfig::$dirs['locale']); + textdomain($domain); + } + } + + + /** + * Determine which language is either requested directly or by browser + * setting. + * + * @param \nre\core\Request $request Current request + * @return string Requested language or default one + */ + private function determineLanguage(\nre\core\Request $request) + { + // Get supported languages + $supportedLanguages = \nre\configs\AppConfig::$app['languages']; + if(empty($supportedLanguages)) { + return null; + } + + // Get requested language + $language = $request->getGetParam('lang', 'language'); + if(!is_null($language) && array_key_exists($language, $supportedLanguages)) { + return $supportedLanguages[$language]; + } + + // Negotiate language + return $this->negotiateLanguage($supportedLanguages, $request->getBrowserLanguages()); + } + + + /** + * Negotiate which language the browser wants most out of the supported + * languages. + * + * @param array $supportedLanguages List of supported languages + * @param array $browserLanguages List of browser languages + * @return string Negotiated language or default one + */ + private function negotiateLanguage($supportedLanguages, $browserLanguages) + { + if(!is_null($browserLanguages)) + { + // Create array with languages and their ratings + $parsedLanguages = array(); + $languages = explode(',', $browserLanguages); + foreach($languages as &$language) + { + if(($pos = strpos($language, ';q=')) !== false) { + $parsedLanguages[substr($language, 1, min(2, $pos-1))] = floatval(substr($language, $pos+3)); + } + else { + $parsedLanguages[$language] = 1.0; + } + } + + // Sort languages by their ratings + arsort($parsedLanguages); + + // Get highest supported language + foreach($parsedLanguages as $language => $rating) { + if(array_key_exists($language, $supportedLanguages)) { + return $supportedLanguages[$language]; + } + } + } + + + // Return default language + return $supportedLanguages[array_keys($supportedLanguages)[0]]; + } + + } + +?> diff --git a/agents/toplevel/HtmlmailAgent.inc b/agents/toplevel/HtmlmailAgent.inc new file mode 100644 index 00000000..c0d9cad5 --- /dev/null +++ b/agents/toplevel/HtmlmailAgent.inc @@ -0,0 +1,52 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\toplevel; + + + /** + * Agent for generating a HTML-mail message. + * + * @author Oliver Hanraths + */ + class HtmlmailAgent extends \hhu\z\agents\ToplevelAgent + { + + + + + /** + * Construct a new HtmlmailAgent. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + * @param \nre\core\Logger $log Logger instance + */ + protected function __construct(\nre\core\Request $request, \nre\core\Response $response, \nre\core\Logger $log=null) + { + parent::__construct($request, $response, $log); + } + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + $this->addSubagent('mailreceiver', 'index', $request->getParam(3)); + } + + } + +?> diff --git a/agents/toplevel/TextmailAgent.inc b/agents/toplevel/TextmailAgent.inc new file mode 100644 index 00000000..85c20d13 --- /dev/null +++ b/agents/toplevel/TextmailAgent.inc @@ -0,0 +1,53 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents\toplevel; + + /** + * Agent for generating a simple text-mail message. + * + * @author Oliver Hanraths + */ + class TextmailAgent extends \hhu\z\agents\ToplevelAgent + { + + + + + /** + * Construct a new TextmailAgent. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + * @param \nre\core\Logger $log Logger instance + */ + protected function __construct(\nre\core\Request $request, \nre\core\Response $response, \nre\core\Logger $log=null) + { + parent::__construct($request, $response, $log); + } + + + + + /** + * Action: index. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function index(\nre\core\Request $request, \nre\core\Response $response) + { + $this->addSubagent('mailreceiver', 'index', $request->getParam(3)); + } + + } + +?> diff --git a/apis/WebApi.inc b/apis/WebApi.inc new file mode 100644 index 00000000..eafde955 --- /dev/null +++ b/apis/WebApi.inc @@ -0,0 +1,250 @@ + + * @copyright 2013 coderkun (http://www.coderkun.de) + * @license http://www.gnu.org/licenses/gpl.html + * @link http://www.coderkun.de/projects/nre + */ + + namespace nre\apis; + + + /** + * WebApi-implementation. + * + * This class runs and renders an web-applictaion. + * + * @author coderkun + */ + class WebApi extends \nre\core\Api + { + + + + + /** + * Construct a new WebApi. + */ + public function __construct() + { + parent::__construct( + new \nre\requests\WebRequest(), + new \nre\responses\WebResponse() + ); + + // Add routes + $this->addRoutes(); + + // Disable screen logging for AJAX requests + if($this->request->getParam(0, 'toplevel') == 'ajax') { + $this->log->disableAutoLogToScreen(); + } + } + + + + + /** + * Run application. + * + * This method runs the application and handles all errors. + */ + public function run() + { + try { + $exception = parent::run(); + + if(!is_null($exception)) { + $this->errorService($exception); + } + } + catch(\nre\exceptions\ServiceUnavailableException $e) { + $this->errorService($e); + } + catch(\nre\exceptions\ActionNotFoundException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_NOT_FOUND); + } + catch(\nre\exceptions\FatalDatamodelException $e) { + $this->errorService($e); + } + catch(\nre\exceptions\DatamodelException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_SERVICE_UNAVAILABLE); + } + catch(\nre\exceptions\DriverNotValidException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_SERVICE_UNAVAILABLE); + } + catch(\nre\exceptions\DriverNotFoundException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_SERVICE_UNAVAILABLE); + } + catch(\nre\exceptions\ModelNotValidException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_SERVICE_UNAVAILABLE); + } + catch(\nre\exceptions\ModelNotFoundException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_SERVICE_UNAVAILABLE); + } + catch(\nre\exceptions\ViewNotFoundException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_NOT_FOUND); + } + catch(\nre\exceptions\ControllerNotValidException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_SERVICE_UNAVAILABLE); + } + catch(\nre\exceptions\ControllerNotFoundException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_NOT_FOUND); + } + catch(\nre\exceptions\AgentNoaatValidException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_SERVICE_UNAVAILABLE); + } + catch(\nre\exceptions\AgentNotFoundException $e) { + $this->error($e, \nre\core\WebUtils::HTTP_NOT_FOUND); + } + catch(\nre\exceptions\ClassNotValidException $e) { + $this->errorService($e); + } + catch(\nre\exceptions\ClassNotFoundException $e) { + $this->errorService($e); + } + } + + + /** + * Render output. + */ + public function render() + { + // Generate output + parent::render(); + + + // Set HTTP-header + $this->response->header(); + + // Show output + echo $this->response->getOutput(); + } + + + + + /** + * Add routes (normal and reverse) defined in the AppConfig. + */ + private function addRoutes() + { + // Normal routes + if(property_exists('\nre\configs\AppConfig', 'routes')) { + foreach(\nre\configs\AppConfig::$routes as &$route) { + $this->request->addRoute($route[0], $route[1], $route[2]); + } + } + + // Reverse routes + if(property_exists('\nre\configs\AppConfig', 'reverseRoutes')) { + foreach(\nre\configs\AppConfig::$reverseRoutes as &$route) { + $this->request->addReverseRoute($route[0], $route[1], $route[2]); + } + } + + // Revalidate request + $this->request->revalidate(); + } + + + /** + * Handle an error that orrcurred during the + * loading/constructing/running of the ToplevelAgent. + * + * @param \Exception $exception Occurred exception + * @param int $httpStatusCode HTTP-statuscode + */ + private function error(\nre\core\Exception $exception, $httpStatusCode) + { + // Log error message + $this->log($exception, \nre\core\Logger::LOGMODE_AUTO); + + try { + // Set agent for handling errors + $this->response->clearParams(); + $this->response->addParams( + \nre\configs\AppConfig::$defaults['toplevel-error'], + \nre\configs\AppConfig::$defaults['intermediate-error'], + \nre\configs\CoreConfig::$defaults['action'], + $httpStatusCode + ); + + // Run this agent + parent::run(); + } + catch(\nre\exceptions\ServiceUnavailableException $e) { + $this->errorService($e); + } + catch(\nre\exceptions\ActionNotFoundException $e) { + $this->errorService($e); + } + catch(\nre\exceptions\DatamodelException $e) { + $this->errorService($e); + } + catch(\nre\exceptions\DriverNotValidException $e) { + $this->errorService($e); + } + catch(\nre\exceptions\DriverNotFoundException $e) { + $this->errorService($e); + } + catch(\nre\exceptions\ModelNotValidException $e) { + $this->errorService($e); + } + catch(\nre\exceptions\ModelNotFoundException $e) { + $this->errorService($e); + } + catch(\nre\exceptions\ViewNotFoundException $e) { + $this->errorService($e); + } + catch(\nre\exceptions\ControllerNotValidException $e) { + $this->errorService($e); + } + catch(\nre\exceptions\ControllerNotFoundException $e) { + $this->errorService($e); + } + catch(\nre\exceptions\AgentNotValidException $e) { + $this->errorService($e); + } + catch(\nre\exceptions\AgentNotFoundException $e) { + $this->errorService($e); + } + catch(Exception $e) { + $this->errorService($e); + } + } + + + /** + * Handle a error which cannot be handles by the system (and + * HTTP 503). + * + * @param \Exception $exception Occurred exception + */ + private function errorService($exception) + { + // Log error message + $this->log($exception, \nre\core\Logger::LOGMODE_AUTO); + + // Set HTTP-rtatuscode + $this->response->addHeader(\nre\core\WebUtils::getHttpHeader(503)); + + + // Read and print static error file + $fileName = ROOT.DS.\nre\configs\CoreConfig::getClassDir('views').DS.\nre\configs\CoreConfig::$defaults['errorFile'].\nre\configs\CoreConfig::getFileExt('views'); + ob_start(); + include($fileName); + $this->response->setOutput(ob_get_clean()); + + + // Prevent further execution + $this->response->setExit(); + } + + } + +?> diff --git a/app/Controller.inc b/app/Controller.inc new file mode 100644 index 00000000..eaf4dc32 --- /dev/null +++ b/app/Controller.inc @@ -0,0 +1,134 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z; + + + /** + * Abstract class for implementing an application Controller. + * + * @author Oliver Hanraths + */ + abstract class Controller extends \nre\core\Controller + { + /** + * Required components + * + * @var array + */ + public $components = array('auth'); + + /** + * Logger instance + * + * @var \nre\core\Logger + */ + protected $log = null; + /** + * Linker instance + * + * @var \nre\core\Linker + */ + protected $linker = null; + + + + + /** + * Construct a new application Controller. + * + * @throws \nre\exceptions\DriverNotFoundException + * @throws \nre\exceptions\DriverNotValidException + * @throws \nre\exceptions\ModelNotValidException + * @throws \nre\exceptions\ModelNotFoundException + * @throws \nre\exceptions\ViewNotFoundException + * @param string $layoutName Name of the current Layout + * @param string $action Current Action + * @param \nre\core\Agent $agent Corresponding Agent + */ + public function __construct($layoutName, $action, $agent) + { + parent::__construct($layoutName, $action, $agent); + + // Create logger + $this->log = new \nre\core\Logger(); + } + + + + /** + * Prefilter that is executed before running the Controller. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function preFilter(\nre\core\Request $request, \nre\core\Response $response) + { + parent::preFilter($request, $response); + + // Create linker + $this->linker = new \nre\core\Linker($request); + $this->set('linker', $this->linker); + + // Create text formatter + $this->set('t', new \hhu\z\TextFormatter($this->linker)); + + // Create date and time and number formatter + $this->set('dateFormatter', new \IntlDateFormatter( + //\nre\core\Config::getDefault('locale'), + \Locale::getDefault(), + \IntlDateFormatter::MEDIUM, + \IntlDateFormatter::NONE, + NULL + )); + $this->set('timeFormatter', new \IntlDateFormatter( + //\nre\core\Config::getDefault('locale'), + \Locale::getDefault(), + \IntlDateFormatter::NONE, + \IntlDateFormatter::SHORT, + NULL + )); + $this->set('numberFormatter', new \NumberFormatter( + //\nre\core\Config::getDefault('locale'), + \Locale::getDefault(), + \NumberFormatter::DEFAULT_STYLE + )); + } + + + /** + * Postfilter that is executed after running the Controller. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function postFilter(\nre\core\Request $request, \nre\core\Response $response) + { + parent::postFilter($request, $response); + } + + + + + /** + * Log an error. + * + * @param string $message Error message to log + * @param int $logMode Log mode (optional) + */ + protected function log($message, $logMode=\nre\core\Logger::LOGMODE_AUTO) + { + $this->log->log($message, $logMode); + } + + } + +?> diff --git a/app/Model.inc b/app/Model.inc new file mode 100644 index 00000000..9acc0835 --- /dev/null +++ b/app/Model.inc @@ -0,0 +1,42 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z; + + + /** + * Abstract class for implementing an application Model. + * + * @author Oliver Hanraths + */ + class Model extends \nre\models\DatabaseModel + { + + + + + /** + * Construct a new application Model. + * + * @throws \nre\exceptions\DatamodelException + * @throws \nre\exceptions\DriverNotFoundException + * @throws \nre\exceptions\DriverNotValidException + * @throws \nre\exceptions\ModelNotValidException + * @throws \nre\exceptions\ModelNotFoundException + */ + public function __construct() + { + parent::__construct('mysqli', \nre\configs\AppConfig::$database); + } + + } + +?> diff --git a/app/TextFormatter.inc b/app/TextFormatter.inc new file mode 100644 index 00000000..c7c6bd67 --- /dev/null +++ b/app/TextFormatter.inc @@ -0,0 +1,213 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z; + + + /** + * Class to format text with different syntax tags. + * + * @author Oliver Hanraths + */ + class TextFormatter + { + /** + * Linker to create links. + * + * @var \nre\core\Linker + */ + private $linker; + /** + * Media-Model to retrieve media data + * + * @static + * @var \nre\core\Model + */ + private static $Media = null; + + + + + /** + * Create a new text formatter. + * + * @param \nre\core\Linker $linker Linker to create links with + */ + public function __construct(\nre\core\Linker $linker) + { + $this->linker = $linker; + } + + + + + /** + * Format a string. + * + * @param string $string String to format + * @return string Formatted string + */ + public function t($string) + { + // Use Textile + \hhu\z\lib\Textile::load(); + $textileParser = new \Netcarver\Textile\Parser('html5'); + $string = $textileParser->textileRestricted($string, false, false); + + // Add link targets + $string = $this->tLinks($string); + + // Handle custom formatting + $string = $this->tCustom($string); + + // Handle Seminarymedia + $string = $this->tSeminarymedia($string); + + + // Return processed string + return $string; + } + + + + + /** + * Load the Media-Model if it is not loaded + * + * @return boolean Whether the Media-Model has been loaded or not + */ + private function loadMediaModel() + { + // Do not load Model if it has already been loaded + if(!is_null(self::$Media)) { + return true; + } + + try { + // Load class + Model::load('media'); + + // Construct Model + self::$Media = Model::factory('media'); + } + catch(\Exception $e) { + } + + + // Return whether Media-Model has been loaded or not + return !is_null(self::$Media); + } + + + /** + * Add “target” attribute to anchors (links). + * + * @param string $string String to format + * @return string Formatted string + */ + private function tLinks($string) + { + if(!class_exists('\DOMDocument')) { + return $string; + } + try { + $dom = new \DOMDocument('1.0'); + $dom->loadHTML(''.$string.''); + foreach($dom->getElementsByTagName('a') as $link) { + $link->setAttribute('target', '_blank'); + } + $body = $dom->getElementsByTagName('body')->item(0); + $string = $dom->saveHTML($body); + + return trim(substr($string, 6, strlen($string) - 13)); + } + catch(\Exception $e) { + return $string; + } + } + + + /** + * Handle custom formatting syntax. + * + * @Deprecated + * @param string $string String to format + * @return string Formatted string + */ + private function tCustom($string) + { + // Important text + $string = str_replace('[strong]', '', $string); + $string = str_replace('[/strong]', '', $string); + + // Create tables + $string = preg_replace('/(\[table\])\s+/u', '$1', $string); + $string = preg_replace('/\s*(\[tr\])\s*/u', '$1', $string); + $string = preg_replace('%\s+(\[/table\])%u', '$1', $string); + $string = preg_replace('%\s*(\[/tr\])\s*%u', '$1', $string); + $string = str_replace('[table]', '

', $string); + $string = str_replace('[/table]', '

', $string); + $string = str_replace('[tr]', '', $string); + $string = str_replace('[/tr]', '', $string); + $string = str_replace('[th]', '', $string); + $string = str_replace('[/th]', '', $string); + $string = str_replace('[td]', '', $string); + $string = str_replace('[/td]', '', $string); + + + // Return new string + return $string; + } + + + /** + * Handle including Seminarymedia. + * + * @param string $string String to format + * @return string Formatted string + */ + private function tSeminarymedia($string) + { + $seminarymedia = array(); + preg_match_all('/\[seminarymedia:(\d+)\]/iu', $string, $matches); //, PREG_SET_ORDER | PREG_OFFSET_CAPTURE); + $seminarymediaIds = array_unique($matches[1]); + foreach($seminarymediaIds as &$seminarymediaId) + { + $replacement = null; + if(!is_null(\hhu\z\controllers\SeminaryController::$seminary) && $this->loadMediaModel()) + { + try { + $medium = self::$Media->getSeminaryMediaById($seminarymediaId); + $replacement = sprintf( + '%s', + $this->linker->link(array('media','seminary', \hhu\z\controllers\SeminaryController::$seminary['url'],$medium['url'])), + $medium['description'] + ); + } + catch(\nre\exceptions\IdNotFoundException $e) { + } + } + + $seminarymedia[$seminarymediaId] = $replacement; + } + foreach($seminarymedia as $seminarymediaId => $replacement) { + $string = str_replace("[seminarymedia:$seminarymediaId]", $replacement, $string); + } + + + // Return new string + return $string; + } + + + } + +?> diff --git a/app/Utils.inc b/app/Utils.inc new file mode 100644 index 00000000..0aae181b --- /dev/null +++ b/app/Utils.inc @@ -0,0 +1,239 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z; + + + /** + * Class for implementing utility methods. + * + * @author Oliver Hanraths + */ + class Utils + { + /** + * String length for hashes + * + * @var int + */ + const HASH_LENGTH = 10; + + + + + /** + * Mask HTML-chars for save output. + * + * @static + * @param string $string String to be masked + * @return string Masked string + */ + public static function t($string) + { + return nl2br(htmlspecialchars($string)); + } + + + /** + * ‚htmlspecialchars‘ with support for UTF-8. + * + * @static + * @param string $string String to be masked + * @return string Masked string + */ + public static function htmlspecialchars_utf8($string) + { + return htmlspecialchars($string, ENT_COMPAT, 'UTF-8'); + } + + + /** + * Cut a string to the given length but only word boundaries. + * + * @static + * @param string $string String to cut + * @param int $length Length to cut string + * @param int $scope Maximum length to cut string regardless word boundaries + * @return string Cutted string + */ + public static function shortenString($string, $length, $scope) + { + // Determine length + $length = min($length, strlen($string)); + + // Look for word boundary + if(($pos = strpos($string, ' ', $length)) !== false) + { + // Check if boundary is outside of scope + if($pos > $length + $scope) { + $pos = strrpos(substr($string, 0, $pos), ' '); + } + } + else { + $pos = strlen($string); + } + + + // Cut string and return it + return substr($string, 0, $pos); + } + + + /** + * Send an e‑mail. + * + * @throws \hhu\z\exceptions\MailingException + * @param mixed $to One (string) or many (array) receivers + * @param string $messageAction Message Action + * @param boolean $html Whether mail should be formatted as HTML or not + * @param array $params Parameters to pass + * @param \nre\core\Linker $linker Linker instance + */ + public static function sendMail($to, $messageAction, $html=false, $params=null, $linker=null) + { + // Check configuration + if( + empty(\nre\configs\AppConfig::$mail['host']) || + empty(\nre\configs\AppConfig::$mail['port']) || + empty(\nre\configs\AppConfig::$mail['username']) + ) { + return; + } + + // Load classes + \hhu\z\lib\PHPMailerAutoload::load(); + \hhu\z\lib\PHPMailer::load(); + \hhu\z\lib\SMTP::load(); + + // Create mailer + $mail = new \PHPMailer(); + + // Configure mailer + $mail->isSMTP(); + $mail->Host = \nre\configs\AppConfig::$mail['host']; + $mail->Port = \nre\configs\AppConfig::$mail['port']; + $mail->SMTPAuth = true; + $mail->Username = \nre\configs\AppConfig::$mail['username']; + $mail->Password = \nre\configs\AppConfig::$mail['password']; + $mail->SMTPSecure = \nre\configs\AppConfig::$mail['secure']; + + // Set properties + $mail->CharSet = 'UTF-8'; + $mail->From = \nre\configs\AppConfig::$app['mailsender']; + $mail->FromName = \nre\configs\AppConfig::$app['name']; + if(!is_array($to)) { + $to = array($to); + } + foreach($to as &$receiver) { + $mail->addAddress($receiver); + } + if($html) { + $mail->isHTML(true); + } + + // Create message + try { + // Create MailApi + $mailApi = new \hhu\z\apis\MailApi(); + if(!is_null($linker)) { + $mailApi->setLinker($linker); + } + $mailApi->setMessage($messageAction); + $mailApi->setParams($params); + if($html) { + $mailApi->setHTML(); + } + + // Render message + $exception = $mailApi->run(); + if(!is_null($exception)) { + return $exception; + } + $mail->Subject = $mailApi->getSubject(); + $mail->Body = $mailApi->render(); + + // Try to render alternativ plaintext message + if($html) + { + $mailApi->setHTML(false); + + // Render message + $exception = $mailApi->run(); + if(is_null($exception)) + { + try { + $mail->AltBody = $mailApi->render(); + } + catch(\nre\core\Exception $e) { + // No alternative plaintext available + } + } + } + } + catch(\nre\core\Exception $e) { + throw new \hhu\z\exceptions\MailingException($e->getMessage()); + } + + + // Return status + if(!$mail->send()) { + throw new \hhu\z\exceptions\MailingException($mail->ErrorInfo); + } + } + + + /** + * Detect Mimetype of a file. + * + * @param string $filename Name of file to detect Mimetype of + * @param string $defaultMimetype Default Mimetype to use + * @return string Detected Mimetype of file + */ + public static function getMimetype($filename, $defaultMimetype=null) + { + $mimetype = (!is_null($defaultMimetype)) ? $defaultMimetype : 'application/octet-stream'; + // Use Fileinfo + if(class_exists('\finfo')) + { + $finfo = new \finfo(FILEINFO_MIME_TYPE); + if(!is_null($finfo)) { + $mimetype = $finfo->file($filename); + } + } + // Use deprecated mime_content_type() + elseif(function_exists('mime_content_type')) { + $mimetype = mime_content_type($filename); + } + + + return $mimetype; + } + + + /** + * Create a random hash string. + * + * @param int Length of string + * @return string String with random characters + */ + public static function createRandomHash($length=self::HASH_LENGTH) + { + // Length of URL + $length = max(0, min(32, $length)); + + + // Create and return random string + return substr(md5(microtime()), rand(0, 32-$length), $length); + } + + } + +?> diff --git a/app/agents/QuesttypeAgent.inc b/app/agents/QuesttypeAgent.inc new file mode 100644 index 00000000..f13d6786 --- /dev/null +++ b/app/agents/QuesttypeAgent.inc @@ -0,0 +1,268 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents; + + + /** + * Abstract class for implementing a QuesttypeAgent. + * + * @author Oliver Hanraths + */ + abstract class QuesttypeAgent extends \nre\agents\BottomlevelAgent + { + /** + * Current request + * + * @var \nre\core\Request + */ + private $request; + /** + * Current response + * + * @var \nre\core\Response + */ + private $response; + + + + + /** + * Load a QuesttypeAgent. + * + * @static + * @throws \hhu\z\exceptions\QuesttypeAgentNotFoundException + * @throws \hhu\z\exceptions\QuesttypeAgentNotValidException + * @param string $questtypeName Name of the QuesttypeAgent to load + */ + public static function load($questtypeName) + { + // Determine full classname + $className = self::getClassName($questtypeName); + + try { + // Load class + static::loadClass($questtypeName, $className); + + // Validate class + static::checkClass($className, get_class()); + } + catch(\nre\exceptions\ClassNotValidException $e) { + throw new \hhu\z\exceptions\QuesttypeAgentNotValidException($e->getClassName()); + } + catch(\nre\exceptions\ClassNotFoundException $e) { + throw new \hhu\z\exceptions\QuesttypeAgentNotFoundException($e->getClassName()); + } + } + + + /** + * Instantiate a QuesttypeAgent (Factory Pattern). + * + * @static + * @throws \nre\exceptions\DatamodelException + * @throws \nre\exceptions\DriverNotValidException + * @throws \nre\exceptions\DriverNotFoundException + * @throws \nre\exceptions\ViewNotFoundException + * @throws \hhu\z\exceptions\QuesttypeModelNotValidException + * @throws \hhu\z\exceptions\QuesttypeModelNotFoundException + * @throws \hhu\z\exceptions\QuesttypeControllerNotValidException + * @throws \hhu\z\exceptions\QuesttypeControllerNotFoundException + * @param string $questtypeName Name of the QuesttypeAgent to instantiate + * @param Request $request Current request + * @param Response $response Current respone + * @param Logger $log Log-system + */ + public static function factory($questtypeName, \nre\core\Request $request, \nre\core\Response $response, \nre\core\Logger $log=null) + { + // Determine full classname + $className = self::getClassName($questtypeName); + + // Construct and return Questmodule + return new $className($request, $response, $log); + } + + + /** + * Determine the Agent-classname for the given Questtype-name. + * + * @static + * @param string $questtypeName Questtype-name to get Agent-classname of + * @param string $agentType Agent type of given Agent name + * @return string Classname for the Questtype-name + */ + private static function getClassName($questtypeName, $agentType=null) + { + $className = \nre\core\ClassLoader::concatClassNames($questtypeName, \nre\core\ClassLoader::stripClassType(\nre\core\ClassLoader::stripNamespace(get_class())), 'agent'); + + + return \nre\configs\AppConfig::$app['namespace']."questtypes\\$className"; + } + + + /** + * Load the class of a QuesttypeAgent. + * + * @static + * @throws \nre\exceptions\ClassNotFoundException + * @param string $questtypeName Name of the QuesttypeAgent to load + * @param string $fullClassName Name of the class to load + */ + private static function loadClass($questtypeName, $fullClassName) + { + // Determine folder to look in + $className = explode('\\', $fullClassName); + $className = array_pop($className); + + // Determine filename + $fileName = ROOT.DS.\nre\configs\AppConfig::$dirs['questtypes'].DS.strtolower($questtypeName).DS.$className.\nre\configs\CoreConfig::getFileExt('includes'); + + // Check file + if(!file_exists($fileName)) + { + throw new \nre\exceptions\ClassNotFoundException( + $fullClassName + ); + } + + // Include file + include_once($fileName); + } + + + /** + * Check inheritance of the QuesttypeAgent-class. + * + * @static + * @throws \nre\exceptions\ClassNotValidException + * @param string $className Name of the class to check + * @param string $parentClassName Name of the parent class + */ + public static function checkClass($className, $parentClassName) + { + // Check if class is subclass of parent class + if(!is_subclass_of($className, $parentClassName)) { + throw new \nre\exceptions\ClassNotValidException( + $className + ); + } + } + + + + + /** + * Construct a new QuesttypeAgent. + * + * @throws \nre\exceptions\DatamodelException + * @throws \nre\exceptions\DriverNotValidException + * @throws \nre\exceptions\DriverNotFoundException + * @throws \nre\exceptions\ViewNotFoundException + * @throws \nre\exceptions\ModelNotValidException + * @throws \nre\exceptions\ModelNotFoundException + * @throws \hhu\z\exceptions\QuesttypeModelNotValidException + * @throws \hhu\z\exceptions\QuesttypeModelNotFoundException + * @throws \hhu\z\exceptions\QuesttypeControllerNotValidException + * @throws \hhu\z\exceptions\QuesttypeControllerNotFoundException + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + * @param \nre\core\Logger $log Log-system + */ + protected function __construct(\nre\core\Request $request, \nre\core\Response $response, \nre\core\Logger $log=null) + { + // Store values + $this->request = $request; + $this->response = $response; + + + // Call parent constructor + parent::__construct($request, $response, $log); + } + + + + + /** + * Save the answers of a Character for a Quest. + * + * @param array $seminary Current Seminary data + * @param array $questgroup Current Questgroup data + * @param array $quest Current Quest data + * @param array $character Current Character data + * @param array $answers Character answers for the Quest + */ + public function saveAnswersOfCharacter($seminary, $questgroup, $quest, $character, $answers) + { + $this->controller->saveAnswersOfCharacter($seminary, $questgroup, $quest, $character, $answers); + } + + + /** + * Check if answers of a Character for a Quest match the correct ones. + * + * @param array $seminary Current Seminary data + * @param array $questgroup Current Questgroup data + * @param array $quest Current Quest data + * @param array $character Current Character data + * @param array $answers Character answers for the Quest + */ + public function matchAnswersOfCharacter($seminary, $questgroup, $quest, $character, $answers) + { + return $this->controller->matchAnswersOfCharacter($seminary, $questgroup, $quest, $character, $answers); + } + + + + + /** + * Load the Controller of this Agent. + * + * @throws \nre\exceptions\DatamodelException + * @throws \nre\exceptions\DriverNotValidException + * @throws \nre\exceptions\DriverNotFoundException + * @throws \nre\exceptions\ViewNotFoundException + * @throws \nre\exceptions\ModelNotValidException + * @throws \nre\exceptions\ModelNotFoundException + * @throws \hhu\z\exceptions\QuesttypeModelNotValidException + * @throws \hhu\z\exceptions\QuesttypeModelNotFoundException + * @throws \hhu\z\exceptions\QuesttypeControllerNotValidException + * @throws \hhu\z\exceptions\QuesttypeControllerNotFoundException + */ + protected function loadController() + { + // Determine Controller name + $controllerName = \nre\core\ClassLoader::stripClassType(\nre\core\ClassLoader::getClassName(get_class($this))); + + // Determine ToplevelAgent + $toplevelAgentName = $this->response->getParam(0); + if(is_null($toplevelAgentName)) { + $toplevelAgentName = $this->request->getParam(0, 'toplevel'); + $this->response->addParam($toplevelAgentName); + } + + // Determine Action + $action = $this->response->getParam(2); + if(is_null($action)) { + $action = $this->request->getParam(2, 'action'); + $this->response->addParam($action); + } + + + // Load Controller + \hhu\z\controllers\QuesttypeController::load($controllerName); + + // Construct Controller + $this->controller = \hhu\z\controllers\QuesttypeController::factory($controllerName, $toplevelAgentName, $action, $this); + } + + } + +?> diff --git a/app/agents/StationtypeAgent.inc b/app/agents/StationtypeAgent.inc new file mode 100644 index 00000000..5598afb5 --- /dev/null +++ b/app/agents/StationtypeAgent.inc @@ -0,0 +1,298 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents; + + + /** + * Abstract class for implementing a StationtypeAgent. + * + * @author Oliver Hanraths + */ + abstract class StationtypeAgent extends \nre\agents\BottomlevelAgent + { + /** + * Current request + * + * @var \nre\core\Request + */ + private $request; + /** + * Current response + * + * @var \nre\core\Response + */ + private $response; + + + + + /** + * Load a StationtypeAgent. + * + * @static + * @throws \hhu\z\exceptions\StationtypeAgentNotFoundException + * @throws \hhu\z\exceptions\StationtypeAgentNotValidException + * @param string $stationtypeName Name of the StationtypeAgent to load + */ + public static function load($stationtypeName) + { + // Determine full classname + $className = self::getClassName($stationtypeName); + + try { + // Load class + static::loadClass($stationtypeName, $className); + + // Validate class + static::checkClass($className, get_class()); + } + catch(\nre\exceptions\ClassNotValidException $e) { + throw new \hhu\z\exceptions\StationtypeAgentNotValidException($e->getClassName()); + } + catch(\nre\exceptions\ClassNotFoundException $e) { + throw new \hhu\z\exceptions\StationtypeAgentNotFoundException($e->getClassName()); + } + } + + + /** + * Instantiate a StationtypeAgent (Factory Pattern). + * + * @static + * @throws \nre\exceptions\DatamodelException + * @throws \nre\exceptions\DriverNotValidException + * @throws \nre\exceptions\DriverNotFoundException + * @throws \nre\exceptions\ViewNotFoundException + * @throws \hhu\z\exceptions\StationtypeModelNotValidException + * @throws \hhu\z\exceptions\StationtypeModelNotFoundException + * @throws \hhu\z\exceptions\StationtypeControllerNotValidException + * @throws \hhu\z\exceptions\StationtypeControllerNotFoundException + * @param string $stationtypeName Name of the StationtypeAgent to instantiate + * @param Request $request Current request + * @param Response $response Current respone + * @param Logger $log Log-system + */ + public static function factory($stationtypeName, \nre\core\Request $request, \nre\core\Response $response, \nre\core\Logger $log=null) + { + // Determine full classname + $className = self::getClassName($stationtypeName); + + // Construct and return Stationmodule + return new $className($request, $response, $log); + } + + + /** + * Determine the Agent-classname for the given Stationtype-name. + * + * @static + * @param string $stationtypeName Stationtype-name to get Agent-classname of + * @param string $agentType Agent type of given Agent name + * @return string Classname for the Stationtype-name + */ + private static function getClassName($stationtypeName, $agentType=null) + { + $className = \nre\core\ClassLoader::concatClassNames( + $stationtypeName, + \nre\core\ClassLoader::stripClassType(\nre\core\ClassLoader::stripNamespace(get_class())), + 'agent' + ); + + + return \nre\configs\AppConfig::$app['namespace']."stationtypes\\$className"; + } + + + /** + * Load the class of a StationtypeAgent. + * + * @static + * @throws \nre\exceptions\ClassNotFoundException + * @param string $stationtypeName Name of the StationtypeAgent to load + * @param string $fullClassName Name of the class to load + */ + private static function loadClass($stationtypeName, $fullClassName) + { + // Determine folder to look in + $className = explode('\\', $fullClassName); + $className = array_pop($className); + + // Determine filename + $fileName = ROOT.DS. + \nre\configs\AppConfig::$dirs['stationtypes'].DS. + strtolower($stationtypeName).DS.$className.\nre\configs\CoreConfig::getFileExt('includes'); + + // Check file + if(!file_exists($fileName)) + { + throw new \nre\exceptions\ClassNotFoundException( + $fullClassName + ); + } + + // Include file + include_once($fileName); + } + + + /** + * Check inheritance of the StationtypeAgent-class. + * + * @static + * @throws \nre\exceptions\ClassNotValidException + * @param string $className Name of the class to check + * @param string $parentClassName Name of the parent class + */ + public static function checkClass($className, $parentClassName) + { + // Check if class is subclass of parent class + if(!is_subclass_of($className, $parentClassName)) { + throw new \nre\exceptions\ClassNotValidException( + $className + ); + } + } + + + + + /** + * Construct a new StationtypeAgent. + * + * @throws \nre\exceptions\DatamodelException + * @throws \nre\exceptions\DriverNotValidException + * @throws \nre\exceptions\DriverNotFoundException + * @throws \nre\exceptions\ViewNotFoundException + * @throws \nre\exceptions\ModelNotValidException + * @throws \nre\exceptions\ModelNotFoundException + * @throws \hhu\z\exceptions\StationtypeModelNotValidException + * @throws \hhu\z\exceptions\StationtypeModelNotFoundException + * @throws \hhu\z\exceptions\StationtypeControllerNotValidException + * @throws \hhu\z\exceptions\StationtypeControllerNotFoundException + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + * @param \nre\core\Logger $log Log-system + */ + protected function __construct(\nre\core\Request $request, \nre\core\Response $response, \nre\core\Logger $log=null) + { + // Store values + $this->request = $request; + $this->response = $response; + + + // Call parent constructor + parent::__construct($request, $response, $log); + } + + + + + /** + * Save the answer of a Character group for a Station. + * + * @param array $seminary Current Seminary data + * @param array $questgroup Current Questgroup data + * @param array $quest Current Quest data + * @param array $station Current Station data + * @param array $group Current Character data + * @param array $answers Character answers for the Quest + */ + public function saveAnswer($seminary, $groupsgroup, $quest, $station, $group, $answer) + { + $this->controller->saveAnswer( + $seminary, + $groupsgroup, + $quest, + $station, + $group, + $answer + ); + } + + + /** + * Check if the answer of a Character group for a Station matches the + * correct one. + * + * @param array $seminary Current Seminary data + * @param array $questgroup Current Questgroup data + * @param array $quest Current Quest data + * @param array $station Current Station data + * @param array $group Current Character group data + * @param array $answers Character answers for the Quest + */ + public function matchAnswer($seminary, $groupsgroup, $quest, $station, $group, $answer) + { + return $this->controller->matchAnswer( + $seminary, + $groupsgroup, + $quest, + $station, + $group, + $answer + ); + } + + + + + /** + * Load the Controller of this Agent. + * + * @throws \nre\exceptions\DatamodelException + * @throws \nre\exceptions\DriverNotValidException + * @throws \nre\exceptions\DriverNotFoundException + * @throws \nre\exceptions\ViewNotFoundException + * @throws \nre\exceptions\ModelNotValidException + * @throws \nre\exceptions\ModelNotFoundException + * @throws \hhu\z\exceptions\StationxuesttypeModelNotValidException + * @throws \hhu\z\exceptions\StationtypeModelNotFoundException + * @throws \hhu\z\exceptions\StationtypeControllerNotValidException + * @throws \hhu\z\exceptions\StationtypeControllerNotFoundException + */ + protected function loadController() + { + // Determine Controller name + $controllerName = \nre\core\ClassLoader::stripClassType( + \nre\core\ClassLoader::getClassName(get_class($this)) + ); + + // Determine ToplevelAgent + $toplevelAgentName = $this->response->getParam(0); + if(is_null($toplevelAgentName)) { + $toplevelAgentName = $this->request->getParam(0, 'toplevel'); + $this->response->addParam($toplevelAgentName); + } + + // Determine Action + $action = $this->response->getParam(2); + if(is_null($action)) { + $action = $this->request->getParam(2, 'action'); + $this->response->addParam($action); + } + + + // Load Controller + \hhu\z\controllers\StationtypeController::load($controllerName); + + // Construct Controller + $this->controller = \hhu\z\controllers\StationtypeController::factory( + $controllerName, + $toplevelAgentName, + $action, + $this + ); + } + + } + +?> diff --git a/app/agents/ToplevelAgent.inc b/app/agents/ToplevelAgent.inc new file mode 100644 index 00000000..10a72d85 --- /dev/null +++ b/app/agents/ToplevelAgent.inc @@ -0,0 +1,43 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\agents; + + + /** + * Abstract class for implementing an application Controller. + * + * @author Oliver Hanraths + */ + abstract class ToplevelAgent extends \nre\agents\ToplevelAgent + { + + + + + /** + * Construct a new ToplevlAgent + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + * @param \nre\core\Logger $log Logger instance + */ + protected function __construct(\nre\core\Request $request, \nre\core\Response $response, \nre\core\Logger $log=null) + { + parent::__construct($request, $response, $log); + + + // Set timezone + date_default_timezone_set(\nre\configs\AppConfig::$app['timeZone']); + } + } + +?> diff --git a/app/apis/MailApi.inc b/app/apis/MailApi.inc new file mode 100644 index 00000000..bc8dbd1c --- /dev/null +++ b/app/apis/MailApi.inc @@ -0,0 +1,202 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\apis; + + + /** + * MailApi-implementation. + * + * This class runs and renders e‑mail text and subject. + * + * @author Oliver Hanraths + */ + class MailApi extends \nre\core\Api + { + + + + + /** + * Construct a new MailApi. + */ + public function __construct() + { + parent::__construct( + new \hhu\z\requests\MailRequest(), + new \hhu\z\responses\MailResponse() + ); + + // Set ToplevelAgent + $this->request->addParam(\nre\configs\AppConfig::$defaults['toplevel-mail']); + $this->request->addParam(\nre\configs\AppConfig::$defaults['intermediate-mail']); + } + + + + + /** + * Set linker instance for creating links. + * + * @param \nre\core\Linker $linker Linker instance for creating links + */ + public function setLinker(\nre\core\Linker $linker) + { + $this->request->setLinker($linker); + } + + + /** + * Use a ToplevelAgent for HTML-mail + * + * @param bool $html Whether to use HTML or not + */ + public function setHTML($html=true) + { + // Save params + $params = $this->request->getParams(1); + + // Set ToplevelAgent + $this->request->clearParams(); + if($html) { + $this->request->addParam(\nre\configs\AppConfig::$defaults['toplevel-htmlmail']); + } + else { + $this->request->addParam(\nre\configs\AppConfig::$defaults['toplevel-mail']); + } + + // Restore params + if(!empty($params)) { + $this->addParams($params); + } + } + + + /** + * Set the Action for the message to render. + * + * @param string $messageAgent Agent to handle the message + */ + public function setMessage($messageAgent) + { + // Save params + $params = $this->request->getParams(3); + + // Set messageAgent + $this->request->clearParams(2); + $this->request->addParam($messageAgent); + + // Restore params + if(!empty($params)) { + $this->addParams($params); + } + } + + + /** + * Set additional params to pass to the Action. + * + * @param array $params Additional params to set + */ + public function setParams($params) + { + // Add placeholder params + for($i=3; $irequest->getParams()); $i++) { + $this->request->addParam(null); + } + + // Set params + call_user_func_array( + array( + $this->request, + 'addParams' + ), + $params + ); + } + + + /** + * Return the subject set by the Controller. + * + * @return string Subject set by Controller + */ + public function getSubject() + { + return $this->response->getSubject(); + } + + + /** + * Run mailtext generation. + * + * This method runs the generation of mailtext. + * + * @return \Exception Occured exception or null + */ + public function run() + { + // Set response + $this->response->clearParams(); + foreach($this->request->getParams() as $param) { + $this->response->addParam($param); + } + + // Run + try { + $exception = parent::run(); + + + return $exception; + } + catch(\nre\Exception $e) { + return $e; + } + } + + + /** + * Render output. + * + * @return string Rendered output + */ + public function render() + { + // Generate output + parent::render(); + + + // Return output + return $this->response->getOutput(); + } + + + + + /** + * Add multiple request params. + * + * @param array $params Request params to add + */ + private function addParams($params) + { + call_user_func_array( + array( + $this->request, + 'addParams' + ), + $params + ); + } + + } + +?> diff --git a/app/controllers/IntermediateController.inc b/app/controllers/IntermediateController.inc new file mode 100644 index 00000000..923bc1b3 --- /dev/null +++ b/app/controllers/IntermediateController.inc @@ -0,0 +1,197 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\controllers; + + + /** + * Abstract class for implementing a Controller of an IntermediateAgent. + * + * @author Oliver Hanraths + */ + abstract class IntermediateController extends \hhu\z\Controller + { + /** + * Required models + * + * @var array + */ + public $models = array('users', 'userroles', 'seminaries', 'characters'); + /** + * Current user + * + * @var array + */ + public static $user = null; + /** + * Title information + * + * @var array + */ + private $title = array(); + + + + + /** + * Construct a new IntermediateController. + * + * @throws \nre\exceptions\DriverNotFoundException + * @throws \nre\exceptions\DriverNotValidException + * @throws \nre\exceptions\ModelNotValidException + * @throws \nre\exceptions\ModelNotFoundException + * @throws \nre\exceptions\ViewNotFoundException + * @param string $layoutName Name of the current Layout + * @param string $action Current Action + * @param \nre\core\Agent $agent Corresponding Agent + */ + public function __construct($layoutName, $action, $agent) + { + parent::__construct($layoutName, $action, $agent); + } + + + + /** + * Prefilter that is executed before running the Controller. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function preFilter(\nre\core\Request $request, \nre\core\Response $response) + { + parent::preFilter($request, $response); + + // Get userdata + try { + self::$user = $this->Users->getUserById($this->Auth->getUserId()); + self::$user['roles'] = array_map(function($r) { return $r['name']; }, $this->Userroles->getUserrolesForUserById(self::$user['id'])); + } + catch(\nre\exceptions\IdNotFoundException $e) { + } + + // Check permissions + $this->checkPermission($request, $response); + + // Set userdata + $this->set('loggedUser', self::$user); + } + + + /** + * Postfilter that is executed after running the Controller. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function postFilter(\nre\core\Request $request, \nre\core\Response $response) + { + parent::postFilter($request, $response); + } + + + /** + * Return current title information. + * + * @return string Title information + */ + public function getTitle() + { + return $this->title; + } + + + + + /** + * Add a piece of information to the current title. + * + * @param string $title Title information + */ + protected function addTitle($title) + { + $this->title[] = $title; + } + + + /** + * Add a piece of information to the current title and localize + * it. + * + * @param string $title Title information + */ + protected function addTitleLocalized($title) + { + $title = gettext($title); + + $args = func_get_args(); + if(count($args) > 0) { + $title = call_user_func_array( + 'sprintf', + array_merge( + array($title), + array_slice($args, 1) + ) + ); + } + + + $this->title[] = $title; + } + + + + + /** + * Check user permissions. + * + * @throws \nre\exceptions\AccessDeniedException + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + private function checkPermission(\nre\core\Request $request, \nre\core\Response $response) + { + // Determine user + $userRoles = array('guest'); + if(!is_null(self::$user)) { + $userRoles = self::$user['roles']; + } + + + // Do not check error pages + if($response->getParam(0, 'toplevel') == \nre\core\Config::getDefault('toplevel-error')) { + return; + } + if($response->getParam(1, 'intermediate') == \nre\core\Config::getDefault('intermediate-error')) { + return; + } + + // Determine permissions of Intermediate Controller for current action + $controller = $this->agent->controller; + $action = $this->request->getParam(2, 'action'); + if(!property_exists($controller, 'permissions')) { + return; // Allow if nothing is specified + } + if(!array_key_exists($action, $controller->permissions)) { + return; // Allow if Action is not specified + } + $permissions = $controller->permissions[$action]; + + + // Check permissions + if(count(array_intersect($userRoles, $permissions)) == 0) { + throw new \nre\exceptions\AccessDeniedException(); + } + } + + } + +?> diff --git a/app/controllers/QuesttypeController.inc b/app/controllers/QuesttypeController.inc new file mode 100644 index 00000000..50eaac2d --- /dev/null +++ b/app/controllers/QuesttypeController.inc @@ -0,0 +1,320 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\controllers; + + + /** + * Abstract class for implementing a QuesttypeController. + * + * @author Oliver Hanraths + */ + abstract class QuesttypeController extends \hhu\z\Controller + { + /** + * Required models + * + * @var array + */ + public $models = array('seminaries', 'questgroups', 'quests', 'characters'); + + + + + /** + * Save the answers of a Character for a Quest. + * + * @param array $seminary Current Seminary data + * @param array $questgroup Current Questgroup data + * @param array $quest Current Quest data + * @param array $character Current Character data + * @param array $answers Character answers for the Quest + */ + public abstract function saveAnswersOfCharacter($seminary, $questgroup, $quest, $character, $answers); + + + /** + * Save additional data for the answers of a Character for a Quest. + * + * @param array $seminary Current Seminary data + * @param array $questgroup Current Questgroup data + * @param array $quest Current Quest data + * @param array $character Current Character data + * @param array $data Additional (POST-) data + */ + public abstract function saveDataForCharacterAnswers($seminary, $questgroup, $quest, $character, $data); + + + /** + * Check if answers of a Character for a Quest match the correct ones. + * + * @param array $seminary Current Seminary data + * @param array $questgroup Current Questgroup data + * @param array $quest Current Quest data + * @param array $character Current Character data + * @param array $answers Character answers for the Quest + * @return boolean True/false for a right/wrong answer or null for moderator evaluation + */ + public abstract function matchAnswersOfCharacter($seminary, $questgroup, $quest, $character, $answers); + + + /** + * Action: quest. + * + * Show the task of a Quest. + * + * @param array $seminary Current Seminary data + * @param array $questgroup Current Questgroup data + * @param array $quest Current Quest data + * @param array $character Current Character data + * @param \Exception $exception Character submission exception + */ + public abstract function quest($seminary, $questgroup, $quest, $character, $exception); + + + /** + * Action: submission. + * + * Show the submission of a Character for a Quest. + * + * @param array $seminary Current Seminary data + * @param array $questgroup Current Questgroup data + * @param array $quest Current Quest data + * @param array $character Current Character data + */ + public abstract function submission($seminary, $questgroup, $quest, $character); + + + /** + * Action: edittask. + * + * Edit the task of a Quest. + * + * @param array $seminary Current Seminary data + * @param array $questgroup Current Questgroup data + * @param array $quest Current Quest data + */ + public abstract function edittask($seminary, $questgroup, $quest); + + + + + /** + * Load a QuesttypeController. + * + * @static + * @throws \hhu\z\exceptions\QuesttypeControllerNotFoundException + * @throws \hhu\z\exceptions\QuesttypeControllerNotValidException + * @param string $controllerName Name of the QuesttypeController to load + */ + public static function load($controllerName) + { + // Determine full classname + $className = self::getClassName($controllerName); + + try { + // Load class + static::loadClass($controllerName, $className); + + // Validate class + static::checkClass($className, get_class()); + } + catch(\nre\exceptions\ClassNotValidException $e) { + throw new \hhu\z\exceptions\QuesttypeControllerNotValidException($e->getClassName()); + } + catch(\nre\exceptions\ClassNotFoundException $e) { + throw new \hhu\z\exceptions\QuesttypeControllerNotFoundException($e->getClassName()); + } + } + + + /** + * Instantiate a QuesttypeController (Factory Pattern). + * + * @static + * @throws \nre\exceptions\DatamodelException + * @throws \nre\exceptions\DriverNotFoundException + * @throws \nre\exceptions\DriverNotValidException + * @throws \nre\exceptions\ModelNotValidException + * @throws \nre\exceptions\ModelNotFoundException + * @throws \nre\exceptions\ViewNotFoundException + * @throws \hhu\z\exceptions\QuesttypeModelNotValidException + * @throws \hhu\z\exceptions\QuesttypeModelNotFoundException + * @param string $controllerName Name of the QuesttypeController to instantiate + * @param string $layoutName Name of the current Layout + * @param string $action Current Action + * @param \nre\core\Agent $agent Corresponding Agent + */ + public static function factory($controllerName, $layoutName, $action, $agent) + { + // Determine full classname + $className = self::getClassName($controllerName); + + // Construct and return Controller + return new $className($layoutName, $action, $agent); + } + + + /** + * Determine the Controller-classname for the given Questtype-name. + * + * @static + * @param string $questtypeName Questtype-name to get Controller-classname of + * @return string Classname for the Questtype-name + */ + private static function getClassName($questtypeName) + { + $className = \nre\core\ClassLoader::concatClassNames($questtypeName, \nre\core\ClassLoader::stripClassType(\nre\core\ClassLoader::stripNamespace(get_class())), 'controller'); + + + return \nre\configs\AppConfig::$app['namespace']."questtypes\\$className"; + } + + + /** + * Load the class of a QuesttypeController + * + * @static + * @throws \nre\exceptions\ClassNotFoundException + * @param string $questtypeName Name of the QuesttypeController to load + * @param string $fullClassName Name of the class to load + */ + private static function loadClass($questtypeName, $fullClassName) + { + // Determine folder to look in + $className = explode('\\', $fullClassName); + $className = array_pop($className); + + // Determine filename + $fileName = ROOT.DS.\nre\configs\AppConfig::$dirs['questtypes'].DS.strtolower($questtypeName).DS.$className.\nre\configs\CoreConfig::getFileExt('includes'); + + // Check file + if(!file_exists($fileName)) + { + throw new \nre\exceptions\ClassNotFoundException( + $fullClassName + ); + } + + // Include file + include_once($fileName); + } + + + /** + * Check inheritance of the QuesttypeController-class. + * + * @static + * @throws \nre\exceptions\ClassNotValidException + * @param string $className Name of the class to check + * @param string $parentClassName Name of the parent class + */ + public static function checkClass($className, $parentClassName) + { + // Check if class is subclass of parent class + if(!is_subclass_of($className, $parentClassName)) { + throw new \nre\exceptions\ClassNotValidException( + $className + ); + } + } + + + + + /** + * Construct a new application Controller. + * + * @throws \nre\exceptions\DriverNotFoundException + * @throws \nre\exceptions\DriverNotValidException + * @throws \nre\exceptions\ModelNotValidException + * @throws \nre\exceptions\ModelNotFoundException + * @throws \nre\exceptions\ViewNotFoundException + * @throws \hhu\z\exceptions\QuesttypeModelNotValidException + * @throws \hhu\z\exceptions\QuesttypeModelNotFoundException + * @param string $layoutName Name of the current Layout + * @param string $action Current Action + * @param Agent $agent Corresponding Agent + */ + public function __construct($layoutName, $action, $agent) + { + parent::__construct($layoutName, $action, $agent); + } + + + + + /** + * Load the Models of this Controller. + * + * @throws \nre\exceptions\DatamodelException + * @throws \nre\exceptions\DriverNotFoundException + * @throws \nre\exceptions\DriverNotValidException + * @throws \nre\exceptions\ModelNotValidException + * @throws \nre\exceptions\ModelNotFoundException + * @throws \hhu\z\exceptions\QuesttypeModelNotValidException + * @throws \hhu\z\exceptions\QuesttypeModelNotFoundException + */ + protected function loadModels() + { + // Load default models + parent::loadModels(); + + // Load QuesttypeModel + $this->loadModel(); + } + + + /** + * Load the Model of the Questtype. + * + * @throws \hhu\z\exceptions\QuesttypeModelNotValidException + * @throws \hhu\z\exceptions\QuesttypeModelNotFoundException + */ + private function loadModel() + { + // Determine Model + $model = \nre\core\ClassLoader::stripClassType(\nre\core\ClassLoader::stripClassType(\nre\core\ClassLoader::stripNamespace(get_class($this)))); + + // Load class + \hhu\z\models\QuesttypeModel::load($model); + + // Construct Model + $modelName = ucfirst(strtolower($model)); + $this->$modelName = \hhu\z\models\QuesttypeModel::factory($model); + } + + + /** + * Load the View of this QuesttypeController. + * + * @throws \nre\exceptions\ViewNotFoundException + * @param string $layoutName Name of the current Layout + * @param string $action Current Action + */ + protected function loadView($layoutName, $action) + { + // Check Layout name + if(is_null($layoutName)) { + return; + } + + // Determine controller name + $controllerName = \nre\core\ClassLoader::stripClassType(\nre\core\ClassLoader::getClassName(get_class($this))); + + + // Load view + $this->view = \hhu\z\views\QuesttypeView::loadAndFactory($layoutName, $controllerName, $action); + } + + } + +?> diff --git a/app/controllers/SeminaryController.inc b/app/controllers/SeminaryController.inc new file mode 100644 index 00000000..37036f3c --- /dev/null +++ b/app/controllers/SeminaryController.inc @@ -0,0 +1,202 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\controllers; + + + /** + * Abstract class for implementing a Controller for a Seminary and its + * concepts. + * + * @author Oliver Hanraths + */ + abstract class SeminaryController extends \hhu\z\controllers\IntermediateController + { + /** + * Required components + * + * @var array + */ + public $components = array('achievement', 'auth', 'notification'); + /** + * Required models + * + * @var array + */ + public $models = array('seminaries', 'characters', 'characterroles', 'xplevels', 'avatars', 'achievements', 'charactertitles'); + /** + * Current Seminary + * + * var array + */ + public static $seminary = null; + /** + * Character of current user and Seminary + * + * @var array + */ + public static $character = null; + + + + + /** + * Construct a new Seminary Controller. + * + * @throws \nre\exceptions\DriverNotFoundException + * @throws \nre\exceptions\DriverNotValidException + * @throws \nre\exceptions\ModelNotValidException + * @throws \nre\exceptions\ModelNotFoundException + * @throws \nre\exceptions\ViewNotFoundException + * @param string $layoutName Name of the current Layout + * @param string $action Current Action + * @param \nre\core\Agent $agent Corresponding Agent + */ + public function __construct($layoutName, $action, $agent) + { + parent::__construct($layoutName, $action, $agent); + } + + + + /** + * Prefilter that is executed before running the Controller. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function preFilter(\nre\core\Request $request, \nre\core\Response $response) + { + parent::preFilter($request, $response); + + // Get Seminary and Character data + try { + self::$seminary = $this->Seminaries->getSeminaryByUrl($this->request->getParam(3)); + if(!is_null(self::$user)) + { + self::$character = $this->Characters->getCharacterForUserAndSeminary(self::$user['id'], self::$seminary['id']); + self::$character['characterroles'] = array_map(function($r) { return $r['name']; }, $this->Characterroles->getCharacterrolesForCharacterById(self::$character['id'])); + try { + self::$character['xplevel'] = $this->Xplevels->getXPLevelById(self::$character['xplevel_id']); + self::$character['avatar'] = $this->Avatars->getAvatarByTypeAndLevel(self::$seminary['id'], self::$character['charactertype_url'], self::$character['xplevel']['level']); + } + catch(\nre\exceptions\IdNotFoundException $e) { + // No Avatar available + } + if(!is_null(self::$character['charactertitle_id']) && !is_null(self::$character['gender'])) + { + $title = $this->Charactertitles->getTitleById(self::$character['charactertitle_id']); + self::$character['title'] = $title[(self::$character['gender']) ? 'title_male' : 'title_female']; + } + } + } + catch(\nre\exceptions\IdNotFoundException $e) { + } + + // Check permissions + $this->checkPermission($request, $response); + + // Check achievements + $this->checkAchievements($request, 'date'); + $this->checkAchievements($request, 'achievement'); + + // Set Seminary and Character data + $this->set('loggedSeminary', self::$seminary); + $this->set('loggedCharacter', self::$character); + } + + + /** + * Postfilter that is executed after running the Controller. + * + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + public function postFilter(\nre\core\Request $request, \nre\core\Response $response) + { + parent::postFilter($request, $response); + } + + + + /** + * Check user permissions. + * + * @throws AccessDeniedException + * @param \nre\core\Request $request Current request + * @param \nre\core\Response $response Current response + */ + private function checkPermission(\nre\core\Request $request, \nre\core\Response $response) + { + // Do not check index page + if(is_null($request->getParam(3))) { + return; + } + + + // Determine permissions for current action + $action = $this->request->getParam(2, 'action'); + if(!property_exists($this, 'seminaryPermissions')) { + return; // Allow if nothing is specified + } + if(!array_key_exists($action, $this->seminaryPermissions)) { + return; // Allow if Action is not specified + } + $permissions = $this->seminaryPermissions[$action]; + + + // Check permissions + if(is_null(self::$character) || !array_key_exists('characterroles', self::$character) || count(array_intersect(self::$character['characterroles'], $permissions)) == 0) { + throw new \nre\exceptions\AccessDeniedException(); + } + } + + + /** + * Check for newly achieved Achievements. + * + * @param \nre\core\Request $request Current request + * @param array $checkConditions Conditions to check + */ + protected function checkAchievements(\nre\core\Request $request, $checkConditions=null) + { + // Do not check MediaController + if($request->getParam(0, 'toplevel') != \nre\configs\AppConfig::$defaults['toplevel']) { + return; + } + + // Check if Character is present + if(is_null(self::$character)) { + return; + } + + // Check Achievements + $achievements = $this->Achievement->checkAchievements( + self::$seminary['id'], + self::$character['id'], + $checkConditions + ); + + // Add notifications + foreach($achievements as &$achievement) + { + $this->Notification->addNotification( + \hhu\z\controllers\components\NotificationComponent::TYPE_ACHIEVEMENT, + $achievement['title'], + $this->linker->link(array('achievements', 'index', self::$seminary['url']), 0, true, null, true, $achievement['url']), + (!is_null($achievement['achieved_achievementsmedia_id']) ? $this->linker->link(array('media','achievement',self::$seminary['url'],$achievement['url'])) : null) + ); + } + } + + } + +?> diff --git a/app/controllers/StationtypeController.inc b/app/controllers/StationtypeController.inc new file mode 100644 index 00000000..fbf48ba4 --- /dev/null +++ b/app/controllers/StationtypeController.inc @@ -0,0 +1,320 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\controllers; + + + /** + * Abstract class for implementing a StationtypeController. + * + * @author Oliver Hanraths + */ + abstract class StationtypeController extends \hhu\z\Controller + { + /** + * Required models + * + * @var array + */ + public $models = array('seminaries'); + + + + + + /** + * Save the answer of a Character group for a Station. + * + * @param array $seminary Current Seminary data + * @param array $groupsgroup Current Groups group data + * @param array $quest Current Quest data + * @param array $station Current Station data + * @param array $charactergroup Current Character group data + * @param array $answer Character group answer for the Station + */ + public abstract function saveAnswer($seminary, $groupsgroup, $quest, $station, $charactergroup, $answer); + + + /** + * Check if answer of a Character group for a Station matches the correct one. + * + * @param array $seminary Current Seminary data + * @param array $groupsgroup Current Groups group data + * @param array $quest Current Quest data + * @param array $station Current Station data + * @param array $charactergroup Current Character group data + * @param array $answer Character group answer for the Station + * @return boolean True/false for a right/wrong answer + */ + public abstract function matchAnswer($seminary, $groupsgroup, $quest, $station, $charactergroup, $answer); + + + /** + * Action: quest. + * + * Show the task of a Station. + * + * @param array $seminary Current Seminary data + * @param array $groupsgroup Current Groups group data + * @param array $quest Current Quest data + * @param array $station Current Station data + * @param array $charactergroup Current Character group data + */ + public abstract function quest($seminary, $groupsgroup, $quest, $station, $charactergroup); + + + /** + * Action: edittask. + * + * Edit the task of a Station. + * + * @param array $seminary Current Seminary data + * @param array $groupsgroup Current Groups group data + * @param array $quest Current Quest data + * @param array $station Current Station data + */ + public abstract function edittask($seminary, $groupsgroup, $quest, $station); + + + + + /** + * Load a StationtypeController. + * + * @static + * @throws \hhu\z\exceptions\StationtypeControllerNotFoundException + * @throws \hhu\z\exceptions\StationtypeControllerNotValidException + * @param string $controllerName Name of the StationtypeController to load + */ + public static function load($controllerName) + { + // Determine full classname + $className = self::getClassName($controllerName); + + try { + // Load class + static::loadClass($controllerName, $className); + + // Validate class + static::checkClass($className, get_class()); + } + catch(\nre\exceptions\ClassNotValidException $e) { + throw new \hhu\z\exceptions\StationtypeControllerNotValidException($e->getClassName()); + } + catch(\nre\exceptions\ClassNotFoundException $e) { + throw new \hhu\z\exceptions\StationtypeControllerNotFoundException($e->getClassName()); + } + } + + + /** + * Instantiate a StationtypeController (Factory Pattern). + * + * @static + * @throws \nre\exceptions\DatamodelException + * @throws \nre\exceptions\DriverNotFoundException + * @throws \nre\exceptions\DriverNotValidException + * @throws \nre\exceptions\ModelNotValidException + * @throws \nre\exceptions\ModelNotFoundException + * @throws \nre\exceptions\ViewNotFoundException + * @throws \hhu\z\exceptions\StationtypeModelNotValidException + * @throws \hhu\z\exceptions\StationtypeModelNotFoundException + * @param string $controllerName Name of the StationtypeController to instantiate + * @param string $layoutName Name of the current Layout + * @param string $action Current Action + * @param \nre\core\Agent $agent Corresponding Agent + */ + public static function factory($controllerName, $layoutName, $action, $agent) + { + // Determine full classname + $className = self::getClassName($controllerName); + + // Construct and return Controller + return new $className($layoutName, $action, $agent); + } + + + /** + * Determine the Controller-classname for the given Stationtype-name. + * + * @static + * @param string $stationtypeName Stationtype-name to get Controller-classname of + * @return string Classname for the Stationtype-name + */ + private static function getClassName($stationtypeName) + { + $className = \nre\core\ClassLoader::concatClassNames( + $stationtypeName, + \nre\core\ClassLoader::stripClassType(\nre\core\ClassLoader::stripNamespace(get_class())), + 'controller' + ); + + + return \nre\configs\AppConfig::$app['namespace']."stationtypes\\$className"; + } + + + /** + * Load the class of a StationtypeController + * + * @static + * @throws \nre\exceptions\ClassNotFoundException + * @param string $stationtypeName Name of the StationtypeController to load + * @param string $fullClassName Name of the class to load + */ + private static function loadClass($stationtypeName, $fullClassName) + { + // Determine folder to look in + $className = explode('\\', $fullClassName); + $className = array_pop($className); + + // Determine filename + $fileName = ROOT.DS. + \nre\configs\AppConfig::$dirs['stationtypes'].DS. + strtolower($stationtypeName).DS. + $className.\nre\configs\CoreConfig::getFileExt('includes'); + + // Check file + if(!file_exists($fileName)) + { + throw new \nre\exceptions\ClassNotFoundException( + $fullClassName + ); + } + + // Include file + include_once($fileName); + } + + + /** + * Check inheritance of the StationtypeController-class. + * + * @static + * @throws \nre\exceptions\ClassNotValidException + * @param string $className Name of the class to check + * @param string $parentClassName Name of the parent class + */ + public static function checkClass($className, $parentClassName) + { + // Check if class is subclass of parent class + if(!is_subclass_of($className, $parentClassName)) { + throw new \nre\exceptions\ClassNotValidException( + $className + ); + } + } + + + + + /** + * Construct a new application Controller. + * + * @throws \nre\exceptions\DriverNotFoundException + * @throws \nre\exceptions\DriverNotValidException + * @throws \nre\exceptions\ModelNotValidException + * @throws \nre\exceptions\ModelNotFoundException + * @throws \nre\exceptions\ViewNotFoundException + * @throws \hhu\z\exceptions\StationtypeModelNotValidException + * @throws \hhu\z\exceptions\StationtypeModelNotFoundException + * @param string $layoutName Name of the current Layout + * @param string $action Current Action + * @param Agent $agent Corresponding Agent + */ + public function __construct($layoutName, $action, $agent) + { + parent::__construct($layoutName, $action, $agent); + } + + + + + /** + * Load the Models of this Controller. + * + * @throws \nre\exceptions\DatamodelException + * @throws \nre\exceptions\DriverNotFoundException + * @throws \nre\exceptions\DriverNotValidException + * @throws \nre\exceptions\ModelNotValidException + * @throws \nre\exceptions\ModelNotFoundException + * @throws \hhu\z\exceptions\StationtypeModelNotValidException + * @throws \hhu\z\exceptions\StationtypeModelNotFoundException + */ + protected function loadModels() + { + // Load default models + parent::loadModels(); + + // Load StationtypeModel + $this->loadModel(); + } + + + /** + * Load the Model of the Stationtype. + * + * @throws \hhu\z\exceptions\StationtypeModelNotValidException + * @throws \hhu\z\exceptions\StationtypeModelNotFoundException + */ + private function loadModel() + { + // Determine Model + $model = \nre\core\ClassLoader::stripClassType( + \nre\core\ClassLoader::stripClassType( + \nre\core\ClassLoader::stripNamespace( + get_class($this) + ) + ) + ); + + // Load class + \hhu\z\models\StationtypeModel::load($model); + + // Construct Model + $modelName = ucfirst(strtolower($model)); + $this->$modelName = \hhu\z\models\StationtypeModel::factory($model); + } + + + /** + * Load the View of this StationtypeController. + * + * @throws \nre\exceptions\ViewNotFoundException + * @param string $layoutName Name of the current Layout + * @param string $action Current Action + */ + protected function loadView($layoutName, $action) + { + // Check Layout name + if(is_null($layoutName)) { + return; + } + + // Determine controller name + $controllerName = \nre\core\ClassLoader::stripClassType( + \nre\core\ClassLoader::getClassName( + get_class($this) + ) + ); + + + // Load view + $this->view = \hhu\z\views\StationtypeView::loadAndFactory( + $layoutName, + $controllerName, + $action + ); + } + + } + +?> diff --git a/app/exceptions/FileCopyException.inc b/app/exceptions/FileCopyException.inc new file mode 100644 index 00000000..485428ff --- /dev/null +++ b/app/exceptions/FileCopyException.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\exceptions; + + + /** + * Exception: File copy went wrong + * + * @author Oliver Hanraths + */ + class FileCopyException extends \nre\core\Exception + { + /** + * Error code + * + * @var int + */ + const CODE = 204; + /** + * Error message + * + * @var string + */ + const MESSAGE = 'File copy went wrong'; + + /** + * Nested error + * + * @var array + */ + private $nestedError; + + + + + /** + * Construct a new exception. + * + * @param array $nestedError Nested error + * @param string $message Error message + * @param int $code Error code + */ + function __construct($nestedError, $message=self::MESSAGE, $code=self::CODE) + { + parent::__construct( + $message, + $code, + $nestedError['message'] + ); + + // Store values + $this->nestedError = $nestedError; + } + + + + + /** + * Get nested error. + * + * @return Nested error + */ + public function getNestedError() + { + return $this->nestedError; + } + + } + +?> diff --git a/app/exceptions/FileUploadException.inc b/app/exceptions/FileUploadException.inc new file mode 100644 index 00000000..340bd61a --- /dev/null +++ b/app/exceptions/FileUploadException.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\exceptions; + + + /** + * Exception: File upload went wrong + * + * @author Oliver Hanraths + */ + class FileUploadException extends \nre\core\Exception + { + /** + * Error code + * + * @var int + */ + const CODE = 203; + /** + * Error message + * + * @var string + */ + const MESSAGE = 'File upload went wrong'; + + /** + * Nested message + * + * @var string + */ + private $nestedMessage; + + + + + /** + * Construct a new exception. + * + * @param string $nestedMessage Nested message + * @param string $message Error message + * @param int $code Error code + */ + function __construct($nestedMessage=null, $message=self::MESSAGE, $code=self::CODE) + { + parent::__construct( + $message, + $code, + $nestedMessage + ); + + // Store values + $this->nestedMessage = $nestedMessage; + } + + + + + /** + * Get nested message. + * + * @return Nested message + */ + public function getNestedMessage() + { + return $this->nestedMessage; + } + + } + +?> diff --git a/app/exceptions/MailingException.inc b/app/exceptions/MailingException.inc new file mode 100644 index 00000000..a6ff9736 --- /dev/null +++ b/app/exceptions/MailingException.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\exceptions; + + + /** + * Exception during sending of an e‑mail. + * + * @author Oliver Hanraths + */ + class MailingException extends \nre\core\Exception + { + /** + * Error code + * + * @var int + */ + const CODE = 300; + /** + * Error message + * + * @var string + */ + const MESSAGE = 'Error sending e‑mail'; + + /** + * Nested error message + * + * @var string + */ + private $error; + + + + + /** + * Construct a new exception. + * + * @param int $error Nested error message + * @param string $message Error message + * @param int $code Error code + */ + function __construct($error, $message=self::MESSAGE, $code=self::CODE) + { + parent::__construct( + $message, + $code, + $error + ); + + // Store values + $this->error = $error; + } + + + + + /** + * Get nested error message. + * + * @return string Nested error message + */ + public function getError() + { + return $this->error; + } + + } + +?> diff --git a/app/exceptions/MaxFilesizeException.inc b/app/exceptions/MaxFilesizeException.inc new file mode 100644 index 00000000..0de53993 --- /dev/null +++ b/app/exceptions/MaxFilesizeException.inc @@ -0,0 +1,54 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\exceptions; + + + /** + * Exception: File exceeds size maximum. + * + * @author Oliver Hanraths + */ + class MaxFilesizeException extends \nre\core\Exception + { + /** + * Error code + * + * @var int + */ + const CODE = 202; + /** + * Error message + * + * @var string + */ + const MESSAGE = 'File exceeds size maximum'; + + + + + /** + * Construct a new exception. + * + * @param string $message Error message + * @param int $code Error code + */ + function __construct($message=self::MESSAGE, $code=self::CODE) + { + parent::__construct( + $message, + $code + ); + } + + } + +?> diff --git a/app/exceptions/QuesttypeAgentNotFoundException.inc b/app/exceptions/QuesttypeAgentNotFoundException.inc new file mode 100644 index 00000000..b2b9dcb4 --- /dev/null +++ b/app/exceptions/QuesttypeAgentNotFoundException.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\exceptions; + + + /** + * Exception: QuesttypeAgent not found. + * + * @author Oliver Hanraths + */ + class QuesttypeAgentNotFoundException extends \nre\core\Exception + { + /** + * Error code + * + * @var int + */ + const CODE = 101; + /** + * Error message + * + * @var string + */ + const MESSAGE = 'QuesttypeAgent not found'; + + /** + * Name of the class that was not found + * + * @var string + */ + private $questtypeName; + + + + + /** + * Construct a new exception. + * + * @param string $questtypeName Name of the QuesttypeAgent that was not found + * @param string $message Error message + * @param int $code Error code + */ + function __construct($questtypeName, $message=self::MESSAGE, $code=self::CODE) + { + parent::__construct( + $message, + $code, + $questtypeName + ); + + // Store values + $this->questtypeName = $questtypeName; + } + + + + + /** + * Get the name of the QuesttypeAgent that was not found. + * + * @return string Name of the QuesttypeAgent that was not found + */ + public function getClassName() + { + return $this->questtypeName; + } + + } + +?> diff --git a/app/exceptions/QuesttypeAgentNotValidException.inc b/app/exceptions/QuesttypeAgentNotValidException.inc new file mode 100644 index 00000000..6e499919 --- /dev/null +++ b/app/exceptions/QuesttypeAgentNotValidException.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\exceptions; + + + /** + * Exception: QuesttypeAgent not valid. + * + * @author Oliver Hanraths + */ + class QuesttypeAgentNotValidException extends \nre\core\Exception + { + /** + * Error code + * + * @var int + */ + const CODE = 102; + /** + * Error message + * + * @var string + */ + const MESSAGE = 'QuesttypeAgent not valid'; + + /** + * Name of the invalid class + * + * @var string + */ + private $questtypeName; + + + + + /** + * Construct a new exception. + * + * @param string $questtypeName Name of the invalid QuesttypeAgent + * @param string $message Error message + * @param int $code Error code + */ + function __construct($questtypeName, $message=self::MESSAGE, $code=self::CODE) + { + parent::__construct( + $message, + $code, + $questtypeName + ); + + // Store value + $this->questtypeName = $questtypeName; + } + + + + + /** + * Get the name of the invalid QuesttypeAgent. + * + * @return string Name of the invalid QuesttypeAgent + */ + public function getClassName() + { + return $this->questtypeName; + } + + } + +?> diff --git a/app/exceptions/QuesttypeControllerNotFoundException.inc b/app/exceptions/QuesttypeControllerNotFoundException.inc new file mode 100644 index 00000000..3787ebac --- /dev/null +++ b/app/exceptions/QuesttypeControllerNotFoundException.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\exceptions; + + + /** + * Exception: QuesttypeController not found. + * + * @author Oliver Hanraths + */ + class QuesttypeControllerNotFoundException extends \nre\core\Exception + { + /** + * Error code + * + * @var int + */ + const CODE = 103; + /** + * Error message + * + * @var string + */ + const MESSAGE = 'QuesttypeController not found'; + + /** + * Name of the class that was not found + * + * @var string + */ + private $questtypeName; + + + + + /** + * Construct a new exception. + * + * @param string $questtypeName Name of the QuesttypeController that was not found + * @param string $message Error message + * @param int $code Error code + */ + function __construct($questtypeName, $message=self::MESSAGE, $code=self::CODE) + { + parent::__construct( + $message, + $code, + $questtypeName + ); + + // Store values + $this->questtypeName = $questtypeName; + } + + + + + /** + * Get the name of the QuesttypeController that was not found. + * + * @return string Name of the QuesttypeController that was not found + */ + public function getClassName() + { + return $this->questtypeName; + } + + } + +?> diff --git a/app/exceptions/QuesttypeControllerNotValidException.inc b/app/exceptions/QuesttypeControllerNotValidException.inc new file mode 100644 index 00000000..3b0ef93d --- /dev/null +++ b/app/exceptions/QuesttypeControllerNotValidException.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\exceptions; + + + /** + * Exception: QuesttypeController not valid. + * + * @author Oliver Hanraths + */ + class QuesttypeControllerNotValidException extends \nre\core\Exception + { + /** + * Error code + * + * @var int + */ + const CODE = 104; + /** + * Error message + * + * @var string + */ + const MESSAGE = 'QuesttypeController not valid'; + + /** + * Name of the invalid class + * + * @var string + */ + private $questtypeName; + + + + + /** + * Construct a new exception. + * + * @param string $questtypeName Name of the invalid QuesttypeController + * @param string $message Error message + * @param int $code Error code + */ + function __construct($questtypeName, $message=self::MESSAGE, $code=self::CODE) + { + parent::__construct( + $message, + $code, + $questtypeName + ); + + // Store value + $this->questtypeName = $questtypeName; + } + + + + + /** + * Get the name of the invalid QuesttypeController. + * + * @return string Name of the invalid QuesttypeController + */ + public function getClassName() + { + return $this->questtypeName; + } + + } + +?> diff --git a/app/exceptions/QuesttypeModelNotFoundException.inc b/app/exceptions/QuesttypeModelNotFoundException.inc new file mode 100644 index 00000000..363013d6 --- /dev/null +++ b/app/exceptions/QuesttypeModelNotFoundException.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\exceptions; + + + /** + * Exception: QuesttypeModel not found. + * + * @author Oliver Hanraths + */ + class QuesttypeModelNotFoundException extends \nre\core\Exception + { + /** + * Error code + * + * @var int + */ + const CODE = 105; + /** + * Error message + * + * @var string + */ + const MESSAGE = 'QuesttypeModel not found'; + + /** + * Name of the class that was not found + * + * @var string + */ + private $questtypeName; + + + + + /** + * Construct a new exception. + * + * @param string $questtypeName Name of the QuesttypeModel that was not found + * @param string $message Error message + * @param int $code Error code + */ + function __construct($questtypeName, $message=self::MESSAGE, $code=self::CODE) + { + parent::__construct( + $message, + $code, + $questtypeName + ); + + // Store values + $this->questtypeName = $questtypeName; + } + + + + + /** + * Get the name of the QuesttypeModel that was not found. + * + * @return string Name of the QuesttypeModel that was not found + */ + public function getClassName() + { + return $this->questtypeName; + } + + } + +?> diff --git a/app/exceptions/QuesttypeModelNotValidException.inc b/app/exceptions/QuesttypeModelNotValidException.inc new file mode 100644 index 00000000..31a5248d --- /dev/null +++ b/app/exceptions/QuesttypeModelNotValidException.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\exceptions; + + + /** + * Exception: QuesttypeModel not valid. + * + * @author Oliver Hanraths + */ + class QuesttypeModelNotValidException extends \nre\core\Exception + { + /** + * Error code + * + * @var int + */ + const CODE = 106; + /** + * Error message + * + * @var string + */ + const MESSAGE = 'QuesttypeModel not valid'; + + /** + * Name of the invalid class + * + * @var string + */ + private $questtypeName; + + + + + /** + * Construct a new exception. + * + * @param string $questtypeName Name of the invalid QuesttypeModel + * @param string $message Error message + * @param int $code Error code + */ + function __construct($questtypeName, $message=self::MESSAGE, $code=self::CODE) + { + parent::__construct( + $message, + $code, + $questtypeName + ); + + // Store value + $this->questtypeName = $questtypeName; + } + + + + + /** + * Get the name of the invalid QuesttypeModel. + * + * @return string Name of the invalid QuesttypeModel + */ + public function getClassName() + { + return $this->questtypeName; + } + + } + +?> diff --git a/app/exceptions/StationtypeAgentNotFoundException.inc b/app/exceptions/StationtypeAgentNotFoundException.inc new file mode 100644 index 00000000..90347b40 --- /dev/null +++ b/app/exceptions/StationtypeAgentNotFoundException.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\exceptions; + + + /** + * Exception: StationtypeAgent not found. + * + * @author Oliver Hanraths + */ + class StationtypeAgentNotFoundException extends \nre\core\Exception + { + /** + * Error code + * + * @var int + */ + const CODE = 401; + /** + * Error message + * + * @var string + */ + const MESSAGE = 'StationtypeAgent not found'; + + /** + * Name of the class that was not found + * + * @var string + */ + private $stationtypeName; + + + + + /** + * Construct a new exception. + * + * @param string $stationtypeName Name of the StationtypeAgent that was not found + * @param string $message Error message + * @param int $code Error code + */ + function __construct($stationtypeName, $message=self::MESSAGE, $code=self::CODE) + { + parent::__construct( + $message, + $code, + $stationtypeName + ); + + // Store values + $this->stationtypeName = $stationtypeName; + } + + + + + /** + * Get the name of the StationtypeAgent that was not found. + * + * @return string Name of the StationtypeAgent that was not found + */ + public function getClassName() + { + return $this->stationtypeName; + } + + } + +?> diff --git a/app/exceptions/StationtypeAgentNotValidException.inc b/app/exceptions/StationtypeAgentNotValidException.inc new file mode 100644 index 00000000..26ed5f96 --- /dev/null +++ b/app/exceptions/StationtypeAgentNotValidException.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\exceptions; + + + /** + * Exception: StationtypeAgent not valid. + * + * @author Oliver Hanraths + */ + class StationtypeAgentNotValidException extends \nre\core\Exception + { + /** + * Error code + * + * @var int + */ + const CODE = 402; + /** + * Error message + * + * @var string + */ + const MESSAGE = 'StationtypeAgent not valid'; + + /** + * Name of the invalid class + * + * @var string + */ + private $stationtypeName; + + + + + /** + * Construct a new exception. + * + * @param string $stationtypeName Name of the invalid StationtypeAgent + * @param string $message Error message + * @param int $code Error code + */ + function __construct($stationtypeName, $message=self::MESSAGE, $code=self::CODE) + { + parent::__construct( + $message, + $code, + $stationtypeName + ); + + // Store value + $this->stationtypeName = $stationtypeName; + } + + + + + /** + * Get the name of the invalid StationtypeAgent. + * + * @return string Name of the invalid StationtypeAgent + */ + public function getClassName() + { + return $this->stationtypeName; + } + + } + +?> diff --git a/app/exceptions/StationtypeControllerNotFoundException.inc b/app/exceptions/StationtypeControllerNotFoundException.inc new file mode 100644 index 00000000..063fc9c9 --- /dev/null +++ b/app/exceptions/StationtypeControllerNotFoundException.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\exceptions; + + + /** + * Exception: StationtypeController not found. + * + * @author Oliver Hanraths + */ + class StationtypeControllerNotFoundException extends \nre\core\Exception + { + /** + * Error code + * + * @var int + */ + const CODE = 403; + /** + * Error message + * + * @var string + */ + const MESSAGE = 'StationtypeController not found'; + + /** + * Name of the class that was not found + * + * @var string + */ + private $stationtypeName; + + + + + /** + * Construct a new exception. + * + * @param string $stationtypeName Name of the StationtypeController that was not found + * @param string $message Error message + * @param int $code Error code + */ + function __construct($stationtypeName, $message=self::MESSAGE, $code=self::CODE) + { + parent::__construct( + $message, + $code, + $stationtypeName + ); + + // Store values + $this->stationtypeName = $stationtypeName; + } + + + + + /** + * Get the name of the StationtypeController that was not found. + * + * @return string Name of the StationtypeController that was not found + */ + public function getClassName() + { + return $this->stationtypeName; + } + + } + +?> diff --git a/app/exceptions/StationtypeControllerNotValidException.inc b/app/exceptions/StationtypeControllerNotValidException.inc new file mode 100644 index 00000000..7bba0e1f --- /dev/null +++ b/app/exceptions/StationtypeControllerNotValidException.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\exceptions; + + + /** + * Exception: StationtypeController not valid. + * + * @author Oliver Hanraths + */ + class StationtypeControllerNotValidException extends \nre\core\Exception + { + /** + * Error code + * + * @var int + */ + const CODE = 404; + /** + * Error message + * + * @var string + */ + const MESSAGE = 'StationtypeController not valid'; + + /** + * Name of the invalid class + * + * @var string + */ + private $stationtypeName; + + + + + /** + * Construct a new exception. + * + * @param string $stationtypeName Name of the invalid StationtypeController + * @param string $message Error message + * @param int $code Error code + */ + function __construct($stationtypeName, $message=self::MESSAGE, $code=self::CODE) + { + parent::__construct( + $message, + $code, + $stationtypeName + ); + + // Store value + $this->stationtypeName = $stationtypeName; + } + + + + + /** + * Get the name of the invalid StationtypeController. + * + * @return string Name of the invalid StationtypeController + */ + public function getClassName() + { + return $this->stationtypeName; + } + + } + +?> diff --git a/app/exceptions/StationtypeModelNotFoundException.inc b/app/exceptions/StationtypeModelNotFoundException.inc new file mode 100644 index 00000000..5c032e77 --- /dev/null +++ b/app/exceptions/StationtypeModelNotFoundException.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\exceptions; + + + /** + * Exception: StationtypeModel not found. + * + * @author Oliver Hanraths + */ + class StationtypeModelNotFoundException extends \nre\core\Exception + { + /** + * Error code + * + * @var int + */ + const CODE = 405; + /** + * Error message + * + * @var string + */ + const MESSAGE = 'StationtypeModel not found'; + + /** + * Name of the class that was not found + * + * @var string + */ + private $stationtypeName; + + + + + /** + * Construct a new exception. + * + * @param string $stationtypeName Name of the StationtypeModel that was not found + * @param string $message Error message + * @param int $code Error code + */ + function __construct($stationtypeName, $message=self::MESSAGE, $code=self::CODE) + { + parent::__construct( + $message, + $code, + $stationtypeName + ); + + // Store values + $this->stationtypeName = $stationtypeName; + } + + + + + /** + * Get the name of the StationtypeModel that was not found. + * + * @return string Name of the StationtypeModel that was not found + */ + public function getClassName() + { + return $this->stationtypeName; + } + + } + +?> diff --git a/app/exceptions/StationtypeModelNotValidException.inc b/app/exceptions/StationtypeModelNotValidException.inc new file mode 100644 index 00000000..e9fcd728 --- /dev/null +++ b/app/exceptions/StationtypeModelNotValidException.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\exceptions; + + + /** + * Exception: StationxuesttypeModel not valid. + * + * @author Oliver Hanraths + */ + class StationtypeModelNotValidException extends \nre\core\Exception + { + /** + * Error code + * + * @var int + */ + const CODE = 406; + /** + * Error message + * + * @var string + */ + const MESSAGE = 'StationtypeModel not valid'; + + /** + * Name of the invalid class + * + * @var string + */ + private $stationtypeName; + + + + + /** + * Construct a new exception. + * + * @param string $stationtypeName Name of the invalid StationtypeModel + * @param string $message Error message + * @param int $code Error code + */ + function __construct($stationtypeName, $message=self::MESSAGE, $code=self::CODE) + { + parent::__construct( + $message, + $code, + $stationtypeName + ); + + // Store value + $this->stationtypeName = $stationtypeName; + } + + + + + /** + * Get the name of the invalid StationtypeModel. + * + * @return string Name of the invalid StationtypeModel + */ + public function getClassName() + { + return $this->stationtypeName; + } + + } + +?> diff --git a/app/exceptions/SubmissionNotValidException.inc b/app/exceptions/SubmissionNotValidException.inc new file mode 100644 index 00000000..21cbee55 --- /dev/null +++ b/app/exceptions/SubmissionNotValidException.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\exceptions; + + + /** + * Exception: Character submission not valid. + * + * @author Oliver Hanraths + */ + class SubmissionNotValidException extends \nre\core\Exception + { + /** + * Error code + * + * @var int + */ + const CODE = 200; + /** + * Error message + * + * @var string + */ + const MESSAGE = 'Character submission not valid'; + + /** + * Nested exception + * + * @var Exception + */ + private $nestedException; + + + + + /** + * Construct a new exception. + * + * @param string $nestedException Nested exception + * @param string $message Error message + * @param int $code Error code + */ + function __construct($nestedException, $message=self::MESSAGE, $code=self::CODE) + { + parent::__construct( + $message, + $code, + $nestedException + ); + + // Store value + $this->nestedException = $nestedException; + } + + + + + /** + * Get Nested exception. + * + * @return string Nested exception + */ + public function getNestedException() + { + return $this->nestedException; + } + + } + +?> diff --git a/app/exceptions/WrongFiletypeException.inc b/app/exceptions/WrongFiletypeException.inc new file mode 100644 index 00000000..8a734dc0 --- /dev/null +++ b/app/exceptions/WrongFiletypeException.inc @@ -0,0 +1,79 @@ + + * @copyright 2014 Heinrich-Heine-Universität Düsseldorf + * @license http://www.gnu.org/licenses/gpl.html + * @link https://bitbucket.org/coderkun/the-legend-of-z + */ + + namespace hhu\z\exceptions; + + + /** + * Exception: File has wrong filetype. + * + * @author Oliver Hanraths + */ + class WrongFiletypeException extends \nre\core\Exception + { + /** + * Error code + * + * @var int + */ + const CODE = 201; + /** + * Error message + * + * @var string + */ + const MESSAGE = 'File has wrong type “%s”'; + + /** + * Type of file + * + * @var string + */ + private $type; + + + + + /** + * Construct a new exception. + * + * @param string $type Type of file + * @param string $message Error message + * @param int $code Error code + */ + function __construct($type, $message=self::MESSAGE, $code=self::CODE) + { + parent::__construct( + $message, + $code, + $type + ); + + // Store values + $this->type = $type; + } + + + + + /** + * Get type of file. + * + * @return Type of file + */ + public function getType() + { + return $this->type; + } + + } + +?> diff --git a/app/lib/Netcarver/Textile/DataBag.php b/app/lib/Netcarver/Textile/DataBag.php new file mode 100644 index 00000000..0a1d9401 --- /dev/null +++ b/app/lib/Netcarver/Textile/DataBag.php @@ -0,0 +1,99 @@ + + * use Netcarver\Textile\DataBag; + * $plant = new DataBag(array('key' => 'value')); + * $plant->flower('rose')->color('red'); + * + */ + +class DataBag +{ + /** + * The data array stored in the bag. + * + * @var array + */ + + protected $data; + + /** + * Constructor. + * + * @param array|null $data The initial data array stored in the bag + */ + + public function __construct(array $data = null) + { + $this->data = (array) $data; + } + + /** + * Adds a value to the bag. + * + * Empty values are rejected, unless the + * second argument is set TRUE. + * + * + * use Netcarver\Textile\DataBag; + * $plant = new DataBag(array('key' => 'value')); + * $plant->flower('rose')->color('red')->emptyValue(false, true); + * + * + * @param string $name The name + * @param array $params Arguments + * @return DataBag + */ + + public function __call($name, array $params) + { + if (!empty($params[1]) || !empty($params[0])) { + $this->data[$name] = $params[0]; + } + + return $this; + } +} diff --git a/app/lib/Netcarver/Textile/Parser.php b/app/lib/Netcarver/Textile/Parser.php new file mode 100644 index 00000000..4c150ec3 --- /dev/null +++ b/app/lib/Netcarver/Textile/Parser.php @@ -0,0 +1,4042 @@ + + * All rights reserved. + * + * Thanks to Carlo Zottmann for refactoring + * Textile's procedural code into a class framework + * + * Additions and fixes Copyright (c) 2006 Alex Shiels https://twitter.com/tellyworth + * Additions and fixes Copyright (c) 2010 Stef Dawson http://stefdawson.com/ + * Additions and fixes Copyright (c) 2010-13 Netcarver https://github.com/netcarver + * Additions and fixes Copyright (c) 2011 Jeff Soo http://ipsedixit.net/ + * Additions and fixes Copyright (c) 2012 Robert Wetzlmayr http://wetzlmayr.com/ + * Additions and fixes Copyright (c) 2012-13 Jukka Svahn http://rahforum.biz/ + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * * Neither the name Textile nor the names of its contributors may be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* +Textile usage examples. + +Block modifier syntax: + + Header: h(1-6). + Paragraphs beginning with 'hn. ' (where n is 1-6) are wrapped in header tags. + Example: h1. Header... ->

Header...

+ + Paragraph: p. (also applied by default) + Example: p. Text ->

Text

+ + Blockquote: bq. + Example: bq. Block quotation... ->
Block quotation...
+ + Blockquote with citation: bq.:http://citation.url + Example: bq.:http://textism.com/ Text... + ->
Text...
+ + Footnote: fn(1-100). + Example: fn1. Footnote... ->

Footnote...

+ + Numeric list: #, ## + Consecutive paragraphs beginning with # are wrapped in ordered list tags. + Example:
  1. ordered list
+ + Bulleted list: *, ** + Consecutive paragraphs beginning with * are wrapped in unordered list tags. + Example:
  • unordered list
+ + Definition list: + Terms ;, ;; + Definitions :, :: + Consecutive paragraphs beginning with ; or : are wrapped in definition list tags. + Example:
term
definition
+ + Redcloth-style Definition list: + - Term1 := Definition1 + - Term2 := Extended + definition =: + +Phrase modifier syntax: + + _emphasis_ -> emphasis + __italic__ -> italic + *strong* -> strong + **bold** -> bold + ??citation?? -> citation + -deleted text- -> deleted + +inserted text+ -> inserted + ^superscript^ -> superscript + ~subscript~ -> subscript + @code@ -> computer code + %(bob)span% -> span + + ==notextile== -> leave text alone (do not format) + + "linktext":url -> linktext +"linktext(title)":url -> linktext + "$":url -> url + "$(title)":url -> url + + !imageurl! -> + !imageurl(alt text)! -> alt text + !imageurl!:linkurl -> + +ABC(Always Be Closing) -> ABC + +Linked Notes: + + Allows the generation of an automated list of notes with links. + + Linked notes are composed of three parts, a set of named _definitions_, a set of + _references_ to those definitions and one or more _placeholders_ indicating where + the consolidated list of notes is to be placed in your document. + + Definitions: + + Each note definition must occur in its own paragraph and should look like this... + + note#mynotelabel. Your definition text here. + + You are free to use whatever label you wish after the # as long as it is made up + of letters, numbers, colon(:) or dash(-). + + References: + + Each note reference is marked in your text like this[#mynotelabel] and + it will be replaced with a superscript reference that links into the list of + note definitions. + + List placeholder(s): + + The note list can go anywhere in your document. You have to indicate where + like this: + + notelist. + + notelist can take attributes (class#id) like this: notelist(class#id). + + By default, the note list will show each definition in the order that they + are referenced in the text by the _references_. It will show each definition with + a full list of backlinks to each reference. If you do not want this, you can choose + to override the backlinks like this... + + notelist(class#id)!. Produces a list with no backlinks. + notelist(class#id)^. Produces a list with only the first backlink. + + Should you wish to have a specific definition display backlinks differently to this + then you can override the backlink method by appending a link override to the + _definition_ you wish to customise. + + note#label. Uses the citelist's setting for backlinks. + note#label!. Causes that definition to have no backlinks. + note#label^. Causes that definition to have one backlink (to the first ref.) + note#label*. Causes that definition to have all backlinks. + + Any unreferenced notes will be left out of the list unless you explicitly state + you want them by adding a '+'. Like this... + + notelist(class#id)!+. Giving a list of all notes without any backlinks. + + You can mix and match the list backlink control and unreferenced links controls + but the backlink control (if any) must go first. Like so: notelist^+. , not + like this: notelist+^. + + Example... + Scientists say[#lavader] the moon is small. + + note#other. An unreferenced note. + + note#lavader(myliclass). "Proof":http://example.com of a small moon. + + notelist(myclass#myid)+. + + Would output (the actual IDs used would be randomised)... + +

Scientists say1 the moon is small.

+ +
    +
  1. a + Proof of a small moon.
  2. +
  3. An unreferenced note.
  4. +
+ + The 'a b c' backlink characters can be altered too. + For example if you wanted the notes to have numeric backlinks starting from 1: + + notelist:1. + +Table syntax: + + Simple tables: + + |a|simple|table|row| + |And|Another|table|row| + |With an||empty|cell| + + |=. My table caption goes here + |_. A|_. table|_. header|_.row| + |A|simple|table|row| + + Note: Table captions *must* be the first line of the table else treated as a center-aligned cell. + + Tables with attributes: + + table{border:1px solid black}. My table summary here + {background:#ddd;color:red}. |{}| | | | + + To specify thead / tfoot / tbody groups, add one of these on its own line + above the row(s) you wish to wrap (you may specify attributes before the dot): + + |^. # thead + |-. # tbody + |~. # tfoot + + Column groups: + + |:\3. 100| + + Becomes: + + + You can omit either or both of the \N or width values. You may also + add cells after the colgroup definition to specify col elements with + span, width, or standard Textile attributes: + + |:. 50|(firstcol). |\2. 250||300| + + Becomes: + + + + + + + + (Note that, per the HTML specification, you should not add span + to the colgroup if specifying col elements.) + +Applying Attributes: + + Most anywhere Textile code is used, attributes such as arbitrary css style, + css classes, and ids can be applied. The syntax is fairly consistent. + + The following characters quickly alter the alignment of block elements: + + < -> left align ex. p<. left-aligned para + > -> right align h3>. right-aligned header 3 + = -> centred h4=. centred header 4 + <> -> justified p<>. justified paragraph + + These will change vertical alignment in table cells: + + ^ -> top ex. |^. top-aligned table cell| + - -> middle |-. middle aligned| + ~ -> bottom |~. bottom aligned cell| + + Plain (parentheses) inserted between block syntax and the closing dot-space + indicate classes and ids: + + p(hector). paragraph ->

paragraph

+ + p(#fluid). paragraph ->

paragraph

+ + (classes and ids can be combined) + p(hector#fluid). paragraph ->

paragraph

+ + Curly {brackets} insert arbitrary css style + + p{line-height:18px}. paragraph ->

paragraph

+ + h3{color:red}. header 3 ->

header 3

+ + Square [brackets] insert language attributes + + p[no]. paragraph ->

paragraph

+ + %[fr]phrase% -> phrase + + Usually Textile block element syntax requires a dot and space before the block + begins, but since lists don't, they can be styled just using braces + + #{color:blue} one ->
    + # big
  1. one
  2. + # list
  3. big
  4. +
  5. list
  6. +
+ + Using the span tag to style a phrase + + It goes like this, %{color:red}the fourth the fifth% + -> It goes like this, the fourth the fifth + +Ordered list start and continuation: + + You can control the start attribute of an ordered list like so; + + #5 Item 5 + # Item 6 + + You can resume numbering list items after some intervening anonymous block like so... + + #_ Item 7 + # Item 8 +*/ + +/** + * Textile parser. + * + * The Parser class takes Textile input and + * converts it to well formatted HTML. This is + * the library's main class, hosting the parsing + * functionality and exposing a simple + * public interface for you to use. + * + * The most basic use case would involve initialising + * a instance of the class and calling the textileThis + * method, parsing the given Textile input in unrestricted + * mode. + * + * + * $parser = new \Netcarver\Textile\Parser(); + * echo $parser->textileThis('h1. Hello World!'); + * + * + * @see Parser::__construct() + * @see Parser::textileThis() + * @see Parser::textileRestricted() + */ + +class Parser +{ + /** + * Version number. + * + * @var string + */ + + protected $ver = '3.5.5'; + + /** + * Regular expression snippets. + * + * @var array + */ + + protected $regex_snippets; + + /** + * Pattern for horizontal align. + * + * @var string + */ + + protected $hlgn = "(?:\<(?!>)|<>|>|<|(?|\<\>|\=|[()]+(?! ))"; + + /** + * Pattern for vertical align. + * + * @var string + */ + + protected $vlgn = "[\-^~]"; + + /** + * Pattern for HTML classes and IDs. + * + * Does not allow classes/ids/languages/styles to span across + * newlines if used in a dotall regular expression. + * + * @var string + */ + + protected $clas = "(?:\([^)\n]+\))"; + + /** + * Pattern for language attribute. + * + * @var string + */ + + protected $lnge = "(?:\[[^]\n]+\])"; + + /** + * Pattern for style attribute. + * + * @var string + */ + + protected $styl = "(?:\{[^}\n]+\})"; + + /** + * Regular expression pattern for column spans in tables. + * + * @var string + */ + + protected $cspn = "(?:\\\\[0-9]+)"; + + /** + * Regular expression for row spans in tables. + * + * @var string + */ + + protected $rspn = "(?:\/[0-9]+)"; + + /** + * Regular expression for horizontal or vertical alignment. + * + * @var string + */ + + protected $a; + + /** + * Regular expression for column or row spans in tables. + * + * @var string + */ + + protected $s; + + /** + * Pattern that matches a class, style, language and horizontal alignment attributes. + * + * @var string + */ + + protected $c; + + /** + * Pattern that matches class, style and language attributes. + * + * Will allows all 16 possible permutations of class, style and language attributes. + * , c, cl, cs, cls, csl, l, lc, ls, lcs, lsc, s, sc, sl, scl or slc + * + * @var string + */ + protected $cls; + + /** + * Whitelisted block tags. + * + * @var array + */ + + protected $blocktag_whitelist = array(); + + /** + * Pattern for punctation. + * + * @var string + */ + + protected $pnct = '[\!"#\$%&\'()\*\+,\-\./:;<=>\?@\[\\\]\^_`{\|}\~]'; + + /** + * Pattern for URL. + * + * @var string + */ + + protected $urlch; + + /** + * Matched marker symbols. + * + * @var string + */ + + protected $syms = '¤§µ¶†‡•∗∴◊♠♣♥♦'; + + /** + * HTML rel attribute used for links. + * + * @var string + */ + + protected $rel; + + /** + * Array of footnotes + * + * @var array + */ + protected $fn; + + /** + * Shelved content. + * + * Stores fragments of the source text that have been parsed + * and require no more processing. + * + * @var array + */ + + protected $shelf = array(); + + /** + * Restricted mode. + * + * @var bool + */ + + protected $restricted = false; + + /** + * Disallow images. + * + * @var bool + */ + + protected $noimage = false; + + /** + * Lite mode. + * + * @var bool + */ + + protected $lite = false; + + /** + * Accepted link protocols. + * + * @var array + */ + + protected $url_schemes = array(); + + /** + * Restricted link protocols. + * + * @var array + */ + + protected $restricted_url_schemes = array( + 'http', + 'https', + 'ftp', + 'mailto', + ); + + /** + * Unrestricted link protocols. + * + * @var array + */ + + protected $unrestricted_url_schemes = array( + 'http', + 'https', + 'ftp', + 'mailto', + 'file', + 'tel', + 'callto', + 'sftp', + ); + + /** + * Span tags. + * + * @var array + */ + + protected $span_tags = array( + '*' => 'strong', + '**' => 'b', + '??' => 'cite', + '_' => 'em', + '__' => 'i', + '-' => 'del', + '%' => 'span', + '+' => 'ins', + '~' => 'sub', + '^' => 'sup', + ); + + /** + * Patterns for finding glyphs. + * + * An array of regex patterns used to find text features + * such as apostrophes, fractions and em-dashes. Each + * entry in this array must have a corresponding entry in + * the $glyph_replace array. + * + * @var null|array + * @see Parser::$glyph_replace + */ + + protected $glyph_search = null; + + /** + * Glyph replacements. + * + * An array of replacements used to insert typographic glyphs + * into the text. Each entry must have a corresponding entry in + * the $glyph_search array and may refer to values captured in + * the corresponding search regex. + * + * @var null|array + * @see Parser::$glyph_search + */ + + protected $glyph_replace = null; + + /** + * Indicates whether glyph substitution is required. + * + * Dirty flag, set by setSymbol(), indicating the parser needs to + * rebuild the glyph substitutions before the next parse. + * + * @var bool + * @see Parser::setSymbol() + */ + + protected $rebuild_glyphs = true; + + /** + * Relative image path. + * + * @var string + */ + + protected $relativeImagePrefix = ''; + + /** + * Maximum nesting level for inline elements. + * + * @var int + */ + + protected $max_span_depth = 5; + + /** + * Server document root. + * + * @var string + */ + + protected $doc_root; + + /** + * Target document type. + * + * @var string + */ + + protected $doctype; + + /** + * Substitution symbols. + * + * Basic symbols used in textile glyph replacements. To override these, call + * setSymbol method before calling textileThis or textileRestricted. + * + * @var array + * @see Parser::setSymbol() + */ + + protected $symbols = array( + 'quote_single_open' => '‘', + 'quote_single_close' => '’', + 'quote_double_open' => '“', + 'quote_double_close' => '”', + 'apostrophe' => '’', + 'prime' => '′', + 'prime_double' => '″', + 'ellipsis' => '…', + 'emdash' => '—', + 'endash' => '–', + 'dimension' => '×', + 'trademark' => '™', + 'registered' => '®', + 'copyright' => '©', + 'half' => '½', + 'quarter' => '¼', + 'threequarters' => '¾', + 'degrees' => '°', + 'plusminus' => '±', + 'fn_ref_pattern' => '{marker}', + 'fn_foot_pattern' => '{marker}', + 'nl_ref_pattern' => '{marker}', + ); + + /** + * Dimensionless images flag. + * + * @var bool + */ + + protected $dimensionless_images = false; + + /** + * Directory separator. + * + * @var string + */ + + protected $ds = '/'; + + /** + * Whether mbstring extension is installed. + * + * @var bool + */ + + protected $mb; + + /** + * Multi-byte conversion map. + * + * @var array + */ + + protected $cmap = array(0x0080, 0xffff, 0, 0xffff); + + /** + * Stores note index. + * + * @var int + */ + + protected $note_index = 1; + + /** + * Stores unreferenced notes. + * + * @var array + */ + + protected $unreferencedNotes = array(); + + /** + * Stores note lists. + * + * @var array + */ + + protected $notelist_cache = array(); + + /** + * Stores notes. + * + * @var array + */ + + protected $notes = array(); + + /** + * Stores URL references. + * + * @var array + */ + + protected $urlrefs = array(); + + /** + * Stores span depth. + * + * @var int + */ + + protected $span_depth = 0; + + /** + * Unique ID used for reference tokens. + * + * @var string + */ + + protected $uid; + + /** + * Token reference index. + * + * @var int + */ + + protected $refIndex = 1; + + /** + * Stores references values. + * + * @var array + */ + + protected $refCache = array(); + + /** + * Matched open and closed quotes. + * + * @var array + */ + + protected $quotes = array( + '"' => '"', + "'" => "'", + '(' => ')', + '{' => '}', + '[' => ']', + '«' => '»', + '»' => '«', + '‹' => '›', + '›' => '‹', + '„' => '“', + '‚' => '‘', + '‘' => '’', + '”' => '“', + ); + + /** + * Regular expression that matches starting quotes. + * + * @var string + */ + + protected $quote_starts; + + /** + * Ordered list starts. + * + * @var array + */ + + protected $olstarts = array(); + + /** + * Link prefix. + * + * @var string + */ + + protected $linkPrefix; + + /** + * Link index. + * + * @var int + */ + + protected $linkIndex = 1; + + /** + * Constructor. + * + * The constructor allows setting options that affect the + * class instance as a whole, such as the output doctype. + * To instruct the parser to return HTML5 markup instead of + * XHTML, set $doctype argument to 'html5'. + * + * + * $parser = new \Netcarver\Textile\Parser('html5'); + * echo $parser->textileThis('HTML(HyperText Markup Language)"); + * + * + * @param string $doctype The output document type, either 'xhtml' or 'html5' + * @throws \InvalidArgumentException + * @api + */ + + public function __construct($doctype = 'xhtml') + { + $doctypes = array( + 'xhtml', + 'html5', + ); + + if (!in_array($doctype, $doctypes, true)) { + throw new \InvalidArgumentException('Invalid doctype given.'); + } else { + $this->doctype = $doctype; + } + + $uid = uniqid(rand()); + $this->uid = 'textileRef:'.$uid.':'; + $this->linkPrefix = $uid.'-'; + $this->a = "(?:$this->hlgn|$this->vlgn)*"; + $this->s = "(?:$this->cspn|$this->rspn)*"; + $this->c = "(?:$this->clas|$this->styl|$this->lnge|$this->hlgn)*"; + + $this->cls = '(?:'. + "$this->clas(?:". + "$this->lnge(?:$this->styl)?|$this->styl(?:$this->lnge)?". + ')?|'. + "$this->lnge(?:". + "$this->clas(?:$this->styl)?|$this->styl(?:$this->clas)?". + ')?|'. + "$this->styl(?:". + "$this->clas(?:$this->lnge)?|$this->lnge(?:$this->clas)?". + ')?'. + ')?'; + + if ($this->isUnicodePcreSupported()) { + $this->regex_snippets = array( + 'acr' => '\p{Lu}\p{Nd}', + 'abr' => '\p{Lu}', + 'nab' => '\p{Ll}', + 'wrd' => '(?:\p{L}|\p{M}|\p{N}|\p{Pc})', + 'mod' => 'u', // Make sure to mark the unicode patterns as such, Some servers seem to need this. + 'cur' => '\p{Sc}', + 'digit' => '\p{N}', + 'space' => '(?:\p{Zs}|\h|\v)', + 'char' => '(?:[^\p{Zs}\h\v])', + ); + } else { + $this->regex_snippets = array( + 'acr' => 'A-Z0-9', + 'abr' => 'A-Z', + 'nab' => 'a-z', + 'wrd' => '\w', + 'mod' => '', + 'cur' => '', + 'digit' => '\d', + 'space' => '(?:\s|\h|\v)', + 'char' => '\S', + ); + } + extract($this->regex_snippets); + $this->urlch = '['.$wrd.'"$\-_.+!*\'(),";\/?:@=&%#{}|\\^~\[\]`]'; + $this->quote_starts = implode('|', array_map('preg_quote', array_keys($this->quotes))); + + if (defined('DIRECTORY_SEPARATOR')) { + $this->ds = constant('DIRECTORY_SEPARATOR'); + } + + if (php_sapi_name() === 'cli') { + $this->doc_root = getcwd(); + } elseif (!empty($_SERVER['DOCUMENT_ROOT'])) { + $this->doc_root = $_SERVER['DOCUMENT_ROOT']; + } elseif (!empty($_SERVER['PATH_TRANSLATED'])) { + $this->doc_root = $_SERVER['PATH_TRANSLATED']; + } + + $this->doc_root = rtrim($this->doc_root, $this->ds).$this->ds; + } + + /** + * Defines a substitution symbol. + * + * Call this you need to redefine a substitution symbol to + * be used when parsing a Textile document. + * + * @param string $name Name of the symbol to assign a new value to. + * @param string $value New value for the symbol. + * @return Parser + * @api + */ + + public function setSymbol($name, $value) + { + $this->symbols[$name] = $value; + $this->rebuild_glyphs = true; + return $this; + } + + /** + * Gets a symbol definitions. + * + * This method can be used to get a symbol definition, or an + * array containing the full symbol table. + * + * @param string|null $name The name of the symbol, or NULL if requesting the symbol table + * @return array|string The symbol table or the requested symbol + * @throws \InvalidArgumentException + * @api + */ + + public function getSymbol($name = null) + { + if ($name !== null) { + if (isset($this->symbols[$name])) { + return $this->symbols[$name]; + } + + throw new \InvalidArgumentException('The specified name does not match any symbols.'); + } + + return $this->symbols; + } + + /** + * Sets base image directory path. + * + * This is used when Textile is supplied with a relative image path. + * Allows client systems to have PHP-Textile convert relative image paths to + * absolute or prefixed paths. This method is used to set that base path, + * usually a absolute HTTP address pointing to a directory. + * + * + * $parser = new \Netcarver\Textile\Parser(); + * $parser->setRelativeImagePrefix('http://static.example.com/'); + * + * + * @param string $prefix The string to prefix all relative image paths with + * @return Parser + * @api + */ + + public function setRelativeImagePrefix($prefix = '') + { + $this->relativeImagePrefix = $prefix; + return $this; + } + + /** + * Toggles image dimension attributes. + * + * If $dimensionless is set to TRUE, image width and height attributes + * will not be included in rendered image tags. Normally, Textile will add + * dimensions height images that specify a relative path, as long + * as the image file can be accessed. + * + * + * $parser = new \Netcarver\Textile\Parser(); + * echo $parser->setDimensionlessImages(false)->textileThis('Hello World!'); + * + * + * @param bool $dimensionless TRUE to disable image dimensions, FALSE to enable + * @return Parser + * @api + */ + + public function setDimensionlessImages($dimensionless = true) + { + $this->dimensionless_images = (bool) $dimensionless; + return $this; + } + + /** + * Whether images will get dimensions or not. + * + * This method will return the state of + * the state of the $dimensionless_images property. + * + * + * $parser = new \Netcarver\Textile\Parser(); + * if ($parser->getDimensionlessImages() === true) + * { + * echo 'Images do not get dimensions.'; + * } + * + * + * @return bool TRUE if images will not get dimensions, FALSE otherwise + * @api + */ + + public function getDimensionlessImages() + { + return (bool) $this->dimensionless_images; + } + + /** + * Gets Textile version number. + * + * + * $parser = new \Netcarver\Textile\Parser(); + * echo $parser->getVersion(); + * + * + * @return string Version + * @api + */ + + public function getVersion() + { + return $this->ver; + } + + /** + * Encodes the given text. + * + * + * $parser = new \Netcarver\Textile\Parser(); + * $parser->textileEncode('Some content to encode.'); + * + * + * @param string $text The text to be encoded + * @return string The encoded text + * @api + */ + + public function textileEncode($text) + { + $text = preg_replace("/&(?![#a-z0-9]+;)/i", "x%x%", $text); + $text = str_replace("x%x%", "&", $text); + return $text; + } + + /** + * Parses the given Textile input in un-restricted mode. + * + * This method should be used to parse any trusted Textile + * input, such as articles created by well-known + * authorised users. + * + * This method allows users to mix raw HTML and Textile. + * If you want to parse untrusted input, see the + * textileRestricted method instead. Using this less + * restrictive method on untrusted input, like comments + * and forum posts, will lead to XSS issues, as users + * will be able to use any HTML code, JavaScript links + * and Textile attributes in their input. + * + * + * $parser = new \Netcarver\Textile\Parser(); + * echo $parser->textileThis('h1. Hello World!'); + * + * + * @param string $text The Textile input to parse + * @param bool $lite Switch to lite mode + * @param bool $encode Encode input and return + * @param bool $noimage Disables images + * @param bool $strict This argument is ignored + * @param string $rel Relationship attribute applied to generated links + * @return string Parsed $text + * @see Parser::textileRestricted() + * @api + */ + + public function textileThis($text, $lite = false, $encode = false, $noimage = false, $strict = false, $rel = '') + { + $this->prepare($lite, $noimage, $rel); + $this->url_schemes = $this->unrestricted_url_schemes; + + if ($encode) { + trigger_error( + 'Use of the $encode argument is discouraged. Use Parser::textileEncode() instead.', + E_USER_DEPRECATED + ); + return $this->textileEncode($text); + } + + return $this->textileCommon($text, $lite); + } + + /** + * Parses the given Textile input in restricted mode. + * + * This method should be used for any untrusted user input, + * including comments or forum posts. + * + * This method escapes any raw HTML input, ignores unsafe + * attributes, links only whitelisted URL schemes + * and by default also prevents the use of images and + * extra Textile formatting, accepting only paragraphs + * and blockquotes as valid block tags. + * + * + * $parser = new \Netcarver\Textile\Parser(); + * echo $parser->textileRestricted('h1. Hello World!'); + * + * + * @param string $text The Textile input to parse + * @param bool $lite Controls lite mode, allowing extra formatting + * @param bool $noimage Allow images + * @param string $rel Relationship attribute applied to generated links + * @return string Parsed $text + * @see Parser::textileThis() + * @api + */ + + public function textileRestricted($text, $lite = true, $noimage = true, $rel = 'nofollow') + { + $this->prepare($lite, $noimage, $rel); + $this->url_schemes = $this->restricted_url_schemes; + $this->restricted = true; + + // Escape any raw html + $text = $this->encodeHTML($text, 0); + + return $this->textileCommon($text, $lite); + } + + /** + * Parses Textile syntax. + * + * This method performs common parse actions. + * + * @param string $text The input to parses + * @param bool $lite Controls lite mode + * @return string Parsed input + */ + + protected function textileCommon($text, $lite) + { + $text = $this->cleanWhiteSpace($text); + $text = $this->cleanUniqueTokens($text); + + if ($lite) { + $this->blocktag_whitelist = array('bq', 'p'); + $text = $this->blocks($text."\n\n"); + } else { + $this->blocktag_whitelist = array( + 'bq', + 'p', + 'bc', + 'notextile', + 'pre', + 'h[1-6]', + 'fn'.$this->regex_snippets['digit'].'+', + '###', + ); + $text = $this->blocks($text); + $text = $this->placeNoteLists($text); + } + + $text = $this->retrieve($text); + $text = $this->replaceGlyphs($text); + $text = $this->retrieveTags($text); + $text = $this->retrieveURLs($text); + + $text = str_replace("
", "
\n", $text); + + return $text; + } + + /** + * Prepares the glyph patterns from the symbol table. + * + * @see Parser::setSymbol() + * @see Parser::getSymbol() + */ + + protected function prepGlyphs() + { + if ($this->rebuild_glyphs === false) { + return; + } + + extract($this->symbols, EXTR_PREFIX_ALL, 'txt'); + extract($this->regex_snippets); + $pnc = '[[:punct:]]'; + + if ($cur) { + $cur = '(?:['.$cur.']'.$space.'*)?'; + } + + $this->glyph_search = array(); + $this->glyph_replace = array(); + + // Dimension sign + $this->glyph_search[] = '/([0-9]+[\])]?[\'"]? ?)[xX]( ?[\[(]?)(?=[+-]?'.$cur.'[0-9]*\.?[0-9]+)/'.$mod; + $this->glyph_replace[] = '$1'.$txt_dimension.'$2'; + + // Apostrophe + $this->glyph_search[] = '/('.$wrd.'|\))\'('.$wrd.')/'.$mod; + $this->glyph_replace[] = '$1'.$txt_apostrophe.'$2'; + + // Back in '88/the '90s but not in his '90s', '1', '1.' '10m' or '5.png' + $this->glyph_search[] = '/('.$space.')\'(\d+'.$wrd.'?)\b(?![.]?['.$wrd.']*?\')/'.$mod; + $this->glyph_replace[] = '$1'.$txt_apostrophe.'$2'; + + // Single open following open bracket + $this->glyph_search[] = "/([([{])'(?=\S)/".$mod; + $this->glyph_replace[] = '$1'.$txt_quote_single_open; + + // Single closing + $this->glyph_search[] = '/(\S)\'(?='.$space.'|'.$pnc.'|<|$)/'.$mod; + $this->glyph_replace[] = '$1'.$txt_quote_single_close; + + // Default single opening + $this->glyph_search[] = "/'/"; + $this->glyph_replace[] = $txt_quote_single_open; + + // Double open following an open bracket. Allows things like Hello ["(Mum) & dad"] + $this->glyph_search[] = '/([([{])"(?=\S)/'.$mod; + $this->glyph_replace[] = '$1'.$txt_quote_double_open; + + // Double closing + $this->glyph_search[] = '/(\S)"(?='.$space.'|'.$pnc.'|<|$)/'.$mod; + $this->glyph_replace[] = '$1'.$txt_quote_double_close; + + // Default double opening + $this->glyph_search[] = '/"/'; + $this->glyph_replace[] = $txt_quote_double_open; + + // 3+ uppercase acronym + $this->glyph_search[] = '/\b(['.$abr.']['.$acr.']{2,})\b(?:[(]([^)]*)[)])/'.$mod; + + if ($this->doctype === 'html5') { + $this->glyph_replace[] = '$1'; + } else { + $this->glyph_replace[] = '$1'; + } + + // 3+ uppercase + $this->glyph_search[] = '/('.$space.'|^|[>(;-])(['.$abr.']{3,})'. + '(['.$nab.']*)(?='.$space.'|'.$pnc.'|<|$)(?=[^">]*?(<|$))/'.$mod; + $this->glyph_replace[] = '$1'.$this->uid.':glyph:$2$3'; + + // Ellipsis + $this->glyph_search[] = '/([^.]?)\.{3}/'; + $this->glyph_replace[] = '$1'.$txt_ellipsis; + + // em dash + $this->glyph_search[] = '/--/'; + $this->glyph_replace[] = $txt_emdash; + + // en dash + $this->glyph_search[] = '/ - /'; + $this->glyph_replace[] = ' '.$txt_endash.' '; + + // Trademark + $this->glyph_search[] = '/(\b ?|'.$space.'|^)[([]TM[])]/i'.$mod; + $this->glyph_replace[] = '$1'.$txt_trademark; + + // Registered + $this->glyph_search[] = '/(\b ?|'.$space.'|^)[([]R[])]/i'.$mod; + $this->glyph_replace[] = '$1'.$txt_registered; + + // Copyright + $this->glyph_search[] = '/(\b ?|'.$space.'|^)[([]C[])]/i'.$mod; + $this->glyph_replace[] = '$1'.$txt_copyright; + + // 1/4 + $this->glyph_search[] = '/[([]1\/4[])]/'; + $this->glyph_replace[] = $txt_quarter; + + // 1/2 + $this->glyph_search[] = '/[([]1\/2[])]/'; + $this->glyph_replace[] = $txt_half; + + // 3/4 + $this->glyph_search[] = '/[([]3\/4[])]/'; + $this->glyph_replace[] = $txt_threequarters; + + // Degrees -- that's a small 'oh' + $this->glyph_search[] = '/[([]o[])]/'; + $this->glyph_replace[] = $txt_degrees; + + // Plus minus + $this->glyph_search[] = '/[([]\+\/-[])]/'; + $this->glyph_replace[] = $txt_plusminus; + + // No need to rebuild next run unless a symbol is redefined + $this->rebuild_glyphs = false; + } + + /** + * Sets the maximum allowd link index. + * + * @return int + * @since 3.5.5 + */ + + protected function getMaxLinkIndex() + { + return 1000000; + } + + /** + * Prepares the parser for parsing. + * + * This method prepares the transient internal state of + * Textile parser in preparation for parsing a new document. + * + * @param bool $lite Controls lite mode + * @param bool $noimage Disallow images + * @param string $rel A relationship attribute applied to links + */ + + protected function prepare($lite, $noimage, $rel) + { + if ($this->linkIndex >= $this->getMaxLinkIndex()) { + $this->linkPrefix .= '-'; + $this->linkIndex = 1; + } + + $this->unreferencedNotes = array(); + $this->notelist_cache = array(); + $this->notes = array(); + $this->urlrefs = array(); + $this->shelf = array(); + $this->fn = array(); + $this->span_depth = 0; + $this->refIndex = 1; + $this->refCache = array(); + $this->note_index = 1; + $this->rel = $rel; + $this->lite = $lite; + $this->noimage = $noimage; + $this->prepGlyphs(); + } + + /** + * Cleans a HTML attribute value. + * + * This method checks for presence of URL encoding in the value. + * If the number encoded characters exceeds the thereshold, + * the input is discarded. Otherwise the encoded + * instances are decoded. + * + * This method also strips any ", ' and = characters + * from the given value. This method does not guarantee + * valid HTML or full sanitization. + * + * @param string $in The input string + * @return string Cleaned string + */ + + protected function cleanAttribs($in) + { + $tmp = $in; + $before = -1; + $after = 0; + $max = 3; + $i = 0; + + while (($after != $before) && ($i < $max)) { + $before = strlen($tmp); + $tmp = rawurldecode($tmp); + $after = strlen($tmp); + $i++; + } + + if ($i === $max) { + // If we hit the max allowed decodes, assume the input is tainted and consume it. + $out = ''; + } else { + $out = str_replace(array('"', "'", '='), '', $tmp); + } + + return $out; + } + + /** + * Constructs a HTML tag from an object. + * + * This is a helper method that creates a new + * instance of \Netcarver\Textile\Tag. + * + * @param string $name The HTML element name + * @param array $atts HTML attributes applied to the tag + * @param bool $selfclosing Determines if the tag should be selfclosing + * @return Tag + */ + + protected function newTag($name, $atts, $selfclosing = true) + { + return new Tag($name, $atts, $selfclosing); + } + + /** + * Parses Textile attributes. + * + * @param string $in The Textile attribute string to be parsed + * @param string $element Focus the routine to interpret the attributes as applying to a specific HTML tag + * @param bool $include_id If FALSE, IDs are not included in the attribute list + * @param string $autoclass An additional classes applied to the output + * @return string HTML attribute list + * @see Parser::parseAttribsToArray() + */ + + protected function parseAttribs($in, $element = '', $include_id = true, $autoclass = '') + { + $o = $this->parseAttribsToArray($in, $element, $include_id, $autoclass); + + return $this->formatAttributeString($o); + } + + /** + * Converts an array of named attribute => value mappings to a string. + * + * @param array $attribute_array + * @return string + */ + + protected function formatAttributeString(array $attribute_array) + { + $out = ''; + + if (count($attribute_array)) { + foreach ($attribute_array as $k => $v) { + $out .= " $k=\"$v\""; + } + } + + return $out; + } + + /** + * Parses Textile attributes into an array. + * + * @param string $in The Textile attribute string to be parsed + * @param string $element Focus the routine to interpret the attributes as applying to a specific HTML tag + * @param bool $include_id If FALSE, IDs are not included in the attribute list + * @param string $autoclass An additional classes applied to the output + * @return array HTML attributes as key => value mappings + * @see Parser::parseAttribs() + */ + + protected function parseAttribsToArray($in, $element = '', $include_id = true, $autoclass = '') + { + $style = ''; + $class = ''; + $lang = ''; + $colspan = ''; + $rowspan = ''; + $span = ''; + $width = ''; + $id = ''; + $atts = ''; + $align = ''; + + $matched = $in; + if ($element == 'td') { + if (preg_match("/\\\\([0-9]+)/", $matched, $csp)) { + $colspan = $csp[1]; + } + + if (preg_match("/\/([0-9]+)/", $matched, $rsp)) { + $rowspan = $rsp[1]; + } + } + + if ($element == 'td' or $element == 'tr') { + if (preg_match("/($this->vlgn)/", $matched, $vert)) { + $style[] = "vertical-align:" . $this->vAlign($vert[1]); + } + } + + if (preg_match("/\{([^}]*)\}/", $matched, $sty)) { + if ($sty[1] = $this->cleanAttribs($sty[1])) { + $style[] = rtrim($sty[1], ';'); + } + $matched = str_replace($sty[0], '', $matched); + } + + if (preg_match("/\[([^]]+)\]/U", $matched, $lng)) { + // Consume entire lang block -- valid or invalid. + $matched = str_replace($lng[0], '', $matched); + if (preg_match("/\[([a-zA-Z]{2}(?:[\-\_][a-zA-Z]{2})?)\]/U", $lng[0], $lng)) { + $lang = $lng[1]; + } + } + + if (preg_match("/\(([^()]+)\)/U", $matched, $cls)) { + + $class_regex = "/^([-a-zA-Z 0-9_\.]*)$/"; + + // Consume entire class block -- valid or invalid. + $matched = str_replace($cls[0], '', $matched); + + // Only allow a restricted subset of the CSS standard characters for classes/ids. + // No encoding markers allowed. + if (preg_match("/\(([-a-zA-Z 0-9_\.\:\#]+)\)/U", $cls[0], $cls)) { + $hashpos = strpos($cls[1], '#'); + // If a textile class block attribute was found with a '#' in it + // split it into the css class and css id... + if (false !== $hashpos) { + if (preg_match("/#([-a-zA-Z0-9_\.\:]*)$/", substr($cls[1], $hashpos), $ids)) { + $id = $ids[1]; + } + + if (preg_match($class_regex, substr($cls[1], 0, $hashpos), $ids)) { + $class = $ids[1]; + } + } else { + if (preg_match($class_regex, $cls[1], $ids)) { + $class = $ids[1]; + } + } + } + } + + if (preg_match("/([(]+)/", $matched, $pl)) { + $style[] = "padding-left:" . strlen($pl[1]) . "em"; + $matched = str_replace($pl[0], '', $matched); + } + + if (preg_match("/([)]+)/", $matched, $pr)) { + $style[] = "padding-right:" . strlen($pr[1]) . "em"; + $matched = str_replace($pr[0], '', $matched); + } + + if (preg_match("/($this->hlgn)/", $matched, $horiz)) { + $style[] = "text-align:" . $this->hAlign($horiz[1]); + } + + if ($element == 'col') { + if (preg_match("/(?:\\\\([0-9]+))?{$this->regex_snippets['space']}*([0-9]+)?/", $matched, $csp)) { + $span = isset($csp[1]) ? $csp[1] : ''; + $width = isset($csp[2]) ? $csp[2] : ''; + } + } + + if ($this->restricted) { + $o = array(); + $class = trim($autoclass); + if ($class) { + $o['class'] = $this->cleanAttribs($class); + } + + if ($lang) { + $o['lang'] = $this->cleanAttribs($lang); + } + + ksort($o); + return $o; + } else { + $class = trim($class . ' ' . $autoclass); + } + + $o = array(); + if ($class) { + $o['class'] = $this->cleanAttribs($class); + } + + if ($colspan) { + $o['colspan'] = $this->cleanAttribs($colspan); + } + + if ($id && $include_id) { + $o['id'] = $this->cleanAttribs($id); + } + + if ($lang) { + $o['lang'] = $this->cleanAttribs($lang); + } + + if ($rowspan) { + $o['rowspan'] = $this->cleanAttribs($rowspan); + } + + if ($span) { + $o['span'] = $this->cleanAttribs($span); + } + + if ($style) { + $so = ''; + $tmps = array(); + foreach ($style as $s) { + $parts = explode(';', $s); + foreach ($parts as $p) { + if ($p = trim(trim($p), ":")) { + $tmps[] = $p; + } + } + } + + sort($tmps); + foreach ($tmps as $p) { + if (!empty($p)) { + $so .= $p.';'; + } + } + $style = trim(str_replace(array("\n", ';;'), array('', ';'), $so)); + + $o['style'] = $style; + } + + if ($width) { + $o['width'] = $this->cleanAttribs($width); + } + + ksort($o); + return $o; + } + + /** + * Checks whether the text is not enclosed by a block tag. + * + * @param string $text The input string + * @return bool TRUE if the text is not enclosed + */ + + protected function hasRawText($text) + { + $r = preg_replace( + '@<(p|hr|br|img|blockquote|div|form|table|ul|ol|dl|pre|h[1-6])[^>]*?'.chr(62).'.*]*?>@si', + '', + trim($text) + ); + $r = trim(preg_replace('@<(br|hr|img)[^>]*?/?>@i', '', trim($r))); + return '' != $r; + } + + /** + * Parses textile table structures into HTML. + * + * @param string $text The textile input + * @return string The parsed text + */ + + protected function tables($text) + { + $text = $text . "\n\n"; + return preg_replace_callback( + "/^(?:table(?P_?{$this->s}{$this->a}{$this->cls})\.". + "(?P.*)?\n)?^(?P{$this->a}{$this->cls}\.? ?\|.*\|){$this->regex_snippets['space']}*\n\n/smU", + array(&$this, "fTable"), + $text + ); + } + + /** + * Constructs a HTML table from a textile table structure. + * + * This method is used by Parser::tables() to process + * found table structures. + * + * @param array $matches + * @return string HTML table + * @see Parser::tables() + */ + + protected function fTable($matches) + { + $tatts = $this->parseAttribs($matches['tatts'], 'table'); + $space = $this->regex_snippets['space']; + + $sum = trim($matches['summary']) + ? ' summary="'.htmlspecialchars(trim($matches['summary']), ENT_QUOTES, 'UTF-8').'"' + : ''; + $cap = ''; + $colgrp = ''; + $last_rgrp = ''; + $c_row = 1; + + foreach (preg_split("/\|{$space}*?$/m", $matches['rows'], -1, PREG_SPLIT_NO_EMPTY) as $row) { + + $row = ltrim($row); + + // Caption -- can only occur on row 1, otherwise treat '|=. foo |...' + // as a normal center-aligned cell. + if (($c_row <= 1) && preg_match( + "/^\|\=(?P$this->s$this->a$this->cls)\. (?P[^\n]*)(?P.*)/s", + ltrim($row), + $cmtch + )) { + $capts = $this->parseAttribs($cmtch['capts']); + $cap = "\t".trim($cmtch['cap'])."\n"; + $row = ltrim($cmtch['row']); + if (empty($row)) { + continue; + } + } + + $c_row += 1; + + // Colgroup + if (preg_match("/^\|:(?P$this->s$this->a$this->cls\. .*)/m", ltrim($row), $gmtch)) { + // Is this colgroup def missing a closing pipe? If so, there + // will be a newline in the middle of $row somewhere. + $nl = strpos($row, "\n"); + $idx = 0; + + foreach (explode('|', str_replace('.', '', $gmtch['cols'])) as $col) { + $gatts = $this->parseAttribs(trim($col), 'col'); + $colgrp .= "\t" : $gatts." />")."\n"; + $idx++; + } + + $colgrp .= "\t\n"; + + if ($nl === false) { + continue; + } else { + // Recover from our missing pipe and process the rest of the line. + $row = ltrim(substr($row, $nl)); + } + } + + // Row group + $rgrpatts = $rgrp = ''; + + if (preg_match( + "/(:?^\|(?P$this->vlgn)(?P$this->s$this->a$this->cls)\.{$space}*$\n)?^(?P.*)/sm", + ltrim($row), + $grpmatch + )) { + if (isset($grpmatch['part'])) { + if ($grpmatch['part'] === '^') { + $rgrp = 'head'; + } elseif ($grpmatch['part'] === '~') { + $rgrp = 'foot'; + } elseif ($grpmatch['part'] === '-') { + $rgrp = 'body'; + } + } + + if (isset($grpmatch['part'])) { + $rgrpatts = $this->parseAttribs($grpmatch['rgrpatts']); + } + + if (isset($grpmatch['row'])) { + $row = $grpmatch['row']; + } + } + + if (preg_match("/^(?P$this->a$this->cls\. )(?P.*)/m", ltrim($row), $rmtch)) { + $ratts = $this->parseAttribs($rmtch['ratts'], 'tr'); + $row = $rmtch['row']; + } else { + $ratts = ''; + } + + $cells = array(); + $cellctr = 0; + + foreach (explode("|", $row) as $cell) { + $ctyp = "d"; + + if (preg_match("/^_(?=[{$this->regex_snippets['space']}[:punct:]])/", $cell)) { + $ctyp = "h"; + } + + if (preg_match("/^(?P_?$this->s$this->a$this->cls\. )(?P.*)/s", $cell, $cmtch)) { + $catts = $this->parseAttribs($cmtch['catts'], 'td'); + $cell = $cmtch['cell']; + } else { + $catts = ''; + } + + if (!$this->lite) { + $a = array(); + + if (preg_match('/(?'.$this->regex_snippets['space'].'*)(?P.*)/s', $cell, $a)) { + $cell = $this->redclothLists($a['cell']); + $cell = $this->textileLists($cell); + $cell = $a['space'] . $cell; + } + } + + if ($cellctr > 0) { + // Ignore first 'cell': it precedes the opening pipe + $cells[] = $this->doTagBr("t$ctyp", "\t\t\t$cell"); + } + + $cellctr++; + } + + $grp = ''; + + if ($rgrp && $last_rgrp) { + $grp .= "\t\n"; + } + + if ($rgrp) { + $grp .= "\t\n"; + } + + $last_rgrp = ($rgrp) ? $rgrp : $last_rgrp; + $rows[] = $grp."\t\t\n" . join("\n", $cells) . ($cells ? "\n" : "") . "\t\t"; + unset($cells, $catts); + } + + $rows = join("\n", $rows) . "\n"; + $close = ''; + + if ($last_rgrp) { + $close = "\t\n"; + } + + return "\n".$cap.$colgrp.$rows.$close."\n\n"; + } + + /** + * Parses RedCloth-style definition lists into HTML. + * + * @param string $text The textile input + * @return string The parsed text + */ + + protected function redclothLists($text) + { + return preg_replace_callback( + "/^([-]+$this->cls[ .].*:=.*)$(?![^-])/smU", + array(&$this, "fRedclothList"), + $text + ); + } + + /** + * Constructs a HTML definition list from a RedCloth-style definition structure. + * + * This method is used by Parser::redclothLists() to process + * found definition list structures. + * + * @param array $m + * @return string HTML definition list + * @see Parser::redclothLists() + */ + + protected function fRedclothList($m) + { + $in = $m[0]; + $out = array(); + $text = preg_split('/\n(?=[-])/m', $in); + foreach ($text as $nr => $line) { + $m = array(); + if (preg_match("/^[-]+(?P$this->cls)\.? (?P.*)$/s", $line, $m)) { + $content = trim($m['content']); + $atts = $this->parseAttribs($m['atts']); + + if (!preg_match( + "/^(.*?){$this->regex_snippets['space']}*:=(.*?)". + "{$this->regex_snippets['space']}*(=:|:=)?". + "{$this->regex_snippets['space']}*$/s", + $content, + $xm + )) { + $xm = array( $content, $content, '' ); + } + + list(, $term, $def,) = $xm; + $term = trim($term); + $def = trim($def, ' '); + + if (empty($out)) { + if (''==$def) { + $out[] = ""; + } else { + $out[] = '
'; + } + } + + if ('' != $term) { + $pos = strpos($def, "\n"); + $def = str_replace("\n", "
", trim($def)); + if (0 === $pos) { + $def = '

' . $def . '

'; + } + $term = str_replace("\n", "
", $term); + + $term = $this->graf($term); + $def = $this->graf($def); + + $out[] = "\t$term"; + + if ($def) { + $out[] = "\t
$def
"; + } + } + } + } + $out[] = '
'; + return implode("\n", $out); + } + + /** + * Parses Textile list structures into HTML. + * + * Searches for ordered, un-ordered and definition lists in the + * textile input and generates HTML lists for them. + * + * @param string $text The input + * @return string The parsed text + */ + + protected function textileLists($text) + { + return preg_replace_callback( + "/^((?:[*;:]+|[*;:#]*#(?:_|\d+)?)$this->cls[ .].*)$(?![^#*;:])/smU", + array(&$this, "fTextileList"), + $text + ); + } + + /** + * Constructs a HTML list from a Textile list structure. + * + * This method is used by Parser::textileLists() to process + * found list structures. + * + * @param array $m + * @return string HTML list + * @see Parser::textileLists() + */ + + protected function fTextileList($m) + { + $text = preg_split('/\n(?=[*#;:])/m', $m[0]); + $pt = ''; + foreach ($text as $nr => $line) { + $nextline = isset($text[$nr+1]) ? $text[$nr+1] : false; + if (preg_match("/^(?P[#*;:]+)(?P_|\d+)?(?P$this->cls)[ .](?P.*)$/s", $line, $m)) { + $tl = $m['tl']; + $st = $m['st']; + $atts = $m['atts']; + $content = trim($m['content']); + $nl = ''; + $ltype = $this->liType($tl); + $litem = (strpos($tl, ';') !== false) ? 'dt' : ((strpos($tl, ':') !== false) ? 'dd' : 'li'); + $showitem = (strlen($content) > 0); + + if ('o' === $ltype) { + // Handle list continuation/start attribute on ordered lists. + if (!isset($this->olstarts[$tl])) { + $this->olstarts[$tl] = 1; + } + + if (strlen($tl) > strlen($pt)) { + // First line of this level of ol -- has a start attribute? + if ('' == $st) { + // No => reset count to 1. + $this->olstarts[$tl] = 1; + } elseif ('_' !== $st) { + // Yes, and numeric => reset to given. + // TRICKY: the '_' continuation marker just means + // output the count so don't need to do anything + // here. + $this->olstarts[$tl] = (int) $st; + } + } + + if ((strlen($tl) > strlen($pt)) && '' !== $st) { + // Output the start attribute if needed. + $st = ' start="' . $this->olstarts[$tl] . '"'; + } + + if ($showitem) { + // TRICKY: Only increment the count for list items; + // not when a list definition line is encountered. + $this->olstarts[$tl] += 1; + } + } + + if (preg_match("/^(?P[#*;:]+)(_|[\d]+)?($this->cls)[ .].*/", $nextline, $nm)) { + $nl = $nm['nextlistitem']; + } + + if ((strpos($pt, ';') !== false) && (strpos($tl, ':') !== false)) { + // We're already in a
so flag not to start another + $lists[$tl] = 2; + } + + $tabs = str_repeat("\t", strlen($tl)-1); + $atts = $this->parseAttribs($atts); + if (!isset($lists[$tl])) { + $lists[$tl] = 1; + $line = "$tabs<" . $ltype . "l$atts$st>" . (($showitem) ? "\n$tabs\t<$litem>" . $content : ''); + } else { + $line = ($showitem) ? "$tabs\t<$litem$atts>" . $content : ''; + } + + if ((strlen($nl) <= strlen($tl))) { + $line .= (($showitem) ? "" : ''); + } + + foreach (array_reverse($lists) as $k => $v) { + if (strlen($k) > strlen($nl)) { + $line .= ($v==2) ? '' : "\n$tabsliType($k) . "l>"; + if ((strlen($k) > 1) && ($v != 2)) { + $line .= ""; + } + unset($lists[$k]); + } + } + $pt = $tl; // Remember the current Textile tag + } + + $out[] = $line; + } + + $out = implode("\n", $out); + return $this->doTagBr($litem, $out); + } + + /** + * Determines the list type from the Textile input symbol. + * + * @param string $in Textile input containing the possible list marker + * @return string Either 'd', 'o', 'u' + */ + + protected function liType($in) + { + $m = array(); + $type = 'd'; + if (preg_match('/^(?P[#*]+)/', $in, $m)) { + $type = ('#' === substr($m['type'], -1)) ? 'o' : 'u'; + } + return $type; + } + + /** + * Adds br tags within the specified container tag. + * + * @param string $tag The tag + * @param string $in The input + * @return string + */ + + protected function doTagBr($tag, $in) + { + return preg_replace_callback( + '@<(?P'.preg_quote($tag).')(?P[^>]*?)>(?P.*)(?P)@s', + array(&$this, 'fBr'), + $in + ); + } + + /** + * Adds br tags to paragraphs and headings. + * + * @param string $in The input + * @return string + */ + + protected function doPBr($in) + { + return preg_replace_callback( + '@<(?Pp|h[1-6])(?P[^>]*?)>(?P.*)(?P)@s', + array(&$this, 'fPBr'), + $in + ); + } + + /** + * Less restrictive version of fBr method. + * + * Used only in paragraphs and headings where the next row may + * start with a smiley or perhaps something like '#8 bolt...' + * or '*** stars...'. + * + * @param string $m The input + * @return string + */ + + protected function fPBr($m) + { + // Replaces
\n instances that are not followed by white-space, + // or at end, with single LF. + $content = preg_replace( + "~{$this->regex_snippets['space']}*\n(?![{$this->regex_snippets['space']}|])~i", + "\n", + $m['content'] + ); + // Replaces those LFs that aren't followed by white-space, or at end, with
. + $content = preg_replace("/\n(?![\s|])/", '
', $content); + return '<'.$m['tag'].$m['atts'].'>'.$content.$m['closetag']; + } + + /** + * Formats line breaks. + * + * @param string $m The input + * @return string + */ + + protected function fBr($m) + { + $content = preg_replace("@(.+)(?|
|||)\n(?![#*;:\s|])@", '$1
', $m['content']); + return '<'.$m['tag'].$m['atts'].'>'.$content.$m['closetag']; + } + + /** + * Splits the given input into blocks. + * + * Blocks are separated by double line-break boundaries, and processed + * the blocks one by one. + * + * @param string $text Textile source text + * @return string Input text with blocks processed + */ + + protected function blocks($text) + { + $regex = '/^(?P'.join('|', $this->blocktag_whitelist).')'. + '(?P'.$this->a.$this->cls.')\.(?P\.?)(?::(?P\S+))? (?P.*)$/Ss'. + $this->regex_snippets['mod']; + + $textblocks = preg_split('/(\n{2,})/', $text, null, PREG_SPLIT_DELIM_CAPTURE); + + $eatWhitespace = false; + $whitespace = ''; + $ext = ''; + $out = array(); + + foreach ($textblocks as $block) { + + // Line is just whitespace, keep it for the next block. + if (trim($block) === '') { + if ($eatWhitespace === false) { + $whitespace .= $block; + } + continue; + } + + if (!$ext) { + $tag = 'p'; + $atts = ''; + $cite = ''; + $graf = ''; + $eat = false; + } + + $eatWhitespace = false; + $anonymous_block = !preg_match($regex, $block, $m); + + if (!$anonymous_block) { + // Last block was extended, so close it + if ($ext) { + $out[count($out)-1] .= $c1; + } + + // Extract the new block's parts + extract($m); + list($o1, $o2, $content, $c2, $c1, $eat) = $this->fBlock($m); + + // Leave off c1 if this block is extended, we'll close it at the start of the next block + $block = $o1.$o2.$content.$c2; + if (!$ext) { + $block .= $c1; + } + } else { + if ($ext || strpos($block, ' ') !== 0) { + list($o1, $o2, $content, $c2, $c1, $eat) = $this->fBlock(array( + 0, + $tag, + $atts, + $ext, + $cite, + $block, + )); + + // Skip $o1/$c1 because this is part of a continuing extended block + if ($tag == 'p' && !$this->hasRawText($content)) { + $block = $content; + } else { + $block = $o2.$content.$c2; + } + } else { + $block = $this->graf($block); + } + } + + $block = $this->doPBr($block); + $block = $whitespace. str_replace('
', '
', $block); + + if ($ext && $anonymous_block) { + $out[count($out)-1] .= $block; + } elseif (!$eat) { + $out[] = $block; + } + + if ($eat) { + $eatWhitespace = true; + } else { + $whitespace = ''; + } + + } + + if ($ext) { + $out[count($out)-1] .= $c1; + } + + return join('', $out); + } + + /** + * Formats the given block. + * + * Adds block tags and formats the text content inside + * the block. + * + * @param string $m The block content to format + * @return array + */ + + protected function fBlock($m) + { + list(, $tag, $att, $ext, $cite, $content) = $m; + $atts = $this->parseAttribs($att); + $space = $this->regex_snippets['space']; + + $o1 = ''; + $o2 = ''; + $c2 = ''; + $c1 = ''; + $eat = false; + + if ($tag === 'p') { + // Is this an anonymous block with a note definition? + $notedef = preg_replace_callback( + "/ + ^note\# # start of note def marker + (?P