├── .env.example ├── .gitattributes ├── .gitignore ├── .travis.yml ├── app ├── .htaccess ├── cache │ ├── .gitignore │ └── .htaccess ├── config │ ├── autoload.php │ ├── config.php │ ├── constants.php │ ├── database.php │ ├── doctypes.php │ ├── foreign_chars.php │ ├── hooks.php │ ├── memcached.php │ ├── migration.php │ ├── mimes.php │ ├── profiler.php │ ├── routes.php │ ├── smileys.php │ └── user_agents.php ├── controllers │ ├── Welcome.php │ └── index.html ├── core │ └── index.html ├── helpers │ └── index.html ├── hooks │ └── index.html ├── index.html ├── language │ ├── english │ │ └── index.html │ └── index.html ├── libraries │ └── index.html ├── logs │ └── .gitignore ├── models │ └── index.html └── third_party │ └── index.html ├── bootstrap └── autoload.php ├── composer.json ├── package-lock.json ├── package.json ├── phpunit.xml ├── public ├── css │ ├── app.css │ └── app.css.map ├── favicon.ico ├── index.php └── robots.txt ├── readme.md ├── resources ├── assets │ └── sass │ │ └── app.scss └── views │ ├── errors │ ├── cli │ │ ├── error_404.php │ │ ├── error_db.php │ │ ├── error_exception.php │ │ ├── error_general.php │ │ └── error_php.php │ └── html │ │ ├── error_404.php │ │ ├── error_db.php │ │ ├── error_exception.php │ │ ├── error_general.php │ │ └── error_php.php │ └── welcome_message.php ├── server.php ├── tests ├── CodePoserTest.php └── bootstrap.php └── webpack.mix.js /.env.example: -------------------------------------------------------------------------------- 1 | CI_ENV=development 2 | BASE_URL=http://localhost:9999/ 3 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.css linguist-vendored 3 | *.less linguist-vendored 4 | *.sass linguist-vendored 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | vendor 3 | .DS_Store 4 | composer.lock 5 | .env 6 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | 3 | php: 4 | - 7.0 5 | - 7.1 6 | 7 | before_script: 8 | - curl -s http://getcomposer.org/installer | php 9 | - php composer.phar install --dev 10 | - php composer.phar run-script post-root-package-install 11 | 12 | script: phpunit -------------------------------------------------------------------------------- /app/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | Require all denied 3 | 4 | 5 | Deny from all 6 | -------------------------------------------------------------------------------- /app/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | !.htaccess 4 | -------------------------------------------------------------------------------- /app/cache/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | Require all denied 3 | 4 | 5 | Deny from all 6 | -------------------------------------------------------------------------------- /app/config/autoload.php: -------------------------------------------------------------------------------- 1 | 'ua'); 60 | */ 61 | $autoload['libraries'] = array(); 62 | 63 | /* 64 | | ------------------------------------------------------------------- 65 | | Auto-load Drivers 66 | | ------------------------------------------------------------------- 67 | | These classes are located in system/libraries/ or in your 68 | | application/libraries/ directory, but are also placed inside their 69 | | own subdirectory and they extend the CI_Driver_Library class. They 70 | | offer multiple interchangeable driver options. 71 | | 72 | | Prototype: 73 | | 74 | | $autoload['drivers'] = array('cache'); 75 | */ 76 | $autoload['drivers'] = array(); 77 | 78 | /* 79 | | ------------------------------------------------------------------- 80 | | Auto-load Helper Files 81 | | ------------------------------------------------------------------- 82 | | Prototype: 83 | | 84 | | $autoload['helper'] = array('url', 'file'); 85 | */ 86 | $autoload['helper'] = array(); 87 | 88 | /* 89 | | ------------------------------------------------------------------- 90 | | Auto-load Config files 91 | | ------------------------------------------------------------------- 92 | | Prototype: 93 | | 94 | | $autoload['config'] = array('config1', 'config2'); 95 | | 96 | | NOTE: This item is intended for use ONLY if you have created custom 97 | | config files. Otherwise, leave it blank. 98 | | 99 | */ 100 | $autoload['config'] = array(); 101 | 102 | /* 103 | | ------------------------------------------------------------------- 104 | | Auto-load Language files 105 | | ------------------------------------------------------------------- 106 | | Prototype: 107 | | 108 | | $autoload['language'] = array('lang1', 'lang2'); 109 | | 110 | | NOTE: Do not include the "_lang" part of your file. For example 111 | | "codeigniter_lang.php" would be referenced as array('codeigniter'); 112 | | 113 | */ 114 | $autoload['language'] = array(); 115 | 116 | /* 117 | | ------------------------------------------------------------------- 118 | | Auto-load Models 119 | | ------------------------------------------------------------------- 120 | | Prototype: 121 | | 122 | | $autoload['model'] = array('first_model', 'second_model'); 123 | | 124 | | You can also supply an alternative model name to be assigned 125 | | in the controller: 126 | | 127 | | $autoload['model'] = array('first_model' => 'first'); 128 | */ 129 | $autoload['model'] = array(); 130 | -------------------------------------------------------------------------------- /app/config/config.php: -------------------------------------------------------------------------------- 1 | ]+$/i 157 | | 158 | | DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!! 159 | | 160 | */ 161 | $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-'; 162 | 163 | /* 164 | |-------------------------------------------------------------------------- 165 | | Enable Query Strings 166 | |-------------------------------------------------------------------------- 167 | | 168 | | By default CodeIgniter uses search-engine friendly segment based URLs: 169 | | example.com/who/what/where/ 170 | | 171 | | By default CodeIgniter enables access to the $_GET array. If for some 172 | | reason you would like to disable it, set 'allow_get_array' to FALSE. 173 | | 174 | | You can optionally enable standard query string based URLs: 175 | | example.com?who=me&what=something&where=here 176 | | 177 | | Options are: TRUE or FALSE (boolean) 178 | | 179 | | The other items let you set the query string 'words' that will 180 | | invoke your controllers and its functions: 181 | | example.com/index.php?c=controller&m=function 182 | | 183 | | Please note that some of the helpers won't work as expected when 184 | | this feature is enabled, since CodeIgniter is designed primarily to 185 | | use segment based URLs. 186 | | 187 | */ 188 | $config['allow_get_array'] = TRUE; 189 | $config['enable_query_strings'] = FALSE; 190 | $config['controller_trigger'] = 'c'; 191 | $config['function_trigger'] = 'm'; 192 | $config['directory_trigger'] = 'd'; 193 | 194 | /* 195 | |-------------------------------------------------------------------------- 196 | | Error Logging Threshold 197 | |-------------------------------------------------------------------------- 198 | | 199 | | You can enable error logging by setting a threshold over zero. The 200 | | threshold determines what gets logged. Threshold options are: 201 | | 202 | | 0 = Disables logging, Error logging TURNED OFF 203 | | 1 = Error Messages (including PHP errors) 204 | | 2 = Debug Messages 205 | | 3 = Informational Messages 206 | | 4 = All Messages 207 | | 208 | | You can also pass an array with threshold levels to show individual error types 209 | | 210 | | array(2) = Debug Messages, without Error Messages 211 | | 212 | | For a live site you'll usually only enable Errors (1) to be logged otherwise 213 | | your log files will fill up very fast. 214 | | 215 | */ 216 | $config['log_threshold'] = 0; 217 | 218 | /* 219 | |-------------------------------------------------------------------------- 220 | | Error Logging Directory Path 221 | |-------------------------------------------------------------------------- 222 | | 223 | | Leave this BLANK unless you would like to set something other than the default 224 | | application/logs/ directory. Use a full server path with trailing slash. 225 | | 226 | */ 227 | $config['log_path'] = ''; 228 | 229 | /* 230 | |-------------------------------------------------------------------------- 231 | | Log File Extension 232 | |-------------------------------------------------------------------------- 233 | | 234 | | The default filename extension for log files. The default 'php' allows for 235 | | protecting the log files via basic scripting, when they are to be stored 236 | | under a publicly accessible directory. 237 | | 238 | | Note: Leaving it blank will default to 'php'. 239 | | 240 | */ 241 | $config['log_file_extension'] = ''; 242 | 243 | /* 244 | |-------------------------------------------------------------------------- 245 | | Log File Permissions 246 | |-------------------------------------------------------------------------- 247 | | 248 | | The file system permissions to be applied on newly created log files. 249 | | 250 | | IMPORTANT: This MUST be an integer (no quotes) and you MUST use octal 251 | | integer notation (i.e. 0700, 0644, etc.) 252 | */ 253 | $config['log_file_permissions'] = 0644; 254 | 255 | /* 256 | |-------------------------------------------------------------------------- 257 | | Date Format for Logs 258 | |-------------------------------------------------------------------------- 259 | | 260 | | Each item that is logged has an associated date. You can use PHP date 261 | | codes to set your own date formatting 262 | | 263 | */ 264 | $config['log_date_format'] = 'Y-m-d H:i:s'; 265 | 266 | /* 267 | |-------------------------------------------------------------------------- 268 | | Error Views Directory Path 269 | |-------------------------------------------------------------------------- 270 | | 271 | | Leave this BLANK unless you would like to set something other than the default 272 | | application/views/errors/ directory. Use a full server path with trailing slash. 273 | | 274 | */ 275 | $config['error_views_path'] = ''; 276 | 277 | /* 278 | |-------------------------------------------------------------------------- 279 | | Cache Directory Path 280 | |-------------------------------------------------------------------------- 281 | | 282 | | Leave this BLANK unless you would like to set something other than the default 283 | | application/cache/ directory. Use a full server path with trailing slash. 284 | | 285 | */ 286 | $config['cache_path'] = ''; 287 | 288 | /* 289 | |-------------------------------------------------------------------------- 290 | | Cache Include Query String 291 | |-------------------------------------------------------------------------- 292 | | 293 | | Whether to take the URL query string into consideration when generating 294 | | output cache files. Valid options are: 295 | | 296 | | FALSE = Disabled 297 | | TRUE = Enabled, take all query parameters into account. 298 | | Please be aware that this may result in numerous cache 299 | | files generated for the same page over and over again. 300 | | array('q') = Enabled, but only take into account the specified list 301 | | of query parameters. 302 | | 303 | */ 304 | $config['cache_query_string'] = FALSE; 305 | 306 | /* 307 | |-------------------------------------------------------------------------- 308 | | Encryption Key 309 | |-------------------------------------------------------------------------- 310 | | 311 | | If you use the Encryption class, you must set an encryption key. 312 | | See the user guide for more info. 313 | | 314 | | http://codeigniter.com/user_guide/libraries/encryption.html 315 | | 316 | */ 317 | $config['encryption_key'] = ''; 318 | 319 | /* 320 | |-------------------------------------------------------------------------- 321 | | Session Variables 322 | |-------------------------------------------------------------------------- 323 | | 324 | | 'sess_driver' 325 | | 326 | | The storage driver to use: files, database, redis, memcached 327 | | 328 | | 'sess_cookie_name' 329 | | 330 | | The session cookie name, must contain only [0-9a-z_-] characters 331 | | 332 | | 'sess_expiration' 333 | | 334 | | The number of SECONDS you want the session to last. 335 | | Setting to 0 (zero) means expire when the browser is closed. 336 | | 337 | | 'sess_save_path' 338 | | 339 | | The location to save sessions to, driver dependent. 340 | | 341 | | For the 'files' driver, it's a path to a writable directory. 342 | | WARNING: Only absolute paths are supported! 343 | | 344 | | For the 'database' driver, it's a table name. 345 | | Please read up the manual for the format with other session drivers. 346 | | 347 | | IMPORTANT: You are REQUIRED to set a valid save path! 348 | | 349 | | 'sess_match_ip' 350 | | 351 | | Whether to match the user's IP address when reading the session data. 352 | | 353 | | WARNING: If you're using the database driver, don't forget to update 354 | | your session table's PRIMARY KEY when changing this setting. 355 | | 356 | | 'sess_time_to_update' 357 | | 358 | | How many seconds between CI regenerating the session ID. 359 | | 360 | | 'sess_regenerate_destroy' 361 | | 362 | | Whether to destroy session data associated with the old session ID 363 | | when auto-regenerating the session ID. When set to FALSE, the data 364 | | will be later deleted by the garbage collector. 365 | | 366 | | Other session cookie settings are shared with the rest of the application, 367 | | except for 'cookie_prefix' and 'cookie_httponly', which are ignored here. 368 | | 369 | */ 370 | $config['sess_driver'] = 'files'; 371 | $config['sess_cookie_name'] = 'ci_session'; 372 | $config['sess_expiration'] = 7200; 373 | $config['sess_save_path'] = NULL; 374 | $config['sess_match_ip'] = FALSE; 375 | $config['sess_time_to_update'] = 300; 376 | $config['sess_regenerate_destroy'] = FALSE; 377 | 378 | /* 379 | |-------------------------------------------------------------------------- 380 | | Cookie Related Variables 381 | |-------------------------------------------------------------------------- 382 | | 383 | | 'cookie_prefix' = Set a cookie name prefix if you need to avoid collisions 384 | | 'cookie_domain' = Set to .your-domain.com for site-wide cookies 385 | | 'cookie_path' = Typically will be a forward slash 386 | | 'cookie_secure' = Cookie will only be set if a secure HTTPS connection exists. 387 | | 'cookie_httponly' = Cookie will only be accessible via HTTP(S) (no javascript) 388 | | 389 | | Note: These settings (with the exception of 'cookie_prefix' and 390 | | 'cookie_httponly') will also affect sessions. 391 | | 392 | */ 393 | $config['cookie_prefix'] = ''; 394 | $config['cookie_domain'] = ''; 395 | $config['cookie_path'] = '/'; 396 | $config['cookie_secure'] = FALSE; 397 | $config['cookie_httponly'] = FALSE; 398 | 399 | /* 400 | |-------------------------------------------------------------------------- 401 | | Standardize newlines 402 | |-------------------------------------------------------------------------- 403 | | 404 | | Determines whether to standardize newline characters in input data, 405 | | meaning to replace \r\n, \r, \n occurrences with the PHP_EOL value. 406 | | 407 | | This is particularly useful for portability between UNIX-based OSes, 408 | | (usually \n) and Windows (\r\n). 409 | | 410 | */ 411 | $config['standardize_newlines'] = FALSE; 412 | 413 | /* 414 | |-------------------------------------------------------------------------- 415 | | Global XSS Filtering 416 | |-------------------------------------------------------------------------- 417 | | 418 | | Determines whether the XSS filter is always active when GET, POST or 419 | | COOKIE data is encountered 420 | | 421 | | WARNING: This feature is DEPRECATED and currently available only 422 | | for backwards compatibility purposes! 423 | | 424 | */ 425 | $config['global_xss_filtering'] = FALSE; 426 | 427 | /* 428 | |-------------------------------------------------------------------------- 429 | | Cross Site Request Forgery 430 | |-------------------------------------------------------------------------- 431 | | Enables a CSRF cookie token to be set. When set to TRUE, token will be 432 | | checked on a submitted form. If you are accepting user data, it is strongly 433 | | recommended CSRF protection be enabled. 434 | | 435 | | 'csrf_token_name' = The token name 436 | | 'csrf_cookie_name' = The cookie name 437 | | 'csrf_expire' = The number in seconds the token should expire. 438 | | 'csrf_regenerate' = Regenerate token on every submission 439 | | 'csrf_exclude_uris' = Array of URIs which ignore CSRF checks 440 | */ 441 | $config['csrf_protection'] = FALSE; 442 | $config['csrf_token_name'] = 'csrf_test_name'; 443 | $config['csrf_cookie_name'] = 'csrf_cookie_name'; 444 | $config['csrf_expire'] = 7200; 445 | $config['csrf_regenerate'] = TRUE; 446 | $config['csrf_exclude_uris'] = array(); 447 | 448 | /* 449 | |-------------------------------------------------------------------------- 450 | | Output Compression 451 | |-------------------------------------------------------------------------- 452 | | 453 | | Enables Gzip output compression for faster page loads. When enabled, 454 | | the output class will test whether your server supports Gzip. 455 | | Even if it does, however, not all browsers support compression 456 | | so enable only if you are reasonably sure your visitors can handle it. 457 | | 458 | | Only used if zlib.output_compression is turned off in your php.ini. 459 | | Please do not use it together with httpd-level output compression. 460 | | 461 | | VERY IMPORTANT: If you are getting a blank page when compression is enabled it 462 | | means you are prematurely outputting something to your browser. It could 463 | | even be a line of whitespace at the end of one of your scripts. For 464 | | compression to work, nothing can be sent before the output buffer is called 465 | | by the output class. Do not 'echo' any values with compression enabled. 466 | | 467 | */ 468 | $config['compress_output'] = FALSE; 469 | 470 | /* 471 | |-------------------------------------------------------------------------- 472 | | Master Time Reference 473 | |-------------------------------------------------------------------------- 474 | | 475 | | Options are 'local' or any PHP supported timezone. This preference tells 476 | | the system whether to use your server's local time as the master 'now' 477 | | reference, or convert it to the configured one timezone. See the 'date 478 | | helper' page of the user guide for information regarding date handling. 479 | | 480 | */ 481 | $config['time_reference'] = 'local'; 482 | 483 | /* 484 | |-------------------------------------------------------------------------- 485 | | Rewrite PHP Short Tags 486 | |-------------------------------------------------------------------------- 487 | | 488 | | If your PHP installation does not have short tag support enabled CI 489 | | can rewrite the tags on-the-fly, enabling you to utilize that syntax 490 | | in your view files. Options are TRUE or FALSE (boolean) 491 | | 492 | | Note: You need to have eval() enabled for this to work. 493 | | 494 | */ 495 | $config['rewrite_short_tags'] = FALSE; 496 | 497 | /* 498 | |-------------------------------------------------------------------------- 499 | | Reverse Proxy IPs 500 | |-------------------------------------------------------------------------- 501 | | 502 | | If your server is behind a reverse proxy, you must whitelist the proxy 503 | | IP addresses from which CodeIgniter should trust headers such as 504 | | HTTP_X_FORWARDED_FOR and HTTP_CLIENT_IP in order to properly identify 505 | | the visitor's IP address. 506 | | 507 | | You can use both an array or a comma-separated list of proxy addresses, 508 | | as well as specifying whole subnets. Here are a few examples: 509 | | 510 | | Comma-separated: '10.0.1.200,192.168.5.0/24' 511 | | Array: array('10.0.1.200', '192.168.5.0/24') 512 | */ 513 | $config['proxy_ips'] = ''; 514 | -------------------------------------------------------------------------------- /app/config/constants.php: -------------------------------------------------------------------------------- 1 | db->last_query() and profiling of DB queries. 62 | | When you run a query, with this setting set to TRUE (default), 63 | | CodeIgniter will store the SQL statement for debugging purposes. 64 | | However, this may cause high memory usage, especially if you run 65 | | a lot of SQL queries ... disable this to avoid that problem. 66 | | 67 | | The $active_group variable lets you choose which connection group to 68 | | make active. By default there is only one group (the 'default' group). 69 | | 70 | | The $query_builder variables lets you determine whether or not to load 71 | | the query builder class. 72 | */ 73 | $active_group = 'default'; 74 | $query_builder = TRUE; 75 | 76 | $db['default'] = array( 77 | 'dsn' => '', 78 | 'hostname' => 'localhost', 79 | 'username' => '', 80 | 'password' => '', 81 | 'database' => '', 82 | 'dbdriver' => 'mysqli', 83 | 'dbprefix' => '', 84 | 'pconnect' => FALSE, 85 | 'db_debug' => (ENVIRONMENT !== 'production'), 86 | 'cache_on' => FALSE, 87 | 'cachedir' => '', 88 | 'char_set' => 'utf8', 89 | 'dbcollat' => 'utf8_general_ci', 90 | 'swap_pre' => '', 91 | 'encrypt' => FALSE, 92 | 'compress' => FALSE, 93 | 'stricton' => FALSE, 94 | 'failover' => array(), 95 | 'save_queries' => TRUE 96 | ); 97 | -------------------------------------------------------------------------------- /app/config/doctypes.php: -------------------------------------------------------------------------------- 1 | '', 6 | 'xhtml1-strict' => '', 7 | 'xhtml1-trans' => '', 8 | 'xhtml1-frame' => '', 9 | 'xhtml-basic11' => '', 10 | 'html5' => '', 11 | 'html4-strict' => '', 12 | 'html4-trans' => '', 13 | 'html4-frame' => '', 14 | 'mathml1' => '', 15 | 'mathml2' => '', 16 | 'svg10' => '', 17 | 'svg11' => '', 18 | 'svg11-basic' => '', 19 | 'svg11-tiny' => '', 20 | 'xhtml-math-svg-xh' => '', 21 | 'xhtml-math-svg-sh' => '', 22 | 'xhtml-rdfa-1' => '', 23 | 'xhtml-rdfa-2' => '' 24 | ); 25 | -------------------------------------------------------------------------------- /app/config/foreign_chars.php: -------------------------------------------------------------------------------- 1 | 'ae', 14 | '/ö|œ/' => 'oe', 15 | '/ü/' => 'ue', 16 | '/Ä/' => 'Ae', 17 | '/Ü/' => 'Ue', 18 | '/Ö/' => 'Oe', 19 | '/À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ|Α|Ά|Ả|Ạ|Ầ|Ẫ|Ẩ|Ậ|Ằ|Ắ|Ẵ|Ẳ|Ặ|А/' => 'A', 20 | '/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª|α|ά|ả|ạ|ầ|ấ|ẫ|ẩ|ậ|ằ|ắ|ẵ|ẳ|ặ|а/' => 'a', 21 | '/Б/' => 'B', 22 | '/б/' => 'b', 23 | '/Ç|Ć|Ĉ|Ċ|Č/' => 'C', 24 | '/ç|ć|ĉ|ċ|č/' => 'c', 25 | '/Д/' => 'D', 26 | '/д/' => 'd', 27 | '/Ð|Ď|Đ|Δ/' => 'Dj', 28 | '/ð|ď|đ|δ/' => 'dj', 29 | '/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě|Ε|Έ|Ẽ|Ẻ|Ẹ|Ề|Ế|Ễ|Ể|Ệ|Е|Э/' => 'E', 30 | '/è|é|ê|ë|ē|ĕ|ė|ę|ě|έ|ε|ẽ|ẻ|ẹ|ề|ế|ễ|ể|ệ|е|э/' => 'e', 31 | '/Ф/' => 'F', 32 | '/ф/' => 'f', 33 | '/Ĝ|Ğ|Ġ|Ģ|Γ|Г|Ґ/' => 'G', 34 | '/ĝ|ğ|ġ|ģ|γ|г|ґ/' => 'g', 35 | '/Ĥ|Ħ/' => 'H', 36 | '/ĥ|ħ/' => 'h', 37 | '/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ|Η|Ή|Ί|Ι|Ϊ|Ỉ|Ị|И|Ы/' => 'I', 38 | '/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı|η|ή|ί|ι|ϊ|ỉ|ị|и|ы|ї/' => 'i', 39 | '/Ĵ/' => 'J', 40 | '/ĵ/' => 'j', 41 | '/Ķ|Κ|К/' => 'K', 42 | '/ķ|κ|к/' => 'k', 43 | '/Ĺ|Ļ|Ľ|Ŀ|Ł|Λ|Л/' => 'L', 44 | '/ĺ|ļ|ľ|ŀ|ł|λ|л/' => 'l', 45 | '/М/' => 'M', 46 | '/м/' => 'm', 47 | '/Ñ|Ń|Ņ|Ň|Ν|Н/' => 'N', 48 | '/ñ|ń|ņ|ň|ʼn|ν|н/' => 'n', 49 | '/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ|Ο|Ό|Ω|Ώ|Ỏ|Ọ|Ồ|Ố|Ỗ|Ổ|Ộ|Ờ|Ớ|Ỡ|Ở|Ợ|О/' => 'O', 50 | '/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º|ο|ό|ω|ώ|ỏ|ọ|ồ|ố|ỗ|ổ|ộ|ờ|ớ|ỡ|ở|ợ|о/' => 'o', 51 | '/П/' => 'P', 52 | '/п/' => 'p', 53 | '/Ŕ|Ŗ|Ř|Ρ|Р/' => 'R', 54 | '/ŕ|ŗ|ř|ρ|р/' => 'r', 55 | '/Ś|Ŝ|Ş|Ș|Š|Σ|С/' => 'S', 56 | '/ś|ŝ|ş|ș|š|ſ|σ|ς|с/' => 's', 57 | '/Ț|Ţ|Ť|Ŧ|τ|Т/' => 'T', 58 | '/ț|ţ|ť|ŧ|т/' => 't', 59 | '/Þ|þ/' => 'th', 60 | '/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ|Ũ|Ủ|Ụ|Ừ|Ứ|Ữ|Ử|Ự|У/' => 'U', 61 | '/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ|υ|ύ|ϋ|ủ|ụ|ừ|ứ|ữ|ử|ự|у/' => 'u', 62 | '/Ý|Ÿ|Ŷ|Υ|Ύ|Ϋ|Ỳ|Ỹ|Ỷ|Ỵ|Й/' => 'Y', 63 | '/ý|ÿ|ŷ|ỳ|ỹ|ỷ|ỵ|й/' => 'y', 64 | '/В/' => 'V', 65 | '/в/' => 'v', 66 | '/Ŵ/' => 'W', 67 | '/ŵ/' => 'w', 68 | '/Ź|Ż|Ž|Ζ|З/' => 'Z', 69 | '/ź|ż|ž|ζ|з/' => 'z', 70 | '/Æ|Ǽ/' => 'AE', 71 | '/ß/' => 'ss', 72 | '/IJ/' => 'IJ', 73 | '/ij/' => 'ij', 74 | '/Œ/' => 'OE', 75 | '/ƒ/' => 'f', 76 | '/ξ/' => 'ks', 77 | '/π/' => 'p', 78 | '/β/' => 'v', 79 | '/μ/' => 'm', 80 | '/ψ/' => 'ps', 81 | '/Ё/' => 'Yo', 82 | '/ё/' => 'yo', 83 | '/Є/' => 'Ye', 84 | '/є/' => 'ye', 85 | '/Ї/' => 'Yi', 86 | '/Ж/' => 'Zh', 87 | '/ж/' => 'zh', 88 | '/Х/' => 'Kh', 89 | '/х/' => 'kh', 90 | '/Ц/' => 'Ts', 91 | '/ц/' => 'ts', 92 | '/Ч/' => 'Ch', 93 | '/ч/' => 'ch', 94 | '/Ш/' => 'Sh', 95 | '/ш/' => 'sh', 96 | '/Щ/' => 'Shch', 97 | '/щ/' => 'shch', 98 | '/Ъ|ъ|Ь|ь/' => '', 99 | '/Ю/' => 'Yu', 100 | '/ю/' => 'yu', 101 | '/Я/' => 'Ya', 102 | '/я/' => 'ya' 103 | ); 104 | -------------------------------------------------------------------------------- /app/config/hooks.php: -------------------------------------------------------------------------------- 1 | array( 15 | 'hostname' => '127.0.0.1', 16 | 'port' => '11211', 17 | 'weight' => '1', 18 | ), 19 | ); 20 | -------------------------------------------------------------------------------- /app/config/migration.php: -------------------------------------------------------------------------------- 1 | migration->current() this is the version that schema will 69 | | be upgraded / downgraded to. 70 | | 71 | */ 72 | $config['migration_version'] = 0; 73 | 74 | /* 75 | |-------------------------------------------------------------------------- 76 | | Migrations Path 77 | |-------------------------------------------------------------------------- 78 | | 79 | | Path to your migrations folder. 80 | | Typically, it will be within your application path. 81 | | Also, writing permission is required within the migrations path. 82 | | 83 | */ 84 | $config['migration_path'] = APPPATH.'migrations/'; 85 | -------------------------------------------------------------------------------- /app/config/mimes.php: -------------------------------------------------------------------------------- 1 | array('application/mac-binhex40', 'application/mac-binhex', 'application/x-binhex40', 'application/x-mac-binhex40'), 14 | 'cpt' => 'application/mac-compactpro', 15 | 'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain'), 16 | 'bin' => array('application/macbinary', 'application/mac-binary', 'application/octet-stream', 'application/x-binary', 'application/x-macbinary'), 17 | 'dms' => 'application/octet-stream', 18 | 'lha' => 'application/octet-stream', 19 | 'lzh' => 'application/octet-stream', 20 | 'exe' => array('application/octet-stream', 'application/x-msdownload'), 21 | 'class' => 'application/octet-stream', 22 | 'psd' => array('application/x-photoshop', 'image/vnd.adobe.photoshop'), 23 | 'so' => 'application/octet-stream', 24 | 'sea' => 'application/octet-stream', 25 | 'dll' => 'application/octet-stream', 26 | 'oda' => 'application/oda', 27 | 'pdf' => array('application/pdf', 'application/force-download', 'application/x-download', 'binary/octet-stream'), 28 | 'ai' => array('application/pdf', 'application/postscript'), 29 | 'eps' => 'application/postscript', 30 | 'ps' => 'application/postscript', 31 | 'smi' => 'application/smil', 32 | 'smil' => 'application/smil', 33 | 'mif' => 'application/vnd.mif', 34 | 'xls' => array('application/vnd.ms-excel', 'application/msexcel', 'application/x-msexcel', 'application/x-ms-excel', 'application/x-excel', 'application/x-dos_ms_excel', 'application/xls', 'application/x-xls', 'application/excel', 'application/download', 'application/vnd.ms-office', 'application/msword'), 35 | 'ppt' => array('application/powerpoint', 'application/vnd.ms-powerpoint', 'application/vnd.ms-office', 'application/msword'), 36 | 'pptx' => array('application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/x-zip', 'application/zip'), 37 | 'wbxml' => 'application/wbxml', 38 | 'wmlc' => 'application/wmlc', 39 | 'dcr' => 'application/x-director', 40 | 'dir' => 'application/x-director', 41 | 'dxr' => 'application/x-director', 42 | 'dvi' => 'application/x-dvi', 43 | 'gtar' => 'application/x-gtar', 44 | 'gz' => 'application/x-gzip', 45 | 'gzip' => 'application/x-gzip', 46 | 'php' => array('application/x-httpd-php', 'application/php', 'application/x-php', 'text/php', 'text/x-php', 'application/x-httpd-php-source'), 47 | 'php4' => 'application/x-httpd-php', 48 | 'php3' => 'application/x-httpd-php', 49 | 'phtml' => 'application/x-httpd-php', 50 | 'phps' => 'application/x-httpd-php-source', 51 | 'js' => array('application/x-javascript', 'text/plain'), 52 | 'swf' => 'application/x-shockwave-flash', 53 | 'sit' => 'application/x-stuffit', 54 | 'tar' => 'application/x-tar', 55 | 'tgz' => array('application/x-tar', 'application/x-gzip-compressed'), 56 | 'z' => 'application/x-compress', 57 | 'xhtml' => 'application/xhtml+xml', 58 | 'xht' => 'application/xhtml+xml', 59 | 'zip' => array('application/x-zip', 'application/zip', 'application/x-zip-compressed', 'application/s-compressed', 'multipart/x-zip'), 60 | 'rar' => array('application/x-rar', 'application/rar', 'application/x-rar-compressed'), 61 | 'mid' => 'audio/midi', 62 | 'midi' => 'audio/midi', 63 | 'mpga' => 'audio/mpeg', 64 | 'mp2' => 'audio/mpeg', 65 | 'mp3' => array('audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'), 66 | 'aif' => array('audio/x-aiff', 'audio/aiff'), 67 | 'aiff' => array('audio/x-aiff', 'audio/aiff'), 68 | 'aifc' => 'audio/x-aiff', 69 | 'ram' => 'audio/x-pn-realaudio', 70 | 'rm' => 'audio/x-pn-realaudio', 71 | 'rpm' => 'audio/x-pn-realaudio-plugin', 72 | 'ra' => 'audio/x-realaudio', 73 | 'rv' => 'video/vnd.rn-realvideo', 74 | 'wav' => array('audio/x-wav', 'audio/wave', 'audio/wav'), 75 | 'bmp' => array('image/bmp', 'image/x-bmp', 'image/x-bitmap', 'image/x-xbitmap', 'image/x-win-bitmap', 'image/x-windows-bmp', 'image/ms-bmp', 'image/x-ms-bmp', 'application/bmp', 'application/x-bmp', 'application/x-win-bitmap'), 76 | 'gif' => 'image/gif', 77 | 'jpeg' => array('image/jpeg', 'image/pjpeg'), 78 | 'jpg' => array('image/jpeg', 'image/pjpeg'), 79 | 'jpe' => array('image/jpeg', 'image/pjpeg'), 80 | 'png' => array('image/png', 'image/x-png'), 81 | 'tiff' => 'image/tiff', 82 | 'tif' => 'image/tiff', 83 | 'css' => array('text/css', 'text/plain'), 84 | 'html' => array('text/html', 'text/plain'), 85 | 'htm' => array('text/html', 'text/plain'), 86 | 'shtml' => array('text/html', 'text/plain'), 87 | 'txt' => 'text/plain', 88 | 'text' => 'text/plain', 89 | 'log' => array('text/plain', 'text/x-log'), 90 | 'rtx' => 'text/richtext', 91 | 'rtf' => 'text/rtf', 92 | 'xml' => array('application/xml', 'text/xml', 'text/plain'), 93 | 'xsl' => array('application/xml', 'text/xsl', 'text/xml'), 94 | 'mpeg' => 'video/mpeg', 95 | 'mpg' => 'video/mpeg', 96 | 'mpe' => 'video/mpeg', 97 | 'qt' => 'video/quicktime', 98 | 'mov' => 'video/quicktime', 99 | 'avi' => array('video/x-msvideo', 'video/msvideo', 'video/avi', 'application/x-troff-msvideo'), 100 | 'movie' => 'video/x-sgi-movie', 101 | 'doc' => array('application/msword', 'application/vnd.ms-office'), 102 | 'docx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip', 'application/msword', 'application/x-zip'), 103 | 'dot' => array('application/msword', 'application/vnd.ms-office'), 104 | 'dotx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip', 'application/msword'), 105 | 'xlsx' => array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/vnd.ms-excel', 'application/msword', 'application/x-zip'), 106 | 'word' => array('application/msword', 'application/octet-stream'), 107 | 'xl' => 'application/excel', 108 | 'eml' => 'message/rfc822', 109 | 'json' => array('application/json', 'text/json'), 110 | 'pem' => array('application/x-x509-user-cert', 'application/x-pem-file', 'application/octet-stream'), 111 | 'p10' => array('application/x-pkcs10', 'application/pkcs10'), 112 | 'p12' => 'application/x-pkcs12', 113 | 'p7a' => 'application/x-pkcs7-signature', 114 | 'p7c' => array('application/pkcs7-mime', 'application/x-pkcs7-mime'), 115 | 'p7m' => array('application/pkcs7-mime', 'application/x-pkcs7-mime'), 116 | 'p7r' => 'application/x-pkcs7-certreqresp', 117 | 'p7s' => 'application/pkcs7-signature', 118 | 'crt' => array('application/x-x509-ca-cert', 'application/x-x509-user-cert', 'application/pkix-cert'), 119 | 'crl' => array('application/pkix-crl', 'application/pkcs-crl'), 120 | 'der' => 'application/x-x509-ca-cert', 121 | 'kdb' => 'application/octet-stream', 122 | 'pgp' => 'application/pgp', 123 | 'gpg' => 'application/gpg-keys', 124 | 'sst' => 'application/octet-stream', 125 | 'csr' => 'application/octet-stream', 126 | 'rsa' => 'application/x-pkcs7', 127 | 'cer' => array('application/pkix-cert', 'application/x-x509-ca-cert'), 128 | '3g2' => 'video/3gpp2', 129 | '3gp' => array('video/3gp', 'video/3gpp'), 130 | 'mp4' => 'video/mp4', 131 | 'm4a' => 'audio/x-m4a', 132 | 'f4v' => 'video/mp4', 133 | 'webm' => 'video/webm', 134 | 'aac' => 'audio/x-acc', 135 | 'm4u' => 'application/vnd.mpegurl', 136 | 'm3u' => 'text/plain', 137 | 'xspf' => 'application/xspf+xml', 138 | 'vlc' => 'application/videolan', 139 | 'wmv' => array('video/x-ms-wmv', 'video/x-ms-asf'), 140 | 'au' => 'audio/x-au', 141 | 'ac3' => 'audio/ac3', 142 | 'flac' => 'audio/x-flac', 143 | 'ogg' => 'audio/ogg', 144 | 'kmz' => array('application/vnd.google-earth.kmz', 'application/zip', 'application/x-zip'), 145 | 'kml' => array('application/vnd.google-earth.kml+xml', 'application/xml', 'text/xml'), 146 | 'ics' => 'text/calendar', 147 | 'ical' => 'text/calendar', 148 | 'zsh' => 'text/x-scriptzsh', 149 | '7zip' => array('application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'), 150 | 'cdr' => array('application/cdr', 'application/coreldraw', 'application/x-cdr', 'application/x-coreldraw', 'image/cdr', 'image/x-cdr', 'zz-application/zz-winassoc-cdr'), 151 | 'wma' => array('audio/x-ms-wma', 'video/x-ms-asf'), 152 | 'jar' => array('application/java-archive', 'application/x-java-application', 'application/x-jar', 'application/x-compressed'), 153 | 'svg' => array('image/svg+xml', 'application/xml', 'text/xml'), 154 | 'vcf' => 'text/x-vcard', 155 | 'srt' => array('text/srt', 'text/plain'), 156 | 'vtt' => array('text/vtt', 'text/plain'), 157 | 'ico' => array('image/x-icon', 'image/x-ico', 'image/vnd.microsoft.icon') 158 | ); 159 | -------------------------------------------------------------------------------- /app/config/profiler.php: -------------------------------------------------------------------------------- 1 | my_controller/index 50 | | my-controller/my-method -> my_controller/my_method 51 | */ 52 | $route['default_controller'] = 'welcome'; 53 | $route['404_override'] = ''; 54 | $route['translate_uri_dashes'] = FALSE; 55 | -------------------------------------------------------------------------------- /app/config/smileys.php: -------------------------------------------------------------------------------- 1 | array('grin.gif', '19', '19', 'grin'), 21 | ':lol:' => array('lol.gif', '19', '19', 'LOL'), 22 | ':cheese:' => array('cheese.gif', '19', '19', 'cheese'), 23 | ':)' => array('smile.gif', '19', '19', 'smile'), 24 | ';-)' => array('wink.gif', '19', '19', 'wink'), 25 | ';)' => array('wink.gif', '19', '19', 'wink'), 26 | ':smirk:' => array('smirk.gif', '19', '19', 'smirk'), 27 | ':roll:' => array('rolleyes.gif', '19', '19', 'rolleyes'), 28 | ':-S' => array('confused.gif', '19', '19', 'confused'), 29 | ':wow:' => array('surprise.gif', '19', '19', 'surprised'), 30 | ':bug:' => array('bigsurprise.gif', '19', '19', 'big surprise'), 31 | ':-P' => array('tongue_laugh.gif', '19', '19', 'tongue laugh'), 32 | '%-P' => array('tongue_rolleye.gif', '19', '19', 'tongue rolleye'), 33 | ';-P' => array('tongue_wink.gif', '19', '19', 'tongue wink'), 34 | ':P' => array('raspberry.gif', '19', '19', 'raspberry'), 35 | ':blank:' => array('blank.gif', '19', '19', 'blank stare'), 36 | ':long:' => array('longface.gif', '19', '19', 'long face'), 37 | ':ohh:' => array('ohh.gif', '19', '19', 'ohh'), 38 | ':grrr:' => array('grrr.gif', '19', '19', 'grrr'), 39 | ':gulp:' => array('gulp.gif', '19', '19', 'gulp'), 40 | '8-/' => array('ohoh.gif', '19', '19', 'oh oh'), 41 | ':down:' => array('downer.gif', '19', '19', 'downer'), 42 | ':red:' => array('embarrassed.gif', '19', '19', 'red face'), 43 | ':sick:' => array('sick.gif', '19', '19', 'sick'), 44 | ':shut:' => array('shuteye.gif', '19', '19', 'shut eye'), 45 | ':-/' => array('hmm.gif', '19', '19', 'hmmm'), 46 | '>:(' => array('mad.gif', '19', '19', 'mad'), 47 | ':mad:' => array('mad.gif', '19', '19', 'mad'), 48 | '>:-(' => array('angry.gif', '19', '19', 'angry'), 49 | ':angry:' => array('angry.gif', '19', '19', 'angry'), 50 | ':zip:' => array('zip.gif', '19', '19', 'zipper'), 51 | ':kiss:' => array('kiss.gif', '19', '19', 'kiss'), 52 | ':ahhh:' => array('shock.gif', '19', '19', 'shock'), 53 | ':coolsmile:' => array('shade_smile.gif', '19', '19', 'cool smile'), 54 | ':coolsmirk:' => array('shade_smirk.gif', '19', '19', 'cool smirk'), 55 | ':coolgrin:' => array('shade_grin.gif', '19', '19', 'cool grin'), 56 | ':coolhmm:' => array('shade_hmm.gif', '19', '19', 'cool hmm'), 57 | ':coolmad:' => array('shade_mad.gif', '19', '19', 'cool mad'), 58 | ':coolcheese:' => array('shade_cheese.gif', '19', '19', 'cool cheese'), 59 | ':vampire:' => array('vampire.gif', '19', '19', 'vampire'), 60 | ':snake:' => array('snake.gif', '19', '19', 'snake'), 61 | ':exclaim:' => array('exclaim.gif', '19', '19', 'exclaim'), 62 | ':question:' => array('question.gif', '19', '19', 'question') 63 | 64 | ); 65 | -------------------------------------------------------------------------------- /app/config/user_agents.php: -------------------------------------------------------------------------------- 1 | 'Windows 10', 15 | 'windows nt 6.3' => 'Windows 8.1', 16 | 'windows nt 6.2' => 'Windows 8', 17 | 'windows nt 6.1' => 'Windows 7', 18 | 'windows nt 6.0' => 'Windows Vista', 19 | 'windows nt 5.2' => 'Windows 2003', 20 | 'windows nt 5.1' => 'Windows XP', 21 | 'windows nt 5.0' => 'Windows 2000', 22 | 'windows nt 4.0' => 'Windows NT 4.0', 23 | 'winnt4.0' => 'Windows NT 4.0', 24 | 'winnt 4.0' => 'Windows NT', 25 | 'winnt' => 'Windows NT', 26 | 'windows 98' => 'Windows 98', 27 | 'win98' => 'Windows 98', 28 | 'windows 95' => 'Windows 95', 29 | 'win95' => 'Windows 95', 30 | 'windows phone' => 'Windows Phone', 31 | 'windows' => 'Unknown Windows OS', 32 | 'android' => 'Android', 33 | 'blackberry' => 'BlackBerry', 34 | 'iphone' => 'iOS', 35 | 'ipad' => 'iOS', 36 | 'ipod' => 'iOS', 37 | 'os x' => 'Mac OS X', 38 | 'ppc mac' => 'Power PC Mac', 39 | 'freebsd' => 'FreeBSD', 40 | 'ppc' => 'Macintosh', 41 | 'linux' => 'Linux', 42 | 'debian' => 'Debian', 43 | 'sunos' => 'Sun Solaris', 44 | 'beos' => 'BeOS', 45 | 'apachebench' => 'ApacheBench', 46 | 'aix' => 'AIX', 47 | 'irix' => 'Irix', 48 | 'osf' => 'DEC OSF', 49 | 'hp-ux' => 'HP-UX', 50 | 'netbsd' => 'NetBSD', 51 | 'bsdi' => 'BSDi', 52 | 'openbsd' => 'OpenBSD', 53 | 'gnu' => 'GNU/Linux', 54 | 'unix' => 'Unknown Unix OS', 55 | 'symbian' => 'Symbian OS' 56 | ); 57 | 58 | 59 | // The order of this array should NOT be changed. Many browsers return 60 | // multiple browser types so we want to identify the sub-type first. 61 | $browsers = array( 62 | 'OPR' => 'Opera', 63 | 'Flock' => 'Flock', 64 | 'Edge' => 'Spartan', 65 | 'Chrome' => 'Chrome', 66 | // Opera 10+ always reports Opera/9.80 and appends Version/ to the user agent string 67 | 'Opera.*?Version' => 'Opera', 68 | 'Opera' => 'Opera', 69 | 'MSIE' => 'Internet Explorer', 70 | 'Internet Explorer' => 'Internet Explorer', 71 | 'Trident.* rv' => 'Internet Explorer', 72 | 'Shiira' => 'Shiira', 73 | 'Firefox' => 'Firefox', 74 | 'Chimera' => 'Chimera', 75 | 'Phoenix' => 'Phoenix', 76 | 'Firebird' => 'Firebird', 77 | 'Camino' => 'Camino', 78 | 'Netscape' => 'Netscape', 79 | 'OmniWeb' => 'OmniWeb', 80 | 'Safari' => 'Safari', 81 | 'Mozilla' => 'Mozilla', 82 | 'Konqueror' => 'Konqueror', 83 | 'icab' => 'iCab', 84 | 'Lynx' => 'Lynx', 85 | 'Links' => 'Links', 86 | 'hotjava' => 'HotJava', 87 | 'amaya' => 'Amaya', 88 | 'IBrowse' => 'IBrowse', 89 | 'Maxthon' => 'Maxthon', 90 | 'Ubuntu' => 'Ubuntu Web Browser' 91 | ); 92 | 93 | $mobiles = array( 94 | // legacy array, old values commented out 95 | 'mobileexplorer' => 'Mobile Explorer', 96 | // 'openwave' => 'Open Wave', 97 | // 'opera mini' => 'Opera Mini', 98 | // 'operamini' => 'Opera Mini', 99 | // 'elaine' => 'Palm', 100 | 'palmsource' => 'Palm', 101 | // 'digital paths' => 'Palm', 102 | // 'avantgo' => 'Avantgo', 103 | // 'xiino' => 'Xiino', 104 | 'palmscape' => 'Palmscape', 105 | // 'nokia' => 'Nokia', 106 | // 'ericsson' => 'Ericsson', 107 | // 'blackberry' => 'BlackBerry', 108 | // 'motorola' => 'Motorola' 109 | 110 | // Phones and Manufacturers 111 | 'motorola' => 'Motorola', 112 | 'nokia' => 'Nokia', 113 | 'palm' => 'Palm', 114 | 'iphone' => 'Apple iPhone', 115 | 'ipad' => 'iPad', 116 | 'ipod' => 'Apple iPod Touch', 117 | 'sony' => 'Sony Ericsson', 118 | 'ericsson' => 'Sony Ericsson', 119 | 'blackberry' => 'BlackBerry', 120 | 'cocoon' => 'O2 Cocoon', 121 | 'blazer' => 'Treo', 122 | 'lg' => 'LG', 123 | 'amoi' => 'Amoi', 124 | 'xda' => 'XDA', 125 | 'mda' => 'MDA', 126 | 'vario' => 'Vario', 127 | 'htc' => 'HTC', 128 | 'samsung' => 'Samsung', 129 | 'sharp' => 'Sharp', 130 | 'sie-' => 'Siemens', 131 | 'alcatel' => 'Alcatel', 132 | 'benq' => 'BenQ', 133 | 'ipaq' => 'HP iPaq', 134 | 'mot-' => 'Motorola', 135 | 'playstation portable' => 'PlayStation Portable', 136 | 'playstation 3' => 'PlayStation 3', 137 | 'playstation vita' => 'PlayStation Vita', 138 | 'hiptop' => 'Danger Hiptop', 139 | 'nec-' => 'NEC', 140 | 'panasonic' => 'Panasonic', 141 | 'philips' => 'Philips', 142 | 'sagem' => 'Sagem', 143 | 'sanyo' => 'Sanyo', 144 | 'spv' => 'SPV', 145 | 'zte' => 'ZTE', 146 | 'sendo' => 'Sendo', 147 | 'nintendo dsi' => 'Nintendo DSi', 148 | 'nintendo ds' => 'Nintendo DS', 149 | 'nintendo 3ds' => 'Nintendo 3DS', 150 | 'wii' => 'Nintendo Wii', 151 | 'open web' => 'Open Web', 152 | 'openweb' => 'OpenWeb', 153 | 154 | // Operating Systems 155 | 'android' => 'Android', 156 | 'symbian' => 'Symbian', 157 | 'SymbianOS' => 'SymbianOS', 158 | 'elaine' => 'Palm', 159 | 'series60' => 'Symbian S60', 160 | 'windows ce' => 'Windows CE', 161 | 162 | // Browsers 163 | 'obigo' => 'Obigo', 164 | 'netfront' => 'Netfront Browser', 165 | 'openwave' => 'Openwave Browser', 166 | 'mobilexplorer' => 'Mobile Explorer', 167 | 'operamini' => 'Opera Mini', 168 | 'opera mini' => 'Opera Mini', 169 | 'opera mobi' => 'Opera Mobile', 170 | 'fennec' => 'Firefox Mobile', 171 | 172 | // Other 173 | 'digital paths' => 'Digital Paths', 174 | 'avantgo' => 'AvantGo', 175 | 'xiino' => 'Xiino', 176 | 'novarra' => 'Novarra Transcoder', 177 | 'vodafone' => 'Vodafone', 178 | 'docomo' => 'NTT DoCoMo', 179 | 'o2' => 'O2', 180 | 181 | // Fallback 182 | 'mobile' => 'Generic Mobile', 183 | 'wireless' => 'Generic Mobile', 184 | 'j2me' => 'Generic Mobile', 185 | 'midp' => 'Generic Mobile', 186 | 'cldc' => 'Generic Mobile', 187 | 'up.link' => 'Generic Mobile', 188 | 'up.browser' => 'Generic Mobile', 189 | 'smartphone' => 'Generic Mobile', 190 | 'cellphone' => 'Generic Mobile' 191 | ); 192 | 193 | // There are hundreds of bots but these are the most common. 194 | $robots = array( 195 | 'googlebot' => 'Googlebot', 196 | 'msnbot' => 'MSNBot', 197 | 'baiduspider' => 'Baiduspider', 198 | 'bingbot' => 'Bing', 199 | 'slurp' => 'Inktomi Slurp', 200 | 'yahoo' => 'Yahoo', 201 | 'ask jeeves' => 'Ask Jeeves', 202 | 'fastcrawler' => 'FastCrawler', 203 | 'infoseek' => 'InfoSeek Robot 1.0', 204 | 'lycos' => 'Lycos', 205 | 'yandex' => 'YandexBot', 206 | 'mediapartners-google' => 'MediaPartners Google', 207 | 'CRAZYWEBCRAWLER' => 'Crazy Webcrawler', 208 | 'adsbot-google' => 'AdsBot Google', 209 | 'feedfetcher-google' => 'Feedfetcher Google', 210 | 'curious george' => 'Curious George' 211 | ); 212 | -------------------------------------------------------------------------------- /app/controllers/Welcome.php: -------------------------------------------------------------------------------- 1 | 19 | * @see http://codeigniter.com/user_guide/general/urls.html 20 | */ 21 | public function index() 22 | { 23 | $this->load->view('welcome_message'); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/controllers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/core/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/helpers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/hooks/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/language/english/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/language/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/libraries/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /app/models/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/third_party/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /bootstrap/autoload.php: -------------------------------------------------------------------------------- 1 | load(); -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "codeposer/codeposer", 3 | "description": "A better way to build modern CodeIgniter Applications.", 4 | "keywords": ["starterkit", "codeposer", "codeigniter"], 5 | "license": "MIT", 6 | "type": "project", 7 | "homepage": "http://codeposer.chekun.me", 8 | "require": { 9 | "codeigniter/framework": "3.1.5", 10 | "vlucas/phpdotenv": "~2.4.0" 11 | }, 12 | "require-dev": { 13 | "phpunit/phpunit": "~5.7" 14 | }, 15 | "scripts": { 16 | "post-root-package-install": [ 17 | "php -r \"copy('.env.example', '.env');\"" 18 | ] 19 | }, 20 | "config": { 21 | "preferred-install": "dist" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "dev": "npm run development", 5 | "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", 6 | "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", 7 | "watch-poll": "npm run watch -- --watch-poll", 8 | "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", 9 | "prod": "npm run production", 10 | "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" 11 | }, 12 | "devDependencies": { 13 | "bulma": "0.5.1", 14 | "laravel-mix": "^1.0", 15 | "cross-env": "^5.0.1" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | ./tests/ 14 | 15 | 16 | 17 | 18 | app/ 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /public/css/app.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../../../node_modules/bulma/bulma/utilities/reset.sass","../../../node_modules/bulma/bulma/utilities/animations.sass","../../../node_modules/bulma/bulma/base/generic.sass","../../../node_modules/bulma/bulma/config/variables.sass","../../../node_modules/bulma/bulma/utilities/mixins.sass","../../../node_modules/bulma/bulma/base/content.sass","../../../node_modules/bulma/bulma/base/highlight.sass","../../../node_modules/bulma/bulma/base/helpers.sass","../../../node_modules/bulma/bulma/elements/controls.sass","../../../node_modules/bulma/bulma/utilities/functions.sass","../../../node_modules/bulma/bulma/elements/buttons.sass","../../../node_modules/bulma/bulma/elements/titles.sass","../../../node_modules/bulma/bulma/elements/images.sass","../../../node_modules/bulma/bulma/elements/messages.sass","../../../node_modules/bulma/bulma/elements/notifications.sass","../../../node_modules/bulma/bulma/elements/elements.sass","../../../node_modules/bulma/bulma/components/grid.sass","../../../node_modules/bulma/bulma/components/navbar.sass","../../../node_modules/bulma/bulma/components/card.sass","../../../node_modules/bulma/bulma/components/table.sass","../../../node_modules/bulma/bulma/components/tabs.sass","../../../node_modules/bulma/bulma/components/media.sass","../../../node_modules/bulma/bulma/components/menu.sass","../../../node_modules/bulma/bulma/components/modal.sass","../../../node_modules/bulma/bulma/layout/header.sass","../../../node_modules/bulma/bulma/layout/hero.sass","../../../node_modules/bulma/bulma/layout/section.sass","../../../node_modules/bulma/bulma/layout/footer.sass","app.scss"],"names":[],"mappings":"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","file":"app.css","sourcesContent":["//\n// HTML5 Reset :: style.css\n// ----------------------------------------------------------\n// We have learned much from/been inspired by/taken code where offered from:\n//\n// Eric Meyer :: http://meyerweb.com\n// HTML5 Doctor :: http://html5doctor.com\n// and the HTML5 Boilerplate :: http://html5boilerplate.com\n//\n//-------------------------------------------------------------------------------\n\n// Let's default this puppy out\n\nhtml, body, body div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, figure, footer, header, menu, nav, section, time, mark, audio, video, details, summary {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-weight: normal;\n vertical-align: baseline;\n background: transparent; }\n\narticle, aside, figure, footer, header, nav, section, details, summary {\n display: block; }\n\n// Handle box-sizing while better addressing child elements:\n// http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/\nhtml {\n box-sizing: border-box; }\n\n*,\n*:before,\n*:after {\n box-sizing: inherit; }\n\n// consider resetting the default cursor: https://gist.github.com/murtaugh/5247154\n\n// Responsive images and other embedded objects\nimg,\nobject,\nembed {\n max-width: 100%; }\n\n//\n// Note: keeping IMG here will cause problems if you're using foreground images as sprites.\n// In fact, it *will* cause problems with Google Maps' controls at small size.\n// If this is the case for you, try uncommenting the following:\n//\n//#map img {\n// max-width: none;\n//}\n\n// force a vertical scrollbar to prevent a jumpy page\nhtml {\n overflow-y: scroll; }\n\n// we use a lot of ULs that aren't bulleted.\n// don't forget to restore the bullets within content.\nul {\n list-style: none; }\n\nblockquote, q {\n quotes: none; }\n\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n content: '';\n content: none; }\n\na {\n margin: 0;\n padding: 0;\n font-size: 100%;\n vertical-align: baseline;\n background: transparent; }\n\ndel {\n text-decoration: line-through; }\n\nabbr[title], dfn[title] {\n border-bottom: 1px dotted #000;\n cursor: help; }\n\n// tables still need cellspacing=\"0\" in the markup\ntable {\n border-collapse: collapse;\n border-spacing: 0; }\n\nth {\n font-weight: bold;\n vertical-align: bottom; }\n\ntd {\n font-weight: normal;\n vertical-align: top; }\n\nhr {\n display: block;\n height: 1px;\n border: 0;\n border-top: 1px solid #ccc;\n margin: 1em 0;\n padding: 0; }\n\ninput, select {\n vertical-align: middle; }\n\npre {\n white-space: pre;\n // CSS2\n white-space: pre-wrap;\n // CSS 2.1\n white-space: pre-line;\n // CSS 3 (and 2.1 as well, actually)\n word-wrap: break-word;\n } // IE\n\ninput[type=\"radio\"] {\n vertical-align: text-bottom; }\n\ninput[type=\"checkbox\"] {\n vertical-align: bottom; }\n\nselect, input, textarea {\n font: 99% sans-serif; }\n\ntable {\n font-size: inherit;\n font: 100%; }\n\nsmall {\n font-size: 85%; }\n\nstrong {\n font-weight: bold; }\n\ntd, td img {\n vertical-align: top; }\n\n// Make sure sup and sub don't mess with your line-heights http://gist.github.com/413930\nsub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative; }\n\nsup {\n top: -0.5em; }\n\nsub {\n bottom: -0.25em; }\n\n// standardize any monospaced elements\npre, code, kbd, samp {\n font-family: monospace, sans-serif; }\n\n// hand cursor on clickable elements\nlabel,\ninput[type=button],\ninput[type=submit],\ninput[type=file],\nbutton {\n cursor: pointer; }\n\n// Webkit browsers add a 2px margin outside the chrome of form elements\nbutton, input, select, textarea {\n margin: 0; }\n\n// make buttons play nice in IE\nbutton,\ninput[type=button] {\n width: auto;\n overflow: visible; }\n","@keyframes spin-around {\n from {\n transform: rotate(0deg); }\n to {\n transform: rotate(359deg); } }\n","html {\n background: $body-background;\n font-size: $size-normal;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n min-width: 300px;\n overflow-x: hidden;\n overflow-y: scroll;\n text-rendering: optimizeLegibility;\n &.has-modal-open {\n overflow: hidden; } }\n\nbody,\nbutton,\ninput,\nselect,\ntextarea {\n font-family: $family-primary; }\n\ncode,\npre {\n -moz-osx-font-smoothing: auto;\n -webkit-font-smoothing: auto;\n font-family: monospace;\n line-height: 1.25; }\n\nbody {\n color: $text;\n font-size: 1rem;\n line-height: 1.428571428571429; }\n\na {\n color: $link;\n cursor: pointer;\n text-decoration: none;\n transition: none $speed $easing;\n &:hover {\n color: $link-hover; } }\n\ncode {\n background: $code-background;\n color: $code;\n font-size: 12px;\n font-weight: normal;\n padding: 1px 2px 2px; }\n\nhr {\n border-top-color: $border;\n margin: 20px 0; }\n\nimg {\n max-width: 100%; }\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n vertical-align: baseline; }\n\nsmall {\n font-size: $size-small; }\n\nstrong {\n color: $text-strong; }\n\narticle,\naside,\nfigure,\nfooter,\nheader,\nhgroup,\nsection {\n display: block; }\n\npre {\n background: $pre-background;\n color: $pre;\n white-space: pre;\n word-wrap: normal;\n code {\n background: $pre-background;\n color: $pre;\n display: block;\n overflow-x: auto;\n padding: 16px 20px; } }\n\ntable {\n width: 100%;\n th,\n td {\n text-align: left;\n vertical-align: top; }\n th {\n color: $text-strong; } }\n\n.block:not(:last-child) {\n margin-bottom: 20px; }\n\n.container {\n position: relative;\n @include desktop {\n margin: 0 auto;\n max-width: 960px;\n &.is-fluid {\n margin: 0 20px;\n max-width: none; } } }\n\n.fa {\n font-size: 21px;\n text-align: center;\n vertical-align: top; }\n","// Colors\n\n$grey-darker: #222324;\n$grey-dark: #69707a;\n$grey: #aeb1b5;\n$grey-light: #d3d6db;\n$grey-lighter: #f5f7fa;\n\n$blue: #42afe3;\n$green: #97cd76;\n$orange: #f68b39;\n$purple: #847bb9;\n$red: #ed6c63;\n$turquoise: #1fc8db;\n$yellow: #fce473;\n\n$primary: $turquoise;\n\n// Typography\n\n$family-sans-serif: \"Helvetica Neue\", \"Helvetica\", \"Arial\", sans-serif;\n$family-monospace: \"Source Code Pro\", \"Monaco\", \"Inconsolata\", monospace;\n\n$size-1: 48px;\n$size-2: 40px;\n$size-3: 28px;\n$size-4: 24px;\n$size-5: 18px;\n$size-6: 14px;\n\n$size-7: 11px;\n\n// Dimensions\n\n$column-gap: 20px;\n\n$header-height: 50px;\n\n// Miscellaneous\n\n$easing: ease-out;\n$radius: 3px;\n$speed: 86ms;\n","@mixin arrow($color) {\n border: 1px solid $color;\n border-right: 0;\n border-top: 0;\n content: \" \";\n display: block;\n height: 7px;\n pointer-events: none;\n position: absolute;\n transform: rotate(-45deg);\n width: 7px; }\n\n@mixin clearfix {\n &:after {\n clear: both;\n content: \" \";\n display: table; } }\n\n@mixin center($size) {\n left: 50%;\n margin-left: -($size / 2);\n margin-top: -($size / 2);\n position: absolute;\n top: 50%; }\n\n@mixin fa($size, $dimensions) {\n display: inline-block;\n font-size: $size;\n height: $dimensions;\n line-height: $dimensions;\n text-align: center;\n vertical-align: top;\n width: $dimensions; }\n\n@mixin overlay($offset: 0) {\n bottom: $offset;\n left: $offset;\n position: absolute;\n right: $offset;\n top: $offset; }\n\n@mixin placeholder {\n $placeholders: ':-moz' ':-webkit-input' '-moz' '-ms-input';\n @each $placeholder in $placeholders {\n &:#{$placeholder}-placeholder {\n @content; } } }\n\n@mixin replace($background, $width, $height) {\n background: $background center center no-repeat;\n background-size: $width $height;\n display: block;\n height: $height;\n outline: none;\n overflow: hidden;\n text-indent: -290486px;\n width: $width; }\n\n@mixin unselectable {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n\n$tablet: 769px;\n$desktop: 980px;\n$widescreen: 1180px;\n\n@mixin from($device) {\n @media screen and (min-width: $device) {\n @content; } }\n\n@mixin until($device) {\n @media screen and (max-width: $device - 1px) {\n @content; } }\n\n@mixin mobile {\n @media screen and (max-width: $tablet - 1px) {\n @content; } }\n\n@mixin tablet {\n @media screen and (min-width: $tablet) {\n @content; } }\n\n@mixin touch {\n @media screen and (max-width: $desktop - 1px) {\n @content; } }\n\n@mixin desktop {\n @media screen and (min-width: $desktop) {\n @content; } }\n\n@mixin widescreen {\n @media screen and (min-width: $widescreen) {\n @content; } }\n",".content {\n @extend .block;\n &.is-medium {\n font-size: $size-5;\n code {\n font-size: $size-6; } }\n &.is-large {\n font-size: $size-4;\n code {\n font-size: $size-5; } }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n color: $text-strong;\n font-weight: 300;\n line-height: 1.125;\n margin-bottom: 20px; }\n h1,\n h2,\n h3 {\n &:not(:first-child) {\n margin-top: 40px; } }\n h1 {\n font-size: 2em; }\n h2 {\n font-size: 1.75em; }\n h3 {\n font-size: 1.5em; }\n h4 {\n font-size: 1.25em; }\n h5 {\n font-size: 1.125em; }\n h6 {\n font-size: 1em; }\n p:not(:last-child) {\n margin-bottom: 1em; }\n li + li {\n margin-top: 0.25em; }\n ol {\n list-style: decimal outside;\n margin: 1em 2em; }\n ul {\n list-style: disc outside;\n margin: 1em 2em;\n ul {\n list-style-type: circle;\n margin-top: 0.5em;\n ul {\n list-style-type: square; } } }\n blockquote {\n background: $background;\n border-left: 5px solid $border;\n padding: 1.5em;\n &:not(:last-child) {\n margin-bottom: 1em; } } }\n",".highlight {\n background-color: #fdf6e3;\n color: #586e75;\n .c {\n color: #93a1a1; }\n .err,\n .g {\n color: #586e75; }\n .k {\n color: #859900; }\n .l,\n .n {\n color: #586e75; }\n .o {\n color: #859900; }\n .x {\n color: #cb4b16; }\n .p {\n color: #586e75; }\n .cm {\n color: #93a1a1; }\n .cp {\n color: #859900; }\n .c1 {\n color: #93a1a1; }\n .cs {\n color: #859900; }\n .gd {\n color: #2aa198; }\n .ge {\n color: #586e75;\n font-style: italic; }\n .gr {\n color: #dc322f; }\n .gh {\n color: #cb4b16; }\n .gi {\n color: #859900; }\n .go,\n .gp {\n color: #586e75; }\n .gs {\n color: #586e75;\n font-weight: bold; }\n .gu {\n color: #cb4b16; }\n .gt {\n color: #586e75; }\n .kc {\n color: #cb4b16; }\n .kd {\n color: #268bd2; }\n .kn,\n .kp {\n color: #859900; }\n .kr {\n color: #268bd2; }\n .kt {\n color: #dc322f; }\n .ld {\n color: #586e75; }\n .m,\n .s {\n color: #2aa198; }\n .na {\n color: #B58900; }\n .nb {\n color: #586e75; }\n .nc {\n color: #268bd2; }\n .no {\n color: #cb4b16; }\n .nd {\n color: #268bd2; }\n .ni,\n .ne {\n color: #cb4b16; }\n .nf {\n color: #268bd2; }\n .nl,\n .nn,\n .nx,\n .py {\n color: #586e75; }\n .nt,\n .nv {\n color: #268bd2; }\n .ow {\n color: #859900; }\n .w {\n color: #586e75; }\n .mf,\n .mh,\n .mi,\n .mo {\n color: #2aa198; }\n .sb {\n color: #93a1a1; }\n .sc {\n color: #2aa198; }\n .sd {\n color: #586e75; }\n .s2 {\n color: #2aa198; }\n .se {\n color: #cb4b16; }\n .sh {\n color: #586e75; }\n .si,\n .sx {\n color: #2aa198; }\n .sr {\n color: #dc322f; }\n .s1,\n .ss {\n color: #2aa198; }\n .bp,\n .vc,\n .vg,\n .vi {\n color: #268bd2; }\n .il {\n color: #2aa198; } }\n","// Display\n\n.is-block {\n display: block; }\n\n.is-inline {\n display: inline; }\n\n.is-flex {\n display: flex; }\n\n// Float\n\n.is-clearfix {\n @include clearfix; }\n\n.is-pulled-left {\n float: left; }\n\n.is-pulled-right {\n float: right; }\n\n// Overlay\n\n.is-overlay {\n @include overlay; }\n\n// Size\n\n.is-fullwidth {\n width: 100%; }\n\n// Text\n\n.is-text-centered {\n text-align: center; }\n\n.is-text-left {\n text-align: left; }\n\n.is-text-right {\n text-align: right; }\n\n// Visibility\n\n.is-hidden-mobile {\n @include mobile {\n display: none !important; } }\n\n.is-hidden-tablet {\n @include tablet {\n display: none !important; } }\n\n.is-hidden-touch {\n @include touch {\n display: none !important; } }\n\n.is-hidden-desktop {\n @include desktop {\n display: none !important; } }\n\n// Other\n\n.is-disabled {\n pointer-events: none; }\n\n.is-marginless {\n margin: 0 !important; }\n\n.is-unselectable {\n @include unselectable; }\n\n","@mixin control {\n -moz-appearance: none;\n -webkit-appearance: none;\n background: $control-background;\n border: 1px solid $control-border;\n border-radius: $radius;\n color: $control;\n display: inline-block;\n font-size: $size-normal;\n height: 32px;\n line-height: 24px;\n padding: 3px 8px;\n position: relative;\n vertical-align: top;\n &:hover {\n border-color: $control-hover-border; }\n &:active,\n &:focus {\n border-color: $control-active-border;\n outline: none; }\n &[disabled] {\n &,\n &:hover {\n background: $background;\n border-color: $control-border;\n @include placeholder {\n color: rgba($control, 0.3); } } } }\n\n@mixin control-small {\n border-radius: 2px;\n font-size: 11px;\n height: 24px;\n line-height: 16px;\n padding: 3px 6px; }\n@mixin control-medium {\n font-size: 18px;\n height: 40px;\n line-height: 32px;\n padding: 3px 10px; }\n@mixin control-large {\n font-size: 24px;\n height: 48px;\n line-height: 40px;\n padding: 3px 12px; }\n\n.input {\n @include control;\n box-shadow: inset 0 1px 2px rgba(black, 0.1);\n display: block;\n max-width: 100%;\n width: 100%;\n &[type=\"search\"] {\n border-radius: 290486px; }\n &.is-flat {\n border: none;\n box-shadow: none;\n padding: 4px 8px; }\n &.is-small {\n @include control-small;\n &.is-flat {\n padding: 4px 6px; } }\n &.is-medium {\n @include control-medium;\n &.is-flat {\n padding: 4px 10px; } }\n &.is-large {\n @include control-large;\n &.is-flat {\n padding: 4px 12px; } }\n &.is-fullwidth {\n display: block;\n width: 100%; }\n &.is-inline {\n display: inline;\n width: auto; } }\n\n.textarea {\n @extend .input;\n line-height: 1.2;\n max-height: 600px;\n max-width: 100%;\n min-height: 120px;\n min-width: 100%;\n padding: 10px;\n resize: vertical; }\n\n%control-with-element {\n cursor: pointer;\n display: inline-block;\n line-height: 16px;\n padding-left: 18px;\n position: relative;\n vertical-align: top;\n input {\n @include control;\n border-radius: 1px;\n box-shadow: inset 0 1px 1px rgba(black, 0.1);\n cursor: pointer;\n float: left;\n height: 14px;\n left: 0;\n outline: none;\n padding: 0;\n position: absolute;\n top: 1px;\n width: 14px;\n &:after {\n @include arrow($control-active-background-invert);\n height: 4px;\n left: 3px;\n opacity: 0;\n position: absolute;\n top: 3px;\n transform: rotate(-45deg) scale(1); }\n &:checked {\n background: $control-active-background;\n border-color: $control-active-background;\n box-shadow: none;\n &:after {\n opacity: 1; } } }\n &:hover {\n color: $control-hover;\n input {\n border-color: $control-hover-border;\n &:checked {\n border-color: $control-active-border; } } }\n &.is-disabled {\n &,\n &:hover {\n color: $text-light; } } }\n\n.checkbox {\n @extend %control-with-element; }\n\n.radio {\n @extend %control-with-element;\n & + .radio {\n margin-left: 10px; }\n input {\n border-radius: 8px;\n &:after {\n background: $link-invert;\n border: 0;\n border-radius: 2px;\n left: 4px;\n top: 4px;\n transform: none;\n width: 4px; } } }\n\n.select {\n display: inline-block;\n height: 32px;\n position: relative;\n vertical-align: top;\n select {\n @include control;\n cursor: pointer;\n display: block;\n outline: none;\n padding-right: 36px;\n &:hover {\n border-color: $control-hover-border; }\n &::ms-expand {\n display: none; } }\n &:after {\n @include arrow($link);\n margin-top: -6px;\n right: 16px;\n top: 50%; }\n &:hover {\n &:after {\n border-color: $link-hover; } } }\n\n.control {\n position: relative;\n text-align: left;\n &.is-loading {\n &:after {\n @extend .loader;\n position: absolute !important;\n right: 8px;\n top: 8px; } }\n &:not(:last-child) {\n margin-bottom: 10px; }\n &.has-icon {\n & > .fa {\n @include fa(14px, 20px);\n color: $text-light;\n left: 6px;\n pointer-events: none;\n position: absolute;\n top: 6px;\n z-index: 4; }\n .input {\n padding-left: 32px;\n &:focus + .fa {\n color: $control-active; } } }\n &.is-horizontal {\n display: flex;\n & > .button,\n & > .input,\n & > .select {\n &:not(:last-child) {\n margin-right: 10px; } }\n & > .input {\n flex: 1; } }\n &.is-grouped {\n display: flex;\n .input,\n .button,\n .select {\n border-radius: 0;\n margin-right: -1px;\n &:hover {\n z-index: 2; }\n &:active,\n &:focus {\n z-index: 3; }\n &:first-child {\n border-radius: $radius 0 0 $radius;\n select {\n border-radius: $radius 0 0 $radius; } }\n &:last-child {\n border-radius: 0 $radius $radius 0; } }\n &.is-centered {\n justify-content: center; } } }\n","@function powerNumber($number, $exp) {\n $value: 1;\n @if $exp > 0 {\n @for $i from 1 through $exp {\n $value: $value * $number; } }\n @else if $exp < 0 {\n @for $i from 1 through -$exp {\n $value: $value / $number; } }\n @return $value; }\n\n@function colorLuminance($color) {\n $color-rgb: ('red': red($color),'green': green($color),'blue': blue($color));\n @each $name, $value in $color-rgb {\n $adjusted: 0;\n $value: $value / 255;\n @if $value < 0.03928 {\n $value: $value / 12.92; }\n @else {\n $value: ($value + .055) / 1.055;\n $value: powerNumber($value, 2); }\n $color-rgb: map-merge($color-rgb, ($name: $value)); }\n @return (map-get($color-rgb, 'red') * .2126) + (map-get($color-rgb, 'green') * .7152) + (map-get($color-rgb, 'blue') * .0722); }\n\n@function closestEvenNumber($number) {\n @if ($number % 2 == 0px) {\n @return $number; }\n @else {\n @return ($number + 1px); } }\n\n@function findColorInvert($color) {\n @if (colorLuminance($color) > 0.8) {\n @return rgba(black, 0.5); }\n @else {\n @return white; } }\n","@mixin button-small {\n border-radius: 2px;\n font-size: 11px;\n height: 24px;\n line-height: 16px;\n padding: 3px 6px; }\n@mixin button-medium {\n font-size: 18px;\n height: 40px;\n padding: 7px 14px; }\n@mixin button-large {\n font-size: 22px;\n height: 48px;\n padding: 11px 20px; }\n\n.button {\n @include control;\n @include unselectable;\n padding: 3px 10px;\n text-align: center;\n white-space: nowrap;\n strong {\n color: inherit; }\n small {\n display: block;\n font-size: $size-small;\n line-height: 1;\n margin-top: 5px; }\n .fa {\n line-height: 24px;\n margin: 0 -2px;\n width: 24px; }\n &:hover {\n color: $control-hover; }\n &:active {\n box-shadow: inset 0 1px 2px rgba(black, 0.2); }\n @each $name, $pair in $colors {\n $color: nth($pair, 1);\n $color-invert: nth($pair, 2);\n &.is-#{$name} {\n background: $color;\n border-color: transparent;\n color: $color-invert;\n &:hover,\n &:focus {\n background: darken($color, 10%);\n border-color: transparent;\n color: $color-invert; }\n &:active {\n border-color: transparent; }\n &.is-outlined {\n background: transparent;\n border-color: $color;\n color: $color;\n &:hover,\n &:focus {\n border-color: darken($color, 10%);\n color: darken($color, 10%); } }\n &.is-inverted {\n background: $color-invert;\n color: $color;\n &:hover {\n background: darken($color-invert, 5%); }\n &.is-outlined {\n background-color: transparent;\n border-color: $color-invert;\n color: $color-invert;\n &:hover {\n background: rgba(black, 0.05); } } }\n &.is-loading:after {\n border-color: transparent transparent $color-invert $color-invert !important; } } }\n &.is-small {\n @include button-small; }\n &.is-medium {\n @include button-medium; }\n &.is-large {\n @include button-large; }\n &.is-fullwidth {\n display: block;\n width: 100%; }\n &.is-flexible {\n height: auto; }\n &.is-loading {\n color: transparent;\n pointer-events: none;\n &:after {\n @extend .loader;\n @include center(16px);\n position: absolute !important; } }\n &.is-disabled,\n &[disabled] {\n opacity: 0.5;\n pointer-events: none; }\n @include tablet {\n small {\n color: $text;\n left: 0;\n margin-top: 10px;\n position: absolute;\n top: 100%;\n width: 100%; } } }\n\n",".title,\n.subtitle {\n @extend .block;\n font-weight: 300;\n a {\n &:hover {\n border-bottom: 1px solid; } } }\n\n.title {\n color: $text-strong;\n font-size: $size-large;\n line-height: 1;\n strong {\n color: inherit; }\n code {\n display: inline-block;\n font-size: $size-large; }\n & + .subtitle {\n margin-top: -10px; }\n & + .highlight {\n margin-top: -10px; }\n &.is-normal {\n font-weight: 400;\n strong {\n font-weight: 700; } }\n @each $size in $sizes {\n $i: index($sizes, $size);\n &.is-#{$i} {\n font-size: $size;\n code {\n font-size: nth($sizes, min($i + 1, 6)); } } }\n @include tablet {\n & + .subtitle {\n margin-top: -15px; } } }\n\n.subtitle {\n font-size: $size-medium;\n line-height: 1.125;\n & + .title {\n margin-top: -20px; }\n strong {\n color: $text-strong;\n font-weight: 400; }\n code {\n border-radius: $radius;\n display: inline-block;\n font-size: $size-normal;\n padding: 2px 3px;\n vertical-align: top; }\n & + .text {\n margin-top: 20px; }\n &.is-normal {\n font-weight: 400;\n strong {\n font-weight: 700; } }\n @each $size in $sizes {\n $i: index($sizes, $size);\n &.is-#{$i} {\n font-size: $size;\n code {\n font-size: nth($sizes, min($i + 1, 6)); } } } }\n","$dimensions: 16 24 32 48 64 96 128;\n\n.image {\n display: block;\n position: relative;\n img {\n display: block; }\n &.is-square,\n &.is-1by1,\n &.is-4by3,\n &.is-3by2,\n &.is-16by9,\n &.is-2by1 {\n img {\n @include overlay;\n height: 100%;\n width: 100%; } }\n &.is-square,\n &.is-1by1 {\n padding-top: 100%; }\n &.is-4by3 {\n padding-top: 75%; }\n &.is-3by2 {\n padding-top: 66.6666%; }\n &.is-16by9 {\n padding-top: 56.25%; }\n &.is-2by1 {\n padding-top: 50%; }\n @each $dimension in $dimensions {\n &.is-#{$dimension}x#{$dimension} {\n height: $dimension * 1px;\n width: $dimension * 1px; } } }\n",".message-body {\n border: 1px solid $border;\n border-radius: $radius;\n padding: 12px 15px;\n strong {\n color: inherit; } }\n\n.message-header {\n background: $text;\n border-radius: $radius $radius 0 0;\n color: $text-invert;\n font-size: 10px;\n font-weight: bold;\n letter-spacing: 1px;\n padding: 3px 8px;\n text-transform: uppercase;\n & + .message-body {\n border-radius: 0 0 $radius $radius;\n border-top: none; } }\n\n.message {\n @extend .block;\n background: $background;\n border-radius: $radius;\n @each $name, $pair in $colors {\n $color: nth($pair, 1);\n $color-invert: nth($pair, 2);\n $lightning: (100% - lightness($color)) - 4%;\n $darkness: max(lightness($color) - 10%, lightness($color));\n &.is-#{$name} {\n background: lighten($color, $lightning);\n .message-header {\n background: $color;\n color: $color-invert; }\n .message-body {\n border-color: $color;\n @if (colorLuminance($color) > 0.8) {\n color: desaturate(lighten(darken($color, 100%), 40%), 40%); }\n @else {\n color: desaturate(lighten(darken($color, 100%), 50%), 30%); } } } } }\n",".notification {\n @extend .block;\n @include clearfix;\n background: $background;\n border-radius: $radius;\n padding: 16px 20px;\n position: relative;\n .title {\n color: inherit; }\n @each $name, $pair in $colors {\n $color: nth($pair, 1);\n $color-invert: nth($pair, 2);\n &.is-#{$name} {\n background: $color;\n color: $color-invert; } }\n .delete {\n background: rgba(black, 0.2);\n border-radius: 0 $radius;\n float: right;\n margin: -16px -20px 0 20px;\n &:hover {\n background: rgba(black, 0.5); } } }\n\n","@charset \"utf-8\";\n\n@import \"controls\";\n@import \"buttons\";\n@import \"titles\";\n@import \"images\";\n@import \"messages\";\n@import \"notifications\";\n\n.box {\n background: white;\n border-radius: 5px;\n box-shadow: 0 2px 3px rgba(black, 0.1), 0 0 0 1px rgba(black, 0.1);\n padding: 20px; }\n\n.delete {\n @include unselectable;\n -moz-appearance: none;\n -webkit-appearance: none;\n background: rgba(black, 0.2);\n border: none;\n border-radius: 290486px;\n cursor: pointer;\n display: inline-block;\n height: 24px;\n position: relative;\n vertical-align: top;\n width: 24px;\n &:before,\n &:after {\n background: white;\n content: \"\";\n display: block;\n height: 2px;\n left: 50%;\n margin-left: -25%;\n margin-top: -1px;\n position: absolute;\n top: 50%;\n width: 50%; }\n &:before {\n transform: rotate(45deg); }\n &:after {\n transform: rotate(-45deg); }\n &:hover {\n background: $red; }\n &.is-small {\n height: 16px;\n width: 16px; }\n &.is-medium {\n height: 32px;\n width: 32px; }\n &.is-large {\n height: 40px;\n width: 40px; } }\n\n.icon {\n @include fa(21px, 24px);\n .fa {\n font-size: inherit;\n line-height: inherit; }\n &.is-small {\n @include fa(14px, 20px); }\n &.is-medium {\n @include fa(28px, 32px); }\n &.is-large {\n @include fa(42px, 48px); } }\n\n.hamburger {\n cursor: pointer;\n display: block;\n height: 50px;\n position: relative;\n width: 50px;\n span {\n background: $text;\n display: block;\n height: 1px;\n left: 50%;\n margin-left: -7px;\n position: absolute;\n top: 50%;\n transition: none $speed $easing;\n transition-property: background, left, opacity, transform;\n width: 15px;\n &:nth-child(1) {\n margin-top: -6px; }\n &:nth-child(2) {\n margin-top: -1px; }\n &:nth-child(3) {\n margin-top: 4px; } }\n &:hover {\n background: $background; }\n &.is-active {\n span {\n background: $link;\n &:nth-child(1) {\n margin-left: -5px;\n transform: rotate(45deg);\n transform-origin: left top; }\n &:nth-child(2) {\n opacity: 0; }\n &:nth-child(3) {\n margin-left: -5px;\n transform: rotate(-45deg);\n transform-origin: left bottom; } } }\n @include tablet {\n height: $header-height;\n width: $header-height; } }\n\n.heading {\n display: block;\n font-size: 11px;\n letter-spacing: 1px;\n margin-bottom: 5px;\n text-transform: uppercase; }\n\n.highlight {\n @extend .block;\n font-size: 12px;\n font-weight: normal;\n max-width: 100%;\n overflow: hidden;\n padding: 0;\n pre {\n overflow: auto;\n max-width: 100%; } }\n\n.image {\n display: block;\n position: relative;\n vertical-align: top;\n img {\n @include overlay;\n display: block;\n width: 100%; }\n &.is-3x2 {\n padding-top: 66.6666%; } }\n\n.loader {\n animation: spin-around 500ms infinite linear;\n border: 2px solid $border;\n border-radius: 290486px;\n border-right-color: transparent;\n border-top-color: transparent;\n content: \"\";\n display: block;\n height: 16px;\n position: relative;\n width: 16px; }\n\n.number {\n background: $background;\n border-radius: 290486px;\n display: inline-block;\n font-size: $size-medium;\n vertical-align: top; }\n\n.tag {\n background: $background;\n border-radius: $radius;\n box-shadow: inset 0 -1px 0 rgba(black, 0.1);\n color: $text;\n display: inline-block;\n font-size: 12px;\n height: 24px;\n line-height: 16px;\n padding: 4px 10px;\n vertical-align: top;\n white-space: nowrap;\n &.is-dark {\n background: $text;\n color: $text-invert; }\n &.is-rounded {\n border-radius: 290486px; }\n &.is-medium {\n box-shadow: inset 0 -2px 0 rgba(black, 0.1);\n font-size: $size-normal;\n height: 32px;\n padding: 7px 14px 9px; }\n &:not(.is-large) {\n .delete {\n @extend .delete.is-small;\n margin-left: 4px;\n margin-right: -6px; } }\n &.is-large {\n box-shadow: inset 0 -2px 0 rgba(black, 0.1);\n font-size: $size-5;\n height: 40px;\n line-height: 24px;\n padding: 7px 18px 9px;\n .delete {\n margin-left: 4px;\n margin-right: -8px; } }\n @each $name, $pair in $colors {\n $color: nth($pair, 1);\n $color-invert: nth($pair, 2);\n &.is-#{$name} {\n background: $color;\n color: $color-invert; } } }\n",".column {\n flex: 1;\n padding: 10px;\n .columns.is-mobile > &.is-half {\n flex: none;\n width: 50%; }\n .columns.is-mobile > &.is-third {\n flex: none;\n width: 33.3333%; }\n .columns.is-mobile > &.is-quarter {\n flex: none;\n width: 25%; }\n .columns.is-mobile > &.is-offset-half {\n margin-left: 50%; }\n .columns.is-mobile > &.is-offset-third {\n margin-left: 33.3333%; }\n .columns.is-mobile > &.is-offset-quarter {\n margin-left: 25%; }\n @for $i from 1 through 11 {\n .columns.is-mobile > &.is-#{$i} {\n flex: none;\n width: ($i / 12) * 100%; }\n .columns.is-mobile > &.is-offset-#{$i} {\n margin-left: ($i / 12) * 100%; } }\n @include mobile {\n &.is-half-mobile {\n flex: none;\n width: 50%; }\n &.is-third-mobile {\n flex: none;\n width: 33.3333%; }\n &.is-quarter-mobile {\n flex: none;\n width: 25%; }\n &.is-offset-half-mobile {\n margin-left: 50%; }\n &.is-offset-third-mobile {\n margin-left: 33.3333%; }\n &.is-offset-quarter-mobile {\n margin-left: 25%; }\n @for $i from 1 through 11 {\n &.is-#{$i}-mobile {\n flex: none;\n width: ($i / 12) * 100%; }\n &.is-offset-#{$i}-mobile {\n margin-left: ($i / 12) * 100%; } } }\n @include tablet {\n &.is-half,\n &.is-half-tablet {\n flex: none;\n width: 50%; }\n &.is-third,\n &.is-third-tablet {\n flex: none;\n width: 33.3333%; }\n &.is-quarter,\n &.is-quarter-tablet {\n flex: none;\n width: 25%; }\n &.is-offset-half,\n &.is-offset-half-tablet {\n margin-left: 50%; }\n &.is-offset-third,\n &.is-offset-third-tablet {\n margin-left: 33.3333%; }\n &.is-offset-quarter,\n &.is-offset-quarter-tablet {\n margin-left: 25%; }\n @for $i from 1 through 11 {\n &.is-#{$i},\n &.is-#{$i}-tablet {\n flex: none;\n width: ($i / 12) * 100%; }\n &.is-offset-#{$i},\n &.is-offset-#{$i}-tablet {\n margin-left: ($i / 12) * 100%; } } }\n @include desktop {\n &.is-half-desktop {\n flex: none;\n width: 50%; }\n &.is-third-desktop {\n flex: none;\n width: 33.3333%; }\n &.is-quarter-desktop {\n flex: none;\n width: 25%; }\n &.is-offset-half-desktop {\n margin-left: 50%; }\n &.is-offset-third-desktop {\n margin-left: 33.3333%; }\n &.is-offset-quarter-desktop {\n margin-left: 25%; }\n @for $i from 1 through 11 {\n &.is-#{$i}-desktop {\n flex: none;\n width: ($i / 12) * 100%; }\n &.is-offset-#{$i}-desktop {\n margin-left: ($i / 12) * 100%; } } } }\n\n.columns {\n margin-left: -10px;\n margin-right: -10px;\n margin-top: -10px;\n &:last-child {\n margin-bottom: -10px; }\n &:not(:last-child) {\n margin-bottom: 10px; }\n &.is-mobile {\n display: flex; }\n &.is-gapless {\n margin-left: 0;\n margin-right: 0;\n &:not(:last-child) {\n margin-bottom: 20px; }\n & > .column {\n margin: 0;\n padding: 0; } }\n &.is-multiline {\n flex-wrap: wrap; }\n &.is-vcentered {\n align-items: center; }\n &.is-grid {\n @include tablet {\n flex-wrap: wrap;\n & > .column {\n flex-basis: 33.3333%;\n max-width: 33.3333%;\n padding: 10px;\n width: 33.3333%;\n & + .column {\n margin-left: 0; } } } }\n @include tablet {\n &:not(.is-desktop) {\n display: flex; } }\n @include desktop {\n &.is-desktop {\n display: flex; } } }\n",".navbar-item {\n .title,\n .subtitle {\n margin-bottom: 0; }\n @include mobile {\n &:not(:last-child) {\n margin-bottom: 10px; } } }\n\n.navbar {\n @extend .block;\n code {\n border-radius: $radius; }\n img {\n display: inline-block;\n vertical-align: top; }\n @include tablet {\n align-items: center;\n display: flex;\n justify-content: space-between;\n & > .navbar-item {\n &:not(.is-narrow) {\n flex: 1; } } } }\n\n.navbar-left,\n.navbar-right {\n .navbar-item {\n &.is-flexible {\n flex: 1; }\n &:not(:last-child) {\n margin-right: 10px; } } }\n\n.navbar-left {\n @include mobile {\n & + .navbar-right {\n margin-top: 20px; } }\n @include tablet {\n align-items: center;\n display: flex; } }\n\n.navbar-right {\n @include tablet {\n align-items: center;\n display: flex;\n justify-content: flex-end; } }\n",".card-image {\n display: block;\n position: relative;\n img {\n display: block; }\n &.is-square,\n &.is-4x3,\n &.is-3x2 {\n img {\n @include overlay;\n height: 100%;\n width: 100%; } }\n &.is-square {\n padding-top: 100%; }\n &.is-4x3 {\n padding-top: 75%; }\n &.is-3x2 {\n padding-top: 66.6666%; } }\n\n.card-content {\n padding: 20px;\n .title + .subtitle {\n margin-top: -20px; } }\n\n.card-footer {\n background: $background;\n display: block;\n padding: 10px; }\n\n.card {\n background: white;\n box-shadow: 0 2px 3px rgba(black, 0.1), 0 0 0 1px rgba(black, 0.1);\n max-width: 100%;\n position: relative;\n width: 300px;\n .media:not(:last-child) {\n margin-bottom: 10px; }\n &.is-rounded {\n border-radius: 5px; } }\n",".table {\n background: white;\n color: $text-strong;\n margin-bottom: 20px;\n width: 100%;\n th,\n td {\n border: 1px solid $border;\n border-width: 0 0 1px;\n padding: 8px 10px;\n vertical-align: top;\n &.table-narrow {\n white-space: nowrap;\n width: 1%; }\n &.table-link {\n padding: 0;\n & > a {\n display: block;\n padding: 8px 10px;\n &:hover {\n background: $link;\n color: $link-invert; } } }\n &.table-icon {\n padding: 5px;\n text-align: center;\n white-space: nowrap;\n width: 1%;\n .fa {\n @include fa(21px, 24px); }\n &.table-link {\n padding: 0;\n & > a {\n padding: 5px; } } } }\n th {\n color: $text-strong;\n text-align: left; }\n tr {\n &:hover {\n background: rgba($background, 0.5);\n color: $text-strong; }\n &:last-child td {\n border-bottom-width: 0; } }\n thead {\n th,\n td {\n border-width: 0 0 2px;\n color: $text-light; } }\n tfoot {\n th,\n td {\n border-width: 2px 0 0;\n color: $text-light; } }\n &.is-bordered {\n th,\n td {\n border-width: 1px; }\n tr {\n &:last-child td {\n border-bottom-width: 1px; } } }\n &.is-narrow {\n th,\n td {\n padding: 5px 10px;\n &.table-link {\n padding: 0;\n & > a {\n padding: 5px 10px; } }\n &.table-icon {\n padding: 2px;\n &.table-link {\n padding: 0;\n & > a {\n padding: 2px; } } } } }\n &.is-striped {\n tbody {\n tr:nth-child(2n) {\n background: rgba($background, 0.5);\n &:hover {\n background: $background; } } } } }\n",".tabs {\n @extend .block;\n line-height: 24px;\n overflow: hidden;\n overflow-x: auto;\n white-space: nowrap;\n .fa {\n font-size: 14px;\n line-height: 20px;\n margin: 2px -2px;\n width: 20px; }\n a {\n border-bottom: 1px solid $border;\n color: $text;\n display: block;\n margin-bottom: -1px;\n padding: 5px 0;\n vertical-align: top;\n &:hover {\n border-bottom-color: $text-strong;\n color: $text-strong; } }\n li {\n display: block;\n vertical-align: top;\n & + li {\n margin-left: 20px; }\n &.is-active {\n a {\n border-bottom-color: $link;\n color: $link; } } }\n ul {\n border-bottom: 1px solid $border;\n display: flex; }\n &.is-centered {\n a {\n padding: 5px 10px; }\n li {\n & + li {\n margin-left: 0; } }\n ul {\n justify-content: center;\n text-align: center; } }\n &.is-right {\n ul {\n justify-content: flex-end; } }\n &.is-boxed {\n a {\n border: 1px solid transparent;\n border-radius: $radius $radius 0 0;\n padding: 5px 15px;\n &:hover {\n background: $background;\n border-bottom-color: $border; } }\n li {\n & + li {\n margin-left: 5px; }\n &.is-active {\n a {\n background: white;\n border-color: $border;\n border-bottom-color: transparent; } } }\n &.is-centered {\n li {\n &,\n & + li {\n margin: 0 2px; } } } }\n &.is-toggle {\n a {\n border: 1px solid $border;\n margin-bottom: 0;\n padding: 5px 10px;\n position: relative;\n &:hover {\n background: $background;\n border-color: $border-hover;\n z-index: 2; } }\n li {\n & + li {\n margin-left: -1px; }\n &:first-child a {\n border-radius: $radius 0 0 $radius; }\n &:last-child a {\n border-radius: 0 $radius $radius 0; }\n &.is-active {\n a {\n background: $primary;\n border-color: $primary;\n color: $primary-invert;\n z-index: 1; } } }\n ul {\n border-bottom: none; } }\n &.is-fullwidth {\n @include tablet {\n li {\n flex: 1;\n & + li {\n margin-left: 0; } }\n ul {\n justify-content: center;\n text-align: center; } } } }\n",".media-number {\n background: $background;\n border-radius: 290486px;\n display: inline-block;\n font-size: $size-medium;\n height: 32px;\n line-height: 24px;\n min-width: 32px;\n padding: 4px 8px;\n text-align: center;\n vertical-align: top;\n @include mobile {\n margin-bottom: 10px; }\n @include tablet {\n margin-right: 10px; } }\n\n.media-left {\n margin-right: 10px; }\n\n.media-right {\n margin-left: 10px; }\n\n.media-content {\n flex: 1;\n text-align: left; }\n\n.media {\n align-items: flex-start;\n display: flex;\n text-align: left;\n .content:not(:last-child) {\n margin-bottom: 10px; }\n .media {\n border-top: 1px solid rgba($border, 0.5);\n display: flex;\n padding-top: 10px;\n .textarea {\n @include control-small; }\n .button {\n @include button-small; }\n .content:not(:last-child),\n .control:not(:last-child) {\n margin-bottom: 5px; }\n .media {\n font-size: 12px;\n padding-top: 5px;\n & + .media {\n margin-top: 5px; } } }\n & + .media {\n border-top: 1px solid rgba($border, 0.5);\n margin-top: 10px;\n padding-top: 10px; }\n &.is-large {\n & + .media {\n margin-top: 20px;\n padding-top: 20px; } }\n @include tablet {\n &.is-large {\n .media-number {\n margin-right: 20px; } } } }\n",".menu-icon {\n @include fa(14px, 16px);\n color: $text-light;\n float: left;\n margin: 0 4px 0 -2px;\n .fa {\n font-size: inherit;\n line-height: inherit; } }\n\n.menu-heading {\n background: $background;\n border-bottom: 1px solid $border;\n border-radius: 4px 4px 0 0;\n color: $text-strong;\n font-size: $size-medium;\n font-weight: 300;\n padding: 10px; }\n\n.menu-list {\n a {\n color: $text;\n &:hover {\n color: $link; } } }\n\n.menu-tabs {\n display: flex;\n font-size: $size-small;\n padding: 5px 10px 0;\n justify-content: center;\n &:not(:last-child) {\n border-bottom: 1px solid $border; }\n a {\n border-bottom: 1px solid $border;\n margin-bottom: -1px;\n padding: 5px;\n &.is-active {\n border-bottom-color: $link-active-border;\n color: $link-active; } } }\n\n.menu-block {\n color: $text-strong;\n display: block;\n line-height: 16px;\n padding: 10px;\n &:not(:last-child) {\n border-bottom: 1px solid $border; }\n .checkbox {\n border: 1px solid transparent;\n border-radius: $radius;\n display: block;\n padding: 8px;\n padding-left: 32px;\n input {\n left: 9px;\n top: 9px; }\n &:hover {\n border-color: $link; } } }\n\na.menu-block:hover {\n background: $background; }\n\n.menu-checkbox {\n @extend .checkbox;\n display: block;\n padding: 9px 10px 9px 30px;\n &:not(:last-child) {\n border-bottom: 1px solid $border; }\n input {\n left: 8px;\n top: 10px; } }\n\n.menu {\n border: 1px solid $border;\n border-radius: 5px;\n &:not(:last-child) {\n margin-bottom: 20px; } }\n",".modal-background {\n @include overlay;\n background: rgba(black, 0.86); }\n\n.modal-content {\n margin: 0 20px;\n max-height: calc(100vh - 160px);\n overflow: auto;\n position: relative;\n width: 100%;\n @include tablet {\n margin: 0 auto;\n max-height: calc(100vh - 40px);\n width: 640px; } }\n\n.modal-close {\n @extend .delete;\n background: none;\n height: 40px;\n position: fixed;\n right: 20px;\n top: 20px;\n width: 40px; }\n\n.modal {\n @include overlay;\n align-items: center;\n display: none;\n justify-content: center;\n overflow: hidden;\n position: fixed;\n z-index: 1986;\n &.is-active {\n display: flex; } }\n",".header {\n @include clearfix;\n background: white;\n box-shadow: 0 1px 2px rgba(black, 0.1);\n display: flex;\n height: 50px;\n line-height: 24px;\n position: relative;\n text-align: center;\n z-index: 2;\n .container {\n align-items: stretch;\n box-shadow: 0 1px 0 rgba($border, 0.3);\n display: flex;\n width: 100%; }\n @include tablet {\n height: $header-height; } }\n\n.header-toggle {\n @extend .hamburger;\n @include tablet {\n display: none; } }\n\n// Elements\n\n.header-item {\n align-items: center;\n display: flex;\n padding: 10px;\n img {\n max-height: 24px; }\n a {\n color: $text;\n &:hover {\n color: $link-hover; }\n &.is-active {\n color: $link-active; } }\n .fa {\n font-size: 21px;\n line-height: 24px; } }\n\n.header-icon {\n @include fa(14px, 24px);\n color: $text;\n margin: 0 5px;\n &:hover {\n color: $link-hover; } }\n\n.header-tab {\n align-items: center;\n border-bottom: 1px solid transparent;\n color: $text;\n display: block;\n height: $header-height;\n line-height: 24px;\n padding: 13px 15px;\n &:hover {\n border-bottom: 1px solid $link; }\n &.is-active {\n border-bottom: 3px solid $link;\n color: $link; } }\n\n// Containers\n\n.header-left {\n align-items: stretch;\n display: flex;\n flex: 1;\n overflow: hidden;\n overflow-x: auto;\n white-space: nowrap;\n @include desktop {\n .header-item:first-child {\n padding-left: 0; } } }\n\n.header-center {\n align-items: stretch;\n display: flex;\n left: 50%;\n position: absolute;\n transform: translateX(-50%); }\n\n.header-right {\n align-items: stretch;\n @include tablet {\n display: flex; }\n @include desktop {\n .header-item:last-child {\n padding-right: 0; } } }\n\n.header-full {\n align-items: stretch;\n display: flex;\n justify-content: center;\n text-align: center;\n width: 100%;\n & > .header-item {\n align-items: stretch;\n display: flex;\n flex: 1;\n justify-content: center;\n padding: 0;\n & > a {\n align-items: center;\n display: flex;\n justify-content: center;\n width: 100%; } } }\n\n.header-menu {\n @include mobile {\n background: white;\n box-shadow: 0 4px 7px rgba(black, 0.1);\n display: none;\n min-width: 120px;\n position: absolute;\n right: 0;\n top: 50px;\n z-index: 100;\n .header-item {\n border-top: 1px solid rgba($border, 0.5);\n padding: 10px; }\n &.is-active {\n display: block; } } }\n\n// States\n\n.header.is-centered {\n justify-content: center;\n .header-left,\n .header-center,\n .header-right {\n justify-content: center; } }\n\n.header.is-small {\n background: $background;\n box-shadow: none;\n height: 40px;\n z-index: 1;\n .container {\n height: 40px; }\n .header-tab {\n font-size: 13px;\n height: 40px;\n padding: 8px 10px;\n &:hover,\n &.is-active {\n border-bottom-width: 2px; } } }\n\n",".hero-video {\n @include overlay;\n overflow: hidden;\n &.is-transparent {\n opacity: 0.3; }\n video {\n left: 50%;\n min-height: 100%;\n min-width: 100%;\n position: absolute;\n top: 50%;\n transform: translate3d(-50%, -50%, 0); }\n @include mobile {\n display: none; } }\n\n.hero-content {\n padding: 40px 20px;\n @include desktop {\n padding: 40px 0; } }\n\n.hero-buttons {\n margin-top: 20px;\n @include mobile {\n .button {\n display: block;\n &:not(:last-child) {\n margin-bottom: 10px; } } }\n @include tablet {\n display: flex;\n justify-content: center;\n .button:not(:last-child) {\n margin-right: 20px; } } }\n\n.hero {\n background: white;\n text-align: center;\n .header {\n background: none;\n box-shadow: none; }\n .tabs {\n a {\n border: none; }\n ul {\n border-bottom: none; }\n &.is-boxed {\n a {\n padding: 8px 15px; } } }\n &.is-alt {\n background: $background;\n color: $text-light; }\n @each $name, $pair in $colors {\n $color: nth($pair, 1);\n $color-invert: nth($pair, 2);\n &.is-#{$name} {\n background: $color;\n color: $color-invert;\n .title {\n color: $color-invert;\n a,\n strong {\n color: inherit; } }\n .subtitle {\n color: rgba($color-invert, 0.7);\n strong {\n color: $color-invert; } }\n .header .container {\n box-shadow: 0 1px 0 rgba($color-invert, 0.2); }\n .header-icon,\n .header-item > a:not(.button) {\n color: $color-invert;\n opacity: 0.5;\n &:hover,\n &.is-active {\n opacity: 1; } }\n .tabs {\n a {\n color: $color-invert;\n opacity: 0.5;\n &:hover {\n opacity: 1; } }\n li.is-active a {\n opacity: 1; }\n &.is-boxed,\n &.is-toggle {\n a {\n color: $color-invert;\n &:hover {\n background: rgba(black, 0.1); } }\n li.is-active a {\n &,\n &:hover {\n background: $color-invert;\n color: $color; } } } }\n &.is-bold {\n $gradient-top-left: darken(saturate(adjust-hue($color, -10deg), 10%), 10%);\n $gradient-bottom-right: lighten(saturate(adjust-hue($color, 10deg), 5%), 5%);\n background-image: linear-gradient(141deg, $gradient-top-left 0%, $color 71%, $gradient-bottom-right 100%); }\n @include mobile {\n .header-toggle {\n span {\n background: $color-invert; }\n &:hover {\n background: rgba(black, 0.1); }\n &.is-active {\n span {\n background: $color-invert; } } }\n .header-menu {\n background: $color;\n .header-item {\n border-top-color: rgba($color-invert, 0.2); } } } } }\n &.is-fullheight,\n &.is-large {\n @include tablet {\n .tabs {\n font-size: $size-medium; } } }\n &.is-medium {\n @include tablet {\n .hero-content {\n padding: 120px 20px; } }\n @include desktop {\n .hero-content {\n padding: 120px 0; } } }\n &.is-large {\n .tabs {\n a {\n padding: 10px 15px; } }\n @include tablet {\n .hero-content {\n padding: 240px 20px; } }\n @include desktop {\n .hero-content {\n padding: 240px 0; } } }\n &.is-fullheight {\n align-items: stretch;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n min-height: 100vh;\n .tabs {\n a {\n padding: 15px 20px; } }\n .hero-content {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: center; } }\n &.is-left {\n text-align: left; }\n &.is-right {\n text-align: right; } }\n",".section {\n background: white;\n padding: 40px 20px;\n & + .section {\n border-top: 1px solid rgba($border, 0.5); }\n @include desktop {\n padding: 40px 0;\n &.is-medium {\n padding: 120px 0; }\n &.is-large {\n padding: 240px 0; } } }\n",".footer {\n background: $background;\n padding: 40px 20px 80px;\n a {\n color: $text;\n &:hover {\n color: $text-strong; }\n &:not(.icon) {\n border-bottom: 1px solid $border;\n &:hover {\n border-bottom-color: $link; } } } }\n","@import '../../../node_modules/bulma/bulma';\n\nbody {\n\tfont-family: Source Sans Pro, Helvetica, Arial, sans-serif;\n}\n\n.hero {\n\tbackground: #6441A5;\n\tbackground: -webkit-linear-gradient(to right, #6441A5 , #2a0845);\n\tbackground: linear-gradient(to right, #6441A5 , #2a0845);\n\t.title {\n\t\tcolor: white;\n\t\tmargin-bottom: 40px;\n\t\tfont-weight: bold;\n\t}\n\t.subtitle {\n\t\tcolor: bisque;\n\t\tmargin-bottom: 40px;\n\t\tfont-weight: bold;\n\t}\n}\n\np {\n\tfont: 16px/28px normal Source Sans Pro, Helvetica, Arial, sans-serif;\n color: white;\n\ttext-align: left;\n}\n\nblockquote {\n \ttext-align: left;\n}\n\na:hover {\n\tcolor: #1fc8db;\n}"],"sourceRoot":"/source/"} -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chekun/codeposer/9e69e30da64d0006ee7f3e1a98ccfb4d748f3185/public/favicon.ico -------------------------------------------------------------------------------- /public/index.php: -------------------------------------------------------------------------------- 1 | =')) 75 | { 76 | error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED); 77 | } 78 | else 79 | { 80 | error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE); 81 | } 82 | break; 83 | default: 84 | header('HTTP/1.1 503 Service Unavailable.', TRUE, 503); 85 | echo 'The application environment is not set correctly.'; 86 | exit(1); // EXIT_ERROR 87 | } 88 | /* 89 | *--------------------------------------------------------------- 90 | * SYSTEM FOLDER NAME 91 | *--------------------------------------------------------------- 92 | * 93 | * This variable must contain the name of your "system" folder. 94 | * Include the path if the folder is not in the same directory 95 | * as this file. 96 | */ 97 | $system_path = CP_PATH.'vendor/codeigniter/framework/system'; 98 | /* 99 | *--------------------------------------------------------------- 100 | * APPLICATION FOLDER NAME 101 | *--------------------------------------------------------------- 102 | * 103 | * If you want this front controller to use a different "application" 104 | * folder than the default one you can set its name here. The folder 105 | * can also be renamed or relocated anywhere on your server. If 106 | * you do, use a full server path. For more info please see the user guide: 107 | * http://codeigniter.com/user_guide/general/managing_apps.html 108 | * 109 | * NO TRAILING SLASH! 110 | */ 111 | $application_folder = CP_PATH.'app'; 112 | /* 113 | *--------------------------------------------------------------- 114 | * VIEW FOLDER NAME 115 | *--------------------------------------------------------------- 116 | * 117 | * If you want to move the view folder out of the application 118 | * folder set the path to the folder here. The folder can be renamed 119 | * and relocated anywhere on your server. If blank, it will default 120 | * to the standard location inside your application folder. If you 121 | * do move this, use the full server path to this folder. 122 | * 123 | * NO TRAILING SLASH! 124 | */ 125 | $view_folder = CP_PATH.'resources/views'; 126 | /* 127 | * -------------------------------------------------------------------- 128 | * DEFAULT CONTROLLER 129 | * -------------------------------------------------------------------- 130 | * 131 | * Normally you will set your default controller in the routes.php file. 132 | * You can, however, force a custom routing by hard-coding a 133 | * specific controller class/function here. For most applications, you 134 | * WILL NOT set your routing here, but it's an option for those 135 | * special instances where you might want to override the standard 136 | * routing in a specific front controller that shares a common CI installation. 137 | * 138 | * IMPORTANT: If you set the routing here, NO OTHER controller will be 139 | * callable. In essence, this preference limits your application to ONE 140 | * specific controller. Leave the function name blank if you need 141 | * to call functions dynamically via the URI. 142 | * 143 | * Un-comment the $routing array below to use this feature 144 | */ 145 | // The directory name, relative to the "controllers" folder. Leave blank 146 | // if your controller is not in a sub-folder within the "controllers" folder 147 | // $routing['directory'] = ''; 148 | // The controller class file name. Example: mycontroller 149 | // $routing['controller'] = ''; 150 | // The controller function you wish to be called. 151 | // $routing['function'] = ''; 152 | /* 153 | * ------------------------------------------------------------------- 154 | * CUSTOM CONFIG VALUES 155 | * ------------------------------------------------------------------- 156 | * 157 | * The $assign_to_config array below will be passed dynamically to the 158 | * config class when initialized. This allows you to set custom config 159 | * items or override any default config values found in the config.php file. 160 | * This can be handy as it permits you to share one application between 161 | * multiple front controller files, with each file containing different 162 | * config values. 163 | * 164 | * Un-comment the $assign_to_config array below to use this feature 165 | */ 166 | // $assign_to_config['name_of_config_item'] = 'value of config item'; 167 | // -------------------------------------------------------------------- 168 | // END OF USER CONFIGURABLE SETTINGS. DO NOT EDIT BELOW THIS LINE 169 | // -------------------------------------------------------------------- 170 | /* 171 | * --------------------------------------------------------------- 172 | * Resolve the system path for increased reliability 173 | * --------------------------------------------------------------- 174 | */ 175 | // Set the current directory correctly for CLI requests 176 | if (defined('STDIN')) 177 | { 178 | chdir(dirname(__FILE__)); 179 | } 180 | if (($_temp = realpath($system_path)) !== FALSE) 181 | { 182 | $system_path = $_temp.'/'; 183 | } 184 | else 185 | { 186 | // Ensure there's a trailing slash 187 | $system_path = rtrim($system_path, '/').'/'; 188 | } 189 | // Is the system path correct? 190 | if ( ! is_dir($system_path)) 191 | { 192 | header('HTTP/1.1 503 Service Unavailable.', TRUE, 503); 193 | echo 'Your system folder path does not appear to be set correctly. Please open the following file and correct this: '.pathinfo(__FILE__, PATHINFO_BASENAME); 194 | exit(3); // EXIT_CONFIG 195 | } 196 | /* 197 | * ------------------------------------------------------------------- 198 | * Now that we know the path, set the main path constants 199 | * ------------------------------------------------------------------- 200 | */ 201 | // The name of THIS file 202 | define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME)); 203 | // Path to the system folder 204 | define('BASEPATH', str_replace('\\', '/', $system_path)); 205 | // Path to the front controller (this file) 206 | define('FCPATH', dirname(__FILE__).'/'); 207 | // Name of the "system folder" 208 | define('SYSDIR', trim(strrchr(trim(BASEPATH, '/'), '/'), '/')); 209 | // The path to the "application" folder 210 | if (is_dir($application_folder)) 211 | { 212 | if (($_temp = realpath($application_folder)) !== FALSE) 213 | { 214 | $application_folder = $_temp; 215 | } 216 | define('APPPATH', $application_folder.DIRECTORY_SEPARATOR); 217 | } 218 | else 219 | { 220 | if ( ! is_dir(BASEPATH.$application_folder.DIRECTORY_SEPARATOR)) 221 | { 222 | header('HTTP/1.1 503 Service Unavailable.', TRUE, 503); 223 | echo 'Your application folder path does not appear to be set correctly. Please open the following file and correct this: '.SELF; 224 | exit(3); // EXIT_CONFIG 225 | } 226 | define('APPPATH', BASEPATH.$application_folder.DIRECTORY_SEPARATOR); 227 | } 228 | // The path to the "views" folder 229 | if ( ! is_dir($view_folder)) 230 | { 231 | if ( ! empty($view_folder) && is_dir(APPPATH.$view_folder.DIRECTORY_SEPARATOR)) 232 | { 233 | $view_folder = APPPATH.$view_folder; 234 | } 235 | elseif ( ! is_dir(APPPATH.'views'.DIRECTORY_SEPARATOR)) 236 | { 237 | header('HTTP/1.1 503 Service Unavailable.', TRUE, 503); 238 | echo 'Your view folder path does not appear to be set correctly. Please open the following file and correct this: '.SELF; 239 | exit(3); // EXIT_CONFIG 240 | } 241 | else 242 | { 243 | $view_folder = APPPATH.'views'; 244 | } 245 | } 246 | if (($_temp = realpath($view_folder)) !== FALSE) 247 | { 248 | $view_folder = $_temp.DIRECTORY_SEPARATOR; 249 | } 250 | else 251 | { 252 | $view_folder = rtrim($view_folder, '/\\').DIRECTORY_SEPARATOR; 253 | } 254 | define('VIEWPATH', $view_folder); 255 | /* 256 | * -------------------------------------------------------------------- 257 | * LOAD THE BOOTSTRAP FILE 258 | * -------------------------------------------------------------------- 259 | * 260 | * And away we go... 261 | */ 262 | require_once BASEPATH.'core/CodeIgniter.php'; 263 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | CodePoser 2 | ======================== 3 | 4 | [![Build Status](https://travis-ci.org/chekun/codeposer.svg?branch=master)](https://travis-ci.org/chekun/codeposer) 5 | [![Total Downloads](https://poser.pugx.org/codeposer/codeposer/d/total.svg)](https://packagist.org/packages/codeposer/codeposer) 6 | [![Latest Stable Version](https://poser.pugx.org/codeposer/codeposer/v/stable.svg)](https://packagist.org/packages/codeposer/codeposer) 7 | [![License](https://poser.pugx.org/codeposer/codeposer/license.svg)](https://packagist.org/packages/codeposer/codeposer) 8 | 9 | A better way to build modern CodeIgniter Applications. [CodePoser website](http://codeposer.chekun.me) 10 | 11 | ![screenshot](https://user-images.githubusercontent.com/1967804/29114747-cffb43c2-7d27-11e7-8cfa-dff5b3579a86.png) 12 | 13 | ### Features 14 | 15 | - We are now in the ```Composer``` world 16 | - Built-in PHP web server 17 | - Modern workflow - taken advantage of ```laravel mix``` 18 | - Dead simple to use 19 | - More to come ... 20 | 21 | ### Quick Start 22 | 23 | - Create Project 24 | 25 | ``` 26 | composer create-project codeposer/codeposer . 27 | ``` 28 | 29 | - Npm Ready 30 | 31 | 32 | ``` 33 | npm install 34 | ``` 35 | 36 | - Run Webpack 37 | 38 | ``` 39 | npm run dev 40 | ``` 41 | 42 | - Start Server 43 | 44 | ``` 45 | php -S localhost:9999 -t public server.php 46 | ``` 47 | 48 | - Enjoy! 49 | 50 | Go and visit ```http://localhost:9999/```, and have fun. 51 | 52 | 53 | ### Thanks to 54 | 55 | - [CodeIgniter](https://github.com/bcit-ci/CodeIgniter) 56 | - [Laravel-Mix](https://github.com/JeffreyWay/laravel-mix) 57 | - [PHPDotenv](https://github.com/vlucas/phpdotenv) 58 | 59 | ### Licensce 60 | 61 | The CodePoser project is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT) -------------------------------------------------------------------------------- /resources/assets/sass/app.scss: -------------------------------------------------------------------------------- 1 | @import '../../../node_modules/bulma/bulma'; 2 | 3 | body { 4 | font-family: Source Sans Pro, Helvetica, Arial, sans-serif; 5 | } 6 | 7 | .hero { 8 | padding: 30px 0; 9 | background: #6441A5; 10 | background: -webkit-linear-gradient(to right, #6441A5 , #2a0845); 11 | background: linear-gradient(to right, #6441A5 , #2a0845); 12 | .title { 13 | color: white; 14 | margin-bottom: 40px; 15 | font-weight: bold; 16 | } 17 | .subtitle { 18 | color: bisque; 19 | margin-bottom: 40px; 20 | font-weight: bold; 21 | } 22 | } 23 | 24 | p { 25 | font: 16px/28px normal Source Sans Pro, Helvetica, Arial, sans-serif; 26 | color: white; 27 | text-align: left; 28 | } 29 | 30 | blockquote { 31 | text-align: left; 32 | } 33 | 34 | a:hover { 35 | color: #1fc8db; 36 | } -------------------------------------------------------------------------------- /resources/views/errors/cli/error_404.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | An uncaught Exception was encountered 4 | 5 | Type: 6 | Message: 7 | Filename: getFile(), "\n"; ?> 8 | Line Number: getLine(); ?> 9 | 10 | 11 | 12 | Backtrace: 13 | getTrace() as $error): ?> 14 | 15 | File: 16 | Line: 17 | Function: 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /resources/views/errors/cli/error_general.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | A PHP Error was encountered 4 | 5 | Severity: 6 | Message: 7 | Filename: 8 | Line Number: 9 | 10 | 11 | 12 | Backtrace: 13 | 14 | 15 | File: 16 | Line: 17 | Function: 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /resources/views/errors/html/error_404.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 404 Page Not Found 8 | 57 | 58 | 59 |
60 |

