commit 29d7c2ffdc5adeb9cd256f70faba2b00634b7f06
Author: Marcel
Date: Tue Oct 16 18:28:42 2018 +0200
Initial commit as of 2018-10-16
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2ccb96c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,23 @@
+# Default ignored files
+/.idea/shelf/
+/.idea/workspace.xml
+
+# Project exclude paths
+/vendor/coduo/php-humanizer/
+/vendor/composer/
+/vendor/paquettg/php-html-parser/
+/vendor/paquettg/string-encode/
+/vendor/symfony/config/
+/vendor/symfony/filesystem/
+/vendor/symfony/polyfill-mbstring/
+/vendor/symfony/translation/
+/vendor/symfony/yaml/
+
+# Datasource local storage ignored files
+/.idea/dataSources/
+dataSources.local.xml
+
+# Editor-based HTTP Client requests
+/.idea/httpRequests/
+rest-client.private.env.json
+http-client.private.env.json
\ No newline at end of file
diff --git a/.htaccess b/.htaccess
new file mode 100644
index 0000000..4bcd956
--- /dev/null
+++ b/.htaccess
@@ -0,0 +1,7 @@
+RewriteEngine on
+RewriteCond $1 !^(index\.php|resources|robots\.txt)
+RewriteCond %{REQUEST_FILENAME} !-f
+RewriteCond %{REQUEST_FILENAME} !-d
+RewriteRule ^(.*)$ index.php/$1 [L,QSA]
+RewriteRule ^css/(.*\.css) /combine.php?type=css&files=$1
+RewriteRule ^javascript/(.*\.js) /combine.php?type=javascript&files=$1
\ No newline at end of file
diff --git a/CI_phpStorm.php b/CI_phpStorm.php
new file mode 100644
index 0000000..5cf2730
--- /dev/null
+++ b/CI_phpStorm.php
@@ -0,0 +1,121 @@
+ Memory consumption can also be displayed.
+ * @property CI_Calendar $calendar This class enables the creation of calendars
+ * @property CI_Cart $cart Shopping Cart Class
+ * @property CI_Config $config This class contains functions that enable config files to be managed
+ * @property MY_Controller $controller This class object is the super class that every library in. CodeIgniter will be assigned to.
+ * @property CI_Email $email Permits email to be sent using Mail, Sendmail, or SMTP.
+ * @property CI_Encrypt $encrypt Provides two-way keyed encoding using XOR Hashing and Mcrypt
+ * @property CI_Exceptions $exceptions Exceptions Class
+ * @property CI_Form_validation $form_validation Form Validation Class
+ * @property CI_Ftp $ftp FTP Class
+ * @property CI_Hooks $hooks Provides a mechanism to extend the base system without hacking.
+ * @property CI_Image_lib $image_lib Image Manipulation class
+ * @property CI_Input $input Pre-processes global input data for security
+ * @property CI_Lang $lang Language Class
+ * @property CI_Loader $load Loads views and files
+ * @property CI_Log $log Logging Class
+ * @property CI_Model $model CodeIgniter Model Class
+ * @property CI_Output $output Responsible for sending final output to browser
+ * @property CI_Pagination $pagination Pagination Class
+ * @property CI_Parser $parser Parses pseudo-variables contained in the specified template view, replacing them with the data in the second param
+ * @property CI_Profiler $profiler This class enables you to display benchmark, query, and other data in order to help with debugging and optimization.
+ * @property CI_Router $router Parses URIs and determines routing
+ * @property CI_Session $session Session Class
+ * @property CI_Sha1 $sha1 Provides 160 bit hashing using The Secure Hash Algorithm
+ * @property CI_Table $table HTML table generation Lets you create tables manually or from database result objects, or arrays.
+ * @property CI_Trackback $trackback Trackback Sending/Receiving Class
+ * @property CI_Typography $typography Typography Class
+ * @property CI_Unit_test $unit_test Simple testing class
+ * @property CI_Upload $upload File Uploading Class
+ * @property CI_URI $uri Parses URIs and determines routing
+ * @property CI_User_agent $user_agent Identifies the platform, browser, robot, or mobile devise of the browsing agent
+ * @property CI_Validation $validation //dead
+ * @property CI_Xmlrpc $xmlrpc XML-RPC request handler class
+ * @property CI_Xmlrpcs $xmlrpcs XML-RPC server class
+ * @property CI_Zip $zip Zip Compression Class
+ * @property CI_Javascript $javascript Javascript Class
+ * @property CI_Jquery $jquery Jquery Class
+ * @property CI_Utf8 $utf8 Provides support for UTF-8 environments
+ * @property CI_Security $security Security Class, xss, csrf, etc...
+ */
+class CI_Controller{}
+
+/**
+ * @property CI_DB_active_record $db This is the platform-independent base Active Record implementation class.
+ * @property CI_DB_forge $dbforge Database Utility Class
+ * @property CI_Benchmark $benchmark This class enables you to mark points and calculate the time difference between them. Memory consumption can also be displayed.
+ * @property CI_Calendar $calendar This class enables the creation of calendars
+ * @property CI_Cart $cart Shopping Cart Class
+ * @property CI_Config $config This class contains functions that enable config files to be managed
+ * @property CI_Controller $controller This class object is the super class that every library in. CodeIgniter will be assigned to.
+ * @property CI_Email $email Permits email to be sent using Mail, Sendmail, or SMTP.
+ * @property CI_Encrypt $encrypt Provides two-way keyed encoding using XOR Hashing and Mcrypt
+ * @property CI_Exceptions $exceptions Exceptions Class
+ * @property CI_Form_validation $form_validation Form Validation Class
+ * @property CI_Ftp $ftp FTP Class
+ * @property CI_Hooks $hooks Provides a mechanism to extend the base system without hacking.
+ * @property CI_Image_lib $image_lib Image Manipulation class
+ * @property CI_Input $input Pre-processes global input data for security
+ * @property CI_Lang $lang Language Class
+ * @property CI_Loader $load Loads views and files
+ * @property CI_Log $log Logging Class
+ * @property CI_Model $model CodeIgniter Model Class
+ * @property CI_Output $output Responsible for sending final output to browser
+ * @property CI_Pagination $pagination Pagination Class
+ * @property CI_Parser $parser Parses pseudo-variables contained in the specified template view, replacing them with the data in the second param
+ * @property CI_Profiler $profiler This class enables you to display benchmark, query, and other data in order to help with debugging and optimization.
+ * @property CI_Router $router Parses URIs and determines routing
+ * @property CI_Session $session Session Class
+ * @property CI_Sha1 $sha1 Provides 160 bit hashing using The Secure Hash Algorithm
+ * @property CI_Table $table HTML table generation Lets you create tables manually or from database result objects, or arrays.
+ * @property CI_Trackback $trackback Trackback Sending/Receiving Class
+ * @property CI_Typography $typography Typography Class
+ * @property CI_Unit_test $unit_test Simple testing class
+ * @property CI_Upload $upload File Uploading Class
+ * @property CI_URI $uri Parses URIs and determines routing
+ * @property CI_User_agent $user_agent Identifies the platform, browser, robot, or mobile devise of the browsing agent
+ * @property CI_Validation $validation //dead
+ * @property CI_Xmlrpc $xmlrpc XML-RPC request handler class
+ * @property CI_Xmlrpcs $xmlrpcs XML-RPC server class
+ * @property CI_Zip $zip Zip Compression Class
+ * @property CI_Javascript $javascript Javascript Class
+ * @property CI_Jquery $jquery Jquery Class
+ * @property CI_Utf8 $utf8 Provides support for UTF-8 environments
+ * @property CI_Security $security Security Class, xss, csrf, etc...
+ */
+class CI_Model{}
\ No newline at end of file
diff --git a/Gruntfile.js b/Gruntfile.js
new file mode 100644
index 0000000..e69de29
diff --git a/application/.htaccess b/application/.htaccess
new file mode 100644
index 0000000..6c63ed4
--- /dev/null
+++ b/application/.htaccess
@@ -0,0 +1,6 @@
+
+ Require all denied
+
+
+ Deny from all
+
\ No newline at end of file
diff --git a/application/config/autoload.php b/application/config/autoload.php
new file mode 100644
index 0000000..0d80d73
--- /dev/null
+++ b/application/config/autoload.php
@@ -0,0 +1,135 @@
+ 'ua');
+*/
+$autoload['libraries'] = array('session', 'database', 'form_validation');
+
+/*
+| -------------------------------------------------------------------
+| Auto-load Drivers
+| -------------------------------------------------------------------
+| These classes are located in system/libraries/ or in your
+| application/libraries/ directory, but are also placed inside their
+| own subdirectory and they extend the CI_Driver_Library class. They
+| offer multiple interchangeable driver options.
+|
+| Prototype:
+|
+| $autoload['drivers'] = array('cache');
+|
+| You can also supply an alternative property name to be assigned in
+| the controller:
+|
+| $autoload['drivers'] = array('cache' => 'cch');
+|
+*/
+$autoload['drivers'] = array();
+
+/*
+| -------------------------------------------------------------------
+| Auto-load Helper Files
+| -------------------------------------------------------------------
+| Prototype:
+|
+| $autoload['helper'] = array('url', 'file');
+*/
+$autoload['helper'] = array('url', 'file', 'language');
+
+/*
+| -------------------------------------------------------------------
+| Auto-load Config files
+| -------------------------------------------------------------------
+| Prototype:
+|
+| $autoload['config'] = array('config1', 'config2');
+|
+| NOTE: This item is intended for use ONLY if you have created custom
+| config files. Otherwise, leave it blank.
+|
+*/
+$autoload['config'] = array();
+
+/*
+| -------------------------------------------------------------------
+| Auto-load Language files
+| -------------------------------------------------------------------
+| Prototype:
+|
+| $autoload['language'] = array('lang1', 'lang2');
+|
+| NOTE: Do not include the "_lang" part of your file. For example
+| "codeigniter_lang.php" would be referenced as array('codeigniter');
+|
+*/
+$autoload['language'] = array("header", "footer", "general");
+
+/*
+| -------------------------------------------------------------------
+| Auto-load Models
+| -------------------------------------------------------------------
+| Prototype:
+|
+| $autoload['model'] = array('first_model', 'second_model');
+|
+| You can also supply an alternative model name to be assigned
+| in the controller:
+|
+| $autoload['model'] = array('first_model' => 'first');
+*/
+$autoload['model'] = array('LoginModel', 'GeneralModel', 'DatabaseModel');
diff --git a/application/config/config.php b/application/config/config.php
new file mode 100644
index 0000000..3bd1902
--- /dev/null
+++ b/application/config/config.php
@@ -0,0 +1,513 @@
+]+$/i
+|
+| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!
+|
+*/
+$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
+
+/*
+|--------------------------------------------------------------------------
+| Enable Query Strings
+|--------------------------------------------------------------------------
+|
+| By default CodeIgniter uses search-engine friendly segment based URLs:
+| example.com/who/what/where/
+|
+| By default CodeIgniter enables access to the $_GET array. If for some
+| reason you would like to disable it, set 'allow_get_array' to FALSE.
+|
+| You can optionally enable standard query string based URLs:
+| example.com?who=me&what=something&where=here
+|
+| Options are: TRUE or FALSE (boolean)
+|
+| The other items let you set the query string 'words' that will
+| invoke your controllers and its functions:
+| example.com/index.php?c=controller&m=function
+|
+| Please note that some of the helpers won't work as expected when
+| this feature is enabled, since CodeIgniter is designed primarily to
+| use segment based URLs.
+|
+*/
+$config['allow_get_array'] = TRUE;
+$config['enable_query_strings'] = FALSE;
+$config['controller_trigger'] = 'c';
+$config['function_trigger'] = 'm';
+$config['directory_trigger'] = 'd';
+
+/*
+|--------------------------------------------------------------------------
+| Error Logging Threshold
+|--------------------------------------------------------------------------
+|
+| You can enable error logging by setting a threshold over zero. The
+| threshold determines what gets logged. Threshold options are:
+|
+| 0 = Disables logging, Error logging TURNED OFF
+| 1 = Error Messages (including PHP errors)
+| 2 = Debug Messages
+| 3 = Informational Messages
+| 4 = All Messages
+|
+| You can also pass an array with threshold levels to show individual error types
+|
+| array(2) = Debug Messages, without Error Messages
+|
+| For a live site you'll usually only enable Errors (1) to be logged otherwise
+| your log files will fill up very fast.
+|
+*/
+$config['log_threshold'] = 0;
+
+/*
+|--------------------------------------------------------------------------
+| Error Logging Directory Path
+|--------------------------------------------------------------------------
+|
+| Leave this BLANK unless you would like to set something other than the default
+| application/logs/ directory. Use a full server path with trailing slash.
+|
+*/
+$config['log_path'] = '';
+
+/*
+|--------------------------------------------------------------------------
+| Log File Extension
+|--------------------------------------------------------------------------
+|
+| The default filename extension for log files. The default 'php' allows for
+| protecting the log files via basic scripting, when they are to be stored
+| under a publicly accessible directory.
+|
+| Note: Leaving it blank will default to 'php'.
+|
+*/
+$config['log_file_extension'] = '';
+
+/*
+|--------------------------------------------------------------------------
+| Log File Permissions
+|--------------------------------------------------------------------------
+|
+| The file system permissions to be applied on newly created log files.
+|
+| IMPORTANT: This MUST be an integer (no quotes) and you MUST use octal
+| integer notation (i.e. 0700, 0644, etc.)
+*/
+$config['log_file_permissions'] = 0644;
+
+/*
+|--------------------------------------------------------------------------
+| Date Format for Logs
+|--------------------------------------------------------------------------
+|
+| Each item that is logged has an associated date. You can use PHP date
+| codes to set your own date formatting
+|
+*/
+$config['log_date_format'] = 'Y-m-d H:i:s';
+
+/*
+|--------------------------------------------------------------------------
+| Error Views Directory Path
+|--------------------------------------------------------------------------
+|
+| Leave this BLANK unless you would like to set something other than the default
+| application/views/errors/ directory. Use a full server path with trailing slash.
+|
+*/
+$config['error_views_path'] = '';
+
+/*
+|--------------------------------------------------------------------------
+| Cache Directory Path
+|--------------------------------------------------------------------------
+|
+| Leave this BLANK unless you would like to set something other than the default
+| application/cache/ directory. Use a full server path with trailing slash.
+|
+*/
+$config['cache_path'] = '';
+
+/*
+|--------------------------------------------------------------------------
+| Cache Include Query String
+|--------------------------------------------------------------------------
+|
+| Whether to take the URL query string into consideration when generating
+| output cache files. Valid options are:
+|
+| FALSE = Disabled
+| TRUE = Enabled, take all query parameters into account.
+| Please be aware that this may result in numerous cache
+| files generated for the same page over and over again.
+| array('q') = Enabled, but only take into account the specified list
+| of query parameters.
+|
+*/
+$config['cache_query_string'] = FALSE;
+
+/*
+|--------------------------------------------------------------------------
+| Encryption Key
+|--------------------------------------------------------------------------
+|
+| If you use the Encryption class, you must set an encryption key.
+| See the user guide for more info.
+|
+| https://codeigniter.com/user_guide/libraries/encryption.html
+|
+*/
+$config['encryption_key'] = 'KLIn!Psasaswewqsas3=zu0._BAU9dasdasd#!!@$.xdFJdVNRR';
+
+/*
+|--------------------------------------------------------------------------
+| Session Variables
+|--------------------------------------------------------------------------
+|
+| 'sess_driver'
+|
+| The storage driver to use: files, database, redis, memcached
+|
+| 'sess_cookie_name'
+|
+| The session cookie name, must contain only [0-9a-z_-] characters
+|
+| 'sess_expiration'
+|
+| The number of SECONDS you want the session to last.
+| Setting to 0 (zero) means expire when the browser is closed.
+|
+| 'sess_save_path'
+|
+| The location to save sessions to, driver dependent.
+|
+| For the 'files' driver, it's a path to a writable directory.
+| WARNING: Only absolute paths are supported!
+|
+| For the 'database' driver, it's a table name.
+| Please read up the manual for the format with other session drivers.
+|
+| IMPORTANT: You are REQUIRED to set a valid save path!
+|
+| 'sess_match_ip'
+|
+| Whether to match the user's IP address when reading the session data.
+|
+| WARNING: If you're using the database driver, don't forget to update
+| your session table's PRIMARY KEY when changing this setting.
+|
+| 'sess_time_to_update'
+|
+| How many seconds between CI regenerating the session ID.
+|
+| 'sess_regenerate_destroy'
+|
+| Whether to destroy session data associated with the old session ID
+| when auto-regenerating the session ID. When set to FALSE, the data
+| will be later deleted by the garbage collector.
+|
+| Other session cookie settings are shared with the rest of the application,
+| except for 'cookie_prefix' and 'cookie_httponly', which are ignored here.
+|
+*/
+$config['sess_driver'] = 'files';
+$config['sess_cookie_name'] = 'ci_session';
+$config['sess_expiration'] = 7200;
+$config['sess_save_path'] = NULL;
+$config['sess_match_ip'] = FALSE;
+$config['sess_time_to_update'] = 300;
+$config['sess_regenerate_destroy'] = FALSE;
+
+/*
+|--------------------------------------------------------------------------
+| Cookie Related Variables
+|--------------------------------------------------------------------------
+|
+| 'cookie_prefix' = Set a cookie name prefix if you need to avoid collisions
+| 'cookie_domain' = Set to .your-domain.com for site-wide cookies
+| 'cookie_path' = Typically will be a forward slash
+| 'cookie_secure' = Cookie will only be set if a secure HTTPS connection exists.
+| 'cookie_httponly' = Cookie will only be accessible via HTTP(S) (no javascript)
+|
+| Note: These settings (with the exception of 'cookie_prefix' and
+| 'cookie_httponly') will also affect sessions.
+|
+*/
+$config['cookie_prefix'] = '';
+$config['cookie_domain'] = '';
+$config['cookie_path'] = '/';
+$config['cookie_secure'] = FALSE;
+$config['cookie_httponly'] = FALSE;
+
+/*
+|--------------------------------------------------------------------------
+| Standardize newlines
+|--------------------------------------------------------------------------
+|
+| Determines whether to standardize newline characters in input data,
+| meaning to replace \r\n, \r, \n occurrences with the PHP_EOL value.
+|
+| This is particularly useful for portability between UNIX-based OSes,
+| (usually \n) and Windows (\r\n).
+|
+*/
+$config['standardize_newlines'] = FALSE;
+
+/*
+|--------------------------------------------------------------------------
+| Global XSS Filtering
+|--------------------------------------------------------------------------
+|
+| Determines whether the XSS filter is always active when GET, POST or
+| COOKIE data is encountered
+|
+| WARNING: This feature is DEPRECATED and currently available only
+| for backwards compatibility purposes!
+|
+*/
+$config['global_xss_filtering'] = FALSE;
+
+/*
+|--------------------------------------------------------------------------
+| Cross Site Request Forgery
+|--------------------------------------------------------------------------
+| Enables a CSRF cookie token to be set. When set to TRUE, token will be
+| checked on a submitted form. If you are accepting user data, it is strongly
+| recommended CSRF protection be enabled.
+|
+| 'csrf_token_name' = The token name
+| 'csrf_cookie_name' = The cookie name
+| 'csrf_expire' = The number in seconds the token should expire.
+| 'csrf_regenerate' = Regenerate token on every submission
+| 'csrf_exclude_uris' = Array of URIs which ignore CSRF checks
+*/
+$config['csrf_protection'] = FALSE;
+$config['csrf_token_name'] = 'csrf_test_name';
+$config['csrf_cookie_name'] = 'csrf_cookie_name';
+$config['csrf_expire'] = 7200;
+$config['csrf_regenerate'] = TRUE;
+$config['csrf_exclude_uris'] = array();
+
+/*
+|--------------------------------------------------------------------------
+| Output Compression
+|--------------------------------------------------------------------------
+|
+| Enables Gzip output compression for faster page loads. When enabled,
+| the output class will test whether your server supports Gzip.
+| Even if it does, however, not all browsers support compression
+| so enable only if you are reasonably sure your visitors can handle it.
+|
+| Only used if zlib.output_compression is turned off in your php.ini.
+| Please do not use it together with httpd-level output compression.
+|
+| VERY IMPORTANT: If you are getting a blank page when compression is enabled it
+| means you are prematurely outputting something to your browser. It could
+| even be a line of whitespace at the end of one of your scripts. For
+| compression to work, nothing can be sent before the output buffer is called
+| by the output class. Do not 'echo' any values with compression enabled.
+|
+*/
+$config['compress_output'] = FALSE;
+
+/*
+|--------------------------------------------------------------------------
+| Master Time Reference
+|--------------------------------------------------------------------------
+|
+| Options are 'local' or any PHP supported timezone. This preference tells
+| the system whether to use your server's local time as the master 'now'
+| reference, or convert it to the configured one timezone. See the 'date
+| helper' page of the user guide for information regarding date handling.
+|
+*/
+$config['time_reference'] = 'local';
+
+/*
+|--------------------------------------------------------------------------
+| Rewrite PHP Short Tags
+|--------------------------------------------------------------------------
+|
+| If your PHP installation does not have short tag support enabled CI
+| can rewrite the tags on-the-fly, enabling you to utilize that syntax
+| in your view files. Options are TRUE or FALSE (boolean)
+|
+| Note: You need to have eval() enabled for this to work.
+|
+*/
+$config['rewrite_short_tags'] = FALSE;
+
+/*
+|--------------------------------------------------------------------------
+| Reverse Proxy IPs
+|--------------------------------------------------------------------------
+|
+| If your server is behind a reverse proxy, you must whitelist the proxy
+| IP addresses from which CodeIgniter should trust headers such as
+| HTTP_X_FORWARDED_FOR and HTTP_CLIENT_IP in order to properly identify
+| the visitor's IP address.
+|
+| You can use both an array or a comma-separated list of proxy addresses,
+| as well as specifying whole subnets. Here are a few examples:
+|
+| Comma-separated: '10.0.1.200,192.168.5.0/24'
+| Array: array('10.0.1.200', '192.168.5.0/24')
+*/
+$config['proxy_ips'] = '';
diff --git a/application/config/constants.php b/application/config/constants.php
new file mode 100644
index 0000000..18d3b4b
--- /dev/null
+++ b/application/config/constants.php
@@ -0,0 +1,85 @@
+db->last_query() and profiling of DB queries.
+| When you run a query, with this setting set to TRUE (default),
+| CodeIgniter will store the SQL statement for debugging purposes.
+| However, this may cause high memory usage, especially if you run
+| a lot of SQL queries ... disable this to avoid that problem.
+|
+| The $active_group variable lets you choose which connection group to
+| make active. By default there is only one group (the 'default' group).
+|
+| The $query_builder variables lets you determine whether or not to load
+| the query builder class.
+*/
+$active_group = 'default';
+$query_builder = TRUE;
+
+$hostname = 'localhost';
+
+$db['default'] = array(
+ 'dsn' => '',
+ 'hostname' => $hostname,
+ 'username' => 'kingofdog',
+ 'password' => '123456',
+ 'database' => 'kingofdog',
+ 'dbdriver' => 'mysqli',
+ 'dbprefix' => '',
+ 'pconnect' => FALSE,
+ 'db_debug' => (ENVIRONMENT !== 'production'),
+ 'cache_on' => TRUE,
+ 'cachedir' => APPPATH . 'db_cache/',
+ 'char_set' => 'utf8mb4',
+ 'dbcollat' => 'utf8mb4_general_ci',
+ 'swap_pre' => '',
+ 'encrypt' => FALSE,
+ 'compress' => FALSE,
+ 'stricton' => FALSE,
+ 'failover' => array(),
+ 'save_queries' => TRUE
+);
+$db['creator'] = array(
+ 'dsn' => '',
+ 'hostname' => $hostname,
+ 'username' => 'databaseCreator',
+ 'password' => '123456',
+ 'database' => '',
+ 'dbdriver' => 'mysqli',
+ 'dbprefix' => '',
+ 'pconnect' => FALSE,
+ 'db_debug' => (ENVIRONMENT !== 'production'),
+ 'cache_on' => FALSE,
+ 'cachedir' => '',
+ 'char_set' => 'utf8',
+ 'dbcollat' => 'utf8_general_ci',
+ 'swap_pre' => '',
+ 'encrypt' => FALSE,
+ 'compress' => FALSE,
+ 'stricton' => FALSE,
+ 'failover' => array(),
+ 'save_queries' => TRUE
+);
diff --git a/application/config/doctypes.php b/application/config/doctypes.php
new file mode 100644
index 0000000..59a7991
--- /dev/null
+++ b/application/config/doctypes.php
@@ -0,0 +1,24 @@
+ '',
+ 'xhtml1-strict' => '',
+ 'xhtml1-trans' => '',
+ 'xhtml1-frame' => '',
+ 'xhtml-basic11' => '',
+ 'html5' => '',
+ 'html4-strict' => '',
+ 'html4-trans' => '',
+ 'html4-frame' => '',
+ 'mathml1' => '',
+ 'mathml2' => '',
+ 'svg10' => '',
+ 'svg11' => '',
+ 'svg11-basic' => '',
+ 'svg11-tiny' => '',
+ 'xhtml-math-svg-xh' => '',
+ 'xhtml-math-svg-sh' => '',
+ 'xhtml-rdfa-1' => '',
+ 'xhtml-rdfa-2' => ''
+);
diff --git a/application/config/foreign_chars.php b/application/config/foreign_chars.php
new file mode 100644
index 0000000..ac406e3
--- /dev/null
+++ b/application/config/foreign_chars.php
@@ -0,0 +1,103 @@
+ 'ae',
+ '/ö|œ/' => 'oe',
+ '/ü/' => 'ue',
+ '/Ä/' => 'Ae',
+ '/Ü/' => 'Ue',
+ '/Ö/' => 'Oe',
+ '/À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ|Α|Ά|Ả|Ạ|Ầ|Ẫ|Ẩ|Ậ|Ằ|Ắ|Ẵ|Ẳ|Ặ|А/' => 'A',
+ '/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª|α|ά|ả|ạ|ầ|ấ|ẫ|ẩ|ậ|ằ|ắ|ẵ|ẳ|ặ|а/' => 'a',
+ '/Б/' => 'B',
+ '/б/' => 'b',
+ '/Ç|Ć|Ĉ|Ċ|Č/' => 'C',
+ '/ç|ć|ĉ|ċ|č/' => 'c',
+ '/Д/' => 'D',
+ '/д/' => 'd',
+ '/Ð|Ď|Đ|Δ/' => 'Dj',
+ '/ð|ď|đ|δ/' => 'dj',
+ '/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě|Ε|Έ|Ẽ|Ẻ|Ẹ|Ề|Ế|Ễ|Ể|Ệ|Е|Э/' => 'E',
+ '/è|é|ê|ë|ē|ĕ|ė|ę|ě|έ|ε|ẽ|ẻ|ẹ|ề|ế|ễ|ể|ệ|е|э/' => 'e',
+ '/Ф/' => 'F',
+ '/ф/' => 'f',
+ '/Ĝ|Ğ|Ġ|Ģ|Γ|Г|Ґ/' => 'G',
+ '/ĝ|ğ|ġ|ģ|γ|г|ґ/' => 'g',
+ '/Ĥ|Ħ/' => 'H',
+ '/ĥ|ħ/' => 'h',
+ '/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ|Η|Ή|Ί|Ι|Ϊ|Ỉ|Ị|И|Ы/' => 'I',
+ '/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı|η|ή|ί|ι|ϊ|ỉ|ị|и|ы|ї/' => 'i',
+ '/Ĵ/' => 'J',
+ '/ĵ/' => 'j',
+ '/Ķ|Κ|К/' => 'K',
+ '/ķ|κ|к/' => 'k',
+ '/Ĺ|Ļ|Ľ|Ŀ|Ł|Λ|Л/' => 'L',
+ '/ĺ|ļ|ľ|ŀ|ł|λ|л/' => 'l',
+ '/М/' => 'M',
+ '/м/' => 'm',
+ '/Ñ|Ń|Ņ|Ň|Ν|Н/' => 'N',
+ '/ñ|ń|ņ|ň|ʼn|ν|н/' => 'n',
+ '/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ|Ο|Ό|Ω|Ώ|Ỏ|Ọ|Ồ|Ố|Ỗ|Ổ|Ộ|Ờ|Ớ|Ỡ|Ở|Ợ|О/' => 'O',
+ '/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º|ο|ό|ω|ώ|ỏ|ọ|ồ|ố|ỗ|ổ|ộ|ờ|ớ|ỡ|ở|ợ|о/' => 'o',
+ '/П/' => 'P',
+ '/п/' => 'p',
+ '/Ŕ|Ŗ|Ř|Ρ|Р/' => 'R',
+ '/ŕ|ŗ|ř|ρ|р/' => 'r',
+ '/Ś|Ŝ|Ş|Ș|Š|Σ|С/' => 'S',
+ '/ś|ŝ|ş|ș|š|ſ|σ|ς|с/' => 's',
+ '/Ț|Ţ|Ť|Ŧ|τ|Т/' => 'T',
+ '/ț|ţ|ť|ŧ|т/' => 't',
+ '/Þ|þ/' => 'th',
+ '/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ|Ũ|Ủ|Ụ|Ừ|Ứ|Ữ|Ử|Ự|У/' => 'U',
+ '/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ|υ|ύ|ϋ|ủ|ụ|ừ|ứ|ữ|ử|ự|у/' => 'u',
+ '/Ý|Ÿ|Ŷ|Υ|Ύ|Ϋ|Ỳ|Ỹ|Ỷ|Ỵ|Й/' => 'Y',
+ '/ý|ÿ|ŷ|ỳ|ỹ|ỷ|ỵ|й/' => 'y',
+ '/В/' => 'V',
+ '/в/' => 'v',
+ '/Ŵ/' => 'W',
+ '/ŵ/' => 'w',
+ '/Ź|Ż|Ž|Ζ|З/' => 'Z',
+ '/ź|ż|ž|ζ|з/' => 'z',
+ '/Æ|Ǽ/' => 'AE',
+ '/ß/' => 'ss',
+ '/IJ/' => 'IJ',
+ '/ij/' => 'ij',
+ '/Œ/' => 'OE',
+ '/ƒ/' => 'f',
+ '/ξ/' => 'ks',
+ '/π/' => 'p',
+ '/β/' => 'v',
+ '/μ/' => 'm',
+ '/ψ/' => 'ps',
+ '/Ё/' => 'Yo',
+ '/ё/' => 'yo',
+ '/Є/' => 'Ye',
+ '/є/' => 'ye',
+ '/Ї/' => 'Yi',
+ '/Ж/' => 'Zh',
+ '/ж/' => 'zh',
+ '/Х/' => 'Kh',
+ '/х/' => 'kh',
+ '/Ц/' => 'Ts',
+ '/ц/' => 'ts',
+ '/Ч/' => 'Ch',
+ '/ч/' => 'ch',
+ '/Ш/' => 'Sh',
+ '/ш/' => 'sh',
+ '/Щ/' => 'Shch',
+ '/щ/' => 'shch',
+ '/Ъ|ъ|Ь|ь/' => '',
+ '/Ю/' => 'Yu',
+ '/ю/' => 'yu',
+ '/Я/' => 'Ya',
+ '/я/' => 'ya'
+);
diff --git a/application/config/hooks.php b/application/config/hooks.php
new file mode 100644
index 0000000..782adf6
--- /dev/null
+++ b/application/config/hooks.php
@@ -0,0 +1,13 @@
+
+
+
+ 403 Forbidden
+
+
+
+
Dein Account wurde erfolgreich bestätigt! Du kannst dich jetzt mit deinem Passwort einloggen und alle Funktionen dieser Seite ausreizen!
';
+ } else {
+ $_SESSION['notice'] = '
Dein Account konnte nicht aktiviert werden! Möglicherweise ist der Aktivierungs-Schlüssel falsch. Sollte dieser Fehler weiterhin auftreten, kontaktiere bitte das Website-Team!
';
+ }
+ } else {
+ $_SESSION['notice'] = '
Ein Fehler ist aufgetreten! Der angegebene Aktivierungs-Schlüssel ist ungültig und entspricht nicht den Anforderungen. Der Account kann nicht aktiviert werden!
';
+ }
+ redirect(base_url('login'));
+ }
+
+ public function forget()
+ {
+ if (isset($_SESSION['user']))
+ redirect(base_url('login'));
+
+ $username = $this->input->post("username");
+ $notice = ["state" => false, "message" => ""];
+ if (!isset($username) || $username == "") {
+ $notice["message"] = 'Bitte gib deinen Nutzernamen oder deine E-Mail-Adresse an! Um dir Zugriff auf deinen Account zu gewähren, musst du entweder deinen Nutzernamen oder deine E-Mail-Adresse angeben.';
+ echo json_encode($notice);
+ header('Content-Type: application/json');
+ exit;
+ }
+
+ $loginData = $this->LoginModel->getLoginData($username);
+ if (empty($loginData)) {
+ $notice['message'] = 'Dieser Nutzer existiert nicht! Es konnte kein Nutzer mit dieser E-Mail oder diesem Namen gefunden werden.';
+ echo json_encode($notice);
+ header('Content-Type: application/json');
+ exit;
+ }
+
+ $loginData = $loginData[0];
+ $username = strtolower($username);
+ if ($username == $loginData['username'] || $username == $loginData['email']) {
+ $resetKey = $this->LoginModel->createForgetPasswordKey($loginData['username']);
+
+ // TODO: E-Mail send
+ $this->load->library('email');
+ $message = "";
+
+// $config['mailtype'] = "html";
+// $this->mail->initialize($config);
+
+ $this->email->from('noreply@kingofdog.de', 'KingOfDog.de');
+ $this->email->to($loginData['email']);
+
+ $this->email->subject('Passwort zurücksetzen');
+ $this->email->message($message);
+
+// $this->email->send();
+ $notice['state'] = true;
+ $notice['message'] = "Eine E-Mail wurde an dich gesendet! Schau' in dein Postfach und klick auf den Link, um dein Passwort zu ändern!";
+ }
+ echo json_encode($notice);
+ header('Content-Type: application/json');
+ }
+
+ public function reset($userKey = NULL, $resetKey = NULL)
+ {
+ if ($resetKey == NULL || $userKey == NULL)
+ redirect(base_url("login"));
+
+ $username = base64_decode($userKey);
+ if (!$this->LoginModel->resetKeyIsValid($username, $resetKey))
+ redirect(base_url('login'));
+
+ $password = $this->input->post('password');
+ $passwordRepeat = $this->input->post('passwordConfirm');
+ $notice = ["type" => false, "message" => ""];
+ if (isset($password)) {
+ if (isset($passwordRepeat)) {
+ $loginData = $this->LoginModel->getLoginData($username);
+ if (!empty($loginData)) {
+ $loginData = $loginData[0];
+ if ($this->LoginModel->checkPassword($password)) {
+ if ($password == $passwordRepeat) {
+ $this->LoginModel->changePassword($password, $loginData['original_name']);
+ $this->LoginModel->unsetResetKey($loginData['ID']);
+ $notice['message'] .= "
Dein Passwort wurde geändert! Du kannst dich nun damit einloggen
Wiederholtes Passwort falsch! Das Passwort, das du wiederholt hast, stimmt nicht mit dem eigentlichen überein.
";
+ }
+ } else {
+ $notice['message'] .= "
Zu unsicheres Passwort! Dein Passwort sollte mindest 8 Zeichen lang sein und jeweils einen Groß-, einen Kleinbuchstaben, eine Zahl und ein Sonderzeichen enthalten.
";
+ }
+ } else {
+ $notice['message'] .= "
Ungültiger Account Anscheinend versuchst du die E-Mail-Adresse eines nicht existierenden Accounts zu ändern. Sollte es sich um einen Fehler handeln, kontaktiere bitte das Website-Team!
";
+ }
+ } else {
+ $notice['message'] .= "
Wiederholtes Passwort fehlend! Bitte gib dein Passwort zur Bestätigung ein zweites Mal ein!
+ YoutubeDownloadModel->clean($title);
+
+ if (isset($url_encoded_fmt_stream_map)) {
+ /* Now get the url_encoded_fmt_stream_map, and explode on comma */
+ $my_formats_array = explode(',', $url_encoded_fmt_stream_map);
+ } else {
+ echo '
' . lang('ytdl_not_related_youtube') . ' ' . lang('ytdl_no_haftung') . ' Der Betreiber nimmt Abstand von jeglichen urheberrechtsverletzenden Handlungen, die mit dem YouTube-Downloader durchgeführt werden könnten und unterstützt diese keinesfalls.';
+ ?>
+
+
+
+ Target format found, it is '. $avail_formats[$j]['itag'] .'
+ Veröffentlichen des Posts fehlgeschlagen!
+ Du musst in deinen Account eingeloggt sein, um Posts erstellen zu können.
+
+ Bitte erstelle dir entweder
+ kostenlos einen neuen Account
+ oder
+ melde dich an.
+
+ Veröffentlichung des Posts fehlgeschlagen! Der Post, an den du deine Antwort richten willst, existiert nicht (mehr).
+ Solltest du dies für einen Fehler halten, versuche es später erneut oder kontaktiere uns.
+
Ungültiger Account Anscheinend versuchst du die E-Mail-Adresse eines nicht existierenden Accounts zu ändern. Sollte es sich um einen Fehler handeln, kontaktiere bitte das Website-Team!
Bitte gib dein Passwort ein! Das Ändern der E-Mail-Adresse ist ein tiefgreifender Eingriff in den Account. Daher benötigen wir zur Sicherheit nochmal dein Passwort.
Zu unsicheres Passwort! Dein Passwort sollte mindest 8 Zeichen lang sein und jeweils einen Groß-, einen Kleinbuchstaben, eine Zahl und ein Sonderzeichen enthalten.
Ungültiger Account Anscheinend versuchst du die E-Mail-Adresse eines nicht existierenden Accounts zu ändern. Sollte es sich um einen Fehler handeln, kontaktiere bitte das Website-Team!
+
+
+
diff --git a/application/language/de/about_lang.php b/application/language/de/about_lang.php
new file mode 100644
index 0000000..5033102
--- /dev/null
+++ b/application/language/de/about_lang.php
@@ -0,0 +1,138 @@
+designe gerne.programmiere gerne.fotografiere gerne.schneide gerne.bearbeite gerne.animiere gerne.filme gerne.schreibe gerne.';
+$lang['about_introduction'] = 'Im Internet bin ich auch als KingOfDog vertreten.';
+$lang['about_text'] = '
+ All das, was ich heute tue, fing mit einer einfachen Digital-Kamera (soweit
+ ich weiß von Olympus) an. Natürlich hatten die Fotos keine gute Qualität -
+ geschweige denn die Videos. Allerdings habe ich dadurch den unglaublichen
+ Spaß, den Fotos machen, entdeckt.
+
+
+ So richtig startete es aber eigentlich erst 2013. Denn damals habe ich
+ meinen YouTube-Kanal erstellt, der zu dem Zeitpunkt noch „yourobonatic"
+ hieß. Warum dieser Name? Wegen dem Content, den ich auf diesem Kanal
+ hochgeladen habe. Das erste Video war nämlich ein Video zu einem kleinen
+ Programm, das ich für den Lego Mindstorms NXT 2.0 erstellt habe. Jedoch
+ blieb dieser Name nicht lange, da ich bald angefangen habe, Minecraft
+ stattdessen hochzuladen. Und so änderte sich mein Name zu
+ DerMinecrafterMarcel, beziehungsweise MinecrafterMarcel nach einer weiteren
+ Umbenennung in 2014.
+
+
+ Nachdem meine ersten Videos noch mit Windows Movie Maker „geschnitten"
+ wurden, habe ich bald (ungefähr spätes 2014) angefangen Sony Vegas Pro zu
+ nutzen. Die Thumbnails der Videos waren dabei noch ein Werk von Gimp.
+
+
+ Im nächsten Jahr habe ich mich dann an noch professionellere Software ran
+ gewagt. Damit ist die gesamte Adobe Creative Cloud gemeint: Photoshop für
+ die Thumbnails, Premiere für den Schnitt. Die restlichen Programme hatten
+ noch eine untergeordnetere Rolle. Jedenfalls habe ich mir durch die
+ Benutzung dieser Programme beigebracht, zu Designen und Videos zu
+ schneiden.
+
+
+ Ungefähr zu dieser Zeit im Jahre 2015 fing ich auch an, Programmieren zu
+ lernen. Ich hatte zwar früher schon ein wenig mit Python rumgewerkelt,
+ allerdings habe ich jetzt auch mit Java begonnen.
+
+
+ 2015 war übrigens das Jahr mit den meisten Video-Uploads. Diese
+ beinhalteten neben Minecraft auch Clash of Clans, Happy Wheels und mehr,
+ was alles Serien waren, die ich bereits Anfang 2014 gestartet habe.
+
+
+ 2016 hingegen war weitaus leerer. Irgendwie war das, die Zeit der
+ Selbstfindung, in der ich nicht so ganz wusste, was ich hochladen wollte.
+ Zum einen hatte ich keine Lust mehr, weiter Minecraft und anderen
+ Billig-Content zu veröffentlichen, aber ich war auch ideenlos, was
+ qualitativeren Inhalt anging. Erst, als sich das Jahr zum Ende neigte,
+ kamen wieder mehr Videos. Das ganze Jahr über arbeitete ich allerdings an
+ einem gewissen Riesen-Projekt: einer Webseite zu meinem Kanal. Und heute -
+ könnt ihr sie sehen! Unzählige Stunden sind hier reingeflossen.
+
+
+ Und dieses Jahr, 2017, habe ich dann letztendlich mich darauf
+ spezialisiert, Wissens-Videos mit Fokus auf Computer und Programmieren zu
+ produzieren. Nebenbei habe ich mir selbst die Verwendung von AfterEffects
+ angefangen beizubringen und gestartet, deutlich mehr mit Adobe Illustrator
+ zu arbeiten. Ach ja, und natürlich diese Seite hier veröffentlicht.
+
+
+ Und damit bleibt nur noch abzuwarten, was die Zukunft so bringen wird.
+
';
+$lang['about_events_title'] = 'Wichtige Ereignisse';
+$lang['about_events'] = [
+ [
+ "color" => "red",
+ "icon" => "fab fa-youtube",
+ "name" => "Erstellung meines YouTube-Kanals",
+ "date" => "16. September 2013"
+ ],
+ [
+ "color" => "blue",
+ "icon" => "fab fa-twitter",
+ "name" => "Beitritt bei Twitter",
+ "date" => "18. September 2013"
+ ],
+ [
+ "color" => "grey",
+ "icon" => "fa fa-upload",
+ "name" => "Erster Videoupload",
+ "date" => "6. Oktober 2013"
+ ],
+ [
+ "color" => "green",
+ "icon" => "fa fa-gamepad",
+ "name" => "Erstes Minecraft-Video",
+ "date" => "7. Oktober 2013"
+ ],
+ [
+ "color" => "yellow",
+ "icon" => "fa fa-mobile",
+ "name" => "Erstes Clash of Clans-Video",
+ "date" => "12. Februar 2014"
+ ],
+ [
+ "color" => "blue",
+ "icon" => "fa fa-trophy",
+ "name" => "500 Abonnenten auf YouTube",
+ "date" => "10. Mai 2015"
+ ],
+ [
+ "color" => "red",
+ "icon" => "fab fa-twitch",
+ "name" => "Erstellung meines Twitch-Kanals",
+ "date" => "28. Juli 2015"
+ ],
+ [
+ "color" => "grey",
+ "icon" => "fa fa-trophy",
+ "name" => "25.000 Views auf YouTube",
+ "date" => "25. November 2015"
+ ],
+ [
+ "color" => "yellow",
+ "icon" => "fa fa-pencil-alt",
+ "name" => "5.000 Tweets verfasst",
+ "date" => "15. Juni 2017"
+ ],
+ [
+ "color" => "blue",
+ "icon" => "fa fa-trophy",
+ "name" => "50.000 Views auf YouTube",
+ "date" => "1. Dezember 2017"
+ ],
+ [
+ "color" => "green",
+ "icon" => "fa fa-columns",
+ "name" => "Erste Veröffentlichung der Website",
+ "date" => "16. September 2017"
+ ]
+];
diff --git a/application/language/de/blog_lang.php b/application/language/de/blog_lang.php
new file mode 100644
index 0000000..0e91db9
--- /dev/null
+++ b/application/language/de/blog_lang.php
@@ -0,0 +1,43 @@
+1€ Spende reicht für \'ne Tüte Süßigkeiten für den Entwickler';
+$lang['donate_level2'] = 'Eine 2€ Spende ermöglicht weiterhin die Entwicklung der Webseite.';
+$lang['donate_level3'] = 'Eine 5€ Spende kann 2GB mehr RAM für den Server kaufen!';
+$lang['donate_level4'] = 'Eine 10€ Spende würde den Mindestlohn für 1 Stunde Arbeit eines Entwicklers decken.';
+$lang['donate_level5'] = 'Eine 15€ Spende könnte 150GB mehr Speicherplatz für eure Bilder, Texte, Videos und co. ermöglichen.';
+$lang['donate_level6'] = 'Eine 20€ Spende wäre die Grundlage für den Kauf eines weiteren Servers.';
+$lang['donate_level7'] = 'Eine 25€ Spende würde es uns ermöglichen verschiedene wichtige Lizenzen zu erwerben.';
+$lang['donate_level8'] = 'Eine 30€ Spende reicht für eine PlayStore App-Veröffentlichung dieser Webseite.';
+$lang['donate_level9'] = 'Eine 50€ Spende würde direkt in den Kauf eines weiteren Servers gesteckt werden.';
+$lang['donate_level10'] = 'Eine 100€ Spende würde für 1 Monat lang für keine Verluste sorgen!';
+$lang['donate_btn'] = "Spenden";
\ No newline at end of file
diff --git a/application/language/de/email_lang.php b/application/language/de/email_lang.php
new file mode 100644
index 0000000..96952d3
--- /dev/null
+++ b/application/language/de/email_lang.php
@@ -0,0 +1,30 @@
+Solltest du diese Seite benutzen und gerne weiter benutzen können, deaktiviere bitte deinen AdBlocker (falls vorhanden) auf dieser Seite, damit wir uns finanzieren können!';
+$lang['faq_section1_q4'] = 'Gibt es ein Team hinter der Webseite? Und wenn ja, wer gehört dazu?';
+$lang['faq_section1_a4'] = 'Jein. Ein kleines Team, bestehend aus Moderatoren und Admins, welche helfen die Seite "sauber" zu halten, gibt es schon. Die meisten technischen Fehler und Neuerungen werden aber von dem Webseiten-Besitzer selbst entwickelt, designed und programmiert.';
+$lang['faq_section1_q5'] = 'In welchen Sprachen gibt es diese Webseite?';
+$lang['faq_section1_a5'] = 'Offensichtlich ist diese Seite in Deutsch verfügbar. Außerdem wurde sie auf Englisch übersetzt und teilweise auf Französisch. Alle derzeit verfügbaren Sprachen sind am unteren Seitenende zu finden. Jedoch sind die Übersetzungen derzeit noch nicht 100%-ig perfekt, daher wird das Team diese fortlaufend verbessern. Auch die Nutzer, also genau du, können mithelfen bei der Übersetzung der Seite in vielleicht sogar noch andere Sprachen!';
+$lang['faq_section2_title'] = 'Wer ist KingOfDog? Muss man den kennen?';
+$lang['faq_section2_q1'] = 'Wer ist KingOfDog?';
+$lang['faq_section2_a1'] = 'KingOfDog ist (Hobby-) YouTuber, Designer, Programmierer, Entwickler, Fotograf, Cutter, Animator, Konzeptor und vieles mehr - und ist erst 15 Jahre alt. Diese Webseite hat er als kleines Hobby-Projekt neben der Schule gemacht. Genauso wie seine YouTube-Kanäle, die Tools auf dieser Webseite, alle Projekte aus dem Portfolio und so weiter und so fort. Außerdem schreibt er auch einen Großteil der Posts auf dem Blog und geht neben all dem noch zur Schule. "WTF" denkt ihr euch? Ich mir manchmal auch. Ich bin echt nicht normal. Aber ich fühle mich unwohl so sehr mit all dem anzugeben. Solltet ihr also wirklich noch mehr wissen wollen, könnt ihr auf der "About"-Seite nachgucken (auch wenn ich das nicht verstehen kann!).';
+$lang['faq_section2_q2'] = 'Was macht der Typ?';
+$lang['faq_section2_a2'] = 'Kurz gesagt: YouTube, Design, Software, Fotografie, Animation, Film und Skripting. Für mehr könnt ihr euch die "About"-Seite durchlesen. Ach ja, und Schule. Mathe, Deutsch, Englisch, Französisch und so. Einige seiner Klassenkameraden sagen, er wäre ganz gut. Er selbst sieht das nicht ganz so. (Seine Noten sprechen für Ersteres)';
+$lang['faq_section2_q3'] = 'Woher kennt man den überhaupt?';
+$lang['faq_section2_a3'] = 'Wahrscheinlich kennt man den Typen eher nicht, aber vielleicht gehört ihr zu den über 600 Abonnenten auf seinem YouTube-Kanal. Oder vielleicht gehört ihr zu den ca. 100 Leuten, die seinem Twitter-Profil folgen!';
+$lang['faq_section2_q4'] = 'Warum hat er diese Seite gemacht?';
+$lang['faq_section2_a4'] = 'Vor allem aus Langeweile. An zweiter Stelle folgt wahrscheinlich "Fähigkeiten im Webdesign trainieren und PHP lernen". Danach kommt nochmal Langeweile und an letzter Stelle Idiotismus. Nein, mal ernsthaft: Man bringt sich einfach am besten eine Programmiersprache oder ähnliches bei, indem man etwas damit programmiert bzw. entwickelt. Und das ist auch der Grund für diese Webseite! Und vielleicht auch noch ein wenig Zurschaustellung der eigenen Leistungen!';
+$lang['faq_section2_q5'] = 'Wo hat er Programmieren und Designen gelernt?';
+$lang['faq_section2_a5'] = 'Was heißt hier "wo"? Programmieren bringt man sich am besten, genauso wie Designen, selbst bei und zwar durch "Learning by Doing". Man lernt am besten eine Programmiersprache, wenn man einfach anfängt etwas in dieser Sprache zu programmieren und gleichzeitig nachguckt, wie man etwas bestimmtes macht, was man gerade zum Coden braucht. Beim Designen ist das ähnlich. Sobald du die Grundbedienung deines verwendeten Programmes raushast, designest du einfach, als wäre dein Leben in Gefahr. Dann guckst du dir hier das eine Video dazu an, liest dir da den Blog dazu durch und das wichtigste: designest diese Ding nach. So lernt man einfach am besten - egal wobei!';
+$lang['faq_section3_title'] = 'Accounts auf KingOfDogTV.de';
+$lang['faq_section3_q1'] = 'Was bringt mir ein Account?';
+$lang['faq_section3_a1'] = 'Wenn du dir ein Account auf dieser Seite erstellst, bekommst du die Möglichkeit Kommentare unter Blog-Posts zu hinterlassen und selbige zu bewerten. Außerdem erhält jeder Nutzer eine Profile Page mit verschiedenen Inhalten. In Zukunft wird diese Profile Page auch noch ausgebaut und mit mehr Funktionen versehen. Manchmal erhälst du als Nutzer auch Ankündigungen und bekommst die exklusive Möglichkeit, an Gewinnspielen teilzunehmen!';
+$lang['faq_section3_q2'] = 'Kostet das was?';
+$lang['faq_section3_a2'] = 'Ein Account auf dieser Webseite ist völlig kostenlos. Solltest du das Projekt dennoch unterstützen wollen, kannst du gerne spenden und somit für das Fortbestehen dieser Webseite sorgen. Durch eine Spende, egal welchen Betrages, entfernst du zudem alle Werbebanner auf der Seite!';
+$lang['faq_section3_q3'] = 'Und wieso sollte ich mir einen Account erstellen?';
+$lang['faq_section3_a3'] = 'Vor allem, wegen den zuvor genannten Gründen. Aber gleichzeitig zeigst du mir auch, dass du interessiert bist an meinem Content und unterstützt mich so mental. Und als kleine Gegenleistung erhälst du als Account-Besitzer die exklusive Möglichkeit, gegenüber Nicht-Account-Besitzern, an Gewinnspielen teilnehmen zu können.';
+$lang['faq_section3_q4'] = 'Ist das mit Wordpress gemacht?';
+$lang['faq_section3_a4'] = 'Nein! Das User-System, sowie die komplette restliche Webseite auch wurde "per Hand" von KingOfDog programmiert und nutzt keine Drittanbietersoftware, wie Wordpress, Typo3 oder ähnliches zur Verwaltung von Daten und Bereitstellung eines Registrierungssystems. Weitere Informationen findest du im Bereich "Technisches".';
+$lang['faq_section4_title'] = 'Datenschutz und co.';
+$lang['faq_section4_q1'] = 'Sind meine Daten hier sicher?';
+$lang['faq_section4_a1'] = 'Die Betreiber dieser Webseite sehen Privatsphäre als ein Menschenrecht an, welches grundsätzlich und bedingungslos für alle Bewohner dieses Planeten gilt - unabhängig von Einkommen, Alter, Herkunft oder politischen Ansichten. Daher werden keinerlei privaten Daten ohne deine Zustimmung gespeichert. Wir haben leider jedoch keinen Einfluss oder gar Kontrolle darauf, was Drittanbieter für Werbung an Daten speichern. Daher versuchen wir möglichst wenige dieser Dienste in Anspruch zu nehmen. Für Nutzerstatistiken nutzen wir beispielsweise aus Datenschutzgründen keine externe Dienste wie Google Analytics, sondern das OpenSource-verfügbare Analysetool namens Piwik. Die Daten werden anonymisiert auf unseren Servern gespeichert und es ist nicht möglich Daten zurückzuverfolgen, da IP-Adressen nicht einlesbar, sondern "geschwärzt", gespeichert werden. Sollten noch Fragen aufkommen zu diesem sensiblen Thema, steht das Kontakt-Formular dazu bereit.';
+$lang['faq_section4_q2'] = 'Werden meine Daten für Werbezwecke genutzt?';
+$lang['faq_section4_a2'] = 'Die Webseite muss sich irgendwie finanzieren. Die Serverkosten müssen gedeckt werden und auch die Erweiterung des Serverplatzes kostet Geld. Da diese Seite grundsätzlich kostenlos sein soll, müssen wir Werbung schalten. Dazu wird der Dienst Google AdSense, sowie teilweise auch Amazon AdSystem oder Affiliate-Dienste von anderen Seiten genutzt. Die Anbieter sammeln größtenteils Nutzerdaten, um maßgeschneiderte Werbung zu senden. Die Webseitenbetreiber und der Provider erhalten keinerlei Zugriff auf diese Nutzerdaten. Weitere Informationen zu diesem Thema finden sich in der Datenschutzerklärung und in der Datenschutzerklärung von Google AdSense.';
+$lang['faq_section4_q3'] = 'Gibt es hier Kekse?';
+$lang['faq_section4_a3'] = 'Mit "Keksen" sind natürlich Cookies gemeint. Oft wird vor Cookies gewarnt. Auch diese Seite nutzt Cookies, um dein Nutzererlebnis zu verbessern. Beispielsweise wird so die Möglichkeit geboten, deine Logindaten (natürlich verschlüsselt) abzuspeichern, so dass du nicht bei jedem Webseitenbesuch dich neu anmelden musst. Wir nutzen Cookies nur zur komfortableren Gestaltung des Nutzererlebnisses und nicht um schädliche Software auf den Rechner zu übertragen. Weiteres dazu in der Datenschutzerklärung!';
+$lang['faq_section4_q4'] = 'Wer garantiert mir meine Privatsphäre?';
+$lang['faq_section4_a4'] = 'Zu Zeiten von NSA und Datenkraken wie Google ist eine vollständige Garantie von Datenschutz und Privatsphäre bedauerlicherweise nicht mehr möglich. Wir versuchen möglichst wenige Drittanbieter-Software zu nutzen. Analyse-Daten werden nur auf unseren Servern gesammelt und gespeichert und nicht weitergegeben. Wir versuchen eine offene und transparente Datenschutz-Politik zu führen, da den Betreibern Privatsphäre ebenfalls ziemlich wichtig ist. Sollten noch offene Fragen verbleiben, besteht die Möglichkeit Kontakt mit uns über das Kontakt-Formular aufzunehmen!';
+$lang['faq_section4_q5'] = 'Was ist mit JavaScript?';
+$lang['faq_section4_a5'] = 'Wir nutzen JavaScript, um eine einfachere und intuitivere Bedienung der Webseite zu ermöglichen. Manche Dinge auf dieser Webseite wären ohne die Verwendung von einer Programmiersprache wie JavaScript nicht möglich. Wir bemühen uns die Seite so sicher wie möglich zu halten und keinen Dritten Zugriff auf unsere Server zu gewähren. Alle Skripte sind sicher und laden auf keinen Fall Schadsoftware oder unerwünschte Daten auf Ihren PC.';
+$lang['faq_section5_title'] = 'Blog';
+$lang['faq_section5_q1'] = 'Was gibt es auf dem Blog?';
+$lang['faq_section5_a1'] = 'Auf dem Blog gibt es Posts zu verschiedenen Themen, vor allem aber zu Programmierung und Design. Außerdem werden auch Neuigkeiten zu den YouTube-Kanälen "KingOfDog" und "ZeybeFX" und zu dieser Webseite an dich weitergegeben. Zudem gibt es einige Posts zu aktuellen politischen, wirtschaftlichen und gesellschaftlichen Themen zu denen ich mir eine Meinung gebildet habe, welche ich an euch weitergeben will. Von Zeit zu Zeit kommen auch Posts zu technischen Themen, wie Computern, Smartphones etc. Außerdem setze ich mich für Netzneutralität, besseres Internet in allen Regionen der Welt, Anti-Copyright (Creative Commons) und weitere ähnliche Themen ein! Auf dem Blog gibt es beispielsweise auch wichtige Tools und Ressourcen für Webdesigner, Informatiker, UX-Designer und so weiter.';
+$lang['faq_section5_q2'] = 'Interessiert mich das?';
+$lang['faq_section5_a2'] = 'Wenn du interessiert bist an Programmierung, Technik, Fortschritt, Entwicklung und Design, solltest du auf jeden Fall auf dem Blog vorbei schauen. Auch, wenn du gerne Meinungen, Argumentationen und Stellungnahmen zu bestimmten, aktuellen Themen liest, solltest du vielleicht mal ein Blick auf den Blog werfen.';
+$lang['faq_section5_q3'] = 'Kostet das was?';
+$lang['faq_section5_a3'] = 'Der Blog ist natürlich, wie der Rest der Webseite, völlig kostenlos und für jeden frei zugänglich. Ich möchte mit zu einem freien Internet beitragen, in dem offener Meinungsaustausch stattfindet und keine Idee zurückgehalten wird, weil irgendjemand oder irgendetwas etwas dagegen hat.';
+$lang['faq_section5_q4'] = 'Wie häufig kommen da neue Posts?';
+$lang['faq_section5_a4'] = 'Das ist sehr unterschiedlich. Es gibt Zeiten, in denen kommen täglich mehrere Artikel online, dafür gibt es manchmal auch Zeiten, da herrscht ziemliche Flaute auf dem Blog. Es sind aber natürlich jederzeit alle vorherigen und jetztigen Posts zugänglich für jeden.';
+$lang['faq_section5_q5'] = 'Auf welcher Sprache ist das? Englisch?';
+$lang['faq_section5_a5'] = 'Nicht direkt. Die überwiegende Mehrheit der Posts ist auf Deutsch verfasst. Jedoch sind viele Artikel auch von einem Teammitglied ins Englische übersetzt, um mehr potentielle Leser zu erreichen, die das Thema eventuell interessieren könnte.';
+$lang['faq_section6_title'] = 'Technisches';
+$lang['faq_section6_q1'] = 'Wie wurde die Seite programmiert?';
+$lang['faq_section6_a1'] = 'Natürlich mit HTML und CSS. Auch wenn dieser Teil nicht als Programmierung zählt, denn beides ist eher als sogenannte Design-Sprache anzusehen. Außerdem wurde viel mit JavaScript und PHP gemacht. Das gesamte Backend besteht zu sehr großen Teilen aus PHP-Code.';
+$lang['faq_section6_q2'] = 'Wurde dafür Drittanbieter-Software/Frameworks wie Wordpress genutzt?';
+$lang['faq_section6_a2'] = 'Teilweise. Diese Seite nutzt kein CMS (Content Management System) wie Wordpress, Typo3 oder Joomla, jedoch wurde ein PHP-, ein CSS- und ein JavaScript-Framework genutzt. Diese Frameworks sind CodeIgniter, Bootstrap und jQuery. Mehr Infos zu diesen Frameworks findet ihr durch eine Suchmaschinen-Anfrage oder auf der jeweiligen Internet-Seite!';
+$lang['faq_section6_q3'] = 'Kannst du mir den Quellcode schicken?';
+$lang['faq_section6_a3'] = 'Nein! Erstens: warum sollte ich? Und zweitens: ich möchte nicht riskieren, die Sicherheit der Nutzerdaten und Passwörter zu vernachlässigen. Diese sind zwar verschlüsselt gespeichert und mit einem "Salt" versehen, jedoch würde die Entdeckung dieses Salzes einem potenziellen Angreifer es einfacher machen Passwörter zu knacken und genau das möchte ich nicht riskieren! Das ist auch der Grund, warum diese Webseite nicht auf GitHub oder ähnlichen Plattformen unter der von mir geliebten Creative Commons-Lizenz verfügbar ist, beziehungsweise, warum der Quellcode nicht einsehbar ist.';
+$lang['faq_section6_q4'] = 'Bekomme ich Admin-Zugriff?';
+$lang['faq_section6_a4'] = 'Das ist jetzt nicht unbedingt eine technische Frage, aber trotzdem: nein. Ich kenne dich nicht und weiß nicht, ob ich dir vertrauen kann. Außerdem gebe ich grundsätzlich keinem Fremden einen Zugriff auf das Kontrollsystem und die Statistiken dieser Webseite!';
+$lang['faq_section6_q5'] = 'Auf was für Servern wird die Webseite gehostet?';
+$lang['faq_section6_a5'] = 'Diese Seite wird auf einem V-Server gehostet.';
\ No newline at end of file
diff --git a/application/language/de/footer_lang.php b/application/language/de/footer_lang.php
new file mode 100644
index 0000000..0fce38d
--- /dev/null
+++ b/application/language/de/footer_lang.php
@@ -0,0 +1,14 @@
+deine Hilfe angewiesen! Sollte dir ein Fehler auf dieser Seite aufgefallen sein, solltest du eine Idee für die Verbesserung dieser Seite haben oder solltest du etwas zu Kritisieren haben, nutze dieses Feld, um uns dies zu senden. Wir freuen uns über jedes Feedback und versuchen so immer weiter, diese Seite zu verbessern. Vielen Dank im Vorraus!';
+ $lang['header_feedback_msg'] = 'Dein Feedback';
+ $lang['header_feedback_msg_placeholder'] = 'Bitte gib dein Feedback zu dieser Seite ein';
+ $lang['header_feedback_anonymous'] = 'Anonym senden?';
+ $lang['header_feedback_anonymous_info'] = 'Anonymes Feedback enthält keinerlei Daten über den Nutzer, wie IP, E-Mail-Adresse, Nutzer-ID oder ähnliches. Nicht anonymisiertes Feedback hilft uns, besser Nutzergruppen und deren Bedürfnisse zu analysieren und vor allem mit dem Feedback-Sender in Kontakt zu bleiben, sollten noch weitere Fragen aufkommen. In allen Fällen gehen wir mit deinen Daten sensibel um und geben diese keinesfalls an Drittanbieter weiter!';
+
+ $lang['header_share'] = 'Teilen';
+ $lang['header_share_title'] = 'Seite teilen';
+
+ $lang['header_post'] = 'Post';
+ $lang['header_post_title'] = 'Post verfassen';
+ $lang['header_post_content'] = 'Inhalt';
+ $lang['header_post_notice'] = 'Es wird an einer Funktion zum Uploaden von Fotos, Videos und anderen Medien gearbeitet. In hoffentlich naher Zukunft wirst du auch die Möglichkeit haben, diese zu deinen Posts hinzuzufügen!';
+ $lang['header_post_publish'] = 'Veröffentlichen';
diff --git a/application/language/de/home_lang.php b/application/language/de/home_lang.php
new file mode 100644
index 0000000..b3760dc
--- /dev/null
+++ b/application/language/de/home_lang.php
@@ -0,0 +1,37 @@
+Bedenken Sie, einen Drücker mit dem linken Bedienfeld Ihres Maus-Eingabegerätes für Ihren Person auf das rechts abgedruckte Bild, damit Sie zu der wiedergebenden Internetseite des aktuellsten DuRöhren-Films von meiner Persönlichkeit gelangen könnten, wenn Sie dies wöllteren!';
+$lang['home_slider_video_btn'] = 'Jetzt ansehen';
+
+$lang['home_channels_title'] = 'YouTube-Kanäle';
+$lang['home_kingofdog_des'] = 'KingOfDog ist mein erster YouTube-Kanal und besteht mittlerweile schon seit über 4 Jahren. Hier gibt es Gaming, Fakten, Informationen, News, Meinungen, Reviews, Vlogs und vieles mehr. Über 600 Abonnenten können sich hier ca. 350 Videos ansehen.';
+$lang['home_zeybefx_des'] = 'Auf ZeybeFX gibt es seit über anderthalb Jahren Speedarts, Design-Tutorials, Giveaways und alle möglichen anderen Videos, die mit Design zu tun haben. Der Kanal ist englischsprachig und ist derzeit noch etwas inaktiv.';
+$lang['home_zeybeofficial_des'] = 'Der neueste Kanal von mir existiert erst seit Anfang 2017, ist dafür jedoch sehr aktiv. Täglich um 15 Uhr gibt es ein neues Video mit copyright-freier Musik, die jeder für seine eigenen Videos, Spiele, Webseiten, Podcasts oder ähnliches nutzen kann. Teilweise gibt es auch eigene Musik, die ich selbst erstellt habe.';
+$lang['home_kingofdogint_des'] = 'KingOfDog International ist die internationale bzw. englische Version meines Hauptkanals KingOfDog. Hier gibt es übersetzte Videos vom deutschen Kanal, um mehr Menschen erreichen zu können.';
+
+$lang['home_active_users'] = 'Derzeit aktive Nutzer';
+$lang['home_newest_users'] = 'Neueste Nutzer';
+$lang['home_newest_posts'] = 'Neuste Posts';
+$lang['home_notice'] = 'Diese Funktion wird in Zukunft folgen. Bitte schaue später hier vorbei!';
+
+$lang['home_error_twitter'] = 'Keine Tweets gefunden';
+$lang['home_error_instagram'] = 'Keine Bilder gefunden';
+$lang['home_error_youtube'] = 'Keine Videos gefunden';
+$lang['home_social_all'] = 'Alle';
+$lang['home_date'] = 'd.m.Y \u\m H:i \U\h\r';
+$lang['home_posts'] = 'Letzte Posts';
+
+$lang['home_ads_title'] = 'Wieso zeigen wir Werbung?';
+$lang['home_ads_description'] = 'Das Angebot dieser Seite ist komplett kostenlos und das soll auch so bleiben. Die Werbeeinnahmen werden ausschließlich für die Finanzierung und Erweiterung des Servers genutzt. So können wir auch weiterhin alle Funktionen kostenlos anbieten! Wir verfolgen jedoch das Motto "Höchstens eine Werbung pro Seite". Das heißt jede Seite von KingOfDogTV.de enthält maximal einen einzigen Werbebanner. So wird die Werbung nicht zu nervig, die Seite braucht nicht allzu viel länger zum Laden und trotzdem können die Kosten für den Webserver (hoffentlich) gedeckt werden.';
diff --git a/application/language/de/imglib_lang.php b/application/language/de/imglib_lang.php
new file mode 100644
index 0000000..98b3292
--- /dev/null
+++ b/application/language/de/imglib_lang.php
@@ -0,0 +1,28 @@
+
+
+
+ 403 Forbidden
+
+
+
+
Directory access is forbidden.
+
+
+
diff --git a/application/language/de/language_names_lang.php b/application/language/de/language_names_lang.php
new file mode 100644
index 0000000..0b2d150
--- /dev/null
+++ b/application/language/de/language_names_lang.php
@@ -0,0 +1,144 @@
+Erstelle dir kostenlos einen Account oder melde dich an.';
diff --git a/application/language/de/profiler_lang.php b/application/language/de/profiler_lang.php
new file mode 100644
index 0000000..71cc283
--- /dev/null
+++ b/application/language/de/profiler_lang.php
@@ -0,0 +1,32 @@
+Cäsar Veschlüsselung ver- und entschlüsseln. Dabei wird jeder Buchstabe um die angegebene Zahl im Alphabet verschoben.';
+$lang['encrypter_unencrypted'] = 'Unverschlüsselter Text';
+$lang['encrypter_encrypted'] = 'Verschlüsselter Text';
+$lang['encrypter_input_plc'] = 'Gebe einen unverschlüsselten Text ein, um diesen zu verschlüsseln!';
+$lang['encrypter_decrypt_plc'] = 'Gebe einen verschlüsselten Text ein, um diesen zu entziffern!';
+$lang['encrypter_encrypt'] = 'Verschlüsseln';
+$lang['encrypter_decrypt'] = 'Entschlüsseln';
+
+$lang['adfgvx_title'] = 'ADFGVX-Verschlüsselung';
+$lang['adfgvx_description'] = 'Die im Ersten Weltkrieg von den Deutschen verwendete ADFGVX-Verschlüsselung';
+$lang['adfgvx_key1'] = 'Erstes Schlüsselwort';
+$lang['adfgvx_key1_plc'] = 'Bitte gib ein 1. Schlüsselwort ein';
+$lang['adfgvx_key2'] = 'Zweites Schlüsselwort';
+$lang['adfgvx_key2_plc'] = 'Bitte gib ein 2. Schlüsselwort ein';
+
+$lang['atbash_title'] = 'Atbash-Verschlüsselung';
+$lang['atbash_description'] = 'Die Atbash-Verschlüsselung ist eine sehr grundlegende Verschlüsselungsmethode, bei der lediglich das Alphabet invertiert wird';
+
+$lang['gartenzaun_title'] = 'Gartenzaun-Verschlüsselung';
+$lang['gartenzaun_description'] = 'Mithilfe einer Transposition werden die Buchstaben des Klartextes verschoben';
+$lang['gartenzaun_keyword'] = 'Schlüsselwort';
+$lang['gartenzaun_keyword_plc'] = 'Bitte gib ein Schlüsselwort ein';
+
+$lang['caesar_title'] = 'Cäsar-Verschlüsselung';
+$lang['caesar_description'] = 'Mit meinem Cäsar-Encrypter kannst du Texte nach der Cäsar Veschlüsselung ver- und entschlüsseln. Dabei wird jeder Buchstabe um die angegebene Zahl im Alphabet verschoben.';
+$lang['caesar_shiftkey'] = 'Shift-Key';
+$lang['caesar_shifthelp'] = 'Anzahl der im Alphabet verschobenen Buchstaben';
+
+// URL-Encoder
+$lang['url_site_title'] = 'URL-Encoder';
+$lang['url_title'] = 'URL-Encoder';
+$lang['url_description'] = 'Kodiere beziehungsweise dekodiere ganz einfach alle möglichen URLs oder Sätze!';
+$lang['url_input'] = 'Eingabe';
+$lang['url_input2'] = 'Eingabe des unkodierten Textes';
+$lang['url_input3'] = 'Eingabe des kodierten Textes';
+$lang['url_encode'] = 'Kodieren';
+$lang['url_decode'] = 'Dekodieren';
+$lang['url_output'] = 'Ausgabe';
+$lang['url_output2'] = 'Ausgabe des kodierten Textes';
+$lang['url_output3'] = 'Ausgabe des dekodierten Textes';
+
+// Base64-Encoder
+$lang['base64_site_title'] = 'Base64-Encoder';
+$lang['base64_title'] = 'Base64-Encoder';
+$lang['base64_description'] = 'Kodiere beziehungsweise dekodiere ganz einfach alle Sätze, Botschaften und Texte mit der Base64-Kodierung!';
+$lang['base64_input'] = 'Eingabe';
+$lang['base64_input2'] = 'Eingabe des unkodierten Textes';
+$lang['base64_input3'] = 'Eingabe des kodierten Textes';
+$lang['base64_encode'] = 'Kodieren';
+$lang['base64_decode'] = 'Dekodieren';
+$lang['base64_output'] = 'Ausgabe';
+$lang['base64_output2'] = 'Ausgabe des kodierten Textes';
+$lang['base64_output3'] = 'Ausgabe des dekodierten Textes';
+
+// Passwort-Generator
+$lang['pass_site_title'] = 'Passwort-Generator';
+$lang['pass_title'] = 'Passwort-Generator';
+$lang['pass_description'] = 'Mit meinem Passwort-Generator kannst du ein zufälliges Passwort ganz nach deinen Belieben erstellen.';
+$lang['pass_error'] = 'Fehler bei der Eingabe';
+$lang['pass_generate'] = 'Generieren';
+$lang['pass_copy'] = 'Kopieren';
+$lang['pass_length'] = 'Passwortlänge';
+$lang['pass_length_help'] = 'Wie lang soll das Passwort sein?';
+$lang['pass_components'] = 'Komponenten';
+$lang['pass_components_upper'] = 'Großbuchstaben';
+$lang['pass_components_lower'] = 'Kleinbuchstaben';
+$lang['pass_components_special'] = 'Sonderzeichen';
+$lang['pass_components_numbers'] = 'Zahlen';
+$lang['pass_tipps_title'] = 'Tipps für ein sicheres Passwort';
+$lang['pass_tipps1'] = 'Das Passwort sollte mindestens aus 10 Zeichen bestehen. Es gilt: Je länger, desto sicherer!';
+$lang['pass_tipps2'] = 'Jedoch macht Länge alleine ein Passwort auch nicht sicher, daher sollte das Passwort möglichst eine Mischung aus Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen sein. (z.B. 2Hundesindtoll!)';
+$lang['pass_tipps3'] = 'Dein Passwort sollte keine persönlichen Informationen, die mit dir in Verbindung gebracht werden könnten, enthalten. (z.B. Name des Haustiers, Wohnort, etc.)';
+$lang['pass_tipps4'] = 'Es sollten keine häufig verwendeten Wörter oder Buchstabenketten (z.B. Test, QWERTZ, ABC, 1234, Passwort, etc.) in dem Passwort vorhanden sein.';
+$lang['pass_tipps5_title'] = 'Empfehlung:';
+$lang['pass_tipps5'] = 'Denke dir einen Satz aus und nehme von jedem Wort nur den Anfangsbuchstaben. Daraus entsteht ein sehr sicheres Passwort. Beispiel: Jeden Samstag um 18:00 Uhr kommt 100%-ig ein neues Video online. ==> JSu18:00Uk100%-igenVo.';
+$lang['pass_end'] = 'Viel Erfolg!';
+
+// Nickname-Generator
+$lang['nick_site_title'] = 'Nickname-Generator';
+$lang['nick_title'] = 'Nickname-Generator';
+$lang['nick_description'] = 'Dieser Nickname-Generator bietet';
+$lang['nick_description2'] = 'verschiedene Möglichkeiten - da ist ganz bestimmt auch was für dich dabei!';
+$lang['nick_generate'] = 'Generieren';
+$lang['nick_copy'] = 'Kopieren';
+$lang['nick_beginning'] = 'Beginn des Nicknames';
+$lang['nick_ending'] = 'Ende des Nicknames';
+$lang['nick_history'] = 'Verlauf';
+
+// Minecraft Player-Tools
+$lang['players_site_title'] = 'Minecraft Spieler-Tools';
+$lang['players_title'] = 'Minecraft Spieler-Tools';
+$lang['players_description'] = 'Finde Spieler-UUID und Server-Stats heraus & downloade verschiedene Skins, Avatare und Renders - alles nur per Spielername!';
+$lang['player_name'] = 'Minecraft-Name';
+$lang['players_search'] = 'Los';
+$lang['player_skin'] = 'Download Skin';
+$lang['player_skin_render'] = 'Download Skin-Render';
+$lang['player_head_render'] = 'Download Kopf-Render';
+$lang['player_avatar'] = 'Avatar-Downloads';
+$lang['player_history_name'] = 'Name';
+$lang['player_history_change'] = 'Änderungsdatum';
+$lang['player_original_name'] = 'Originalname';
+$lang['player_on_server'] = 'auf:';
+
+// Minecraft Server-Tools
+$lang['servers_site_title'] = 'Minecraft Server-Tools';
+$lang['servers_title'] = 'Minecraft Server-Tools';
+$lang['servers_description'] = 'Erfahre sofort die Spieleranzahl, die Minecraft-Version, den Ping und vieles mehr - nur über eine Server-IP!';
+$lang['servers_ip'] = 'Server-IP';
+$lang['servers_search'] = 'Los';
+$lang['servers_error'] = 'Fehler';
+$lang['servers_error_ip'] = 'Fehlerhafte IP';
+$lang['servers_player'] = 'Spieler';
+$lang['servers_version'] = 'Version';
+$lang['servers_ping'] = 'Ping';
+
+// Twitch Tools
+$lang['twitch_site_title'] = 'Twitch-Tools';
+$lang['twitch_title'] = 'Twitch-Tools';
+$lang['twitch_description'] = 'Gebe einen Twitch-Channel-Namen ein und erhalte verschiedene Statistiken und Informationen über diesen Kanal!';
+$lang['twitch_channel'] = 'Twitch-Channel';
+$lang['twitch_search'] = 'Suchen';
+$lang['twitch_name'] = 'Name';
+$lang['twitch_id'] = 'Account-ID';
+$lang['twitch_follower'] = 'Follower';
+$lang['twitch_views'] = 'Aufrufe';
+$lang['twitch_partner'] = 'Twitch-Partner?';
+$lang['twitch_youth'] = 'Jugendfrei?';
+$lang['twitch_language'] = 'Sprache';
+$lang['twitch_yes'] = 'Ja';
+$lang['twitch_no'] = 'Nein';
+$lang['twitch_created'] = 'Erstellungsdatum';
+$lang['twitch_changed'] = 'Änderungsdatum';
+$lang['twitch_stream'] = 'Stream-Infos';
+$lang['twitch_stream_title'] = 'Titel';
+$lang['twitch_stream_game'] = 'Spiel';
+$lang['twitch_stream_language'] = 'Sprache';
+$lang['twitch_url'] = 'URL';
+$lang['twitch_time'] = 'd. F Y \u\m H:i \U\h\r';
+$lang['twitch_media'] = 'Medien';
+$lang['twitch_livestream'] = 'Livestream';
+
+// YouTube Downloader
+$lang['ytdl_site_title'] = 'YouTube Video Downloader';
+$lang['ytdl_title'] = 'YouTube Video Downloader';
+$lang['ytdl_description'] = 'Lade ganz einfach und kostenlos YouTube Videos runter';
+$lang['ytdl_videoid'] = 'Video ID';
+$lang['ytdl_download'] = 'Download';
+$lang['ytdl_help'] = 'Gebe eine YouTube-Video ID (in der URL nach ?v=) ein. Beispiel: https://www.youtube.com/watch?v=-5h586HfAu8';
+$lang['ytdl_close'] = 'Schließen';
+$lang['ytdl_error'] = 'Fehler: ';
+$lang['ytdl_errors'] = ['', 'Es wurde keine YouTube-VideoID übergeben!', 'Ungültige URL!', 'Fehler in der YouTube-VideoID!'];
+$lang['ytdl_language'] = 'de_DE';
+$lang['ytdl_views'] = 'Aufrufe';
+$lang['ytdl_length'] = 'Länge';
+$lang['ytdl_minutes'] = 'Minuten';
+$lang['ytdl_author'] = 'von';
+$lang['ytdl_watch'] = 'Video ansehen';
+$lang['ytdl_error_no_downloads'] = 'Es konnten keine Download-Formate gefunden werden. Ist die Video ID korrekt?';
+$lang['ytdl_available_formats'] = 'Verfügbare Formate für dieses Video';
+$lang['ytdl_format'] = 'Format';
+$lang['ytdl_quality'] = 'Qualität';
+$lang['ytdl_size'] = 'Größe';
+$lang['ytdl_download_link'] = 'Download';
+$lang['ytdl_available_until'] = 'Verfügbar bis';
+$lang['ytdl_not_related_youtube'] = 'Der YouTube Video Downloader steht in keiner Verbindung mit YouTube Inc.';
+$lang['ytdl_no_haftung'] = 'Der Betreiber übernimmt keinerlei Haftung für die Nutzung dieses Dienstes.';
+
+// CSGO stats
+$lang['csgo_navbar'] = 'CS:GO Stats';
+$lang['csgo_kills'] = 'Kills';
+$lang['csgo_time_played'] = 'Spielzeit';
+$lang['csgo_accuracy'] = 'Treffgenauigkeit';
+$lang['csgo_headshots'] = 'Kopfschüsse';
+$lang['csgo_mvp'] = 'MVPs';
+$lang['csgo_wins'] = 'Siege';
+$lang['csgo_bombs_planted'] = 'Gelegte Bomben';
+$lang['csgo_hostages_rescued'] = 'Gerettete Geiseln';
+$lang['csgo_last_match'] = 'Letztes Match';
+$lang['csgo_rounds'] = 'Runden';
+$lang['csgo_bestweapon'] = 'Beste Waffe';
+$lang['csgo_kd'] = 'K/D';
+$lang['csgo_deaths'] = 'Tode';
+$lang['csgo_damage'] = 'Schaden';
+$lang['csgo_money_spent'] = 'Ausgegebenes Geld';
+$lang['csgo_money_earned'] = 'Verdientes Geld';
+$lang['csgo_dominations'] = 'Dominierungen';
+$lang['csgo_revenges'] = 'Rachen';
+$lang['csgo_score'] = 'Punktzahl';
+$lang['csgo_favweapons'] = 'Lieblingswaffen';
+$lang['csgo_favmaps'] = 'Lieblingsmaps';
+$lang['csgo_other_stats'] = 'Weitere Statistiken';
+$lang['csgo_total_score'] = 'Gesamte Punkte';
+$lang['csgo_shots'] = 'Schüsse';
+$lang['csgo_hits'] = 'Treffer';
+$lang['csgo_headshot_percent'] = 'Kopfschussquote';
+$lang['csgo_matches'] = 'Matches';
+$lang['csgo_matches_won'] = 'Gewonnene Matches';
+$lang['csgo_rounds_won'] = 'Gewonnene Runden';
+$lang['csgo_pistol_rounds_won'] = 'Gewonnene Pistolen-Runden';
+$lang['csgo_bombs_defused'] = 'Entschärfte Bomben';
+$lang['csgo_enemies_blinded_killed'] = 'Geblendete Gegner getötet';
+$lang['csgo_knife_fights_won'] = 'Gewonnene Messer-Kämpfe';
+$lang['csgo_aiming_snipers_killed'] = 'Zielende Sniper getötet';
+$lang['csgo_taser_kills'] = 'Taser-Kills';
+$lang['csgo_kills_enemy_weapon'] = 'Kills mit gegnerischen Waffen';
+$lang['csgo_weapon_spent'] = 'Gespendete Waffen';
+$lang['csgo_windows_broken'] = 'Zerbrochene Fenster';
+$lang['csgo_comma'] = ',';
+$lang['csgo_point'] = '.';
+$lang['csgo_2'] = 'Sieg';
+$lang['csgo_1'] = 'Gleichstand';
+$lang['csgo_0'] = 'Niederlage';
diff --git a/application/language/de/unit_test_lang.php b/application/language/de/unit_test_lang.php
new file mode 100644
index 0000000..1dd6c23
--- /dev/null
+++ b/application/language/de/unit_test_lang.php
@@ -0,0 +1,30 @@
+design.program.take photos.cut videos.edit photos.animate.shoot videos.write.';
+$lang['about_introduction'] = 'In the internet, I\'m also known as KingOfDog.';
+$lang['about_text'] = '
+ Everything I\'m doing nowadays started with a tiny digital camera (as far as I know by Olympus). Of course, the pictures hadn\'t a great quality, let alone the videos. However, I discovered the unbelievable fun of taking pictures.
+
+
+ But everything didn\'t really begin until 2013. Because then I created my own YouTube channel, which I initially tamed "yourobonatic". Why was this name? Because of the content, I planned to upload on the channel: videos about robots built with the Lego Mindstorms NXT 2.0 set. Thereby, the first video was a crappy showcase of an unspectacular program for one of this robots. This channel concept didn\'t stay for long, however. Soon, I started uploading videos of the popular video game Minecraft. Caused by this, I changed the channel name to DerMinecrafterMarcel (TheMinecrafterMarcel), or MinecrafterMarcel after another renaming in 2014.
+
+
+ After I "cut" my first few videos with Windows Movie Maker, I switched to Sony Vegas Pro very soon (late 2014-ish). The thumbnails from that time were "beautiful" creations with Gimp.
+
+
+ The following year, I dared to use the even more professional software. Therewith, I mean the entire Adobe Creative Cloud Suite: Photoshop for the thumbnails, Premiere Pro for the video editing and so on. However, in the beginning, the other programs had a minor role, as I didn\'t know at all how to use them. Anyways, by using these two pieces of software I learned more and more about editing and designing - learning by doing.
+
+
+ Around that time in 2015, I really started digging into the incredibly difficult world of programming. Indeed, I had already coded some small applications with Python already, but then I put much effort into understanding Java.
+
+
+ By the way, 2015 was the year with the most number of video uploads. These included besides Minecraft as well Clash of Clans, Happy Wheels, and many other games. Both of the last mentioned games were part of series I started in the previous year.
+
+
+ Whereas 2016 was pretty much emptier regarding the amount of uploaded videos. Somehow, this was a time of self-discovery of the channel, in which I wasn\'t really sure what to upload. On the one hand, I didn\'t feel like continuing making Minecraft and gaming videos in general. I didn\'t want to upload non-qualitative content. On the other hand, I hadn\'t a lot of ideas of high-qualitative content. Only at the end of the year, there came new, now qualitative videos. Throughout the year, however, I worked on a specific, gigantic project: this website. And now, finally: you can see it! Over the time, I invested hundreds of hours into this project.
+
+
+ And last year, in 2017, I eventually specialized in producing knowledge videos with the focus on computers and programming. Furthermore, I dabbled in AfterAffects and Adobe Illustrator, which had an enormous impact on the aesthetics and quality of my videos. On the fourth birthday of my YouTube channel, I initially opened this website to the public - unfortunately only for a duration of one month.
+
+
+ Finally, we can only wait and see what the future may bring.
+
';
+$lang['about_events_title'] = 'Important Events';
+$lang['about_events'] = [
+ [
+ "color" => "red",
+ "icon" => "youtube-play",
+ "name" => "Creation of my YouTube Channel",
+ "date" => "September 16th, 2013"
+ ],
+ [
+ "color" => "blue",
+ "icon" => "twitter",
+ "name" => "Joining Twitter",
+ "date" => "September 18th, 2013"
+ ],
+ [
+ "color" => "grey",
+ "icon" => "upload",
+ "name" => "First Video Upload",
+ "date" => "October 6th, 2013"
+ ],
+ [
+ "color" => "green",
+ "icon" => "gamepad",
+ "name" => "First Minecraft Video",
+ "date" => "October 7th, 2013"
+ ],
+ [
+ "color" => "yellow",
+ "icon" => "mobile",
+ "name" => "First Clash of Clans Video",
+ "date" => "February 12th, 2014"
+ ],
+ [
+ "color" => "blue",
+ "icon" => "trophy",
+ "name" => "500 Subscribers on YouTube",
+ "date" => "May 10th, 2015"
+ ],
+ [
+ "color" => "red",
+ "icon" => "twitch",
+ "name" => "Creation of my Twitch Channel",
+ "date" => "July 28th, 2015"
+ ],
+ [
+ "color" => "grey",
+ "icon" => "trophy",
+ "name" => "25,000 Views on YouTube",
+ "date" => "November 25, 2015"
+ ],
+ [
+ "color" => "yellow",
+ "icon" => "pencil",
+ "name" => "5,000 Tweets Published",
+ "date" => "June 15, 2017"
+ ],
+ [
+ "color" => "blue",
+ "icon" => "trophy",
+ "name" => "50,000 Views on YouTube",
+ "date" => "December 1st, 2017"
+ ],
+ [
+ "color" => "green",
+ "icon" => "columns",
+ "name" => "First Publishing of the Website",
+ "date" => "September 16th, 2017"
+ ]
+];
diff --git a/application/language/en/blog_lang.php b/application/language/en/blog_lang.php
new file mode 100644
index 0000000..75a0c4a
--- /dev/null
+++ b/application/language/en/blog_lang.php
@@ -0,0 +1,43 @@
+DesignerCutterWebdesignerDeveloperAnimatorPhotograf';
+$lang['about_introduction'] = 'I\'m KingOfDog, especially Youtuber and Designer, but I\'m a huge fan of dogs too.';
+$lang['about_skills'] = 'My skills';
diff --git a/application/language/en/donate_lang.php b/application/language/en/donate_lang.php
new file mode 100644
index 0000000..9bc531e
--- /dev/null
+++ b/application/language/en/donate_lang.php
@@ -0,0 +1,17 @@
+1€ donation is enough for one bag of sweets for the developer.';
+$lang['donate_level2'] = 'A 2€ donation enables us to continue developing this website.';
+$lang['donate_level3'] = 'A 5€ donation makes possible to buy 2GB more RAM for the server.';
+$lang['donate_level4'] = 'A 10€ donation would cover the minimum wage for one hour of work of one single developer.';
+$lang['donate_level5'] = 'A 15€ donation could afford us to buy 150GB more disk space for your images, texts, videos etc.';
+$lang['donate_level6'] = 'A 20€ donation would be the foundation for another server.';
+$lang['donate_level7'] = 'A 25€ donation allows us to buy several different licenses.';
+$lang['donate_level8'] = 'A 30€ donation is enough for publishing an app version of this website in the PlayStore.';
+$lang['donate_level9'] = 'A 50€ donation would be directly invested into the purchase of another server unit.';
+$lang['donate_level10'] = 'An 100€ donation would cover all major expenses for one month!';
+$lang['donate_btn'] = "Donate";
diff --git a/application/language/en/faq_lang.php b/application/language/en/faq_lang.php
new file mode 100644
index 0000000..56c99ca
--- /dev/null
+++ b/application/language/en/faq_lang.php
@@ -0,0 +1,44 @@
+your help! If you discover a bug on this page or if you have any kind of ideas for improvements or if you have something to criticize, use the textarea below in order to let us know about it. We are happy about every single feedback and try to enhance this website further. Thanks in advance!';
+ $lang['header_feedback_msg'] = 'Your Feedback';
+ $lang['header_feedback_msg_placeholder'] = 'Please enter your feedback to this page';
+ $lang['header_feedback_anonymous'] = 'Send anonymously?';
+ $lang['header_feedback_anonymous_info'] = 'Anonymous feedback contains no kind of data about the user like for example the IP address, e-mail, user id or any other information. On the other hand, non anonymous feedback helps us to analyse groups of users and their needs as well as keep in contact with the writer of the feedback in the case of further questions. In all cases we treat your personal data sensible and will never ever give them to third parties.';
+
+ $lang['header_share'] = 'Share';
+ $lang['header_share_title'] = 'Share Page';
+
+ $lang['header_post'] = 'Post';
+ $lang['header_post_title'] = 'Write a post';
+ $lang['header_post_content'] = 'Post Content';
+ $lang['header_post_notice'] = 'Currently, we are working on a function to upload photos, videos and other media easily. In the near future, you will be able to add them to your unique posts!';
+ $lang['header_post_publish'] = 'Publish';
diff --git a/application/language/en/home_lang.php b/application/language/en/home_lang.php
new file mode 100644
index 0000000..45e3820
--- /dev/null
+++ b/application/language/en/home_lang.php
@@ -0,0 +1,37 @@
+Press the left mouse button over the right printed picture for reaching the playback website of the most recent You Tube movie of mine personality.';
+$lang['home_slider_video_btn'] = 'Watch now';
+
+$lang['home_channels_title'] = 'YouTube Channels';
+$lang['home_kingofdog_des'] = 'KingOfDog is my very first YouTube channel and have existed meanwhile for more than 3 years. On this channel you get access to the newest games, facts, information, news, opinions, reviews, vlogs and much more. Over 600 subscribers can watch around 350 videos here.';
+$lang['home_zeybefx_des'] = 'There have been speedarts, design tutorials, giveaways, and much more videos dealing with design on ZeybeFX for more than one and a half years. This channel is in English and currently a little bit inactive.';
+$lang['home_zeybeofficial_des'] = 'The most recent channel of mine has existed since the beginning of 2017, but is very active. Each of the daily videos at 3 pm delivers you a new copyright free music track, which you can use in your own videos, games, websites, podcast, and similar things. Partially I upload my own music, which I created on my own, also.';
+$lang['home_kingofdogint_des'] = 'KingOfDog International is the (as the name already tells) international, English version of my main channel KingOfDog. Here you can discover translated videos from the German channel - because subtitles aren\'t that cool.';
+
+$lang['home_active_users'] = 'Currently Active Users';
+$lang['home_newest_users'] = 'Newly Registered Users';
+$lang['home_newest_posts'] = 'Most Recent Posts';
+$lang['home_notice'] = 'This feature will follow in the future. Please return here later.';
+
+$lang['home_error_twitter'] = 'No tweets were found in the database currently. Maybe this is an error. Please try again later.';
+$lang['home_error_instagram'] = 'No images were found in the database currently. Maybe this is an error. Please try again later.';
+$lang['home_error_youtube'] = 'No videos were found in the database currently. Maybe this is an error. Please try again later.';
+$lang['home_social_all'] = 'All';
+$lang['home_date'] = 'Y-m-d \a\t g:i a';
+$lang['home_posts'] = 'Most Recent Posts';
+
+$lang['home_ads_title'] = 'Why are we showing ads?';
+$lang['home_ads_description'] = 'The whole page and all of its services are completely free. And we want this to be the same in the future. The earnings through advertising are only used for financing and expanding the servers. Ads allow us to keep offering this free service! But we follow the motto "At Most One Ad per Site". That means that every page of KingOfDogTV.de contains maximally one single advertisment. So we achieve a not too annoying advertising model, the page doesn\'t take longer to load, and despite we can (hopefully) cover the costs for the webservers.';
\ No newline at end of file
diff --git a/application/language/en/index.html b/application/language/en/index.html
new file mode 100644
index 0000000..b702fbc
--- /dev/null
+++ b/application/language/en/index.html
@@ -0,0 +1,11 @@
+
+
+
+ 403 Forbidden
+
+
+
+
Directory access is forbidden.
+
+
+
diff --git a/application/language/en/jbstrings_lang.php b/application/language/en/jbstrings_lang.php
new file mode 100644
index 0000000..b41237c
--- /dev/null
+++ b/application/language/en/jbstrings_lang.php
@@ -0,0 +1,6 @@
+Caesar cipher method. Therefor each letter is shifted by the specified shift amount in the alphabet.';
+$lang['encrypter_text'] = 'Unencrypted text';
+$lang['encrypter_text2'] = 'Unencrypted text';
+$lang['encrypter_shiftkey'] = 'Shift key (Amount of shifted letters in the alphabet)';
+$lang['encrypter_shiftkey2'] = 'Shift key';
+$lang['encrypter_output'] = 'Encrypted text';
+$lang['encrypter_output2'] = 'Output';
+
+// Cäsar-Entschlüsselung
+$lang['decrypter_title'] = 'Caesar cipher-Decrypter';
+$lang['decrypter_description'] = 'This decrypter decrypts your encrypted texts with the Caesar cipher method. Therefor each letter is shifted by the specified shift amount in the alphabet.';
+$lang['decrypter_text'] = 'Encrypted text';
+$lang['decrypter_text2'] = 'Encrypted text';
+$lang['decrypter_shiftkey'] = 'Shift key (Amount of shifted letters in the alphabet)';
+$lang['decrypter_shiftkey2'] = 'Shift key';
+$lang['decrypter_output'] = 'Decrypted text';
+$lang['decrypter_output2'] = 'Output';
+
+// URL-Encoder
+$lang['url_site_title'] = 'URL Encoder';
+$lang['url_title'] = 'URL Encoder';
+$lang['url_description'] = 'Encode or rather decode simply all URLs or sentences!';
+$lang['url_input'] = 'Input';
+$lang['url_input2'] = 'Input of the uncoded text';
+$lang['url_input3'] = 'Input of the encoded text';
+$lang['url_encode'] = 'Encode';
+$lang['url_decode'] = 'Decode';
+$lang['url_output'] = 'Output';
+$lang['url_output2'] = 'Output of the encoded text';
+$lang['url_output3'] = 'Output of the decoded text';
+
+// base64-Encoder
+$lang['base64_site_title'] = 'Base64 Encoder';
+$lang['base64_title'] = 'Base64 Encoder';
+$lang['base64_description'] = 'Encode or rather decode simply all sentences, messages and textes with the base64 encoding!';
+$lang['base64_input'] = 'Input';
+$lang['base64_input2'] = 'Input of the uncoded text';
+$lang['base64_input3'] = 'Input of the encoded text';
+$lang['base64_encode'] = 'Encode';
+$lang['base64_decode'] = 'Decode';
+$lang['base64_output'] = 'Output';
+$lang['base64_output2'] = 'Output of the encoded text';
+$lang['base64_output3'] = 'Output of the decoded text';
+
+// Passwort-Generator
+$lang['pass_site_title'] = 'Password Generator';
+$lang['pass_title'] = 'Password Generator';
+$lang['pass_description'] = 'With this password generator you can generate a save and random password however you like!';
+$lang['pass_error'] = 'Error at the input';
+$lang['pass_generate'] = 'Generate';
+$lang['pass_copy'] = 'Copy';
+$lang['pass_length'] = 'Password length';
+$lang['pass_length_help'] = 'How long should the password be?';
+$lang['pass_components'] = 'Components';
+$lang['pass_components_upper'] = 'Uppercase letters';
+$lang['pass_components_lower'] = 'Lowercase letters';
+$lang['pass_components_special'] = 'Special characters';
+$lang['pass_components_numbers'] = 'Numbers';
+$lang['pass_tipps_title'] = 'Tips for a perfect password';
+$lang['pass_tipps1'] = 'The password should have at least 10 characters. Notice: The longer the better!';
+$lang['pass_tipps2'] = 'A password isn\'t save only because the length, a password should be a mixture of upper- and lowercase letters, numbers and special characters. (e.g. Your2DogsAreC00l!)';
+$lang['pass_tipps3'] = 'Your password shouldn\'t contain any personal information, which can be associated with you. (e.g. name of the pet, address, etc.)';
+$lang['pass_tipps4'] = 'Your password shouldn\'t contain any casual used words or letters chains (e.g. test, QWERTY, abc, 1234, password, etc.)';
+$lang['pass_tipps5_title'] = 'Recommendation:';
+$lang['pass_tipps5'] = 'Imagine you a sentence and take the first letter of each word. From that a very save password results. Example: My tennis courses takes place 2 times the week at 18 o\'clock. 100%! ==> Mtctp2ttwa18o\'c.100%!';
+$lang['pass_end'] = 'I wish you success!';
+
+// Nickname-Generator
+$lang['nick_site_title'] = 'Nickname Generator';
+$lang['nick_title'] = 'Nickname Generator';
+$lang['nick_description'] = 'This Nickname Generator offers';
+$lang['nick_description2'] = 'different possibles for generate names. There is certainly something for you here!';
+$lang['nick_generate'] = 'Generate';
+$lang['nick_copy'] = 'Copy';
+$lang['nick_beginning'] = 'Beginning of the nickname';
+$lang['nick_ending'] = 'Ending of the nickname';
+$lang['nick_history'] = 'History';
+
+// Minecraft Player-Tools
+$lang['players_site_title'] = 'Minecraft Player Tools';
+$lang['players_title'] = 'Minecraft Player Tools';
+$lang['players_description'] = 'Find out player UUID and server stats, download different skins, avatars and renders - everything only with the player name!';
+$lang['player_name'] = 'Minecraft player name';
+$lang['players_search'] = 'Go';
+$lang['player_skin'] = 'Download skin';
+$lang['player_skin_render'] = 'Download skin render';
+$lang['player_head_render'] = 'Download head render';
+$lang['player_avatar'] = 'Avatar downloads';
+$lang['player_history_name'] = 'Name';
+$lang['player_history_change'] = 'Changing date';
+$lang['player_original_name'] = 'Original name';
+$lang['player_on_server'] = 'on:';
+
+// Minecraft Server-Tools
+$lang['servers_site_title'] = 'Minecraft Server Tools';
+$lang['servers_title'] = 'Minecraft Server Tools';
+$lang['servers_description'] = 'Find out the player count, the minecraft version, the ping and more instantly - only with the server IP!';
+$lang['servers_ip'] = 'Server IP';
+$lang['servers_search'] = 'Go';
+$lang['servers_error'] = 'Error';
+$lang['servers_error_ip'] = 'Incorrect IP';
+$lang['servers_player'] = 'Players';
+$lang['servers_version'] = 'Version';
+$lang['servers_ping'] = 'Ping';
+
+// Twitch Tools
+$lang['twitch_site_title'] = 'Twitch Tools';
+$lang['twitch_title'] = 'Twitch Tools';
+$lang['twitch_description'] = 'Enter a Twitch Channel name and receive severant statistics and information about this channel!';
+$lang['twitch_channel'] = 'Twitch Channel';
+$lang['twitch_search'] = 'Search';
+$lang['twitch_name'] = 'Name';
+$lang['twitch_id'] = 'Account ID';
+$lang['twitch_follower'] = 'Follower';
+$lang['twitch_views'] = 'Views';
+$lang['twitch_partner'] = 'Twitch Partner?';
+$lang['twitch_youth'] = 'Family Safe?';
+$lang['twitch_language'] = 'Language';
+$lang['twitch_yes'] = 'Yes';
+$lang['twitch_no'] = 'No';
+$lang['twitch_created'] = 'Creation Date';
+$lang['twitch_changed'] = 'Modified date';
+$lang['twitch_stream'] = 'Stream information';
+$lang['twitch_stream_title'] = 'Title';
+$lang['twitch_stream_game'] = 'Game';
+$lang['twitch_stream_language'] = 'Language';
+$lang['twitch_url'] = 'URL';
+$lang['twitch_time'] = 'd F Y \a\t H:i a';
+$lang['twitch_media'] = 'Media';
+$lang['twitch_livestream'] = 'Livestream';
+
+// YouTube Downloader
+$lang['ytdl_site_title'] = 'YouTube Video Downloader';
+$lang['ytdl_title'] = 'YouTube Video Downloader';
+$lang['ytdl_description'] = 'Download YouTube videos easy and for free';
+$lang['ytdl_videoid'] = 'Video ID';
+$lang['ytdl_download'] = 'Download';
+$lang['ytdl_help'] = 'Enter a YouTube video ID (the part after ?v= in the URL). Example: https://www.youtube.com/watch?v=-5h586HfAu8';
+$lang['ytdl_close'] = 'Close';
+$lang['ytdl_error'] = 'Error: ';
+$lang['ytdl_errors'] = ['', 'No YouTube video ID was comitted!', 'Invalid URL!', 'YouTube video ID is incorrect!'];
+$lang['ytdl_language'] = 'en_US';
+$lang['ytdl_views'] = 'Views';
+$lang['ytdl_length'] = 'Length';
+$lang['ytdl_minutes'] = 'Minutes';
+$lang['ytdl_author'] = 'by';
+$lang['ytdl_watch'] = 'Watch video';
+$lang['ytdl_error_no_downloads'] = 'No download formats were found. Is the video ID correct?';
+$lang['ytdl_available_formats'] = 'Available formats for this video';
+$lang['ytdl_format'] = 'Format';
+$lang['ytdl_quality'] = 'Quality';
+$lang['ytdl_size'] = 'Size';
+$lang['ytdl_download_link'] = 'Download';
+$lang['ytdl_available_until'] = 'Available until';
+$lang['ytdl_not_related_youtube'] = 'The YouTube downloader is not affiliated with YouTube Inc.';
+$lang['ytdl_no_haftung'] = 'The operator assumes no liability for the use of this service.';
+
+// CSGO stats
+$lang['csgo_navbar'] = 'CS:GO Stats';
+$lang['csgo_kills'] = 'Kills';
+$lang['csgo_time_played'] = 'Time played';
+$lang['csgo_accuracy'] = 'Accuracy';
+$lang['csgo_headshots'] = 'Headshots';
+$lang['csgo_mvp'] = 'MVPs';
+$lang['csgo_wins'] = 'Wins';
+$lang['csgo_bombs_planted'] = 'Bombs planted';
+$lang['csgo_hostages_rescued'] = 'Hostages rescued';
+$lang['csgo_last_match'] = 'Last match';
+$lang['csgo_rounds'] = 'Rounds';
+$lang['csgo_bestweapon'] = 'Best weapon';
+$lang['csgo_kd'] = 'K/D';
+$lang['csgo_deaths'] = 'Deaths';
+$lang['csgo_damage'] = 'Damage';
+$lang['csgo_money_spent'] = 'Money spent';
+$lang['csgo_money_earned'] = 'Money earned';
+$lang['csgo_dominations'] = 'Dominations';
+$lang['csgo_revenges'] = 'Revenges';
+$lang['csgo_score'] = 'Score';
+$lang['csgo_favweapons'] = 'Favorite weapons';
+$lang['csgo_favmaps'] = 'Favorite maps';
+$lang['csgo_other_stats'] = 'More statistics';
+$lang['csgo_total_score'] = 'Total score';
+$lang['csgo_shots'] = 'Shots';
+$lang['csgo_hits'] = 'Hits';
+$lang['csgo_headshot_percent'] = 'Headshot rate';
+$lang['csgo_matches'] = 'Matches';
+$lang['csgo_matches_won'] = 'Matches won';
+$lang['csgo_rounds_won'] = 'Rounds won';
+$lang['csgo_pistol_rounds_won'] = 'Pistol rounds won';
+$lang['csgo_bombs_defused'] = 'Bombs defused';
+$lang['csgo_enemies_blinded_killed'] = 'Flashed enemies killed';
+$lang['csgo_knife_fights_won'] = 'Knife fights won';
+$lang['csgo_aiming_snipers_killed'] = 'Aiming snipers killed';
+$lang['csgo_taser_kills'] = 'Taser kills';
+$lang['csgo_kills_enemy_weapon'] = 'Enemy weapon kills';
+$lang['csgo_weapon_spent'] = 'Weapons spent';
+$lang['csgo_windows_broken'] = 'Windows broken';
+$lang['csgo_comma'] = '.';
+$lang['csgo_point'] = ',';
+$lang['csgo_2'] = 'Win';
+$lang['csgo_1'] = 'Draw';
+$lang['csgo_0'] = 'Defeat';
diff --git a/application/language/fr/about_lang.php b/application/language/fr/about_lang.php
new file mode 100644
index 0000000..01dd2b3
--- /dev/null
+++ b/application/language/fr/about_lang.php
@@ -0,0 +1,10 @@
+DesignerCutterWebdesignerDeveloperAnimateurPhotographe';
+$lang['about_introduction'] = 'Je suis KingOfDog, surtout youtuber et designer, mais un incroyable fan de chiens aussi.';
+$lang['about_skills'] = 'Mes compétences';
diff --git a/application/language/fr/blog_lang.php b/application/language/fr/blog_lang.php
new file mode 100644
index 0000000..d2846e5
--- /dev/null
+++ b/application/language/fr/blog_lang.php
@@ -0,0 +1,26 @@
+
+
+
+ 403 Forbidden
+
+
+
+
Directory access is forbidden.
+
+
+
diff --git a/application/language/fr/notification_lang.php b/application/language/fr/notification_lang.php
new file mode 100644
index 0000000..22afe1e
--- /dev/null
+++ b/application/language/fr/notification_lang.php
@@ -0,0 +1,4 @@
+Chiffrement par décalage. Ici, chaque lettre est décalée de la quantité spécifiée dans l\'alphabet.';
+$lang['encrypter_text'] = 'Texte unencrypted';
+$lang['encrypter_text2'] = 'Entrant';
+$lang['encrypter_shiftkey'] = 'Shift-Key (Quantité de décalage)';
+$lang['encrypter_shiftkey2'] = 'Shift-Key';
+$lang['encrypter_output'] = 'Texte chiffré';
+$lang['encrypter_output2'] = 'Sortie';
+
+// Cäsar-Entschlüsselung
+$lang['decrypter_title'] = 'César décryptage';
+$lang['decrypter_description'] = 'Avec mon decrypter vous pouvez déchiffrer des textes avec le Chiffrement par décalage. Ici, chaque lettre est décalée de la quantité spécifiée dans l\'alphabet.';
+$lang['decrypter_text'] = 'Texte chiffré';
+$lang['decrypter_text2'] = 'Entrant';
+$lang['decrypter_shiftkey'] = 'Shift-Key (Quantité de décalage)';
+$lang['decrypter_shiftkey2'] = 'Shift-Key';
+$lang['decrypter_output'] = 'Texte décodée';
+$lang['decrypter_output2'] = 'Sortie';
+
+// URL-Encoder
+$lang['url_site_title'] = 'Codeur URL';
+$lang['url_title'] = 'Codeur URL';
+$lang['url_description'] = 'Encoder ou décoder facilement toutes les URL ou expressions possibles!';
+$lang['url_input'] = 'Entrant';
+$lang['url_input2'] = 'Entrée du texte uncodé';
+$lang['url_input3'] = 'Entrée du texte codé';
+$lang['url_encode'] = 'Encoder';
+$lang['url_decode'] = 'Décoder';
+$lang['url_output'] = 'Sortie';
+$lang['url_output2'] = 'Sortie du texte encodé';
+$lang['url_output3'] = 'Sortie du texte décodé';
+
+// base64-Encoder
+$lang['base64_site_title'] = 'Codeur Base64';
+$lang['base64_title'] = 'Codeur Base64';
+$lang['base64_description'] = 'Encoder ou décoder facilement toutes les expressions, messages ou textes!';
+$lang['base64_input'] = 'Entrant';
+$lang['base64_input2'] = 'Entrée du texte uncodé';
+$lang['base64_input3'] = 'Entrée du texte codé';
+$lang['base64_encode'] = 'Encoder';
+$lang['base64_decode'] = 'Décoder';
+$lang['base64_output'] = 'Sortie';
+$lang['base64_output2'] = 'Sortie du texte encodé';
+$lang['base64_output3'] = 'Sortie du texte décodé';
+
+// Passwort-Generator
+$lang['pass_site_title'] = 'Password Generator';
+$lang['pass_title'] = 'Password Generator';
+$lang['pass_description'] = 'Avec mon Password Generator vous pouvez complètement créer autant que vous le souhaitez un mot de passe aléatoire.';
+$lang['pass_error'] = 'Erreur lors de la saisie';
+$lang['pass_generate'] = 'Générer';
+$lang['pass_copy'] = 'Copier';
+$lang['pass_length'] = 'Longueur du mot de passe';
+$lang['pass_length_help'] = 'Combien de longueur si le mot de passe?';
+$lang['pass_components'] = 'Composants';
+$lang['pass_components_upper'] = 'Majuscule';
+$lang['pass_components_lower'] = 'Minuscules';
+$lang['pass_components_special'] = 'Caractère spécial';
+$lang['pass_components_numbers'] = 'Numéros';
+$lang['pass_tipps_title'] = 'Conseils pour un mot de passe sécurisé';
+$lang['pass_tipps1'] = 'Le mot de passe doit être d\'au moins 10 caractères.';
+$lang['pass_tipps2'] = 'Cependant, la longueur seule rend un mot de passe ne sais pas, il devrait donc contenir un mélange de lettres majuscules et minuscules, chiffres et caractères spéciaux. (ex. #Tes2ChiensSontJol1e!)';
+$lang['pass_tipps3'] = 'Votre mot de passe ne doit pas contenir des renseignements personnels qui pourraient être associés avec vous. (ex. nom de l\'animal, âge etc.)';
+$lang['pass_tipps4'] = 'Il doit être couramment utilisé des mots ou lettres des chaînes (ex. 1234, test, password, QWERTY, QWERTZ etc.) présentes dans le mot de passe.';
+$lang['pass_tipps5_title'] = 'Recommandation:';
+$lang['pass_tipps5'] = 'Il suffit de penser à une phrase et de prendre chaque mot initiales seulement. Il est un mot de passe très sécurisé. Par example: Chaque 2ième lundi je vais à 100% dans le gymnase #cool 3 pâtés de maisons. Promesse! ==> C2iLjva100%dlg#c3pdm.P!';
+$lang['pass_end'] = 'Bonne chance!';
+
+// Nickname-Generator
+$lang['nick_site_title'] = 'Nickname Générateur';
+$lang['nick_title'] = 'Nickname Générateur';
+$lang['nick_description'] = 'Ce Nickname générateur fournit';
+$lang['nick_description2'] = 'diverses options - il y a certainement quelque chose pour vous ici!';
+$lang['nick_generate'] = 'Générer';
+$lang['nick_copy'] = 'Copier';
+$lang['nick_beginning'] = 'Le début du nom';
+$lang['nick_ending'] = 'La fin du nom';
+$lang['nick_history'] = 'Cours';
+
+// Minecraft Player-Tools
+$lang['players_site_title'] = 'Minecraft Outils pour Joueurs';
+$lang['players_title'] = 'Minecraft Outils pour Joueurs';
+$lang['players_description'] = 'Découvrez le joueurs UUID et ses statistiques du serveur & de charger différents skins, avatars et renders vers le bas - tout seulement par le nom du joueur!';
+$lang['player_name'] = 'Minecraft Nom';
+$lang['players_search'] = 'On y va';
+$lang['player_skin'] = 'Download skin';
+$lang['player_skin_render'] = 'Download skin render';
+$lang['player_head_render'] = 'Download tête render';
+$lang['player_avatar'] = 'Avatar downloads';
+$lang['player_history_name'] = 'Nom';
+$lang['player_history_change'] = 'Date de modification';
+$lang['player_original_name'] = 'Nom d\'origine';
+$lang['player_on_server'] = 'sur:';
+
+// Minecraft Server-Tools
+$lang['servers_site_title'] = 'Minecraft Outils pour Serveurs';
+$lang['servers_title'] = 'Minecraft Outils pour Serveurs';
+$lang['servers_description'] = 'Obtenez le nombre de joueurs, la version Minecraft, la ping et plus - suelement sur un serveur IP!';
+$lang['servers_ip'] = 'Serveur IP';
+$lang['servers_search'] = 'On y va';
+$lang['servers_error'] = 'Erreur';
+$lang['servers_error_ip'] = 'IP incorrectement';
+$lang['servers_player'] = 'Joueurs';
+$lang['servers_version'] = 'Version';
+$lang['servers_ping'] = 'Ping';
+
+// Twitch Tools
+$lang['twitch_site_title'] = 'Twitch Outils';
+$lang['twitch_title'] = 'Twitch Outils';
+$lang['twitch_description'] = 'Entrez un nom de canal de Twitch et obtenir diverses statistiques et des informations sur ce canal!';
+$lang['twitch_channel'] = 'Twitch canal';
+$lang['twitch_search'] = 'Chercher';
+$lang['twitch_name'] = 'Nom';
+$lang['twitch_id'] = 'Account ID';
+$lang['twitch_follower'] = 'Suiveurs';
+$lang['twitch_views'] = 'Vues';
+$lang['twitch_partner'] = 'Twitch partenaire?';
+$lang['twitch_youth'] = 'Famille Coffre-fort?';
+$lang['twitch_language'] = 'Langue';
+$lang['twitch_yes'] = 'Oui';
+$lang['twitch_no'] = 'Non';
+$lang['twitch_created'] = 'Date de création';
+$lang['twitch_changed'] = 'Date de modification';
+$lang['twitch_stream'] = 'Stream information';
+$lang['twitch_stream_title'] = 'Titre';
+$lang['twitch_stream_game'] = 'Jeu';
+$lang['twitch_stream_language'] = 'Langue';
+$lang['twitch_url'] = 'URL';
+$lang['twitch_time'] = 'd-m-Y \à H:i \h\e\u\r\e\s';
+$lang['twitch_media'] = 'Médias';
+$lang['twitch_livestream'] = 'Live stream';
+
+// YouTube Downloader
+$lang['ytdl_site_title'] = 'YouTube Vidéo Downloader';
+$lang['ytdl_title'] = 'YouTube Vidéo Downloader';
+$lang['ytdl_description'] = 'Télécharger simple et gratuit vidéos YoutTube!';
+$lang['ytdl_videoid'] = 'Vidéo ID';
+$lang['ytdl_download'] = 'Download';
+$lang['ytdl_help'] = 'Donnez une YouTube vidéo ID (dans l\'URL après ?v=). Par example: https://www.youtube.com/watch?v=-5h586HfAu8';
+$lang['ytdl_close'] = 'Fermeture';
+$lang['ytdl_error'] = 'Erreur: ';
+$lang['ytdl_errors'] = ['', 'Il n\'y avait pas un YouTube vidéo ID transmis!', 'URL incorrectement!', 'Erreur dans le YouTube vidéo ID!'];
+$lang['ytdl_language'] = 'fr_FR';
+$lang['ytdl_views'] = 'Vues';
+$lang['ytdl_length'] = 'Longueur';
+$lang['ytdl_minutes'] = 'Minutes';
+$lang['ytdl_author'] = 'de';
+$lang['ytdl_watch'] = 'Voir la vidéo';
+$lang['ytdl_error_no_downloads'] = 'Il pourrait y avoir aucun téléchargement formats trouvés. L\'ID vidéo est correcte?';
+$lang['ytdl_available_formats'] = 'Formats disponibles pour cette vidéo';
+$lang['ytdl_format'] = 'Format';
+$lang['ytdl_quality'] = 'Qualité';
+$lang['ytdl_size'] = 'Taille';
+$lang['ytdl_download_link'] = 'Download';
+$lang['ytdl_available_until'] = 'Disponible';
+$lang['ytdl_not_related_youtube'] = 'Le YouTube Video Downloader est pas affilié à YouTube Inc.';
+$lang['ytdl_no_haftung'] = 'L\'opérateur décline toute responsabilité pour l\'utilisation de ce service.';
+
+// CSGO stats
+$lang['csgo_navbar'] = 'CS:GO Stats';
+$lang['csgo_kills'] = 'Kills';
+$lang['csgo_time_played'] = 'Temps joué';
+$lang['csgo_accuracy'] = 'Exatitude';
+$lang['csgo_headshots'] = 'Headshots';
+$lang['csgo_mvp'] = 'MVPs';
+$lang['csgo_wins'] = 'Victoires';
+$lang['csgo_bombs_planted'] = 'Bombes plantées';
+$lang['csgo_hostages_rescued'] = 'Otages secourus';
+$lang['csgo_last_match'] = 'Le dernier match';
+$lang['csgo_rounds'] = 'Tours';
+$lang['csgo_bestweapon'] = 'Meilleure arme';
+$lang['csgo_kd'] = 'K/D';
+$lang['csgo_deaths'] = 'Des morts';
+$lang['csgo_damage'] = 'Dommage';
+$lang['csgo_money_spent'] = 'Argent dépensé';
+$lang['csgo_money_earned'] = 'L\'argent gagné';
+$lang['csgo_dominations'] = 'Dominations';
+$lang['csgo_revenges'] = 'Vengeances';
+$lang['csgo_score'] = 'Score';
+$lang['csgo_favweapons'] = 'Armes Favorite';
+$lang['csgo_favmaps'] = 'Cartes favorites';
+$lang['csgo_other_stats'] = 'D\'autres États';
+$lang['csgo_total_score'] = 'Score total';
+$lang['csgo_shots'] = 'Coups';
+$lang['csgo_hits'] = 'Succès';
+$lang['csgo_headshot_percent'] = 'Taux headshot';
+$lang['csgo_matches'] = 'Matchs';
+$lang['csgo_matches_won'] = 'Matchs gagnés';
+$lang['csgo_rounds_won'] = 'Rounds gagnés';
+$lang['csgo_pistol_rounds_won'] = 'Tours de pistolet gagné';
+$lang['csgo_bombs_defused'] = 'Bombes désamorcées';
+$lang['csgo_enemies_blinded_killed'] = 'Ennemis Flash tués';
+$lang['csgo_knife_fights_won'] = 'Combats au couteau gagné';
+$lang['csgo_aiming_snipers_killed'] = 'Snipers aiming tués';
+$lang['csgo_taser_kills'] = 'Taser kills';
+$lang['csgo_kills_enemy_weapon'] = 'Kills ennemi arme';
+$lang['csgo_weapon_spent'] = 'Armes dépensés';
+$lang['csgo_windows_broken'] = 'Fenêtres brisées';
+$lang['csgo_comma'] = ',';
+$lang['csgo_point'] = '.';
+$lang['csgo_2'] = 'Victoire';
+$lang['csgo_1'] = 'Cravate';
+$lang['csgo_0'] = 'Défaite';
diff --git a/application/language/index.html b/application/language/index.html
new file mode 100644
index 0000000..b702fbc
--- /dev/null
+++ b/application/language/index.html
@@ -0,0 +1,11 @@
+
+
+
+ 403 Forbidden
+
+
+
+
Der Account existiert nicht oder wurde noch nicht aktiviert! Bitte überprüfe noch einmal dein Mail-Postfach, ob du eine Aktivierungs-Mail erhalten hast. E-Mail erneut senden
+
+
\ No newline at end of file
diff --git a/application/views/about.php b/application/views/about.php
new file mode 100644
index 0000000..bfd48b5
--- /dev/null
+++ b/application/views/about.php
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
= lang('about_title'); ?>
+
= lang('about_description'); ?>
+
+
+
+
+
+
+
+
+
+
+
+
= lang('about_subtitle'); ?>
+
+ = lang('about_subtitle_words'); ?>
+
+
+
= lang('about_introduction'); ?>
+ = lang('about_text') ?>
+
+
+
= lang('about_events_title') ?>
+
+
+
+
+
+
+
+
+
+
= $event['name'] ?>
+
= $event['date'] ?>
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/application/views/ad.php b/application/views/ad.php
new file mode 100644
index 0000000..b7f152a
--- /dev/null
+++ b/application/views/ad.php
@@ -0,0 +1,141 @@
+
+
+
+ =
+ isset($trashbin) && $trashbin ? 'Hier sind alle bisher in den Papierkorb verschobenen Blog-Posts zu finden, zu verwalten, zu wiederherstellen und zum endgültigen Löschen!' : 'Hier sind alle bisher verfassten Blog-Posts zu finden und zu verwalten.'
+ ?>
+
\ No newline at end of file
diff --git a/application/views/admin/calendar.php b/application/views/admin/calendar.php
new file mode 100644
index 0000000..e848348
--- /dev/null
+++ b/application/views/admin/calendar.php
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
Kalender
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
New Calendar Entry
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Edit Calendar Entry
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/application/views/admin/dashboard.php b/application/views/admin/dashboard.php
new file mode 100644
index 0000000..a18fabf
--- /dev/null
+++ b/application/views/admin/dashboard.php
@@ -0,0 +1,20 @@
+
+
\ No newline at end of file
diff --git a/application/views/admin/files.php b/application/views/admin/files.php
new file mode 100644
index 0000000..99eaf4e
--- /dev/null
+++ b/application/views/admin/files.php
@@ -0,0 +1,229 @@
+
+
+
+
+
+
+
+
Dateien
+
+
+
+
+ Hier sind alle bisher hochgeladenen Dateien zu finden!
+