├── MinecraftUUID.php ├── accounts.php ├── addcategory.php ├── addfaq.php ├── admin.php ├── ajax.php ├── assets ├── css │ ├── .DS_Store │ ├── jquery.sweet-modal.min.css │ └── main.css ├── inc │ ├── faq.inc.php │ └── sidebar.inc.php ├── js │ ├── .DS_Store │ └── jquery.sweet-modal.min.js └── languages │ ├── lang_cn.php │ ├── lang_de.php │ └── lang_en.php ├── createticket.php ├── datamanager.php ├── editaccount.php ├── faq.php ├── index.php ├── login.php ├── logout.php ├── mytickets.php ├── register.php ├── search.php ├── settings.php ├── setup ├── index.php ├── step2.php └── step3.php ├── team.php └── ticket.php /MinecraftUUID.php: -------------------------------------------------------------------------------- 1 | username = $username; 14 | $this->uuid = $uuid; 15 | $this->properties = $properties; 16 | } 17 | 18 | /** 19 | * @return string The player's username. 20 | */ 21 | public function getUsername() { 22 | return $this->username; 23 | } 24 | 25 | /** 26 | * @return string The player's UUID. 27 | */ 28 | public function getUUID() { 29 | return $this->uuid; 30 | } 31 | 32 | /** 33 | * @return array The player's properties listed on their mojang profile. 34 | */ 35 | public function getProperties() { 36 | return $this->properties; 37 | } 38 | 39 | /** 40 | * @return array Returns an array with keys of 'properties, usernname and uuid'. 41 | */ 42 | public function getProfileAsArray() { 43 | return array("username" => $this->username, "uuid" => $this->uuid, "properties" => $this->properties); 44 | } 45 | } 46 | 47 | class ProfileUtils { 48 | /** 49 | * @param string $identifier Either the player's Username or UUID. 50 | * @param int $timeout The length in seconds of the http request timeout. 51 | * @return MinecraftProfile|null Returns null if fetching of profile failed. Else returns completed user profile. 52 | */ 53 | public static function getProfile($identifier, $timeout = 5) { 54 | if(strlen($identifier) <= 16){ 55 | $identifier = ProfileUtils::getUUIDFromUsername($identifier, $timeout); 56 | $url = "https://sessionserver.mojang.com/session/minecraft/profile/".$identifier['uuid']; 57 | } else { 58 | $url = "https://sessionserver.mojang.com/session/minecraft/profile/".$identifier; 59 | } 60 | $ctx = stream_context_create( 61 | array( 62 | 'http' => array( 63 | 'timeout' => $timeout 64 | ) 65 | ) 66 | ); 67 | $ret = file_get_contents($url, 0, $ctx); 68 | if(isset($ret) && $ret != null && $ret != false) { 69 | $data = json_decode($ret, true); 70 | return new MinecraftProfile($data['name'], $data['id'], $data['properties']); 71 | }else { 72 | return null; 73 | } 74 | } 75 | 76 | /** 77 | * @param int $timeout http timeout in seconds 78 | * @param $username string Minecraft username. 79 | * @return array (Key => Value) "username" => Minecraft username (properly capitalized) "uuid" => Minecraft UUID 80 | */ 81 | public static function getUUIDFromUsername($username, $timeout = 5) { 82 | if(strlen($username) > 16) 83 | return array("username" => "", "uuid" => ""); 84 | $url = 'https://api.mojang.com/profiles/minecraft'; 85 | $options = array( 86 | 'http' => array( 87 | 'header' => "Content-type: application/json\r\n", 88 | 'method' => 'POST', 89 | 'content' => '["'.$username.'"]', 90 | 'timeout' => $timeout 91 | ), 92 | ); 93 | $context = stream_context_create($options); 94 | $result = file_get_contents($url, false, $context); 95 | 96 | // Verification 97 | if(isset($result) && $result != null && $result != false) 98 | { 99 | $ress = json_decode($result, true); 100 | $ress = $ress[0]; 101 | $res = Array("username" => $ress['name'], "uuid" => $ress['id']); 102 | return $res; 103 | } 104 | else 105 | return null; 106 | } 107 | 108 | /** 109 | * @param $usernames array of usernames to be collected. Maximum of 100 usernames. 110 | * @param int $timeout http timeout in seconds 111 | * @return array of array (Key => Value) "username" => Minecraft username (properly capitalized) "uuid" => Minecraft UUID 112 | */ 113 | public static function getUUIDsFromUsernames($usernames, $timeout = 5){ 114 | $usernames = array_splice($usernames, 0, 100); 115 | foreach($usernames as $user) 116 | if(strlen($user) > 16) 117 | return array("username" => "", "uuid" => ""); 118 | 119 | $url = 'https://api.mojang.com/profiles/minecraft'; 120 | $first = true; 121 | $contents = "["; 122 | foreach ($usernames as $user) { 123 | if(!$first) { 124 | $contents .= ", "; 125 | } 126 | $contents .= '"' . $user . '"'; 127 | $first = false; 128 | } 129 | $contents = "]"; 130 | 131 | $options = array( 132 | 'http' => array( 133 | 'header' => "Content-type: application/json\r\n", 134 | 'method' => 'POST', 135 | 'content' => $contents, 136 | 'timeout' => $timeout 137 | ) 138 | ); 139 | 140 | $context = stream_context_create($options); 141 | $result = file_get_contents($url, false, $context); 142 | 143 | // Verification 144 | if(isset($result) && $result != null && $result != false) 145 | { 146 | $output = array(); 147 | $ress = json_decode($result, true); 148 | for($i = 0; $i < count($ress); $i++){ 149 | $ress = $ress[$i]; 150 | $res = Array("username" => $ress['name'], "uuid" => $ress['id']); 151 | array_push($output, $res); 152 | } 153 | 154 | return $output; 155 | } 156 | else 157 | return null; 158 | } 159 | 160 | /** 161 | * @param $uuid string UUID to format 162 | * @return string Properly formatted UUID (According to UUID v4 Standards xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx WHERE y = 8,9,A,or B and x = random digits.) 163 | */ 164 | public static function formatUUID($uuid) { 165 | $uid = ""; 166 | $uid .= substr($uuid, 0, 8)."-"; 167 | $uid .= substr($uuid, 8, 4)."-"; 168 | $uid .= substr($uuid, 12, 4)."-"; 169 | $uid .= substr($uuid, 16, 4)."-"; 170 | $uid .= substr($uuid, 20); 171 | return $uid; 172 | } 173 | } 174 | -------------------------------------------------------------------------------- /accounts.php: -------------------------------------------------------------------------------- 1 | 11 | 12 | 1){ 15 | ?> 16 | 17 | 21 | 22 | 23 | 24 | 25 | Accounts 26 | 27 | 28 | 29 | 33 | 34 | 35 | 36 | 37 |
38 |
39 | 52 |

Accounts

53 | prepare("SELECT * FROM accounts"); 56 | $stmt->execute(); 57 | ?> 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | fetch()) { 69 | ?> 70 | 71 | 72 | 73 | 74 | 75 | 84 | 94 | 95 | 98 |
UsernameEmailLast loginFirst loginRankAction
87 | 88 | 91 | 92 | 93 |
99 |
100 | 103 |
104 | 105 | 106 | -------------------------------------------------------------------------------- /addcategory.php: -------------------------------------------------------------------------------- 1 | 11 | 12 | 16 | 17 | 21 | 22 | 23 | 24 | 25 | <?php echo CAT_CREATE_HEADING; ?> 26 | 27 | 28 | 29 | 30 | 31 |
32 |
33 | prepare("INSERT INTO categorys (NAME, STATUS) 37 | VALUES (:cat, 0)"); 38 | $stmt->bindParam(":cat", $_POST["name"], PDO::PARAM_STR); 39 | $stmt->execute(); 40 | ?> 41 | 42 | 45 |

46 |
47 |
48 |
49 |
50 |
51 | 54 |
55 | 56 | 57 | -------------------------------------------------------------------------------- /addfaq.php: -------------------------------------------------------------------------------- 1 | 11 | 12 | 16 | 17 | 21 | 22 | 23 | 24 | 25 | <?php echo FAQ_CREATE_HEADING; ?> 26 | 27 | 28 | 29 | 30 | 31 |
32 |
33 | prepare("INSERT INTO faq (QUESTION, ANSWER) 37 | VALUES (:q, :a)"); 38 | $stmt->bindParam(":q", $_POST["question"], PDO::PARAM_STR); 39 | $stmt->bindParam(":a", $_POST["answer"], PDO::PARAM_STR); 40 | $stmt->execute(); 41 | ?> 42 | 43 | 46 |

47 |
48 |
49 |
50 |
51 |
52 |
53 | 56 |
57 | 58 | 59 | -------------------------------------------------------------------------------- /admin.php: -------------------------------------------------------------------------------- 1 | 11 | 12 | 16 | 17 | 21 | 22 | 23 | 24 | 25 | Admin 26 | 27 | 28 | 29 | 30 | 31 |
32 |
33 | prepare("SELECT * FROM categorys WHERE ID = :id"); 37 | $stmt->bindParam(":id", $_GET["delcat"], PDO::PARAM_INT); 38 | $stmt->execute(); 39 | $count = $stmt->rowCount(); 40 | if($count != 0){ 41 | $stmt = $mysql->prepare("UPDATE categorys SET STATUS = 1 WHERE ID = :id"); 42 | $stmt->bindParam(":id", $_GET["delcat"], PDO::PARAM_INT); 43 | $stmt->execute(); 44 | ?> 45 |
46 | 47 |
48 | 51 |
52 | 53 |
54 | 58 |

59 |
60 | 61 |
62 | prepare("SELECT * FROM categorys WHERE STATUS = 0"); 65 | $stmt->execute(); 66 | $count = $stmt->rowCount(); 67 | if($count != 0){ 68 | ?> 69 | 70 | 71 | 72 | 73 | 74 | fetch()) { 76 | ?> 77 | 78 | 79 | 80 | 81 | 85 |
Name
" class="btn">
86 |
87 |
88 | prepare("SELECT * FROM faq WHERE ID = :id"); 92 | $stmt->bindParam(":id", $_GET["delfaq"], PDO::PARAM_INT); 93 | $stmt->execute(); 94 | $count = $stmt->rowCount(); 95 | if($count != 0){ 96 | $stmt = $mysql->prepare("DELETE FROM faq WHERE ID = :id"); 97 | $stmt->bindParam(":id", $_GET["delfaq"], PDO::PARAM_INT); 98 | $stmt->execute(); 99 | ?> 100 |
101 | 102 |
103 | 106 |
107 | 108 |
109 | 113 |

FAQ

114 |
115 | 116 |
117 | prepare("SELECT * FROM faq"); 120 | $stmt->execute(); 121 | $count = $stmt->rowCount(); 122 | if($count != 0){ 123 | ?> 124 | 125 | 126 | 127 | 128 | 129 | 130 | fetch()) { 132 | ?> 133 | 134 | 135 | 136 | 137 | 138 | 142 |
143 | 144 |
145 | 148 |
" class="btn">
149 |
150 | 153 |
154 |
155 |
156 |

Accounts

157 | prepare("SELECT * FROM accounts"); 160 | $stmt->execute(); 161 | $count = $stmt->rowCount(); 162 | if($count != 0){ 163 | ?> 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | fetch()) { 174 | ?> 175 | 176 | 177 | 178 | 179 | 188 | 189 | 190 | 194 |
IDEmail
" class="btn">
195 |
196 |
197 | 206 |
207 | 208 |
209 | 212 |

213 |

214 |
215 | 238 |

239 |

240 | 255 |

Captcha

256 | 271 | 275 |

276 |
277 |
278 | 279 |
280 |
281 |
282 | 283 | 284 | -------------------------------------------------------------------------------- /ajax.php: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /assets/css/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tutorialwork/ProfessionalTickets/eb3eac47c7f5cee15fb302498830fc869081013f/assets/css/.DS_Store -------------------------------------------------------------------------------- /assets/css/jquery.sweet-modal.min.css: -------------------------------------------------------------------------------- 1 | .sweet-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:901;overflow-y:auto;background:radial-gradient(at center, rgba(255,255,255,0.84) 0%, rgba(255,255,255,0.96) 100%);-webkit-transform:translate3D(0, 0, 0);-webkit-perspective:500px;opacity:0;transition:opacity 0.26s}.sweet-modal-overlay.bounce .sweet-modal-box{-webkit-animation-name:bounce;-webkit-animation-duration:0.1s;-webkit-animation-iteration-count:2;-webkit-animation-direction:alternate;animation-name:bounce;animation-duration:0.1s;animation-iteration-count:2;animation-direction:alternate}.sweet-modal-overlay .sweet-modal-box{-webkit-transform:scale(0.9) translateY(-32px);transform:scale(0.9) translateY(-32px);opacity:0;transition-property:transform, -webkit-transform, opacity;transition-duration:0.3s;transition-delay:0.05s;transition-timing-function:cubic-bezier(0.52, 0.02, 0.19, 1.02)}.sweet-modal-overlay .sweet-modal-box .sweet-modal-content{-webkit-transform:translateY(-8px);transform:translateY(-8px)}.sweet-modal-overlay .sweet-modal-box .sweet-modal-buttons{-webkit-transform:translateY(16px);transform:translateY(16px)}.sweet-modal-overlay .sweet-modal-box .sweet-modal-content,.sweet-modal-overlay .sweet-modal-box .sweet-modal-buttons{opacity:0;transition-property:transform, -webkit-transform, opacity;transition-duration:0.3s;transition-delay:0.141s;transition-timing-function:cubic-bezier(0.52, 0.02, 0.19, 1.02)}.sweet-modal-overlay.open{opacity:1}.sweet-modal-overlay.open .sweet-modal-box{-webkit-transform:none;transform:none;opacity:1}.sweet-modal-overlay.open .sweet-modal-box .sweet-modal-content,.sweet-modal-overlay.open .sweet-modal-box .sweet-modal-buttons{-webkit-transform:none;transform:none;opacity:1}@media screen and (max-width: 420px){.sweet-modal-overlay{overflow:hidden}}.sweet-modal-close{position:absolute;z-index:4000;right:18px;top:14px}.sweet-modal-close a.sweet-modal-close-link{display:block;width:36px;height:36px;border-radius:100%;background-color:transparent;background-image:url('data:image/svg+xml,');background-size:26px;background-position:center;transition:all 0.2s}.sweet-modal-close a.sweet-modal-close-link:hover{background-color:#09c;background-image:url('data:image/svg+xml,')}.sweet-modal-close a.sweet-modal-close-link:active{background-color:#09c}.sweet-modal-overlay.tabbed .sweet-modal-close{top:6px;right:12px}@media screen and (max-width: 420px){.sweet-modal-close{top:14px;right:18px}}.sweet-modal-box{font-family:"Roboto","Open Sans",sans-serif;font-size:14px;position:absolute;width:64%;left:18%;margin:auto;margin-top:96px;margin-bottom:96px;border-radius:3px;background:#fff;box-shadow:0px 8px 46px rgba(0,0,0,0.08),0px 2px 6px rgba(0,0,0,0.03)}.sweet-modal-box .sweet-modal-content+.sweet-modal-buttons{margin-top:0px}.sweet-modal-box.alert{width:50%;left:25%}.sweet-modal-box.prompt{width:50%;left:25%}@media screen and (max-width: 777px){.sweet-modal-box{width:82%;left:9%}}@media screen and (max-width: 420px){.sweet-modal-box,.sweet-modal-box.prompt,.sweet-modal-box.alert{width:100%;height:100%;max-height:100%;left:0;margin-top:0;margin-bottom:0;border-radius:0px}}.sweet-modal-title-wrap{border-bottom:1px solid #e0e0e0;padding-top:20px;padding-bottom:20px;padding-left:36px;padding-right:16px}.sweet-modal-overlay.tabbed .sweet-modal-title-wrap{padding-top:16px;padding-bottom:16px;padding-left:24px;padding-right:24px}.sweet-modal-title h2{margin:0;padding:0;font-family:"Roboto","Open Sans",sans-serif;font-weight:500;font-size:21px;color:#292c34;margin-top:2px}.sweet-modal-title .sweet-modal-tabs-links{margin-left:-36px;margin-top:-20px;margin-bottom:-20px;margin-right:-16px}.sweet-modal-title .sweet-modal-tabs-links ul{margin:0;padding:0;display:flex;flex-wrap:nowrap;align-items:center;overflow-x:auto}.sweet-modal-title .sweet-modal-tabs-links ul li{display:block}.sweet-modal-title .sweet-modal-tabs-links ul li a{display:block;position:relative;text-align:center;text-decoration:none;font-size:16px;color:#999;transition:all 0.2s}.sweet-modal-title .sweet-modal-tabs-links ul li a,.sweet-modal-title .sweet-modal-tabs-links ul li a label{cursor:pointer}.sweet-modal-title .sweet-modal-tabs-links ul li a label{display:block}.sweet-modal-title .sweet-modal-tabs-links ul li a .icon{display:block;margin:auto;height:24px;width:28px}.sweet-modal-title .sweet-modal-tabs-links ul li a .icon svg{width:100%;height:100%}.sweet-modal-title .sweet-modal-tabs-links ul li a .icon svg,.sweet-modal-title .sweet-modal-tabs-links ul li a .icon svg path{fill:#999;transition:fill 0.2s}.sweet-modal-title .sweet-modal-tabs-links ul li a .icon+label{margin-top:8px}.sweet-modal-title .sweet-modal-tabs-links ul li a::after{content:'';opacity:0;width:0px;height:0px;border:6px solid transparent;border-bottom-color:#e0e0e0;position:absolute;bottom:0px;left:50%;margin-left:-6px;transition:all 0.2s}.sweet-modal-title .sweet-modal-tabs-links ul li+li a{border-left:1px solid #e0e0e0}.sweet-modal-title .sweet-modal-tabs-links ul li:last-child a{border-right:1px solid #e0e0e0}.sweet-modal-title .sweet-modal-tabs-links ul li:hover a{color:#292c34}.sweet-modal-title .sweet-modal-tabs-links ul li:hover a .icon svg,.sweet-modal-title .sweet-modal-tabs-links ul li:hover a .icon svg path{fill:#292c34}.sweet-modal-title .sweet-modal-tabs-links ul li.active a{color:#09c;font-weight:600}.sweet-modal-title .sweet-modal-tabs-links ul li.active a,.sweet-modal-title .sweet-modal-tabs-links ul li.active a label{-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:default}.sweet-modal-title .sweet-modal-tabs-links ul li.active a .icon svg,.sweet-modal-title .sweet-modal-tabs-links ul li.active a .icon svg path{fill:#09c}.sweet-modal-title .sweet-modal-tabs-links ul li.active a::after{opacity:1}.sweet-modal-overlay.tabbed .sweet-modal-title .sweet-modal-tabs-links{margin-left:-24px;margin-right:-24px;margin-top:-16px;margin-bottom:-16px}.sweet-modal-overlay.tabbed .sweet-modal-title .sweet-modal-tabs-links ul li a{padding-top:24px;padding-bottom:24px;padding-left:24px;padding-right:24px}.sweet-modal-content{-moz-box-sizing:border-box;box-sizing:border-box;line-height:1.5;font-size:14px;padding-left:36px;padding-right:36px;padding-top:32px;padding-bottom:32px}.sweet-modal-content p:first-child{margin-top:0}.sweet-modal-content pre{overflow-x:auto}.sweet-modal-content b{font-weight:600}.sweet-modal-content .sweet-modal-icon{margin-bottom:24px}.sweet-modal-content .sweet-modal-prompt [type=text],.sweet-modal-content .sweet-modal-prompt [type=password],.sweet-modal-content .sweet-modal-prompt [type=number]{-moz-box-sizing:border-box;box-sizing:border-box;width:100%}@media screen and (max-width: 420px){.sweet-modal-content{overflow:auto;margin-bottom:64px}}.sweet-modal-box.alert .sweet-modal-content{text-align:center;font-size:16px;padding-top:64px;padding-bottom:64px}.sweet-modal-buttons{border-top:1px solid #e0e0e0;margin-top:48px;text-align:right;padding-left:18px;padding-right:18px;padding-top:14px;padding-bottom:14px}@media screen and (max-width: 420px){.sweet-modal-buttons{-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;bottom:0;left:0;width:100%;background:#fff}}.sweet-modal-buttons a.button,.sweet-modal-buttons button{display:inline-block;background:#09c;border:1px solid #006b8f;color:#fff;font-size:13px;font-family:"Roboto","Open Sans",sans-serif;font-weight:500;text-align:center;text-decoration:none;border-radius:3px;cursor:pointer;padding-top:8px;padding-bottom:8px;padding-left:12px;padding-right:12px;margin:4px;margin-left:12px;min-width:64px;transition:all 0.2s;outline:0}.sweet-modal-buttons a.button:hover,.sweet-modal-buttons button:hover{background:#00b8f5;color:#fff;text-decoration:none}.sweet-modal-buttons a.button:active,.sweet-modal-buttons button:active{background:#006b8f;color:#ccf2ff;border-color:#004d66;box-shadow:inset 0px 2px 3px rgba(0,0,0,0.4)}.sweet-modal-buttons a.accentB.button,.sweet-modal-buttons button.accentB{background:#09c;border-color:#006b8f}.sweet-modal-buttons a.accentB.button:hover,.sweet-modal-buttons button.accentB:hover{background:#00b8f5}.sweet-modal-buttons a.accentB.button:active,.sweet-modal-buttons button.accentB:active{background:#006b8f;color:#ccf2ff;border-color:#004d66}.sweet-modal-buttons a.accentB.bordered.button,.sweet-modal-buttons button.accentB.bordered{background:none;border-color:#09c;color:#09c}.sweet-modal-buttons a.accentB.bordered.button:hover,.sweet-modal-buttons button.accentB.bordered:hover{background:#09c;color:#fff;border-color:#006b8f}.sweet-modal-buttons a.accentB.bordered.button:active,.sweet-modal-buttons button.accentB.bordered:active{background:#006b8f;color:#ccf2ff;border-color:#004d66}.sweet-modal-buttons a.redB.button,.sweet-modal-buttons button.redB{background:#E64A33;border-color:#c42e18}.sweet-modal-buttons a.redB.button:hover,.sweet-modal-buttons button.redB:hover{background:#ea6a57}.sweet-modal-buttons a.redB.button:active,.sweet-modal-buttons button.redB:active{background:#c42e18;color:#fff;border-color:#9f2614}.sweet-modal-buttons a.redB.bordered.button,.sweet-modal-buttons button.redB.bordered{background:none;border-color:#E64A33;color:#E64A33}.sweet-modal-buttons a.redB.bordered.button:hover,.sweet-modal-buttons button.redB.bordered:hover{background:#E64A33;color:#fff;border-color:#c42e18}.sweet-modal-buttons a.redB.bordered.button:active,.sweet-modal-buttons button.redB.bordered:active{background:#c42e18;color:#fff;border-color:#9f2614}.sweet-modal-buttons a.blueB.button,.sweet-modal-buttons button.blueB{background:#27AAE1;border-color:#1985b2}.sweet-modal-buttons a.blueB.button:hover,.sweet-modal-buttons button.blueB:hover{background:#4bb8e6}.sweet-modal-buttons a.blueB.button:active,.sweet-modal-buttons button.blueB:active{background:#1985b2;color:#fff;border-color:#146a8e}.sweet-modal-buttons a.blueB.bordered.button,.sweet-modal-buttons button.blueB.bordered{background:none;border-color:#27AAE1;color:#27AAE1}.sweet-modal-buttons a.blueB.bordered.button:hover,.sweet-modal-buttons button.blueB.bordered:hover{background:#27AAE1;color:#fff;border-color:#1985b2}.sweet-modal-buttons a.blueB.bordered.button:active,.sweet-modal-buttons button.blueB.bordered:active{background:#1985b2;color:#fff;border-color:#146a8e}.sweet-modal-buttons a.greenB.button,.sweet-modal-buttons button.greenB{background:#B7D968;border-color:#a0cd37}.sweet-modal-buttons a.greenB.button:hover,.sweet-modal-buttons button.greenB:hover{background:#c7e189}.sweet-modal-buttons a.greenB.button:active,.sweet-modal-buttons button.greenB:active{background:#a0cd37;color:#fff;border-color:#88af2c}.sweet-modal-buttons a.greenB.bordered.button,.sweet-modal-buttons button.greenB.bordered{background:none;border-color:#B7D968;color:#B7D968}.sweet-modal-buttons a.greenB.bordered.button:hover,.sweet-modal-buttons button.greenB.bordered:hover{background:#B7D968;color:#fff;border-color:#a0cd37}.sweet-modal-buttons a.greenB.bordered.button:active,.sweet-modal-buttons button.greenB.bordered:active{background:#a0cd37;color:#fff;border-color:#88af2c}.sweet-modal-buttons a.darkGreyB.button,.sweet-modal-buttons button.darkGreyB{background:#5A5A5A;border-color:#3b3b3b;color:#292c34}.sweet-modal-buttons a.darkGreyB.button:hover,.sweet-modal-buttons button.darkGreyB:hover{background:#464646;color:#343842}.sweet-modal-buttons a.darkGreyB.button:active,.sweet-modal-buttons button.darkGreyB:active{background:#3b3b3b;box-shadow:inset 0px 2px 3px rgba(0,0,0,0.2);border-color:#272727}.sweet-modal-buttons a.darkGreyB.bordered.button,.sweet-modal-buttons button.darkGreyB.bordered{background:none;border-color:#5A5A5A;color:#5A5A5A}.sweet-modal-buttons a.darkGreyB.bordered.button:hover,.sweet-modal-buttons button.darkGreyB.bordered:hover{background:#5A5A5A;color:#292c34;border-color:#5A5A5A}.sweet-modal-buttons a.darkGreyB.bordered.button:active,.sweet-modal-buttons button.darkGreyB.bordered:active{background:#3b3b3b;color:#000;border-color:#272727}.sweet-modal-buttons a.lightGreyB.button,.sweet-modal-buttons button.lightGreyB{background:#999;border-color:#7a7a7a;color:#292c34}.sweet-modal-buttons a.lightGreyB.button:hover,.sweet-modal-buttons button.lightGreyB:hover{background:#858585;color:#343842}.sweet-modal-buttons a.lightGreyB.button:active,.sweet-modal-buttons button.lightGreyB:active{background:#7a7a7a;box-shadow:inset 0px 2px 3px rgba(0,0,0,0.2);border-color:#666}.sweet-modal-buttons a.lightGreyB.bordered.button,.sweet-modal-buttons button.lightGreyB.bordered{background:none;border-color:#999;color:#999}.sweet-modal-buttons a.lightGreyB.bordered.button:hover,.sweet-modal-buttons button.lightGreyB.bordered:hover{background:#999;color:#292c34;border-color:#999}.sweet-modal-buttons a.lightGreyB.bordered.button:active,.sweet-modal-buttons button.lightGreyB.bordered:active{background:#7a7a7a;color:#1a1a1a;border-color:#666}.sweet-modal-buttons a.yellowB.button,.sweet-modal-buttons button.yellowB{background:#f39c12;border-color:#be780a}.sweet-modal-buttons a.yellowB.button:hover,.sweet-modal-buttons button.yellowB:hover{background:#f5ac39}.sweet-modal-buttons a.yellowB.button:active,.sweet-modal-buttons button.yellowB:active{background:#be780a;color:#fff;border-color:#976008}.sweet-modal-buttons a.yellowB.bordered.button,.sweet-modal-buttons button.yellowB.bordered{background:none;border-color:#f39c12;color:#f39c12}.sweet-modal-buttons a.yellowB.bordered.button:hover,.sweet-modal-buttons button.yellowB.bordered:hover{background:#f39c12;color:#fff;border-color:#be780a}.sweet-modal-buttons a.yellowB.bordered.button:active,.sweet-modal-buttons button.yellowB.bordered:active{background:#be780a;color:#fff;border-color:#976008}.sweet-modal-buttons a.purpleB.button,.sweet-modal-buttons button.purpleB{background:#673AB7;border-color:#4d2b89}.sweet-modal-buttons a.purpleB.button:hover,.sweet-modal-buttons button.purpleB:hover{background:#7c52c8}.sweet-modal-buttons a.purpleB.button:active,.sweet-modal-buttons button.purpleB:active{background:#4d2b89;color:#f7f4fc;border-color:#3b216a}.sweet-modal-buttons a.purpleB.bordered.button,.sweet-modal-buttons button.purpleB.bordered{background:none;border-color:#673AB7;color:#673AB7}.sweet-modal-buttons a.purpleB.bordered.button:hover,.sweet-modal-buttons button.purpleB.bordered:hover{background:#673AB7;color:#fff;border-color:#4d2b89}.sweet-modal-buttons a.purpleB.bordered.button:active,.sweet-modal-buttons button.purpleB.bordered:active{background:#4d2b89;color:#f7f4fc;border-color:#3b216a}.sweet-modal-buttons a.tealB.button,.sweet-modal-buttons button.tealB{background:#009688;border-color:#005951}.sweet-modal-buttons a.tealB.button:hover,.sweet-modal-buttons button.tealB:hover{background:#00bfad}.sweet-modal-buttons a.tealB.button:active,.sweet-modal-buttons button.tealB:active{background:#005951;color:#96fff5;border-color:#00302c}.sweet-modal-buttons a.tealB.bordered.button,.sweet-modal-buttons button.tealB.bordered{background:none;border-color:#009688;color:#009688}.sweet-modal-buttons a.tealB.bordered.button:hover,.sweet-modal-buttons button.tealB.bordered:hover{background:#009688;color:#fff;border-color:#005951}.sweet-modal-buttons a.tealB.bordered.button:active,.sweet-modal-buttons button.tealB.bordered:active{background:#005951;color:#96fff5;border-color:#00302c}.sweet-modal-buttons a.brownB.button,.sweet-modal-buttons button.brownB{background:#795548;border-color:#533a31}.sweet-modal-buttons a.brownB.button:hover,.sweet-modal-buttons button.brownB:hover{background:#936757}.sweet-modal-buttons a.brownB.button:active,.sweet-modal-buttons button.brownB:active{background:#533a31;color:#e8dcd8;border-color:#392822}.sweet-modal-buttons a.brownB.bordered.button,.sweet-modal-buttons button.brownB.bordered{background:none;border-color:#795548;color:#795548}.sweet-modal-buttons a.brownB.bordered.button:hover,.sweet-modal-buttons button.brownB.bordered:hover{background:#795548;color:#fff;border-color:#533a31}.sweet-modal-buttons a.brownB.bordered.button:active,.sweet-modal-buttons button.brownB.bordered:active{background:#533a31;color:#e8dcd8;border-color:#392822}.sweet-modal-buttons a.orangeB.button,.sweet-modal-buttons button.orangeB{background:#F57C00;border-color:#b85d00}.sweet-modal-buttons a.orangeB.button:hover,.sweet-modal-buttons button.orangeB:hover{background:#ff901f}.sweet-modal-buttons a.orangeB.button:active,.sweet-modal-buttons button.orangeB:active{background:#b85d00;color:#fffaf5;border-color:#8f4800}.sweet-modal-buttons a.orangeB.bordered.button,.sweet-modal-buttons button.orangeB.bordered{background:none;border-color:#F57C00;color:#F57C00}.sweet-modal-buttons a.orangeB.bordered.button:hover,.sweet-modal-buttons button.orangeB.bordered:hover{background:#F57C00;color:#fff;border-color:#b85d00}.sweet-modal-buttons a.orangeB.bordered.button:active,.sweet-modal-buttons button.orangeB.bordered:active{background:#b85d00;color:#fffaf5;border-color:#8f4800}.sweet-modal-buttons a.pinkB.button,.sweet-modal-buttons button.pinkB{background:#E91E63;border-color:#b8124a}.sweet-modal-buttons a.pinkB.button:hover,.sweet-modal-buttons button.pinkB:hover{background:#ed437d}.sweet-modal-buttons a.pinkB.button:active,.sweet-modal-buttons button.pinkB:active{background:#b8124a;color:#fff;border-color:#930e3b}.sweet-modal-buttons a.pinkB.bordered.button,.sweet-modal-buttons button.pinkB.bordered{background:none;border-color:#E91E63;color:#E91E63}.sweet-modal-buttons a.pinkB.bordered.button:hover,.sweet-modal-buttons button.pinkB.bordered:hover{background:#E91E63;color:#fff;border-color:#b8124a}.sweet-modal-buttons a.pinkB.bordered.button:active,.sweet-modal-buttons button.pinkB.bordered:active{background:#b8124a;color:#fff;border-color:#930e3b}.sweet-modal-buttons a.secondaryB.button,.sweet-modal-buttons button.secondaryB{background:#292c34;border-color:#0e0f12}.sweet-modal-buttons a.secondaryB.button:hover,.sweet-modal-buttons button.secondaryB:hover{background:#3b3f4b}.sweet-modal-buttons a.secondaryB.button:active,.sweet-modal-buttons button.secondaryB:active{background:#0e0f12;color:#a4aab8;border-color:#000}.sweet-modal-buttons a.secondaryB.bordered.button,.sweet-modal-buttons button.secondaryB.bordered{background:none;border-color:#292c34;color:#292c34}.sweet-modal-buttons a.secondaryB.bordered.button:hover,.sweet-modal-buttons button.secondaryB.bordered:hover{background:#292c34;color:#fff;border-color:#0e0f12}.sweet-modal-buttons a.secondaryB.bordered.button:active,.sweet-modal-buttons button.secondaryB.bordered:active{background:#0e0f12;color:#a4aab8;border-color:#000}.sweet-modal-buttons a.whiteB.button,.sweet-modal-buttons button.whiteB{background:#fff;border-color:#e0e0e0;color:#292c34}.sweet-modal-buttons a.whiteB.button:hover,.sweet-modal-buttons button.whiteB:hover{background:#ebebeb;color:#343842}.sweet-modal-buttons a.whiteB.button:active,.sweet-modal-buttons button.whiteB:active{background:#e0e0e0;box-shadow:inset 0px 2px 3px rgba(0,0,0,0.2);border-color:#ccc}.sweet-modal-buttons a.whiteB.bordered.button,.sweet-modal-buttons button.whiteB.bordered{background:none;border-color:#fff;color:#fff}.sweet-modal-buttons a.whiteB.bordered.button:hover,.sweet-modal-buttons button.whiteB.bordered:hover{background:#fff;color:#292c34;border-color:#fff}.sweet-modal-buttons a.whiteB.bordered.button:active,.sweet-modal-buttons button.whiteB.bordered:active{background:#e0e0e0;color:gray;border-color:#ccc}.sweet-modal-buttons a.darkB.button,.sweet-modal-buttons button.darkB{background:#5A5A5A;border-color:#3b3b3b}.sweet-modal-buttons a.darkB.button:hover,.sweet-modal-buttons button.darkB:hover{background:#6e6e6e}.sweet-modal-buttons a.darkB.button:active,.sweet-modal-buttons button.darkB:active{background:#3b3b3b;color:#dadada;border-color:#272727}.sweet-modal-buttons a.darkB.bordered.button,.sweet-modal-buttons button.darkB.bordered{background:none;border-color:#5A5A5A;color:#5A5A5A}.sweet-modal-buttons a.darkB.bordered.button:hover,.sweet-modal-buttons button.darkB.bordered:hover{background:#5A5A5A;color:#fff;border-color:#3b3b3b}.sweet-modal-buttons a.darkB.bordered.button:active,.sweet-modal-buttons button.darkB.bordered:active{background:#3b3b3b;color:#dadada;border-color:#272727}.sweet-modal-buttons a.disabledB.button,.sweet-modal-buttons button.disabledB{background:#81cded;border-color:#66c3ea;color:#1d9cd1;cursor:default;pointer-events:none;-webkit-user-select:none;-ms-user-select:none;-moz-user-select:none;user-select:none}.sweet-modal-buttons a.bordered.flat.button,.sweet-modal-buttons button.bordered.flat{border-color:transparent}@-webkit-keyframes bounce{from{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.02);transform:scale(1.02)}}@keyframes bounce{from{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.02);transform:scale(1.02)}}@-webkit-keyframes animateSuccessTip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessTip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@-webkit-keyframes animateSuccessLong{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0px;top:35px}100%{width:47px;right:8px;top:38px}}@keyframes animateSuccessLong{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0px;top:35px}100%{width:47px;right:8px;top:38px}}@-webkit-keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}100%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}100%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}.animateSuccessTip{-webkit-animation:animateSuccessTip 0.75s;animation:animateSuccessTip 0.75s}.animateSuccessLong{-webkit-animation:animateSuccessLong 0.75s;animation:animateSuccessLong 0.75s}.sweet-modal-icon.sweet-modal-success.animate::after{-webkit-animation:rotatePlaceholder 4.25s ease-in;animation:rotatePlaceholder 4.25s ease-in}@-webkit-keyframes animateErrorIcon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}100%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@keyframes animateErrorIcon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}100%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}.animateErrorIcon{-webkit-animation:animateErrorIcon 0.5s;animation:animateErrorIcon 0.5s}@-webkit-keyframes animateXMark{0%{-webkit-transform:scale(0.4);transform:scale(0.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(0.4);transform:scale(0.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}100%{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}@keyframes animateXMark{0%{-webkit-transform:scale(0.4);transform:scale(0.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(0.4);transform:scale(0.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}100%{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}.animateXMark{-webkit-animation:animateXMark 0.5s;animation:animateXMark 0.5s}@-webkit-keyframes pulseWarning{0%{border-color:#F8D486}100%{border-color:#F8BB86}}@keyframes pulseWarning{0%{border-color:#F8D486}100%{border-color:#F8BB86}}.pulseWarning{-webkit-animation:pulseWarning 0.75s infinite alternate;animation:pulseWarning 0.75s infinite alternate}@-webkit-keyframes pulseWarningIns{0%{background-color:#F8D486}100%{background-color:#F8BB86}}@keyframes pulseWarningIns{0%{background-color:#F8D486}100%{background-color:#F8BB86}}.pulseWarningIns{-webkit-animation:pulseWarningIns 0.75s infinite alternate;animation:pulseWarningIns 0.75s infinite alternate}@-webkit-keyframes rotate-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.sweet-modal-icon{position:relative;width:80px;height:80px;border:4px solid gray;border-radius:50%;margin:auto;padding:0;box-sizing:content-box}.sweet-modal-icon.sweet-modal-error{border-color:#E64A33}.sweet-modal-icon.sweet-modal-error .sweet-modal-x-mark{position:relative;display:block}.sweet-modal-icon.sweet-modal-error .sweet-modal-line{display:block;position:absolute;top:37px;height:5px;width:47px;background-color:#E64A33;border-radius:2px}.sweet-modal-icon.sweet-modal-error .sweet-modal-line.sweet-modal-left{-webkit-transform:rotate(45deg);transform:rotate(45deg);left:17px}.sweet-modal-icon.sweet-modal-error .sweet-modal-line.sweet-modal-right{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);right:16px}.sweet-modal-icon.sweet-modal-warning{border-color:#F57C00}.sweet-modal-icon.sweet-modal-warning .sweet-modal-body{position:absolute;width:5px;height:47px;left:50%;top:10px;margin-left:-2px;border-radius:2px;background-color:#F57C00}.sweet-modal-icon.sweet-modal-warning .sweet-modal-dot{position:absolute;left:50%;bottom:10px;width:7px;height:7px;margin-left:-3px;border-radius:50%;background-color:#F57C00}.sweet-modal-icon.sweet-modal-info{border-color:#27AAE1}.sweet-modal-icon.sweet-modal-info::before{content:'';position:absolute;width:5px;height:29px;left:50%;bottom:17px;margin-left:-2px;border-radius:2px;background-color:#27AAE1}.sweet-modal-icon.sweet-modal-info::after{content:'';position:absolute;width:7px;height:7px;top:19px;margin-left:-3px;border-radius:50%;background-color:#27AAE1}.sweet-modal-icon.sweet-modal-success{border-color:#B7D968}.sweet-modal-icon.sweet-modal-success::before,.sweet-modal-icon.sweet-modal-success::after{content:'';position:absolute;border-radius:40px;width:60px;height:120px;background:white;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.sweet-modal-icon.sweet-modal-success::before{border-radius:120px 0 0 120px;top:-7px;left:-33px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:60px 60px;transform-origin:60px 60px}.sweet-modal-icon.sweet-modal-success::after{border-radius:0 120px 120px 0;top:-11px;left:30px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:0px 60px;transform-origin:0px 60px}.sweet-modal-icon.sweet-modal-success .sweet-modal-placeholder{box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2;width:80px;height:80px;border:4px solid rgba(183,217,104,0.2);border-radius:50%}.sweet-modal-icon.sweet-modal-success .sweet-modal-fix{position:absolute;left:28px;top:8px;z-index:1;width:7px;height:90px;background-color:white;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.sweet-modal-icon.sweet-modal-success .sweet-modal-line{display:block;position:absolute;z-index:2;height:5px;background-color:#B7D968;border-radius:2px}.sweet-modal-icon.sweet-modal-success .sweet-modal-line.sweet-modal-tip{width:25px;left:14px;top:46px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.sweet-modal-icon.sweet-modal-success .sweet-modal-line.sweet-modal-long{width:47px;right:8px;top:38px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.sweet-modal-icon.sweet-modal-custom{border-radius:0;border:none;background-size:contain;background-position:center center;background-repeat:no-repeat}.sweet-modal-overlay.dark-overlay{background:rgba(28,30,35,0.98)}.sweet-modal-overlay.dark-modal .sweet-modal-box{background:#25272e;color:#fff;box-shadow:0px 8px 24px rgba(0,0,0,0.1),0px 2px 6px rgba(0,0,0,0.03)}.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-title-wrap{border-color:#1c1e23;box-shadow:0px 1px 0px #2b2e37}.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-title h2{color:#fff}.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-title .sweet-modal-tabs-links ul li a{color:#61646b}.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-title .sweet-modal-tabs-links ul li a .icon svg,.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-title .sweet-modal-tabs-links ul li a .icon svg path{fill:#61646b}.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-title .sweet-modal-tabs-links ul li:hover a{color:#fff}.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-title .sweet-modal-tabs-links ul li:hover a .icon svg,.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-title .sweet-modal-tabs-links ul li:hover a .icon svg path{fill:#fff}.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-title .sweet-modal-tabs-links ul li.active a{color:#09c}.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-title .sweet-modal-tabs-links ul li.active a .icon svg,.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-title .sweet-modal-tabs-links ul li.active a .icon svg path{fill:#09c}.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-title .sweet-modal-tabs-links ul li.active a::after{border-bottom-color:#1c1e23}.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-title .sweet-modal-tabs-links ul li+li a{border-left-color:#1c1e23}.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-title .sweet-modal-tabs-links ul li:last-child a{border-right-color:#1c1e23}.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-close a.sweet-modal-close-link{background-color:#1c1e23;background-image:url('data:image/svg+xml,')}.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-close a.sweet-modal-close-link:hover{background-color:#09c}.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-icon.sweet-modal-success::before,.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-icon.sweet-modal-success::after,.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-icon.sweet-modal-success .sweet-modal-fix{background:#25272e}.sweet-modal-overlay.dark-modal .sweet-modal-box .sweet-modal-buttons{border-color:#1c1e23;box-shadow:inset 0px 1px 0px #2b2e37}.sweet-modal-overlay.dark-modal div::-webkit-scrollbar-thumb,.sweet-modal-overlay.dark-modal pre::-webkit-scrollbar-thumb{background:#32363f}.sweet-modal-overlay.dark-modal div::-webkit-scrollbar-thumb:hover,.sweet-modal-overlay.dark-modal pre::-webkit-scrollbar-thumb:hover{background:#09c}.sweet-modal-overlay.dark-modal div::-webkit-scrollbar-track-piece,.sweet-modal-overlay.dark-modal pre::-webkit-scrollbar-track-piece{background:#25272e} 2 | -------------------------------------------------------------------------------- /assets/css/main.css: -------------------------------------------------------------------------------- 1 | html, body{ 2 | padding: 0; 3 | margin: 0; 4 | font-family: 'Quicksand', sans-serif; 5 | background: #11998e; /* fallback for old browsers */ 6 | background: -webkit-linear-gradient(to right, #38ef7d, #11998e); /* Chrome 10-25, Safari 5.1-6 */ 7 | background: linear-gradient(to right, #38ef7d, #11998e); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ 8 | } 9 | .flex{ 10 | display: flex; 11 | justify-content: center; 12 | } 13 | .flex-item{ 14 | background: white; 15 | padding: 3%; 16 | margin: 2%; 17 | width: 100%; 18 | } 19 | .flex-item:hover{ 20 | transition: all 0.35s; 21 | box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); 22 | } 23 | .sidebar{ 24 | flex-basis: 25%; 25 | } 26 | .login{ 27 | flex-basis: 50%; 28 | } 29 | ul{ 30 | list-style: none; 31 | padding: 0; 32 | } 33 | ul li a:hover{ 34 | transition: all 0.25s; 35 | color: #38ef7d; 36 | } 37 | input, textarea, button, .btn{ 38 | margin-bottom: 1%; 39 | width: 100%; 40 | border: 2px solid #38ef7d; 41 | padding: 1.5%; 42 | outline: none; 43 | box-sizing: border-box; 44 | font-size: 16px; 45 | background: none; 46 | color: grey; 47 | } 48 | input:hover, textarea:hover, select:hover{ 49 | transition: all 0.35s; 50 | border: 2px solid #11998e; 51 | } 52 | button:hover, .btn:hover{ 53 | transition: all 0.35s; 54 | border: 2px solid #11998e; 55 | background: #11998e; 56 | color: white; 57 | } 58 | select{ 59 | -moz-appearance: none; 60 | -webkit-appearance: none; 61 | appearance: none; 62 | border: none; 63 | padding: 1.5%; 64 | margin-bottom: 1%; 65 | width: 100%; 66 | border: 2px solid #38ef7d; 67 | outline: none; 68 | background: none; 69 | border-radius: 0; 70 | font-size: 16px; 71 | color: grey; 72 | } 73 | a{ 74 | text-decoration: none; 75 | color: grey; 76 | } 77 | a:hover{ 78 | transition: all 0.3s; 79 | color: #38ef7d; 80 | } 81 | .success{ 82 | border: 2px solid #38ef7d; 83 | padding: 2.5%; 84 | } 85 | .error{ 86 | border: 2px solid #ff5b5b; 87 | padding: 2.5%; 88 | } 89 | th{ 90 | background: #38ef7d; 91 | padding: 2%; 92 | color: white; 93 | text-align: center; 94 | width: 10%; 95 | } 96 | td{ 97 | text-align: center; 98 | background: #f9f9f9; 99 | padding: 1%; 100 | } 101 | td .btn{ 102 | border: none; 103 | } 104 | td .btn:hover{ 105 | border: none; 106 | background: none; 107 | color: #38ef7d; 108 | } 109 | table tr:nth-of-type(odd) td { 110 | background-color: #efefef; 111 | } 112 | .head{ 113 | float: left; 114 | margin-right: 2%; 115 | } 116 | .detail{ 117 | color: grey; 118 | font-size: 70%; 119 | } 120 | .icon-card i{ 121 | color: black; 122 | float: right; 123 | margin-top: -23%; 124 | } 125 | .icon-card i:hover{ 126 | transition: all 0.4s; 127 | color: #38ef7d; 128 | } 129 | .icon-card-big i{ 130 | color: black; 131 | float: right; 132 | margin-top: -10%; 133 | } 134 | .icon-card-big i:hover{ 135 | transition: all 0.4s; 136 | color: #38ef7d; 137 | } 138 | .faq ul li{ 139 | background: #38ef7d; 140 | padding: 2%; 141 | margin-top: 2%; 142 | } 143 | .faq i{ 144 | float: right; 145 | margin-top: 0.5%; 146 | } 147 | .faq ul div{ 148 | background: #efefef; 149 | padding: 2%; 150 | } 151 | -------------------------------------------------------------------------------- /assets/inc/faq.inc.php: -------------------------------------------------------------------------------- 1 |

FAQ

2 |
3 | 18 |
19 | 37 | -------------------------------------------------------------------------------- /assets/inc/sidebar.inc.php: -------------------------------------------------------------------------------- 1 | 4 |

5 | 30 | 33 |

34 |


35 |
36 | 37 |
38 | 41 | -------------------------------------------------------------------------------- /assets/js/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tutorialwork/ProfessionalTickets/eb3eac47c7f5cee15fb302498830fc869081013f/assets/js/.DS_Store -------------------------------------------------------------------------------- /assets/js/jquery.sweet-modal.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * SweetModal: Sweet, easy and powerful modals and dialogs 3 | * v1.3.3, 2017-05-27 4 | * http://github.com/adeptoas/sweet-modal 5 | * 6 | * Copyright (c) 2016 Adepto.as AS · Oslo, Norway 7 | * Dual licensed under the MIT and GPL licenses. 8 | * 9 | * See LICENSE-MIT.txt and LICENSE-GPL.txt 10 | */ 11 | !function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o0){ref=this.params.buttons;for(name in ref)obj=ref[name],obj=$.extend({label:void 0,action:function(){},classes:"",class:""},obj),obj.classes.length<1&&(obj.classes=obj.class),label=obj.label||""===obj.label?obj.label:name,$button=$(''+label+""),$button.bind("click",{buttonObject:obj,parentObject:this},function(e){var result;return e.preventDefault(),result=e.data.buttonObject.action(e.data.parentObject),void 0===result||result!==!1?e.data.parentObject.close():void 0}),$buttons.append($button);$modal.append($buttons)}return $buttons},SweetModal.prototype._constructTitle=function($overlay,$modal){var $icon,$modalTabs,$modalTabsUL,$modalTitle,$tpl,icon,key,label,ref,value;if("string"==typeof this.params.title)return""!==this.params.title?$modal.find(".sweet-modal-title h2").html(this.params.title):$modal.find(".sweet-modal-title-wrap").remove();if("object"==typeof this.params.title){$overlay.addClass("tabbed"),$modalTitle=$modal.find(".sweet-modal-title"),$modalTitle.find("h2").remove(),$modalTabs=$(templates.tabs.links),$modalTabsUL=$modalTabs.find("ul"),ref=this.params.title;for(key in ref)value=ref[key],$tpl=$(templates.prepare(templates.tabs.link,{TAB_ID:key})),label=icon=!1,"string"==typeof value?(label=value,icon=!1):(label=value.label||!1,icon=value.icon||!1),icon?($icon=$tpl.find("a .icon").html(icon),value.iconCSS&&$icon.find("img, svg").css(value.iconCSS)):$tpl.find("a .icon").remove(),label||$tpl.find("a label").remove(),$tpl.find("a label").text(label),$modalTabsUL.append($tpl);return $modalTabsUL.find("li:first-child").addClass("active"),$modalTitle.append($modalTabs)}throw"Invalid title type."},SweetModal.prototype._constructContent=function($overlay,$modal){var $modalContent,$tpl,key,m,ref,value;if("string"==typeof this.params.content){if((m=this.params.content.match(/^\S+youtu\.?be\S+(?:v=|\/v\/)(\w+)$/))&&(this.params.content=''),""!==this.params.icon)switch($overlay.addClass("sweet-modal-has-icon"),this.params.icon){case $.sweetModal.ICON_SUCCESS:this.params.content=templates.icons.success+this.params.content;break;case $.sweetModal.ICON_ERROR:this.params.content=templates.icons.error+this.params.content;break;case $.sweetModal.ICON_WARNING:this.params.content=templates.icons.warning+this.params.content}$modal.find(".sweet-modal-content").html(this.params.content)}else{$modalContent=$(templates.tabs.content),ref=this.params.content;for(key in ref)value=ref[key],$tpl=$(templates.prepare(templates.tabs.tab,{TAB_ID:key})),$tpl.append(value),$modalContent.append($tpl);$modalContent.find(".sweet-modal-tab:not(:first-child)").hide(),$modal.find(".sweet-modal-content").html($modalContent)}return $modal.addClass(this.params.classes.join(" ")),$overlay.append($modal)},SweetModal.prototype.tojQueryObject=function(){var $modal,$overlay;return this.$overlay?this.$overlay:($overlay=$(templates.overlay).addClass(this.params.theme?this.params.theme.join(" "):$.sweetModal.THEME_LIGHT.join(" ")),$modal=$(templates.modal),this.params.showCloseButton||$modal.find(".sweet-modal-close").remove(),"auto"!==this.params.width&&$modal.css({width:this.params.width,left:"50%",transform:"translateX(-50%)"}),this._constructButtons($modal),this._constructTitle($overlay,$modal),this._constructContent($overlay,$modal),this.$overlay=$overlay,$overlay)},SweetModal.prototype.open=function(){var $icon,$overlay,scope;if(scope=this,$overlay=this.tojQueryObject(),$("body").append(this.$overlay),$overlay.click(function(_this){return function(e){return void 0!==e.target.hasClass&&e.target.hasClass("sweet-modal-clickable")?void 0:_this.params.blocking?_this.bounce():_this.close()}}(this)).delay(100).queue(function(){return $(this).addClass("open"),scope.params.onOpen(scope.tojQueryObject())}),$overlay.find(".sweet-modal-box").click(function(e){return void 0!==e.target.hasClass&&e.target.hasClass("sweet-modal-clickable")?void 0:e.stopPropagation()}),$overlay.find(".sweet-modal-icon").length>0)switch($icon=$overlay.find(".sweet-modal-icon"),this.params.icon){case $.sweetModal.ICON_SUCCESS:$icon.delay(80).queue(function(){return $icon.addClass("animate"),$icon.find(".sweet-modal-tip").addClass("animateSuccessTip"),$icon.find(".sweet-modal-long").addClass("animateSuccessLong")});break;case $.sweetModal.ICON_WARNING:$icon.addClass("pulseWarning"),$icon.find(".sweet-modal-body, .sweet-modal-dot").addClass("pulseWarningIns");break;case $.sweetModal.ICON_ERROR:$icon.delay(240).queue(function(){return $icon.addClass("animateErrorIcon"),$icon.find(".sweet-modal-x-mark").addClass("animateXMark")})}return this.params.timeout&&setTimeout(function(_this){return function(){return _this.close()}}(this),this.params.timeout),this.resize(),this.appendListeners(),this},SweetModal.prototype.bounce=function(){var $overlay;return $overlay=this.tojQueryObject(),$overlay.addClass("bounce"),setTimeout(function(){return $overlay.removeClass("bounce")},300)},SweetModal.prototype.resize=function(){var $modalBox,$overlay,mobileView;return $overlay=this.tojQueryObject(),$modalBox=$overlay.find(".sweet-modal-box"),mobileView=window.matchMedia("screen and (max-width: 914px)").matches,mobileView?$modalBox.removeAttr("style"):($(window).resize(function(){return $modalBox.height()>$(window).height()?$modalBox.css({top:"0",marginTop:"96px"}):$modalBox.css({top:"50%",marginTop:-$modalBox.height()/2-6})}),$(window).trigger("resize")),this},SweetModal.prototype.appendListeners=function(){var $overlay;return $overlay=this.tojQueryObject(),$overlay.find(".sweet-modal-close-link").off("click").click(function(_this){return function(){return _this.close()}}(this)),$overlay.find(".sweet-modal-tabs-links a").off("click").click(function(e){var $innerOverlay,tabHref;return e.preventDefault(),tabHref=$(this).attr("href").replace("#",""),$innerOverlay=$(this).closest(".sweet-modal-overlay"),$innerOverlay.find(".sweet-modal-tabs-links li").removeClass("active").find("a[href='#"+tabHref+"']").closest("li").addClass("active"),$innerOverlay.find(".sweet-modal-tabs-content .sweet-modal-tab").hide().filter("[data-tab="+tabHref+"]").show()}),this},SweetModal.prototype.close=function(){var $overlay,modal;return $overlay=this.tojQueryObject(),$.sweetModal.storage.openModals=function(){var i,len,ref,results;for(ref=$.sweetModal.storage.openModals,results=[],i=0,len=ref.length;len>i;i++)modal=ref[i],modal.getParams()!==this.getParams()&&results.push(modal);return results}.call(this),$overlay.removeClass("open"),this.params.onClose(),setTimeout(function(_this){return function(){return $overlay.remove()}}(this),300),this},SweetModal}(),module.exports=SweetModal},{"./helpers.coffee":2,"./templates.coffee":4}],2:[function(require,module,exports){module.exports={isMobile:function(){return window.matchMedia("screen and (max-width: 420px)").matches},validate:function(params){var isInvalidTabs;if(isInvalidTabs="object"==typeof params.title&&!1||"object"==typeof params.content&&!1,isInvalidTabs&¶ms.content.length!==params.title.length)throw"Title and Content count did not match.";return!0},objectSize:function(obj){return Object.keys(obj).length}}},{}],3:[function(require,module,exports){!function($){var SweetModal,helpers,templates;return SweetModal=require("./SweetModal.class.coffee"),helpers=require("./helpers.coffee"),templates=require("./templates.coffee"),$.sweetModal=function(props,message){var callbacks,modal,params;return"string"==typeof props&&(props=void 0===message?{content:props}:{title:props,content:message}),(!props.title||props.icon&&props.title)&&(props.type=$.sweetModal.TYPE_ALERT,props.classes=props.classes||["alert"]),params=$.extend({},$.sweetModal.defaultSettings,props),params.content.length<1&&(params.content=params.message),"function"==typeof params.onDisplay&&(params.onOpen=params.onDisplay),callbacks={onOpen:params.onOpen,onClose:params.onClose},params.onOpen=function($overlay){return $.sweetModal.defaultCallbacks.onOpen(),"function"==typeof callbacks.onOpen?callbacks.onOpen($overlay):void 0},params.onClose=function(){return $.sweetModal.defaultCallbacks.onClose(),"function"==typeof callbacks.onClose?callbacks.onClose():void 0},helpers.validate(params),modal=new SweetModal(params),modal.open(),$.sweetModal.storage.openModals.push(modal),modal},$.sweetModal.confirm=function(arg1,arg2,arg3,arg4){var content,errorCallback,successCallback,title;if(title="","string"!=typeof arg1||"function"!=typeof arg2&&void 0!==arg2&&null!==arg2){if("string"!=typeof arg1||"string"!=typeof arg2||"function"!=typeof arg3&&void 0!==arg3&&null!==arg3)throw"Invalid argument configuration.";title=arg1,content=arg2,successCallback=arg3||function(){},errorCallback=arg4||function(){}}else content=arg1,successCallback=arg2||function(){},errorCallback=arg3||function(){};return $.sweetModal({title:title,content:content,buttons:{cancel:{label:$.sweetModal.defaultSettings.confirm.cancel.label,action:errorCallback,classes:$.sweetModal.defaultSettings.confirm.cancel.classes},ok:{label:$.sweetModal.defaultSettings.confirm.yes.label,action:successCallback,classes:$.sweetModal.defaultSettings.confirm.yes.classes}},classes:["alert","confirm"],showCloseButton:!1,blocking:!0})},$.sweetModal.prompt=function(title,placeholder,value,successCallback,errorCallback){var buttons,content;return null==placeholder&&(placeholder=""),null==value&&(value=""),null==successCallback&&(successCallback=null),null==errorCallback&&(errorCallback=null),content=$(templates.prepare(templates.prompt,{TYPE:"text",PLACEHOLDER:placeholder,VALUE:value})),buttons={},successCallback=successCallback||function(){},errorCallback=errorCallback||function(){},$.sweetModal({title:title,content:content.wrap("
").parent().html(),buttons:{cancel:{label:$.sweetModal.defaultSettings.confirm.cancel.label,action:errorCallback,classes:$.sweetModal.defaultSettings.confirm.cancel.classes},ok:{label:$.sweetModal.defaultSettings.confirm.ok.label,classes:$.sweetModal.defaultSettings.confirm.ok.classes,action:function(){return successCallback($(".sweet-modal-prompt input").val())}}},classes:["prompt"],showCloseButton:!1,blocking:!0,onOpen:function($overlay){return $overlay.find("input").focus()}})},$.sweetModal.allModalsClosed=function(){return 0===$.sweetModal.storage.openModals.length},$.sweetModal.defaultSettings={title:"",message:"",content:"",icon:"",classes:[],showCloseButton:!0,blocking:!1,timeout:null,theme:$.sweetModal.THEME_LIGHT,type:$.sweetModal.TYPE_MODAL,width:"auto",buttons:{},confirm:{yes:{label:"Yes",classes:"greenB"},ok:{label:"OK",classes:"greenB"},cancel:{label:"Cancel",classes:"redB bordered flat"}},onOpen:null,onClose:null},$.sweetModal.defaultCallbacks={onOpen:function(){return $("body").css({overflow:"hidden"}),$("#content_wrap").addClass("blurred")},onClose:function(){return $.sweetModal.allModalsClosed()?($("body").css({overflow:"auto"}),$("#content_wrap").removeClass("blurred")):void 0}},$.sweetModal.storage={openModals:[]},"function"!=typeof $.confirm&&($.confirm=$.sweetModal,$.confirm.close=$.sweetModal.closeAll),$.sweetModal.mapNativeFunctions=function(){return window.alert=function(message){return $.sweetModal(message)}},$.sweetModal.THEME_COMPONENTS={LIGHT_OVERLAY:"light-overlay",LIGHT_MODAL:"light-modal",DARK_OVERLAY:"dark-overlay",DARK_MODAL:"dark-modal"},$.sweetModal.THEME_LIGHT=[$.sweetModal.THEME_COMPONENTS.LIGHT_OVERLAY,$.sweetModal.THEME_COMPONENTS.LIGHT_MODAL],$.sweetModal.THEME_DARK=[$.sweetModal.THEME_COMPONENTS.DARK_OVERLAY,$.sweetModal.THEME_COMPONENTS.DARK_MODAL],$.sweetModal.THEME_MIXED=[$.sweetModal.THEME_COMPONENTS.DARK_OVERLAY,$.sweetModal.THEME_COMPONENTS.LIGHT_MODAL],$.sweetModal.TYPE_ALERT="alert",$.sweetModal.TYPE_MODAL="modal",$.sweetModal.ICON_SUCCESS="success",$.sweetModal.ICON_ERROR="error",$.sweetModal.ICON_WARNING="warning"}(jQuery)},{"./SweetModal.class.coffee":1,"./helpers.coffee":2,"./templates.coffee":4}],4:[function(require,module,exports){module.exports={overlay:'
\n
',modal:'
\n
\n
\n

\n
\n \n
\n
\n
',buttons:'
',tabs:{links:'',content:'
\n
',link:'
  • \n \n \n \n \n
  • ',tab:'
    \n
    '},icons:{error:'
    \n \n \n \n \n
    ',warning:'
    \n \n \n
    ',info:'
    ',success:'
    \n \n \n
    \n
    \n
    '},prompt:'
    \n \n
    ',prepare:function(tpl,strings){var i,len,lookup,m,matches,replacement;for(matches=tpl.match(/\{([A-Z0-9_\-]+)\}/g)||[],i=0,len=matches.length;len>i;i++)m=matches[i],lookup=m.replace(/\{|\}/g,""),replacement=strings[lookup],void 0===replacement&&(replacement="{"+lookup+"}"),tpl=tpl.replace(new RegExp(m,"g"),replacement);return tpl}}},{}]},{},[3]); -------------------------------------------------------------------------------- /assets/languages/lang_cn.php: -------------------------------------------------------------------------------- 1 | Google ReCaptcha (只需要在该项启用的时候!)'); 33 | define("SAVE", "保存"); 34 | define("SAVED", "更变已保存"); 35 | define("CAPTCHA_PUBLIC_KEY", "website key"); 36 | define("CAPTCHA_PRIVATE_KEY", "secret key"); 37 | define("LANGUAGE", "语言"); 38 | define("MC_REGISTER", "mc服务器内注册账号"); 39 | define("MC_REGISTER_DESC", "当你启用这个功能,你需要 minecraft 插件,用户可以创建一个新的帐户"); 40 | //Addfaq.php 41 | define("FAQ_CREATE_HEADING", "创建FAQ条目"); 42 | define("ADD", "Add"); 43 | //Addcategory.php 44 | define("CAT_CREATE_HEADING", "创建新的分类"); 45 | define("CATEGORY", "分类"); 46 | //Createticket.php 47 | define("TICKET_CREATE_HEADING", "创建问题"); 48 | define("SEND", "发送"); 49 | define("SUBJECT", "主题"); 50 | define("MESSAGE", "说点内容吧..."); 51 | define("CAPTCHA_FAIL", "验证失败"); 52 | //Mytickets.php 53 | define("TITLE", "标题"); 54 | define("CREATED_AT", "创建时间"); 55 | define("LAST_ANSWER_AT", "最后回答时间"); 56 | define("NONE", "无"); 57 | define("OPEN", "待解决"); 58 | define("CLOSED", "已解决"); 59 | define("NO_TICKET", "你现在还没有创建一个提问"); 60 | define("MY_TICKETS", "我的提问"); 61 | //team.php 62 | define("OPEN_TICKETS", "待解决问题"); 63 | define("ALL_TICKETS", "所有问题"); 64 | define("NO_OPEN", "目前没有待解决问题"); 65 | //ticket.php 66 | define("CREATED_BY", "创建者"); 67 | define("CLOSE_BTN", "问题解决?"); 68 | define("TICKET_CLOSED", "这个问题已解决"); 69 | define("TICKET_ERROR", "没有问题"); 70 | define("TICKET_POSTED", "你的回答已发送"); 71 | define("TICKET_POSTED_ERR", "这个问题已经解决,但你可以写下你的回答"); 72 | define("TICKET_CLOSED_SUCCESS", "问题已解决"); 73 | define("TICKET_ALREADY_CLOSED", "这个问题已经解决"); 74 | define("TICKET_ANSWER_HEADING", "回答问题"); 75 | define("POST", "发送"); 76 | //settings.php 77 | define("PW_ERR", "你两次输入的新密码不同"); 78 | define("PW_FORM", "新密码"); 79 | define("PW_FORM_2", "请再输一次"); 80 | define("LASTLOGIN", "最后登录"); 81 | define("FIRSTLOGIN", "首次登陆"); 82 | //login.php 83 | define("PASSWORD", "密码"); 84 | define("PASSWORD_AGAIN", "请再输一次密码"); 85 | define("LOGIN_ERR", "登陆失败,请检查您的用户名密码"); 86 | define("LOGIN_BTN", "创建新账号"); 87 | define("LOGIN_BTN_DESC", "

    我如何创建账号?

    88 |

    在服务器中使用指令 /ticket createacc Email Password创建

    "); 89 | //register.php 90 | define("REGISTER", "注册"); 91 | define("REGISTER_USER_ERR", "用户名冲突"); 92 | define("REGISTER_EMAIL_ERR", "邮箱已使用"); 93 | define("REGISTER_PW_ERR", "密码不匹配"); 94 | define("REGISTER_OK", "账号创建成功"); 95 | define("DISABLED_HEADER", "错误"); 96 | define("DISABLED_MESSAGE", "网页注册已被管理员关闭,请前往服务器注册"); 97 | //editaccount.php 98 | define("SAVED_CHANGE", "更变已保存."); 99 | define("EDIT_NO_PERMS", "你不可以编辑这个用户"); 100 | define("EDIT_NOT_YOU", "你不可以编辑自己"); 101 | define("NO_REQUEST", "没有用户"); 102 | //search.php 103 | define("SEARCH", "搜索"); 104 | define("SEARCH_KEY", "关键词"); 105 | define("NO_SEARCH_RESULT", "没有结果"); 106 | ?> 107 | -------------------------------------------------------------------------------- /assets/languages/lang_de.php: -------------------------------------------------------------------------------- 1 | Google ReCaptcha (Wird nur benötigt wenn du das Captcha aktiviert hast!)'); 33 | define("SAVE", "Speichern"); 34 | define("SAVED", "Deine Änderungen wurden gespeichert."); 35 | define("CAPTCHA_PUBLIC_KEY", "Dein Webseitenschlüssel"); 36 | define("CAPTCHA_PRIVATE_KEY", "Dein privater Schlüssel"); 37 | define("LANGUAGE", "Sprache"); 38 | define("MC_REGISTER", "Minecraft Registrierung"); 39 | define("MC_REGISTER_DESC", "Wenn du diese Funktion aktivierst benötigst du das Minecraft Plugin damit Benutzer sich einen Account anlegen können."); 40 | //Addfaq.php 41 | define("FAQ_CREATE_HEADING", "Neuen FAQ Eintrag erstellen"); 42 | define("ADD", "Hinzufügen"); 43 | //Addcategory.php 44 | define("CAT_CREATE_HEADING", "Neue Kategorie erstellen"); 45 | define("CATEGORY", "Kategorie"); 46 | //Createticket.php 47 | define("TICKET_CREATE_HEADING", "Neues Ticket erstellen"); 48 | define("SEND", "Senden"); 49 | define("SUBJECT", "Betreff"); 50 | define("MESSAGE", "Deine Nachricht"); 51 | define("CAPTCHA_FAIL", "Du musst das Captcha ausfüllen."); 52 | //Mytickets.php 53 | define("TITLE", "Titel"); 54 | define("CREATED_AT", "Erstellt am"); 55 | define("LAST_ANSWER_AT", "Letzte Antwort am"); 56 | define("NONE", "Keine"); 57 | define("OPEN", "Offen"); 58 | define("CLOSED", "Geschlossen"); 59 | define("NO_TICKET", "Du hast derzeit keine Tickets."); 60 | define("MY_TICKETS", "Meine Tickets"); 61 | //team.php 62 | define("OPEN_TICKETS", "Offene Tickets"); 63 | define("ALL_TICKETS", "Alle Tickets"); 64 | define("NO_OPEN", "Derzeit gibt es keine offene Tickets."); 65 | //ticket.php 66 | define("CREATED_BY", "Erstellt von"); 67 | define("CLOSE_BTN", "Ticket schließen"); 68 | define("TICKET_CLOSED", "Dieses Ticket ist geschlossen!"); 69 | define("TICKET_ERROR", "Es wurde kein Ticket angefordert."); 70 | define("TICKET_POSTED", "Deine Antwort wurde gepostet."); 71 | define("TICKET_POSTED_ERR", "Dieses Ticket wurde geschlossen. Du kannst keine Antwort zu einem geschlossenen Ticket verfassen."); 72 | define("TICKET_CLOSED_SUCCESS", "Das Ticket wurde geschlossen."); 73 | define("TICKET_ALREADY_CLOSED", "Das Ticket ist bereits geschlossen."); 74 | define("TICKET_ANSWER_HEADING", "Antworte auf dieses Ticket"); 75 | define("POST", "Posten"); 76 | //settings.php 77 | define("PW_ERR", "Dein neues Passwort stimmt nicht überein. Bitte überprüfe es nochmal."); 78 | define("PW_FORM", "Neues Passwort"); 79 | define("PW_FORM_2", "Neues Passwort wiederholen"); 80 | define("LASTLOGIN", "letzter Login"); 81 | define("FIRSTLOGIN", "erster Login"); 82 | //login.php 83 | define("PASSWORD", "Passwort"); 84 | define("PASSWORD_AGAIN", "Passwort wiederholen"); 85 | define("LOGIN_ERR", "Der Login ist fehlgeschlagen. Überprüfe deine Eingabe."); 86 | define("LOGIN_BTN", "Erstelle einen neuen Account"); 87 | define("LOGIN_BTN_DESC", "

    Wie kann ich einen neuen Account erstellen?

    88 |

    Benutze auf dem Server den Befehl /ticket createacc Email Passwort um einen Account zu erstellen.

    "); 89 | //register.php 90 | define("REGISTER", "Registrieren"); 91 | define("REGISTER_USER_ERR", "Dieser Benutzername ist bereits vergeben"); 92 | define("REGISTER_EMAIL_ERR", "Diese Email ist bereits vergeben"); 93 | define("REGISTER_PW_ERR", "Deine Passwörter stimmen nicht überein"); 94 | define("REGISTER_OK", "Dein Account wurde erfolgreich erstellt"); 95 | define("DISABLED_HEADER", "Fehler"); 96 | define("DISABLED_MESSAGE", "Die manuelle Registierung wurde von einem Administrator deaktiviert. Bitte benutze den Befehl auf dem Minecraft Server um einen Account zu erstellen."); 97 | //editaccount.php 98 | define("SAVED_CHANGE", "Deine Änderungen wurden gespeichert."); 99 | define("EDIT_NO_PERMS", "Du kannst diesen Benutzer nicht verändern."); 100 | define("EDIT_NOT_YOU", "Du kannst dich nicht selbst bearbeiten."); 101 | define("NO_REQUEST", "Es wurde kein Benutzer angefordert."); 102 | //search.php 103 | define("SEARCH", "Suche"); 104 | define("SEARCH_KEY", "Suchbegriff"); 105 | define("NO_SEARCH_RESULT", "Es wurden keine Suchergebnisse gefunden."); 106 | ?> 107 | -------------------------------------------------------------------------------- /assets/languages/lang_en.php: -------------------------------------------------------------------------------- 1 | Google ReCaptcha (Only needed if captcha enabled!)'); 33 | define("SAVE", "Save"); 34 | define("SAVED", "Your changes was saved."); 35 | define("CAPTCHA_PUBLIC_KEY", "Your website key"); 36 | define("CAPTCHA_PRIVATE_KEY", "Your secret key"); 37 | define("LANGUAGE", "Language"); 38 | define("MC_REGISTER", "Minecraft Register"); 39 | define("MC_REGISTER_DESC", "When you enable this function you need the Minecraft plugin that users can create a new account."); 40 | //Addfaq.php 41 | define("FAQ_CREATE_HEADING", "Create FAQ entry"); 42 | define("ADD", "Add"); 43 | //Addcategory.php 44 | define("CAT_CREATE_HEADING", "Create new category"); 45 | define("CATEGORY", "Category"); 46 | //Createticket.php 47 | define("TICKET_CREATE_HEADING", "Create a ticket"); 48 | define("SEND", "Send"); 49 | define("SUBJECT", "Subject"); 50 | define("MESSAGE", "Your message"); 51 | define("CAPTCHA_FAIL", "You have to fill in the captcha."); 52 | //Mytickets.php 53 | define("TITLE", "Title"); 54 | define("CREATED_AT", "Created at"); 55 | define("LAST_ANSWER_AT", "Last answer at"); 56 | define("NONE", "None"); 57 | define("OPEN", "Open"); 58 | define("CLOSED", "Closed"); 59 | define("NO_TICKET", "You don't have currently created a ticket."); 60 | define("MY_TICKETS", "My tickets"); 61 | //team.php 62 | define("OPEN_TICKETS", "Open tickets"); 63 | define("ALL_TICKETS", "All tickets"); 64 | define("NO_OPEN", "Currently are no tickets open."); 65 | //ticket.php 66 | define("CREATED_BY", "Created by"); 67 | define("CLOSE_BTN", "Close ticket"); 68 | define("TICKET_CLOSED", "This ticket is closed!"); 69 | define("TICKET_ERROR", "No ticket was requested."); 70 | define("TICKET_POSTED", "Your answer was posted."); 71 | define("TICKET_POSTED_ERR", "The ticket is closed. You can't write a answer to closed tickets."); 72 | define("TICKET_CLOSED_SUCCESS", "The ticket was closed."); 73 | define("TICKET_ALREADY_CLOSED", "The ticket is already closed."); 74 | define("TICKET_ANSWER_HEADING", "Answer to this ticket"); 75 | define("POST", "Post"); 76 | //settings.php 77 | define("PW_ERR", "Your new password is not the same. Please check it again."); 78 | define("PW_FORM", "New password"); 79 | define("PW_FORM_2", "New password again"); 80 | define("LASTLOGIN", "Last login"); 81 | define("FIRSTLOGIN", "First login"); 82 | //login.php 83 | define("PASSWORD", "Password"); 84 | define("PASSWORD_AGAIN", "Password again"); 85 | define("LOGIN_ERR", "Login failed. Please check your entered username and password."); 86 | define("LOGIN_BTN", "Create a new account"); 87 | define("LOGIN_BTN_DESC", "

    How I can create a account?

    88 |

    Use the command /ticket createacc Email Password on the Minecraft server to create a command.

    "); 89 | //register.php 90 | define("REGISTER", "Register"); 91 | define("REGISTER_USER_ERR", "Sorry but this username is taken"); 92 | define("REGISTER_EMAIL_ERR", "Sorry but this email is taken"); 93 | define("REGISTER_PW_ERR", "Sorry but your passwords do not match"); 94 | define("REGISTER_OK", "Your account was successfully created"); 95 | define("DISABLED_HEADER", "Error"); 96 | define("DISABLED_MESSAGE", "The manual registration was disabled by an admin. Please use the command at the Minecraft server to create an account."); 97 | //editaccount.php 98 | define("SAVED_CHANGE", "Your changes was successfully saved."); 99 | define("EDIT_NO_PERMS", "You can't edit this user."); 100 | define("EDIT_NOT_YOU", "You can't edit yourself."); 101 | define("NO_REQUEST", "No user was requested."); 102 | //search.php 103 | define("SEARCH", "Search"); 104 | define("SEARCH_KEY", "Keyword"); 105 | define("NO_SEARCH_RESULT", "No search results were found."); 106 | ?> 107 | -------------------------------------------------------------------------------- /createticket.php: -------------------------------------------------------------------------------- 1 | 11 | 12 | prepare("INSERT INTO tickets (CREATOR, TITLE, CATEGORY, MESSAGE, CREATIONDATE, LASTANSWERDATE, STATUS) 18 | VALUES (:accid, :title, :catid, :msg, :now, null, 0)"); 19 | $id = getAccountID($_SESSION["username"]); 20 | $stmt->bindParam(":accid", $id, PDO::PARAM_INT); 21 | $stmt->bindParam(":title", $_POST["subject"], PDO::PARAM_STR); 22 | $stmt->bindParam(":catid", $_POST["category"], PDO::PARAM_INT); 23 | $stmt->bindParam(":msg", $_POST["msg"], PDO::PARAM_STR); 24 | $now = time(); 25 | $stmt->bindParam(":now", $now, PDO::PARAM_STR); 26 | $stmt->execute(); 27 | ?> 28 | 29 | 32 | 33 | 34 | 35 | 36 | <?php echo TICKET_CREATE_HEADING; ?> 37 | 38 | 39 | 40 | 41 | 42 |
    43 |
    44 | getSetting("captcha_private"), 50 | 'response' => $_POST["g-recaptcha-response"] 51 | ); 52 | $options = array( 53 | 'http' => array ( 54 | 'method' => 'POST', 55 | 'content' => http_build_query($data) 56 | ) 57 | ); 58 | $context = stream_context_create($options); 59 | $verify = file_get_contents($url, false, $context); 60 | $captcha_success=json_decode($verify); 61 | if($captcha_success->success){ 62 | create(); 63 | } else { 64 | ?> 65 |
    66 | 67 |
    68 | 75 |

    76 |
    77 | 89 |
    90 |
    91 | 94 |
    ">

    95 | 98 |
    99 |
    100 |
    101 | 104 |
    105 | 106 | 107 | -------------------------------------------------------------------------------- /datamanager.php: -------------------------------------------------------------------------------- 1 | prepare("SELECT * FROM settings WHERE NAME = :setting"); 5 | $stmt->bindParam(":setting", $setting, PDO::PARAM_STR); 6 | $stmt->execute(); 7 | $row = $stmt->fetch(); 8 | return $row["VALUE"]; 9 | } 10 | function setSetting($setting, $value){ 11 | require("mysql.php"); 12 | $stmt = $mysql->prepare("UPDATE settings SET VALUE = :value WHERE NAME = :setting"); 13 | $stmt->bindParam(":setting", $setting, PDO::PARAM_STR); 14 | $stmt->bindParam(":value", $value, PDO::PARAM_STR); 15 | $stmt->execute(); 16 | } 17 | function getAccountID($username){ 18 | require("mysql.php"); 19 | $stmt = $mysql->prepare("SELECT * FROM accounts WHERE USERNAME = :user"); 20 | $stmt->bindParam(":user", $username, PDO::PARAM_STR); 21 | $stmt->execute(); 22 | $row = $stmt->fetch(); 23 | return $row["ID"]; 24 | } 25 | function getAccountName($id){ 26 | require("mysql.php"); 27 | $stmt = $mysql->prepare("SELECT * FROM accounts WHERE ID = :id"); 28 | $stmt->bindParam(":id", $id, PDO::PARAM_INT); 29 | $stmt->execute(); 30 | $row = $stmt->fetch(); 31 | return $row["USERNAME"]; 32 | } 33 | function getAccountRank($username){ 34 | require("mysql.php"); 35 | $stmt = $mysql->prepare("SELECT * FROM accounts WHERE USERNAME = :user"); 36 | $stmt->bindParam(":user", $username, PDO::PARAM_STR); 37 | $stmt->execute(); 38 | $row = $stmt->fetch(); 39 | return $row["ACCOUNTRANK"]; 40 | } 41 | function getCategory($id){ 42 | require("mysql.php"); 43 | $stmt = $mysql->prepare("SELECT * FROM categorys WHERE ID = :id"); 44 | $stmt->bindParam(":id", $id, PDO::PARAM_STR); 45 | $stmt->execute(); 46 | $row = $stmt->fetch(); 47 | return $row["NAME"]; 48 | } 49 | function getTicketTitle($id){ 50 | require("mysql.php"); 51 | $stmt = $mysql->prepare("SELECT * FROM tickets WHERE ID = :id"); 52 | $stmt->bindParam(":id", $id, PDO::PARAM_STR); 53 | $stmt->execute(); 54 | $row = $stmt->fetch(); 55 | return $row["TITLE"]; 56 | } 57 | function getTicketContent($id){ 58 | require("mysql.php"); 59 | $stmt = $mysql->prepare("SELECT * FROM tickets WHERE ID = :id"); 60 | $stmt->bindParam(":id", $id, PDO::PARAM_STR); 61 | $stmt->execute(); 62 | $row = $stmt->fetch(); 63 | return $row["MESSAGE"]; 64 | } 65 | function getTicketDate($id){ 66 | require("mysql.php"); 67 | $stmt = $mysql->prepare("SELECT * FROM tickets WHERE ID = :id"); 68 | $stmt->bindParam(":id", $id, PDO::PARAM_STR); 69 | $stmt->execute(); 70 | $row = $stmt->fetch(); 71 | return $row["CREATIONDATE"]; 72 | } 73 | function getTicketCreatorID($id){ 74 | require("mysql.php"); 75 | $stmt = $mysql->prepare("SELECT * FROM tickets WHERE ID = :id"); 76 | $stmt->bindParam(":id", $id, PDO::PARAM_STR); 77 | $stmt->execute(); 78 | $row = $stmt->fetch(); 79 | return $row["CREATOR"]; 80 | } 81 | function displayTimestamp($time){ 82 | if(getSetting("lang") == "en"){ 83 | return date("m/d/Y h:i A", $time); 84 | } else if(getSetting("lang") == "de"){ 85 | return date("d.m.Y H:i", $time); 86 | } 87 | } 88 | function isTicketClosed($id){ 89 | require("mysql.php"); 90 | $stmt = $mysql->prepare("SELECT * FROM tickets WHERE ID = :id"); 91 | $stmt->bindParam(":id", $id, PDO::PARAM_STR); 92 | $stmt->execute(); 93 | $row = $stmt->fetch(); 94 | if($row["STATUS"] == 0){ 95 | return false; 96 | } else { 97 | return true; 98 | } 99 | } 100 | function deleteAccount($username){ 101 | require("mysql.php"); 102 | $stmt = $mysql->prepare("DELETE FROM accounts WHERE USERNAME = :name"); 103 | $stmt->bindParam(":name", $username, PDO::PARAM_STR); 104 | $stmt->execute(); 105 | } 106 | function getAccountEmail($username){ 107 | require("mysql.php"); 108 | $stmt = $mysql->prepare("SELECT * FROM accounts WHERE USERNAME = :name"); 109 | $stmt->bindParam(":name", $username, PDO::PARAM_STR); 110 | $stmt->execute(); 111 | $row = $stmt->fetch(); 112 | return $row["EMAIL"]; 113 | } 114 | function getFirstLoginDate($username){ 115 | require("mysql.php"); 116 | $stmt = $mysql->prepare("SELECT * FROM accounts WHERE USERNAME = :name"); 117 | $stmt->bindParam(":name", $username, PDO::PARAM_STR); 118 | $stmt->execute(); 119 | $row = $stmt->fetch(); 120 | return $row["FIRSTLOGIN"]; 121 | } 122 | function getLastLoginDate($username){ 123 | require("mysql.php"); 124 | $stmt = $mysql->prepare("SELECT * FROM accounts WHERE USERNAME = :name"); 125 | $stmt->bindParam(":name", $username, PDO::PARAM_STR); 126 | $stmt->execute(); 127 | $row = $stmt->fetch(); 128 | return $row["LASTLOGIN"]; 129 | } 130 | function updateLogin($username){ 131 | require("mysql.php"); 132 | $stmt = $mysql->prepare("UPDATE accounts SET LASTLOGIN = :value WHERE USERNAME = :user"); 133 | $stmt->bindParam(":user", $username, PDO::PARAM_STR); 134 | $now = time(); 135 | $stmt->bindParam(":value", $now, PDO::PARAM_STR); 136 | $stmt->execute(); 137 | } 138 | function migrate(){ 139 | //Update 2.3 140 | require("mysql.php"); 141 | $stmt = $mysql->prepare("SELECT * FROM settings WHERE NAME = mc_register"); 142 | $stmt->execute(); 143 | if($stmt->rowCount() == 0){ 144 | $stmt = $mysql->prepare("INSERT INTO settings (NAME, VALUE) VALUES ('mc_register', '1')"); 145 | $stmt->execute(); 146 | } 147 | } 148 | ?> 149 | -------------------------------------------------------------------------------- /editaccount.php: -------------------------------------------------------------------------------- 1 | 11 | 12 | 16 | 17 | 21 | 22 | 23 | 24 | 25 | Edit Account 26 | 27 | 28 | 29 | 30 | 31 |
    32 |
    33 | prepare("UPDATE accounts SET ACCOUNTRANK = :id WHERE USERNAME = :user"); 40 | $stmt->bindParam(":user", $_GET["user"], PDO::PARAM_STR); 41 | $stmt->bindParam(":id", $_POST["rank"], PDO::PARAM_STR); 42 | $stmt->execute(); 43 | ?> 44 |
    45 | 46 |
    47 | 50 |

    51 |

    :

    52 |

    :

    53 |
    54 |
    55 |
    56 |
    " method="post"> 57 | 80 | 81 |
    82 | 85 |
    86 | 87 |
    88 | 92 |
    93 | 94 |
    95 | 99 |
    100 | 101 |
    102 | 105 |
    106 |
    107 | 108 | 109 | -------------------------------------------------------------------------------- /faq.php: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | FAQ 15 | 16 | 17 | 18 | 19 | 20 |
    21 | 24 |
    25 |

    FAQ

    26 |
    27 |
      28 | prepare("SELECT * FROM faq"); 31 | $stmt->execute(); 32 | while ($row = $stmt->fetch()) { 33 | ?> 34 |
    • )"> " class="fas fa-plus">
    • 35 |
      " style="display: none;"> 36 |

      37 |
      38 | 41 |
    42 |
    43 | 61 |
    62 | 65 |
    66 | 67 | 68 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | <?php echo INDEX_HEADING; ?> 15 | 16 | 17 | 18 | 19 | 20 |
    21 |
    22 |

    23 |

    24 |
    25 | 26 |
    27 | 30 |
    31 |
    32 |
    33 | 34 |
    35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /login.php: -------------------------------------------------------------------------------- 1 | 11 | 12 | 16 | 17 | 18 | 19 | 20 | <?php echo LOGIN; ?> 21 | 22 | 23 | 24 | 25 |
    26 | 29 | 99 |
    100 | 101 | 102 | -------------------------------------------------------------------------------- /logout.php: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /mytickets.php: -------------------------------------------------------------------------------- 1 | 11 | 12 | 16 | 17 | 18 | 19 | 20 | <?php echo MY_TICKETS; ?> 21 | 22 | 23 | 24 | 25 | 26 |
    27 |
    28 | $chars_limit){ 31 | $new_text = substr($text, 0, $chars_limit); 32 | $new_text = trim($new_text); 33 | return $new_text . "..."; 34 | } else { 35 | return $text; 36 | } 37 | } 38 | ?> 39 |

    40 |
    41 | 42 |
    43 | prepare("SELECT * FROM tickets WHERE CREATOR = :accid ORDER BY CREATIONDATE DESC"); 46 | $id = getAccountID($_SESSION["username"]); 47 | $stmt->bindParam(":accid", $id, PDO::PARAM_STR); 48 | $stmt->execute(); 49 | $count = $stmt->rowCount(); 50 | if($count != 0){ 51 | ?> 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | fetch()) { 64 | ?> 65 | 66 | 67 | 68 | 69 | 70 | 77 | 84 | 85 | 86 | 89 |
    IDStatus
    " class="btn">
    90 | 93 |


    94 | 95 | 98 |
    99 | 102 |
    103 | 104 | 105 | -------------------------------------------------------------------------------- /register.php: -------------------------------------------------------------------------------- 1 | 11 | 12 | 16 | 17 | 18 | 19 | 20 | <?php echo REGISTER; ?> 21 | 22 | 23 | 24 | 25 |
    26 | 29 | 100 |
    101 | 102 | 103 | -------------------------------------------------------------------------------- /search.php: -------------------------------------------------------------------------------- 1 | 11 | 12 | 16 | 17 | 21 | 22 | 23 | 24 | 25 | <?php echo SEARCH; ?> 26 | 27 | 28 | 29 | 30 | 31 |
    32 |
    33 | $chars_limit){ 36 | $new_text = substr($text, 0, $chars_limit); 37 | $new_text = trim($new_text); 38 | return $new_text . "..."; 39 | } else { 40 | return $text; 41 | } 42 | } 43 | ?> 44 |

    45 |
    46 | 49 | 50 | 53 | 54 | 57 |
    58 | prepare("SELECT * FROM tickets WHERE TITLE LIKE :searchkey"); 62 | $searchkey = "%".$_POST["key"]."%"; 63 | $stmt->bindParam(":searchkey", $searchkey, PDO::PARAM_STR); 64 | $stmt->execute(); 65 | $count = $stmt->rowCount(); 66 | if($count != 0){ 67 | ?> 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | fetch()) { 80 | ?> 81 | 82 | 83 | 84 | 85 | 86 | 93 | 100 | 101 | 102 | 105 |
    IDStatus
    " class="btn">
    106 | 109 |


    110 |
    111 | 112 | 113 |
    114 | 118 |
    119 | 120 | 121 |
    122 | 125 |
    126 | 129 |
    130 | 131 | 132 | -------------------------------------------------------------------------------- /settings.php: -------------------------------------------------------------------------------- 1 | 11 | 12 | 16 | 17 | 18 | 19 | 20 | <?php echo SIDEBAR_ACCSETTINGS ?> 21 | 22 | 23 | 24 | 25 | 26 |
    27 |
    28 | 37 |
    38 | 39 |
    40 | prepare("UPDATE accounts SET EMAIL = :email WHERE USERNAME = :user"); 45 | $stmt->bindParam(":email", $_POST["email"], PDO::PARAM_STR); 46 | $stmt->bindParam(":user", $_SESSION["username"], PDO::PARAM_STR); 47 | $stmt->execute(); 48 | } else { 49 | $stmt = $mysql->prepare("UPDATE accounts SET EMAIL = :email, PASSWORD = :pw WHERE USERNAME = :user"); 50 | $stmt->bindParam(":email", $_POST["email"], PDO::PARAM_STR); 51 | $stmt->bindParam(":user", $_SESSION["username"], PDO::PARAM_STR); 52 | $stmt->bindParam(":pw", $hash, PDO::PARAM_STR); 53 | $stmt->execute(); 54 | } 55 | } 56 | ?> 57 |

    58 |
    59 | " placeholder="Email" required> 60 | 61 | 62 | 63 |
    64 |

    65 |

    :

    74 |

    :

    75 |

    :

    76 |
    77 | 80 |
    81 | 82 | 83 | -------------------------------------------------------------------------------- /setup/index.php: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 11 | 12 | Setup 13 | 14 | 15 | 16 | 17 |
    18 | 21 | 59 |
    60 | 61 | 62 | -------------------------------------------------------------------------------- /setup/step2.php: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 11 | 12 | Setup 13 | 14 | 15 | 16 | 17 |
    18 | 156 |
    157 | 158 | 159 | -------------------------------------------------------------------------------- /setup/step3.php: -------------------------------------------------------------------------------- 1 | 14 | 15 | 16 | Setup 17 | 18 | 19 | 20 | 21 |
    22 | 29 |
    30 | 31 | 46 | '); 47 | fclose($mysqlfile); 48 | session_destroy(); 49 | setSetting("lang", $_POST["lang"]); 50 | setSetting("captcha", $_POST["captcha"]); 51 | setSetting("captcha_public", $_POST["captcha-public"]); 52 | setSetting("captcha_private", $_POST["captcha-secret"]); 53 | setSetting("mc_register", $_POST["mcregister"]); 54 | ?> 55 | 56 | 64 | 65 | 66 | 67 | 68 | Setup 69 | 70 | 71 | 72 | 73 |
    74 | 103 |
    104 | 105 | 106 | -------------------------------------------------------------------------------- /team.php: -------------------------------------------------------------------------------- 1 | 11 | 12 | 16 | 17 | 21 | 22 | 23 | 24 | 25 | <?php echo OPEN_TICKETS; ?> 26 | 27 | 28 | 29 | 30 | 31 |
    32 |
    33 | $chars_limit){ 36 | $new_text = substr($text, 0, $chars_limit); 37 | $new_text = trim($new_text); 38 | return $new_text . "..."; 39 | } else { 40 | return $text; 41 | } 42 | } 43 | ?> 44 | 47 |

    48 | 51 |

    52 | 55 |
    56 | 59 | 60 | 63 | 64 | 67 |
    68 | prepare("SELECT * FROM tickets ORDER BY CREATIONDATE DESC"); 72 | } else { 73 | $stmt = $mysql->prepare("SELECT * FROM tickets WHERE STATUS = 0 ORDER BY CREATIONDATE DESC"); 74 | } 75 | $stmt->execute(); 76 | $count = $stmt->rowCount(); 77 | if($count != 0){ 78 | ?> 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | fetch()) { 91 | ?> 92 | 93 | 94 | 95 | 96 | 97 | 104 | 111 | 112 | 113 | 116 |
    IDStatus
    " class="btn">
    117 | 120 |


    121 | 124 |
    125 | 128 |
    129 | 130 | 131 | -------------------------------------------------------------------------------- /ticket.php: -------------------------------------------------------------------------------- 1 | 11 | 12 | 17 | 18 | 23 | 24 | 25 | 26 | 27 | Ticket 28 | 29 | 30 | 31 | 32 |
    33 |
    34 | prepare("UPDATE tickets SET STATUS = 1 WHERE ID = :id"); 40 | $stmt->bindParam(":id", $_GET["id"], PDO::PARAM_INT); 41 | $stmt->execute(); 42 | ?> 43 |
    44 | 45 |
    46 | 49 |
    50 | 51 |
    52 | prepare("INSERT INTO answers (TICKET, CREATOR, ANSWER, ANSWERDATE) VALUES 58 | (:ticketid, :accid, :msg, :now)"); 59 | $stmt->bindParam(":ticketid", $_GET["id"], PDO::PARAM_INT); 60 | $stmt->bindParam(":accid", getAccountID($_SESSION["username"]), PDO::PARAM_INT); 61 | $stmt->bindParam(":msg", $_POST["answer"], PDO::PARAM_STR); 62 | $now = time(); 63 | $stmt->bindParam(":now", $now, PDO::PARAM_STR); 64 | $stmt->execute(); 65 | $stmt2 = $mysql->prepare("UPDATE tickets SET LASTANSWERDATE = :now WHERE ID = :id"); 66 | $stmt2->bindParam(":id", $_GET["id"], PDO::PARAM_INT); 67 | $now = time(); 68 | $stmt2->bindParam(":now", $now, PDO::PARAM_STR); 69 | $stmt2->execute(); 70 | ?> 71 |
    72 | 73 |
    74 | 77 |
    78 | 79 |
    80 | 84 |

    85 |

    86 |
    87 |

    :
    88 | :

    89 |

    90 | 93 | &close" class="btn"> 94 | 97 |
    98 | 99 |
    100 | 104 |
    105 | 106 |
    107 | 110 |
    111 | 114 |
    115 | prepare("SELECT * FROM answers WHERE TICKET = :id"); 117 | $stmt->bindParam(":id", $_GET["id"], PDO::PARAM_INT); 118 | $stmt->execute(); 119 | $count = $stmt->rowCount(); 120 | if($count > 0){ 121 | while ($row = $stmt->fetch()) { 122 | ?> 123 |
    124 |
    125 | '; 127 | ?> 128 |

    129 |

    -

    130 |
    131 |
    132 | 137 |
    138 |
    139 |

    140 |
    " method="post"> 141 | 142 | 143 |
    144 |
    145 |
    146 | 149 | 150 | 151 | --------------------------------------------------------------------------------