61 | 62 |
63 | 64 | -------------------------------------------------------------------------------- /resources/views/errors/html/error_db.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | Database Error 8 | 57 | 58 | 59 |
60 |

61 | 62 |
63 | 64 | -------------------------------------------------------------------------------- /resources/views/errors/html/error_exception.php: -------------------------------------------------------------------------------- 1 | 4 | 5 |
6 | 7 |

An uncaught Exception was encountered

8 | 9 |

Type:

10 |

Message:

11 |

Filename: getFile(); ?>

12 |

Line Number: getLine(); ?>

13 | 14 | 15 | 16 |

Backtrace:

17 | getTrace() as $error): ?> 18 | 19 | 20 | 21 |

22 | File:
23 | Line:
24 | Function: 25 |

26 | 27 | 28 | 29 | 30 | 31 | 32 |
-------------------------------------------------------------------------------- /resources/views/errors/html/error_general.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | Error 8 | 57 | 58 | 59 |
60 |

61 | 62 |
63 | 64 | -------------------------------------------------------------------------------- /resources/views/errors/html/error_php.php: -------------------------------------------------------------------------------- 1 | 4 | 5 |
6 | 7 |

A PHP Error was encountered

8 | 9 |

Severity:

10 |

Message:

11 |

Filename:

12 |

Line Number:

13 | 14 | 15 | 16 |

Backtrace:

17 | 18 | 19 | 20 | 21 |

22 | File:
23 | Line:
24 | Function: 25 |

26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
-------------------------------------------------------------------------------- /resources/views/welcome_message.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Welcome to CodePoser 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 |
14 |

15 | CodePoser 16 |

17 |

18 | A better way to build modern CodeIgniter Applications 19 |

20 |
21 |

The page you are looking at is being generated dynamically by CodePoser.

22 |

If you would like to edit this page you'll find it located at:

23 |
resources/views/welcome_message.php
24 |

The corresponding controller for this page is found at:

25 |
app/controllers/Welcome.php
26 |

If you are exploring CodePoser for the very first time, you should start by reading the CodeIgniter Guide as well as CodePoser Guide.

27 |

Page rendered in {elapsed_time} seconds. ' . CI_VERSION . '' : '' ?>

28 |
29 |
30 |
31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /server.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | $uri = urldecode(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)); 9 | 10 | // This file allows us to emulate Apache's "mod_rewrite" functionality from the 11 | // built-in PHP web server. This provides a convenient way to test a Laravel 12 | // application without having installed a "real" web server software here. 13 | if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { 14 | return false; 15 | } 16 | 17 | require_once __DIR__.'/public/index.php'; 18 | -------------------------------------------------------------------------------- /tests/CodePoserTest.php: -------------------------------------------------------------------------------- 1 | baseUrl); 19 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 20 | curl_setopt($ch, CURLOPT_HEADER, 0); 21 | 22 | $response = curl_exec($ch); 23 | 24 | curl_close($ch); 25 | 26 | $isOk = preg_match('/CodePoser/', $response) ? true : false; 27 | 28 | $this->assertTrue($isOk); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /tests/bootstrap.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | 9 | // Command that starts the built-in web server 10 | $command = sprintf( 11 | 'php -S %s:%d -t %s server.php >/dev/null 2>&1 & echo $!', 12 | WEB_SERVER_HOST, 13 | WEB_SERVER_PORT, 14 | WEB_SERVER_DOCROOT 15 | ); 16 | 17 | // Execute the command and store the process ID 18 | $output = array(); 19 | exec($command, $output); 20 | $pid = (int) $output[0]; 21 | 22 | echo sprintf( 23 | '%s - Web server started on %s:%d with PID %d', 24 | date('r'), 25 | WEB_SERVER_HOST, 26 | WEB_SERVER_PORT, 27 | $pid 28 | ).PHP_EOL; 29 | 30 | // Kill the web server when the process ends 31 | register_shutdown_function(function() use ($pid) { 32 | echo sprintf('%s - Killing process with ID %d', date('r'), $pid).PHP_EOL; 33 | exec('kill '.$pid); 34 | }); 35 | -------------------------------------------------------------------------------- /webpack.mix.js: -------------------------------------------------------------------------------- 1 | let mix = require('laravel-mix'); 2 | 3 | /* 4 | |-------------------------------------------------------------------------- 5 | | Mix Asset Management 6 | |-------------------------------------------------------------------------- 7 | | 8 | | Mix provides a clean, fluent API for defining some Webpack build steps 9 | | for your Laravel application. By default, we are compiling the Sass 10 | | file for the application as well as bundling up all the JS files. 11 | | 12 | */ 13 | 14 | mix.sass('resources/assets/sass/app.scss', 'public/css'); --------------------------------------------------------------------------------