Archived
1
0

Initial commit as of 2018-10-16

This commit is contained in:
Marcel 2018-10-16 18:28:42 +02:00
commit 29d7c2ffdc
3601 changed files with 358427 additions and 0 deletions

23
.gitignore vendored Normal file
View File

@ -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

7
.htaccess Normal file
View File

@ -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

121
CI_phpStorm.php Normal file
View File

@ -0,0 +1,121 @@
<?php die('This file is not really here!');
/**
* ------------- DO NOT UPLOAD THIS FILE TO LIVE SERVER ---------------------
*
* Implements code completion for CodeIgniter in phpStorm
* phpStorm indexes all class constructs, so if this file is in the project it will be loaded.
* -------------------------------------------------------------------
* Drop the following file into a CI project in phpStorm
* You can put it in the project root and phpStorm will load it.
* (If phpStorm doesn't load it, try closing the project and re-opening it)
*
* Under system/core/
* Right click on Controller.php and set Mark as Plain Text
* Do the same for Model.php
* -------------------------------------------------------------------
* This way there is no editing of CI core files for this simple layer of code completion.
*
* PHP version 5
*
* LICENSE: GPL http://www.gnu.org/copyleft/gpl.html
*
* Created 1/28/12, 11:06 PM
*
* @category
* @package CodeIgniter CI_phpStorm.php
* @author Jeff Behnke
* @copyright 2009-11 Valid-Webs.com
* @license GPL http://www.gnu.org/copyleft/gpl.html
* @version 2012.01.28
*/
/**
* @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.<br /> 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.<br />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,<br />replacing them with the data in the second param
* @property CI_Profiler $profiler This class enables you to display benchmark, query, and other data<br />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<br />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.<br /> 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.<br />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,<br />replacing them with the data in the second param
* @property CI_Profiler $profiler This class enables you to display benchmark, query, and other data<br />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<br />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{}

0
Gruntfile.js Normal file
View File

6
application/.htaccess Normal file
View File

@ -0,0 +1,6 @@
<IfModule authz_core_module>
Require all denied
</IfModule>
<IfModule !authz_core_module>
Deny from all
</IfModule>

View File

@ -0,0 +1,135 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| AUTO-LOADER
| -------------------------------------------------------------------
| This file specifies which systems should be loaded by default.
|
| In order to keep the framework as light-weight as possible only the
| absolute minimal resources are loaded by default. For example,
| the database is not connected to automatically since no assumption
| is made regarding whether you intend to use it. This file lets
| you globally define which systems you would like loaded with every
| request.
|
| -------------------------------------------------------------------
| Instructions
| -------------------------------------------------------------------
|
| These are the things you can load automatically:
|
| 1. Packages
| 2. Libraries
| 3. Drivers
| 4. Helper files
| 5. Custom config files
| 6. Language files
| 7. Models
|
*/
/*
| -------------------------------------------------------------------
| Auto-load Packages
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['packages'] = array(APPPATH.'third_party', '/usr/local/shared');
|
*/
$autoload['packages'] = array();
/*
| -------------------------------------------------------------------
| Auto-load Libraries
| -------------------------------------------------------------------
| These are the classes located in system/libraries/ or your
| application/libraries/ directory, with the addition of the
| 'database' library, which is somewhat of a special case.
|
| Prototype:
|
| $autoload['libraries'] = array('database', 'email', 'session');
|
| You can also supply an alternative library name to be assigned
| in the controller:
|
| $autoload['libraries'] = array('user_agent' => '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');

View File

@ -0,0 +1,513 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
|
| URL to your CodeIgniter root. Typically this will be your base URL,
| WITH a trailing slash:
|
| http://example.com/
|
| WARNING: You MUST set this value!
|
| If it is not set, then CodeIgniter will try guess the protocol and path
| your installation, but due to security concerns the hostname will be set
| to $_SERVER['SERVER_ADDR'] if available, or localhost otherwise.
| The auto-detection mechanism exists only for convenience during
| development and MUST NOT be used in production!
|
| If you need to allow multiple domains, remember that this file is still
| a PHP script and you can easily do that on your own.
|
*/
$config['base_url'] = 'http://192.168.178.39/';
/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = '';
/*
|--------------------------------------------------------------------------
| URI PROTOCOL
|--------------------------------------------------------------------------
|
| This item determines which server global should be used to retrieve the
| URI string. The default setting of 'REQUEST_URI' works for most servers.
| If your links do not seem to work, try one of the other delicious flavors:
|
| 'REQUEST_URI' Uses $_SERVER['REQUEST_URI']
| 'QUERY_STRING' Uses $_SERVER['QUERY_STRING']
| 'PATH_INFO' Uses $_SERVER['PATH_INFO']
|
| WARNING: If you set this to 'PATH_INFO', URIs will always be URL-decoded!
*/
$config['uri_protocol'] = 'REQUEST_URI';
/*
|--------------------------------------------------------------------------
| URL suffix
|--------------------------------------------------------------------------
|
| This option allows you to add a suffix to all URLs generated by CodeIgniter.
| For more information please see the user guide:
|
| https://codeigniter.com/user_guide/general/urls.html
*/
$config['url_suffix'] = '';
/*
|--------------------------------------------------------------------------
| Default Language
|--------------------------------------------------------------------------
|
| This determines which set of language files should be used. Make sure
| there is an available translation if you intend to use something other
| than en.
|
*/
$config['language'] = 'de';
/*
|--------------------------------------------------------------------------
| Default Character Set
|--------------------------------------------------------------------------
|
| This determines which character set is used by default in various methods
| that require a character set to be provided.
|
| See http://php.net/htmlspecialchars for a list of supported charsets.
|
*/
$config['charset'] = 'UTF-8';
/*
|--------------------------------------------------------------------------
| Enable/Disable System Hooks
|--------------------------------------------------------------------------
|
| If you would like to use the 'hooks' feature you must enable it by
| setting this variable to TRUE (boolean). See the user guide for details.
|
*/
$config['enable_hooks'] = TRUE;
/*
|--------------------------------------------------------------------------
| Class Extension Prefix
|--------------------------------------------------------------------------
|
| This item allows you to set the filename/classname prefix when extending
| native libraries. For more information please see the user guide:
|
| https://codeigniter.com/user_guide/general/core_classes.html
| https://codeigniter.com/user_guide/general/creating_libraries.html
|
*/
$config['subclass_prefix'] = 'MY_';
/*
|--------------------------------------------------------------------------
| Composer auto-loading
|--------------------------------------------------------------------------
|
| Enabling this setting will tell CodeIgniter to look for a Composer
| package auto-loader script in application/vendor/autoload.php.
|
| $config['composer_autoload'] = TRUE;
|
| Or if you have your vendor/ directory located somewhere else, you
| can opt to set a specific path as well:
|
| $config['composer_autoload'] = '/path/to/vendor/autoload.php';
|
| For more information about Composer, please visit http://getcomposer.org/
|
| Note: This will NOT disable or override the CodeIgniter-specific
| autoloading (application/config/autoload.php)
*/
$config['composer_autoload'] = FALSE;
/*
|--------------------------------------------------------------------------
| Allowed URL Characters
|--------------------------------------------------------------------------
|
| This lets you specify which characters are permitted within your URLs.
| When someone tries to submit a URL with disallowed characters they will
| get a warning message.
|
| As a security measure you are STRONGLY encouraged to restrict URLs to
| as few characters as possible. By default only these are allowed: a-z 0-9~%.:_-
|
| Leave blank to allow all characters -- but only if you are insane.
|
| The configured value is actually a regular expression character group
| and it will be executed as: ! preg_match('/^[<permitted_uri_chars>]+$/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'] = '';

View File

@ -0,0 +1,85 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
|--------------------------------------------------------------------------
| Display Debug backtrace
|--------------------------------------------------------------------------
|
| If set to TRUE, a backtrace will be displayed along with php errors. If
| error_reporting is disabled, the backtrace will not display, regardless
| of this setting
|
*/
defined('SHOW_DEBUG_BACKTRACE') OR define('SHOW_DEBUG_BACKTRACE', TRUE);
/*
|--------------------------------------------------------------------------
| File and Directory Modes
|--------------------------------------------------------------------------
|
| These prefs are used when checking and setting modes when working
| with the file system. The defaults are fine on servers with proper
| security, but you may wish (or even need) to change the values in
| certain environments (Apache running a separate process for each
| user, PHP under CGI with Apache suEXEC, etc.). Octal values should
| always be used to set the mode correctly.
|
*/
defined('FILE_READ_MODE') OR define('FILE_READ_MODE', 0644);
defined('FILE_WRITE_MODE') OR define('FILE_WRITE_MODE', 0666);
defined('DIR_READ_MODE') OR define('DIR_READ_MODE', 0755);
defined('DIR_WRITE_MODE') OR define('DIR_WRITE_MODE', 0755);
/*
|--------------------------------------------------------------------------
| File Stream Modes
|--------------------------------------------------------------------------
|
| These modes are used when working with fopen()/popen()
|
*/
defined('FOPEN_READ') OR define('FOPEN_READ', 'rb');
defined('FOPEN_READ_WRITE') OR define('FOPEN_READ_WRITE', 'r+b');
defined('FOPEN_WRITE_CREATE_DESTRUCTIVE') OR define('FOPEN_WRITE_CREATE_DESTRUCTIVE', 'wb'); // truncates existing file data, use with care
defined('FOPEN_READ_WRITE_CREATE_DESTRUCTIVE') OR define('FOPEN_READ_WRITE_CREATE_DESTRUCTIVE', 'w+b'); // truncates existing file data, use with care
defined('FOPEN_WRITE_CREATE') OR define('FOPEN_WRITE_CREATE', 'ab');
defined('FOPEN_READ_WRITE_CREATE') OR define('FOPEN_READ_WRITE_CREATE', 'a+b');
defined('FOPEN_WRITE_CREATE_STRICT') OR define('FOPEN_WRITE_CREATE_STRICT', 'xb');
defined('FOPEN_READ_WRITE_CREATE_STRICT') OR define('FOPEN_READ_WRITE_CREATE_STRICT', 'x+b');
/*
|--------------------------------------------------------------------------
| Exit Status Codes
|--------------------------------------------------------------------------
|
| Used to indicate the conditions under which the script is exit()ing.
| While there is no universal standard for error codes, there are some
| broad conventions. Three such conventions are mentioned below, for
| those who wish to make use of them. The CodeIgniter defaults were
| chosen for the least overlap with these conventions, while still
| leaving room for others to be defined in future versions and user
| applications.
|
| The three main conventions used for determining exit status codes
| are as follows:
|
| Standard C/C++ Library (stdlibc):
| http://www.gnu.org/software/libc/manual/html_node/Exit-Status.html
| (This link also contains other GNU-specific conventions)
| BSD sysexits.h:
| http://www.gsp.com/cgi-bin/man.cgi?section=3&topic=sysexits
| Bash scripting:
| http://tldp.org/LDP/abs/html/exitcodes.html
|
*/
defined('EXIT_SUCCESS') OR define('EXIT_SUCCESS', 0); // no errors
defined('EXIT_ERROR') OR define('EXIT_ERROR', 1); // generic error
defined('EXIT_CONFIG') OR define('EXIT_CONFIG', 3); // configuration error
defined('EXIT_UNKNOWN_FILE') OR define('EXIT_UNKNOWN_FILE', 4); // file not found
defined('EXIT_UNKNOWN_CLASS') OR define('EXIT_UNKNOWN_CLASS', 5); // unknown class
defined('EXIT_UNKNOWN_METHOD') OR define('EXIT_UNKNOWN_METHOD', 6); // unknown class member
defined('EXIT_USER_INPUT') OR define('EXIT_USER_INPUT', 7); // invalid user input
defined('EXIT_DATABASE') OR define('EXIT_DATABASE', 8); // database error
defined('EXIT__AUTO_MIN') OR define('EXIT__AUTO_MIN', 9); // lowest automatically-assigned error code
defined('EXIT__AUTO_MAX') OR define('EXIT__AUTO_MAX', 125); // highest automatically-assigned error code

View File

@ -0,0 +1,119 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| DATABASE CONNECTIVITY SETTINGS
| -------------------------------------------------------------------
| This file will contain the settings needed to access your database.
|
| For complete instructions please consult the 'Database Connection'
| page of the User Guide.
|
| -------------------------------------------------------------------
| EXPLANATION OF VARIABLES
| -------------------------------------------------------------------
|
| ['dsn'] The full DSN string describe a connection to the database.
| ['hostname'] The hostname of your database server.
| ['username'] The username used to connect to the database
| ['password'] The password used to connect to the database
| ['database'] The name of the database you want to connect to
| ['dbdriver'] The database driver. e.g.: mysqli.
| Currently supported:
| cubrid, ibase, mssql, mysql, mysqli, oci8,
| odbc, pdo, postgre, sqlite, sqlite3, sqlsrv
| ['dbprefix'] You can add an optional prefix, which will be added
| to the table name when using the Query Builder class
| ['pconnect'] TRUE/FALSE - Whether to use a persistent connection
| ['db_debug'] TRUE/FALSE - Whether database errors should be displayed.
| ['cache_on'] TRUE/FALSE - Enables/disables query caching
| ['cachedir'] The path to the folder where cache files should be stored
| ['char_set'] The character set used in communicating with the database
| ['dbcollat'] The character collation used in communicating with the database
| NOTE: For MySQL and MySQLi databases, this setting is only used
| as a backup if your server is running PHP < 5.2.3 or MySQL < 5.0.7
| (and in table creation queries made with DB Forge).
| There is an incompatibility in PHP with mysql_real_escape_string() which
| can make your site vulnerable to SQL injection if you are using a
| multi-byte character set and are running versions lower than these.
| Sites using Latin-1 or UTF-8 database character set and collation are unaffected.
| ['swap_pre'] A default table prefix that should be swapped with the dbprefix
| ['encrypt'] Whether or not to use an encrypted connection.
|
| 'mysql' (deprecated), 'sqlsrv' and 'pdo/sqlsrv' drivers accept TRUE/FALSE
| 'mysqli' and 'pdo/mysql' drivers accept an array with the following options:
|
| 'ssl_key' - Path to the private key file
| 'ssl_cert' - Path to the public key certificate file
| 'ssl_ca' - Path to the certificate authority file
| 'ssl_capath' - Path to a directory containing trusted CA certificats in PEM format
| 'ssl_cipher' - List of *allowed* ciphers to be used for the encryption, separated by colons (':')
| 'ssl_verify' - TRUE/FALSE; Whether verify the server certificate or not ('mysqli' only)
|
| ['compress'] Whether or not to use client compression (MySQL only)
| ['stricton'] TRUE/FALSE - forces 'Strict Mode' connections
| - good for ensuring strict SQL while developing
| ['ssl_options'] Used to set various SSL options that can be used when making SSL connections.
| ['failover'] array - A array with 0 or more data for connections if the main should fail.
| ['save_queries'] TRUE/FALSE - Whether to "save" all executed queries.
| NOTE: Disabling this will also effectively disable both
| $this->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
);

View File

@ -0,0 +1,24 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$_doctypes = array(
'xhtml11' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">',
'xhtml1-strict' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
'xhtml1-trans' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',
'xhtml1-frame' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">',
'xhtml-basic11' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">',
'html5' => '<!DOCTYPE html>',
'html4-strict' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">',
'html4-trans' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
'html4-frame' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">',
'mathml1' => '<!DOCTYPE math SYSTEM "http://www.w3.org/Math/DTD/mathml1/mathml.dtd">',
'mathml2' => '<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">',
'svg10' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">',
'svg11' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">',
'svg11-basic' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">',
'svg11-tiny' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">',
'xhtml-math-svg-xh' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">',
'xhtml-math-svg-sh' => '<!DOCTYPE svg:svg PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">',
'xhtml-rdfa-1' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">',
'xhtml-rdfa-2' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd">'
);

View File

@ -0,0 +1,103 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| Foreign Characters
| -------------------------------------------------------------------
| This file contains an array of foreign characters for transliteration
| conversion used by the Text helper
|
*/
$foreign_characters = array(
'/ä|æ|ǽ/' => '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'
);

View File

@ -0,0 +1,13 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------------
| Hooks
| -------------------------------------------------------------------------
| This file lets you define "hooks" to extend CI without hacking the core
| files. Please see the user guide for info:
|
| https://codeigniter.com/user_guide/general/hooks.html
|
*/

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@ -0,0 +1,19 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------------
| Memcached settings
| -------------------------------------------------------------------------
| Your Memcached servers can be specified below.
|
| See: https://codeigniter.com/user_guide/libraries/caching.html#memcached
|
*/
$config = array(
'default' => array(
'hostname' => '127.0.0.1',
'port' => '11211',
'weight' => '1',
),
);

View File

@ -0,0 +1,84 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
|--------------------------------------------------------------------------
| Enable/Disable Migrations
|--------------------------------------------------------------------------
|
| Migrations are disabled by default for security reasons.
| You should enable migrations whenever you intend to do a schema migration
| and disable it back when you're done.
|
*/
$config['migration_enabled'] = FALSE;
/*
|--------------------------------------------------------------------------
| Migration Type
|--------------------------------------------------------------------------
|
| Migration file names may be based on a sequential identifier or on
| a timestamp. Options are:
|
| 'sequential' = Sequential migration naming (001_add_blog.php)
| 'timestamp' = Timestamp migration naming (20121031104401_add_blog.php)
| Use timestamp format YYYYMMDDHHIISS.
|
| Note: If this configuration value is missing the Migration library
| defaults to 'sequential' for backward compatibility with CI2.
|
*/
$config['migration_type'] = 'timestamp';
/*
|--------------------------------------------------------------------------
| Migrations table
|--------------------------------------------------------------------------
|
| This is the name of the table that will store the current migrations state.
| When migrations runs it will store in a database table which migration
| level the system is at. It then compares the migration level in this
| table to the $config['migration_version'] if they are not the same it
| will migrate up. This must be set.
|
*/
$config['migration_table'] = 'migrations';
/*
|--------------------------------------------------------------------------
| Auto Migrate To Latest
|--------------------------------------------------------------------------
|
| If this is set to TRUE when you load the migrations class and have
| $config['migration_enabled'] set to TRUE the system will auto migrate
| to your latest migration (whatever $config['migration_version'] is
| set to). This way you do not have to call migrations anywhere else
| in your code to have the latest migration.
|
*/
$config['migration_auto_latest'] = FALSE;
/*
|--------------------------------------------------------------------------
| Migrations version
|--------------------------------------------------------------------------
|
| This is used to set migration version that the file system should be on.
| If you run $this->migration->current() this is the version that schema will
| be upgraded / downgraded to.
|
*/
$config['migration_version'] = 0;
/*
|--------------------------------------------------------------------------
| Migrations Path
|--------------------------------------------------------------------------
|
| Path to your migrations folder.
| Typically, it will be within your application path.
| Also, writing permission is required within the migrations path.
|
*/
$config['migration_path'] = APPPATH.'migrations/';

View File

@ -0,0 +1,167 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| MIME TYPES
| -------------------------------------------------------------------
| This file contains an array of mime types. It is used by the
| Upload class to help identify allowed file types.
|
*/
return array(
'hqx' => array('application/mac-binhex40', 'application/mac-binhex', 'application/x-binhex40', 'application/x-mac-binhex40'),
'cpt' => 'application/mac-compactpro',
'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain'),
'bin' => array('application/macbinary', 'application/mac-binary', 'application/octet-stream', 'application/x-binary', 'application/x-macbinary'),
'dms' => 'application/octet-stream',
'lha' => 'application/octet-stream',
'lzh' => 'application/octet-stream',
'exe' => array('application/octet-stream', 'application/x-msdownload'),
'class' => 'application/octet-stream',
'psd' => array('application/x-photoshop', 'image/vnd.adobe.photoshop'),
'so' => 'application/octet-stream',
'sea' => 'application/octet-stream',
'dll' => 'application/octet-stream',
'oda' => 'application/oda',
'pdf' => array('application/pdf', 'application/force-download', 'application/x-download', 'binary/octet-stream'),
'ai' => array('application/pdf', 'application/postscript'),
'eps' => 'application/postscript',
'ps' => 'application/postscript',
'smi' => 'application/smil',
'smil' => 'application/smil',
'mif' => 'application/vnd.mif',
'xls' => array('application/vnd.ms-excel', 'application/msexcel', 'application/x-msexcel', 'application/x-ms-excel', 'application/x-excel', 'application/x-dos_ms_excel', 'application/xls', 'application/x-xls', 'application/excel', 'application/download', 'application/vnd.ms-office', 'application/msword'),
'ppt' => array('application/powerpoint', 'application/vnd.ms-powerpoint', 'application/vnd.ms-office', 'application/msword'),
'pptx' => array('application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/x-zip', 'application/zip'),
'wbxml' => 'application/wbxml',
'wmlc' => 'application/wmlc',
'dcr' => 'application/x-director',
'dir' => 'application/x-director',
'dxr' => 'application/x-director',
'dvi' => 'application/x-dvi',
'gtar' => 'application/x-gtar',
'gz' => 'application/x-gzip',
'gzip' => 'application/x-gzip',
'php' => array('application/x-httpd-php', 'application/php', 'application/x-php', 'text/php', 'text/x-php', 'application/x-httpd-php-source'),
'php4' => 'application/x-httpd-php',
'php3' => 'application/x-httpd-php',
'phtml' => 'application/x-httpd-php',
'phps' => 'application/x-httpd-php-source',
'js' => array('application/x-javascript', 'text/plain'),
'swf' => 'application/x-shockwave-flash',
'sit' => 'application/x-stuffit',
'tar' => 'application/x-tar',
'tgz' => array('application/x-tar', 'application/x-gzip-compressed'),
'z' => 'application/x-compress',
'xhtml' => 'application/xhtml+xml',
'xht' => 'application/xhtml+xml',
'zip' => array('application/x-zip', 'application/zip', 'application/x-zip-compressed', 'application/s-compressed', 'multipart/x-zip'),
'rar' => array('application/x-rar', 'application/rar', 'application/x-rar-compressed'),
'mid' => 'audio/midi',
'midi' => 'audio/midi',
'mpga' => 'audio/mpeg',
'mp2' => 'audio/mpeg',
'mp3' => array('audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'),
'aif' => array('audio/x-aiff', 'audio/aiff'),
'aiff' => array('audio/x-aiff', 'audio/aiff'),
'aifc' => 'audio/x-aiff',
'ram' => 'audio/x-pn-realaudio',
'rm' => 'audio/x-pn-realaudio',
'rpm' => 'audio/x-pn-realaudio-plugin',
'ra' => 'audio/x-realaudio',
'rv' => 'video/vnd.rn-realvideo',
'wav' => array('audio/x-wav', 'audio/wave', 'audio/wav'),
'bmp' => array('image/bmp', 'image/x-bmp', 'image/x-bitmap', 'image/x-xbitmap', 'image/x-win-bitmap', 'image/x-windows-bmp', 'image/ms-bmp', 'image/x-ms-bmp', 'application/bmp', 'application/x-bmp', 'application/x-win-bitmap'),
'gif' => 'image/gif',
'jpeg' => array('image/jpeg', 'image/pjpeg'),
'jpg' => array('image/jpeg', 'image/pjpeg'),
'jpe' => array('image/jpeg', 'image/pjpeg'),
'jp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'j2k' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'jpf' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'jpg2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'jpx' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'jpm' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'mj2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'mjp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'png' => array('image/png', 'image/x-png'),
'tiff' => 'image/tiff',
'tif' => 'image/tiff',
'css' => array('text/css', 'text/plain'),
'html' => array('text/html', 'text/plain'),
'htm' => array('text/html', 'text/plain'),
'shtml' => array('text/html', 'text/plain'),
'txt' => 'text/plain',
'text' => 'text/plain',
'log' => array('text/plain', 'text/x-log'),
'rtx' => 'text/richtext',
'rtf' => 'text/rtf',
'xml' => array('application/xml', 'text/xml', 'text/plain'),
'xsl' => array('application/xml', 'text/xsl', 'text/xml'),
'mpeg' => 'video/mpeg',
'mpg' => 'video/mpeg',
'mpe' => 'video/mpeg',
'qt' => 'video/quicktime',
'mov' => 'video/quicktime',
'avi' => array('video/x-msvideo', 'video/msvideo', 'video/avi', 'application/x-troff-msvideo'),
'movie' => 'video/x-sgi-movie',
'doc' => array('application/msword', 'application/vnd.ms-office'),
'docx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip', 'application/msword', 'application/x-zip'),
'dot' => array('application/msword', 'application/vnd.ms-office'),
'dotx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip', 'application/msword'),
'xlsx' => array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/vnd.ms-excel', 'application/msword', 'application/x-zip'),
'word' => array('application/msword', 'application/octet-stream'),
'xl' => 'application/excel',
'eml' => 'message/rfc822',
'json' => array('application/json', 'text/json'),
'pem' => array('application/x-x509-user-cert', 'application/x-pem-file', 'application/octet-stream'),
'p10' => array('application/x-pkcs10', 'application/pkcs10'),
'p12' => 'application/x-pkcs12',
'p7a' => 'application/x-pkcs7-signature',
'p7c' => array('application/pkcs7-mime', 'application/x-pkcs7-mime'),
'p7m' => array('application/pkcs7-mime', 'application/x-pkcs7-mime'),
'p7r' => 'application/x-pkcs7-certreqresp',
'p7s' => 'application/pkcs7-signature',
'crt' => array('application/x-x509-ca-cert', 'application/x-x509-user-cert', 'application/pkix-cert'),
'crl' => array('application/pkix-crl', 'application/pkcs-crl'),
'der' => 'application/x-x509-ca-cert',
'kdb' => 'application/octet-stream',
'pgp' => 'application/pgp',
'gpg' => 'application/gpg-keys',
'sst' => 'application/octet-stream',
'csr' => 'application/octet-stream',
'rsa' => 'application/x-pkcs7',
'cer' => array('application/pkix-cert', 'application/x-x509-ca-cert'),
'3g2' => 'video/3gpp2',
'3gp' => array('video/3gp', 'video/3gpp'),
'mp4' => 'video/mp4',
'm4a' => 'audio/x-m4a',
'f4v' => array('video/mp4', 'video/x-f4v'),
'flv' => 'video/x-flv',
'webm' => 'video/webm',
'aac' => 'audio/x-acc',
'm4u' => 'application/vnd.mpegurl',
'm3u' => 'text/plain',
'xspf' => 'application/xspf+xml',
'vlc' => 'application/videolan',
'wmv' => array('video/x-ms-wmv', 'video/x-ms-asf'),
'au' => 'audio/x-au',
'ac3' => 'audio/ac3',
'flac' => 'audio/x-flac',
'ogg' => array('audio/ogg', 'video/ogg', 'application/ogg'),
'kmz' => array('application/vnd.google-earth.kmz', 'application/zip', 'application/x-zip'),
'kml' => array('application/vnd.google-earth.kml+xml', 'application/xml', 'text/xml'),
'ics' => 'text/calendar',
'ical' => 'text/calendar',
'zsh' => 'text/x-scriptzsh',
'7zip' => array('application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'),
'cdr' => array('application/cdr', 'application/coreldraw', 'application/x-cdr', 'application/x-coreldraw', 'image/cdr', 'image/x-cdr', 'zz-application/zz-winassoc-cdr'),
'wma' => array('audio/x-ms-wma', 'video/x-ms-asf'),
'jar' => array('application/java-archive', 'application/x-java-application', 'application/x-jar', 'application/x-compressed'),
'svg' => array('image/svg+xml', 'application/xml', 'text/xml'),
'vcf' => 'text/x-vcard',
'srt' => array('text/srt', 'text/plain'),
'vtt' => array('text/vtt', 'text/plain'),
'ico' => array('image/x-icon', 'image/x-ico', 'image/vnd.microsoft.icon')
);

View File

@ -0,0 +1,14 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------------
| Profiler Sections
| -------------------------------------------------------------------------
| This file lets you determine whether or not various sections of Profiler
| data are displayed when the Profiler is enabled.
| Please see the user guide for info:
|
| https://codeigniter.com/user_guide/general/profiling.html
|
*/

View File

@ -0,0 +1,82 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------------
| URI ROUTING
| -------------------------------------------------------------------------
| This file lets you re-map URI requests to specific controller functions.
|
| Typically there is a one-to-one relationship between a URL string
| and its corresponding controller class/method. The segments in a
| URL normally follow this pattern:
|
| example.com/class/method/id/
|
| In some instances, however, you may want to remap this relationship
| so that a different class/function is called than the one
| corresponding to the URL.
|
| Please see the user guide for complete details:
|
| https://codeigniter.com/user_guide/general/routing.html
|
| -------------------------------------------------------------------------
| RESERVED ROUTES
| -------------------------------------------------------------------------
|
| There are three reserved routes:
|
| $route['default_controller'] = 'welcome';
|
| This route indicates which controller class should be loaded if the
| URI contains no data. In the above example, the "welcome" class
| would be loaded.
|
| $route['404_override'] = 'errors/page_missing';
|
| This route will tell the Router which controller/method to use if those
| provided in the URL cannot be matched to a valid route.
|
| $route['translate_uri_dashes'] = FALSE;
|
| This is not exactly a route, but allows you to automatically route
| controller and method names that contain dashes. '-' isn't a valid
| class or method name character, so it requires translation.
| When you set this option to TRUE, it will replace ALL dashes in the
| controller and method URI segments.
|
| Examples: my-controller/index -> my_controller/index
| my-controller/my-method -> my_controller/my_method
*/
$route['default_controller'] = 'main';
$route['404_override'] = 'error404';
$route['translate_uri_dashes'] = FALSE;
$route['r/(:any)'] = 'redirect/p/$1';
$route['admin/(:any)'] = 'admin/$1';
$route['admin'] = 'admin/dashboard/index';
$route['tools/csgo/(:any)'] = 'tools/csgo/index/$1';
$route['tools'] = 'tools/tools/index';
$route['watch/(:any)/(:any)'] = 'watch/index/$1/$2';
$route['tools/generator/(:any)'] = 'tools/generators/$1';
$route['user/getPosts'] = 'user/getPosts';
$route['user/getComments'] = 'user/getComments';
$route['user/getBlogPosts'] = 'user/getBlogPosts';
$route['user/publishPost'] = 'user/publishPost';
$route['user/switchFollowing'] = 'user/switchFollowing';
$route['user/getReportModal'] = 'user/getReportModal';
$route['user/(:any)'] = 'user/index/$1';
$route['user/(:any)/(:any)'] = 'user/$2/$1';
$route['user/(:any)/post/(:any)'] = 'user/single_post/$1/$2';
$route['en'] = 'lang/change/en';
$route['de'] = 'lang/change/de';
$route['fr'] = 'lang/change/fr';
$route['f/(:any)'] = '/file/open/$1';
$route['f/(:any)/(:any)'] = '/file/open/$1/$2';
$route['logout'] = 'login/logout';
$route['activate'] = 'login/activate';
$route['register'] = 'login';
$route['reset/(:any)/(:any)'] = 'login/reset/$1/$2';
$route['tools/twitch/(:any)'] = 'tools/twitch?twich-channel=$1';
$route['projects/(:any)'] = 'projects/index/$1';
$route['tools/encrypter/(:any)'] = 'tools/encrypter/index/$1';

View File

@ -0,0 +1,64 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| SMILEYS
| -------------------------------------------------------------------
| This file contains an array of smileys for use with the emoticon helper.
| Individual images can be used to replace multiple smileys. For example:
| :-) and :) use the same image replacement.
|
| Please see user guide for more info:
| https://codeigniter.com/user_guide/helpers/smiley_helper.html
|
*/
$smileys = array(
// smiley image name width height alt
':-)' => array('grin.gif', '19', '19', 'grin'),
':lol:' => array('lol.gif', '19', '19', 'LOL'),
':cheese:' => array('cheese.gif', '19', '19', 'cheese'),
':)' => array('smile.gif', '19', '19', 'smile'),
';-)' => array('wink.gif', '19', '19', 'wink'),
';)' => array('wink.gif', '19', '19', 'wink'),
':smirk:' => array('smirk.gif', '19', '19', 'smirk'),
':roll:' => array('rolleyes.gif', '19', '19', 'rolleyes'),
':-S' => array('confused.gif', '19', '19', 'confused'),
':wow:' => array('surprise.gif', '19', '19', 'surprised'),
':bug:' => array('bigsurprise.gif', '19', '19', 'big surprise'),
':-P' => array('tongue_laugh.gif', '19', '19', 'tongue laugh'),
'%-P' => array('tongue_rolleye.gif', '19', '19', 'tongue rolleye'),
';-P' => array('tongue_wink.gif', '19', '19', 'tongue wink'),
':P' => array('raspberry.gif', '19', '19', 'raspberry'),
':blank:' => array('blank.gif', '19', '19', 'blank stare'),
':long:' => array('longface.gif', '19', '19', 'long face'),
':ohh:' => array('ohh.gif', '19', '19', 'ohh'),
':grrr:' => array('grrr.gif', '19', '19', 'grrr'),
':gulp:' => array('gulp.gif', '19', '19', 'gulp'),
'8-/' => array('ohoh.gif', '19', '19', 'oh oh'),
':down:' => array('downer.gif', '19', '19', 'downer'),
':red:' => array('embarrassed.gif', '19', '19', 'red face'),
':sick:' => array('sick.gif', '19', '19', 'sick'),
':shut:' => array('shuteye.gif', '19', '19', 'shut eye'),
':-/' => array('hmm.gif', '19', '19', 'hmmm'),
'>:(' => array('mad.gif', '19', '19', 'mad'),
':mad:' => array('mad.gif', '19', '19', 'mad'),
'>:-(' => array('angry.gif', '19', '19', 'angry'),
':angry:' => array('angry.gif', '19', '19', 'angry'),
':zip:' => array('zip.gif', '19', '19', 'zipper'),
':kiss:' => array('kiss.gif', '19', '19', 'kiss'),
':ahhh:' => array('shock.gif', '19', '19', 'shock'),
':coolsmile:' => array('shade_smile.gif', '19', '19', 'cool smile'),
':coolsmirk:' => array('shade_smirk.gif', '19', '19', 'cool smirk'),
':coolgrin:' => array('shade_grin.gif', '19', '19', 'cool grin'),
':coolhmm:' => array('shade_hmm.gif', '19', '19', 'cool hmm'),
':coolmad:' => array('shade_mad.gif', '19', '19', 'cool mad'),
':coolcheese:' => array('shade_cheese.gif', '19', '19', 'cool cheese'),
':vampire:' => array('vampire.gif', '19', '19', 'vampire'),
':snake:' => array('snake.gif', '19', '19', 'snake'),
':exclaim:' => array('exclaim.gif', '19', '19', 'exclaim'),
':question:' => array('question.gif', '19', '19', 'question')
);

View File

@ -0,0 +1,149 @@
<?php
/**
* Justboil.me - a TinyMCE image upload plugin
* jbimages/config.php
*
* Released under Creative Commons Attribution 3.0 Unported License
*
* License: http://creativecommons.org/licenses/by/3.0/
* Plugin info: http://justboil.me/
* Author: Viktor Kuzhelnyi
*
* Version: 2.3 released 23/06/2013
*/
/*
------------------------------------------------------------------
IMPORTANT NOTE! In case, when TinyMCEs folder is not protected with HTTP Authorisation,
you should require is_allowed() function to return
`TRUE` if user is authorised,
`FALSE` - otherwise
is_allowed() can be found in jbimages/is_allowed.php
This is intended to protect upload script, if someone guesses it's url.
So, here we go...
| -------------------------------------------------------------------
|
| Path to upload target folder, relative to domain name. NO TRAILING SLASH!
| Example: if an image is acessed via http://www.example.com/images/somefolder/image.jpg, you should specify here:
|
| $config['img_path'] = '/images/somefolder';
|
| -------------------------------------------------------------------*/
$config['img_path'] = '/files'; // Relative to domain name
$config['upload_path'] = $_SERVER['DOCUMENT_ROOT'] . $config['img_path']; // Physical path. [Usually works fine like this]
/*-------------------------------------------------------------------
|
| Allowed image filetypes. Specifying something other, than image types will result in error.
|
| $config['allowed_types'] = 'gif|jpg|png';
|
| -------------------------------------------------------------------*/
$config['allowed_types'] = 'gif|jpg|png|jpeg|JPG|JPEG';
/*-------------------------------------------------------------------
|
| Maximum image file size in kilobytes. This value can't exceed value set in php.ini.
| Set to `0` if you want to use php.ini default:
|
| $config['max_size'] = 0;
|
| -------------------------------------------------------------------*/
$config['max_size'] = 0;
/*-------------------------------------------------------------------
|
| Maximum image width. Set to `0` for no limit:
|
| $config['max_width'] = 0;
|
| -------------------------------------------------------------------*/
$config['max_width'] = 0;
/*-------------------------------------------------------------------
|
| Maximum image height. Set to `0` for no limit:
|
| $config['max_height'] = 0;
|
| -------------------------------------------------------------------*/
$config['max_height'] = 0;
/*-------------------------------------------------------------------
|
| Allow script to resize image that exceeds maximum width or maximum height (or both)
| If set to `TRUE`, image will be resized to fit maximum values (proportions are saved)
| If set to `FALSE`, user will recieve an error message.
|
| $config['allow_resize'] = TRUE;
|
| -------------------------------------------------------------------*/
$config['allow_resize'] = TRUE;
/*-------------------------------------------------------------------
|
| Image name encryption
| If set to `TRUE`, image file name will be encrypted in something like 7fdd57742f0f7b02288feb62570c7813.jpg
| If set to `FALSE`, original filenames will be preserved
|
| $config['encrypt_name'] = TRUE;
|
| -------------------------------------------------------------------*/
$config['encrypt_name'] = TRUE;
/*-------------------------------------------------------------------
|
| How to behave if 2 or more files with the same name are uploaded:
| `TRUE` - the entire file will be overwritten
| `FALSE` - a number will be added to the newly uploaded file name
|
| -------------------------------------------------------------------*/
$config['overwrite'] = FALSE;
/*-------------------------------------------------------------------
|
| Target upload folder relative to document root. Most likely, you will not need to change this setting.
|
| -------------------------------------------------------------------*/
/*-------------------------------------------------------------------
|
| THAT IS ALL. HAVE A NICE DAY! )))
|
| -------------------------------------------------------------------*/
?>

View File

@ -0,0 +1,211 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| USER AGENT TYPES
| -------------------------------------------------------------------
| This file contains four arrays of user agent data. It is used by the
| User Agent Class to help identify browser, platform, robot, and
| mobile device data. The array keys are used to identify the device
| and the array values are used to set the actual name of the item.
*/
$platforms = array(
'windows nt 10.0' => 'Windows 10',
'windows nt 6.3' => 'Windows 8.1',
'windows nt 6.2' => 'Windows 8',
'windows nt 6.1' => 'Windows 7',
'windows nt 6.0' => 'Windows Vista',
'windows nt 5.2' => 'Windows 2003',
'windows nt 5.1' => 'Windows XP',
'windows nt 5.0' => 'Windows 2000',
'windows nt 4.0' => 'Windows NT 4.0',
'winnt4.0' => 'Windows NT 4.0',
'winnt 4.0' => 'Windows NT',
'winnt' => 'Windows NT',
'windows 98' => 'Windows 98',
'win98' => 'Windows 98',
'windows 95' => 'Windows 95',
'win95' => 'Windows 95',
'windows phone' => 'Windows Phone',
'windows' => 'Unknown Windows OS',
'android' => 'Android',
'blackberry' => 'BlackBerry',
'iphone' => 'iOS',
'ipad' => 'iOS',
'ipod' => 'iOS',
'os x' => 'Mac OS X',
'ppc mac' => 'Power PC Mac',
'freebsd' => 'FreeBSD',
'ppc' => 'Macintosh',
'linux' => 'Linux',
'debian' => 'Debian',
'sunos' => 'Sun Solaris',
'beos' => 'BeOS',
'apachebench' => 'ApacheBench',
'aix' => 'AIX',
'irix' => 'Irix',
'osf' => 'DEC OSF',
'hp-ux' => 'HP-UX',
'netbsd' => 'NetBSD',
'bsdi' => 'BSDi',
'openbsd' => 'OpenBSD',
'gnu' => 'GNU/Linux',
'unix' => 'Unknown Unix OS',
'symbian' => 'Symbian OS'
);
// The order of this array should NOT be changed. Many browsers return
// multiple browser types so we want to identify the sub-type first.
$browsers = array(
'OPR' => 'Opera',
'Flock' => 'Flock',
'Edge' => 'Spartan',
'Chrome' => 'Chrome',
// Opera 10+ always reports Opera/9.80 and appends Version/<real version> to the user agent string
'Opera.*?Version' => 'Opera',
'Opera' => 'Opera',
'MSIE' => 'Internet Explorer',
'Internet Explorer' => 'Internet Explorer',
'Trident.* rv' => 'Internet Explorer',
'Shiira' => 'Shiira',
'Firefox' => 'Firefox',
'Chimera' => 'Chimera',
'Phoenix' => 'Phoenix',
'Firebird' => 'Firebird',
'Camino' => 'Camino',
'Netscape' => 'Netscape',
'OmniWeb' => 'OmniWeb',
'Safari' => 'Safari',
'Mozilla' => 'Mozilla',
'Konqueror' => 'Konqueror',
'icab' => 'iCab',
'Lynx' => 'Lynx',
'Links' => 'Links',
'hotjava' => 'HotJava',
'amaya' => 'Amaya',
'IBrowse' => 'IBrowse',
'Maxthon' => 'Maxthon',
'Ubuntu' => 'Ubuntu Web Browser'
);
$mobiles = array(
// legacy array, old values commented out
'mobileexplorer' => 'Mobile Explorer',
// 'openwave' => 'Open Wave',
// 'opera mini' => 'Opera Mini',
// 'operamini' => 'Opera Mini',
// 'elaine' => 'Palm',
'palmsource' => 'Palm',
// 'digital paths' => 'Palm',
// 'avantgo' => 'Avantgo',
// 'xiino' => 'Xiino',
'palmscape' => 'Palmscape',
// 'nokia' => 'Nokia',
// 'ericsson' => 'Ericsson',
// 'blackberry' => 'BlackBerry',
// 'motorola' => 'Motorola'
// Phones and Manufacturers
'motorola' => 'Motorola',
'nokia' => 'Nokia',
'palm' => 'Palm',
'iphone' => 'Apple iPhone',
'ipad' => 'iPad',
'ipod' => 'Apple iPod Touch',
'sony' => 'Sony Ericsson',
'ericsson' => 'Sony Ericsson',
'blackberry' => 'BlackBerry',
'cocoon' => 'O2 Cocoon',
'blazer' => 'Treo',
'lg' => 'LG',
'amoi' => 'Amoi',
'xda' => 'XDA',
'mda' => 'MDA',
'vario' => 'Vario',
'htc' => 'HTC',
'samsung' => 'Samsung',
'sharp' => 'Sharp',
'sie-' => 'Siemens',
'alcatel' => 'Alcatel',
'benq' => 'BenQ',
'ipaq' => 'HP iPaq',
'mot-' => 'Motorola',
'playstation portable' => 'PlayStation Portable',
'playstation 3' => 'PlayStation 3',
'playstation vita' => 'PlayStation Vita',
'hiptop' => 'Danger Hiptop',
'nec-' => 'NEC',
'panasonic' => 'Panasonic',
'philips' => 'Philips',
'sagem' => 'Sagem',
'sanyo' => 'Sanyo',
'spv' => 'SPV',
'zte' => 'ZTE',
'sendo' => 'Sendo',
'nintendo dsi' => 'Nintendo DSi',
'nintendo ds' => 'Nintendo DS',
'nintendo 3ds' => 'Nintendo 3DS',
'wii' => 'Nintendo Wii',
'open web' => 'Open Web',
'openweb' => 'OpenWeb',
// Operating Systems
'android' => 'Android',
'symbian' => 'Symbian',
'SymbianOS' => 'SymbianOS',
'elaine' => 'Palm',
'series60' => 'Symbian S60',
'windows ce' => 'Windows CE',
// Browsers
'obigo' => 'Obigo',
'netfront' => 'Netfront Browser',
'openwave' => 'Openwave Browser',
'mobilexplorer' => 'Mobile Explorer',
'operamini' => 'Opera Mini',
'opera mini' => 'Opera Mini',
'opera mobi' => 'Opera Mobile',
'fennec' => 'Firefox Mobile',
// Other
'digital paths' => 'Digital Paths',
'avantgo' => 'AvantGo',
'xiino' => 'Xiino',
'novarra' => 'Novarra Transcoder',
'vodafone' => 'Vodafone',
'docomo' => 'NTT DoCoMo',
'o2' => 'O2',
// Fallback
'mobile' => 'Generic Mobile',
'wireless' => 'Generic Mobile',
'j2me' => 'Generic Mobile',
'midp' => 'Generic Mobile',
'cldc' => 'Generic Mobile',
'up.link' => 'Generic Mobile',
'up.browser' => 'Generic Mobile',
'smartphone' => 'Generic Mobile',
'cellphone' => 'Generic Mobile'
);
// There are hundreds of bots but these are the most common.
$robots = array(
'googlebot' => 'Googlebot',
'msnbot' => 'MSNBot',
'baiduspider' => 'Baiduspider',
'bingbot' => 'Bing',
'slurp' => 'Inktomi Slurp',
'yahoo' => 'Yahoo',
'ask jeeves' => 'Ask Jeeves',
'fastcrawler' => 'FastCrawler',
'infoseek' => 'InfoSeek Robot 1.0',
'lycos' => 'Lycos',
'yandex' => 'YandexBot',
'mediapartners-google' => 'MediaPartners Google',
'CRAZYWEBCRAWLER' => 'Crazy Webcrawler',
'adsbot-google' => 'AdsBot Google',
'feedfetcher-google' => 'Feedfetcher Google',
'curious george' => 'Curious George'
);

View File

@ -0,0 +1,22 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class About extends MY_Controller {
public function __construct() {
parent::__construct('about');
}
public function index()
{
$this->load->view('header', ['active' => 'about', 'title' => lang('about_sitetitle')]);
$this->load->view('about');
$this->load->view('footer');
}
public function impressum() {
$this->load->view('header', ['active' => '', 'title' => 'Impressum']);
$this->load->view('impressum');
$this->load->view('footer');
}
}

View File

@ -0,0 +1,188 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Blog extends MY_Controller {
function __construct() {
parent::__construct('blog');
$this->load->model('BlogModel', '', TRUE);
$this->load->helper('url');
}
function index() {
$offset = isset($_GET['page']) ? intval($_GET['page']) - 1 : 0;
$data = $this->BlogModel->getAllPosts('', 5, $offset);
$this->load->view('header', ['active' => 'blog', 'title' => 'Blog', 'additionalStyles' => ['blog.css']]);
$this->load->view('blog/first', ['categories' => $this->BlogModel->getCategories()]);
if(!empty($data)) {
$pageCount = $this->BlogModel->getPostPageCount('', 5);
$this->load->view('blog/postList', ['pageContent' => $data]);
} else {
$pageCount = 1;
$this->load->view('blog/postListError', ['search' => '']);
}
$this->load->view('footer', ['additionalScripts' => ['lib/jquery.twbsPagination.min.js']]);
$this->load->view('blog/pagination', ['pageCount' => $pageCount]);
}
function search($query = null) {
if(isset($_GET['q'])) {
redirect(base_url('blog/search/' . urlencode($this->input->get('q'))));
} elseif($query == null) {
redirect(base_url('blog'));
} else {
$query = $this->security->xss_clean(urldecode($query));
$offset = isset($_GET['page']) ? intval($_GET['page']) - 1 : 0;
$data = $this->BlogModel->getAllPosts($query, 5, $offset);
$this->load->view('header', ['active' => 'blog', 'title' => 'Blog', 'additionalStyles' => ['blog.css']]);
$this->load->view('blog/first', ['categories' => $this->BlogModel->getCategories()]);
if(!empty($data)) {
$pageCount = $this->BlogModel->getPostPageCount($query, 5);
$this->load->view('blog/postList', ['pageContent' => $data]);
} else {
$pageCount = 1;
$this->load->view('blog/postListError', ['search' => $query]);
}
$this->load->view('footer');
$this->load->view('blog/pagination', ['pageCount' => $pageCount]);
}
}
function category($category = null) {
if($category == null) {
redirect(base_url('blog'));
} else {
$category = urldecode($category);
$offset = isset($_GET['page']) ? intval($_GET['page']) - 1 : 0;
$data = $this->BlogModel->getCategoryPosts($category, 5, $offset);
$this->load->view('header', ['active' => 'blog', 'title' => 'Blog', 'additionalStyles' => ['blog.css']]);
$this->load->view('blog/first', ['categories' => $this->BlogModel->getCategories()]);
if(!empty($data)) {
$pageCount = $this->BlogModel->getPostPageCount('', 5);
$this->load->view('blog/postList', ['pageContent' => $data]);
} else {
$pageCount = 1;
$this->load->view('blog/postListError', ['search' => $category]);
}
$this->load->view('footer');
$this->load->view('blog/pagination', ['pageCount' => $pageCount]);
}
}
public function tag($tag = null) {
if($tag == null) {
redirect(base_url('blog'));
}
$tag = urldecode($tag);
$offset = isset($_GET['page']) ? intval($_GET['page']) -1 : 0;
$data = $this->BlogModel->getTagPosts($tag, 5, $offset);
$this->load->view('header', ['active' => 'blog', 'title' => 'Blog', 'additionalStyles' => ['blog.css']]);
$this->load->view('blog/first', ['categories' => $this->BlogModel->getCategories()]);
if(!empty($data)) {
$pageCount = $this->BlogModel->getPostPageCount('', 5);
$this->load->view('blog/postList', ['pageContent' => $data]);
} else {
$pageCount = 1;
$this->load->view('blog/postListError', ['search' => $tag]);
}
$this->load->view('footer');
$this->load->view('blog/pagination', ['pageCount' => $pageCount]);
}
function add() {
if(isset($_SESSION['user']) && $_SESSION['user']['rank'] >= 6) {
redirect('/admin/blog/add');
} else {
redirect('/blog');
}
}
function post($postTitle = null) {
if($postTitle == null) {
redirect("/blog");
} elseif(isset($_GET['q'])) {
redirect('/blog?q=' . $_GET['q']);
} else {
$post = $this->BlogModel->getPost($postTitle);
if(empty($post)) {
redirect('/blog');
} else {
$post['randomPosts'] = $this->BlogModel->getRandomPosts($post['postID']);
$post['comments'] = $this->BlogModel->getComments($post['postID']);
$post['tags'] = $this->BlogModel->getTags($post['postID']);
$post['hasLiked'] = isset($_SESSION['user']) && !empty($_SESSION['user']) ? $this->BlogModel->hasAlreadyLiked($post['postID'], $_SESSION['user']['ID']) : false;
$sameCategoryPosts = $this->BlogModel->getCategoryPostsByID($post['postCategoryID'], 3, $post['postID']);
$post['prevPost'] = $this->BlogModel->getPrevPost($post['postID']);
$post['nextPost'] = $this->BlogModel->getNextPost($post['postID']);
$this->BlogModel->incrementViews($post['postID']);
$this->load->view('header', ['active' => 'blog', 'title' => $post['postTitle'], 'additionalStyles' => ['posts_list.css', 'blog.css']]);
$this->load->view('blog/first', ['categoryPosts' => $sameCategoryPosts, 'categories' => $this->BlogModel->getCategories()]);
$this->load->view('blog/post', $post);
$this->load->view('footer', ['additionalScripts' => ['lib/prism.js', 'blog.js']]);
}
}
}
function like() {
if(!isset($_SESSION['user']) || $_SESSION['user']['username'] == NULL) {
echo "no-user";
} else {
if(!$this->BlogModel->hasAlreadyLiked($_POST['postID'], $_SESSION['user']['ID'])) {
echo 'true:';
echo $this->BlogModel->addLike($_POST['postID'], $_SESSION['user']['ID'])['likeCount'];
} else {
echo 'false:';
echo $this->BlogModel->removeLike($_POST['postID'], $_SESSION['user']['ID'])['likeCount'];
}
}
}
function comment() {
if(!isset($_SESSION['user']) || $_SESSION['user']['username'] == NULL) {
$result = ['type' => 'error', 'message' => 'Nicht eingeloggt'];
} else {
$url = $this->input->post('url');
$url = str_replace('/blog/post/', '', $url);
$comment = $this->BlogModel->addCommentByUrl($url, $_SESSION['user']['ID'], $this->input->post('comment'), false, NULL);
$result = ['type' => 'success', 'content' => [
'username' => $_SESSION['user']['username'],
'displayname' => $_SESSION['user']['displayname'],
'profilePic' => $_SESSION['user']['profilePic'],
'date' => date('d.m.Y H: i \\U\\h\\r', strtotime($comment['date_created']))
]];
}
header("Content-Type: application/json");
echo json_encode($result);
}
function getComments() {
$url = $this->input->get('url');
$url = str_replace('/blog/post/', '', $url);
$comments = $this->BlogModel->getCommentsByUrl($url);
foreach($comments as $comment) {
$comment['author'] = $this->BlogModel->getAuthorData($comment['user_id']);
$this->load->view('blog/comment', $comment);
}
}
}

View File

@ -0,0 +1,16 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Donate extends MY_Controller {
public function __construct() {
parent::__construct('donate');
}
public function index()
{
$this->load->view('header', ['active' => 'donate', 'title' => lang('donate_title')]);
$this->load->view('donate');
$this->load->view('footer', ['additionalScripts' => ['donate.js']]);
}
}

View File

@ -0,0 +1,16 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Error404 extends MY_Controller {
public function __construct() {
parent::__construct();
}
public function index()
{
$this->load->view('header', ['active' => '', 'title' => '404 - Seite nicht gefunden!']);
$this->load->view('404', ['random' => rand(1, 3)]);
$this->load->view('footer');
}
}

View File

@ -0,0 +1,17 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Faq extends MY_Controller {
public function __construct() {
parent::__construct('faq');
}
public function index()
{
$this->load->view('header', ['active' => 'faq', 'title' => 'FAQ - Frequently Asked Questions']);
$this->load->view('faq');
$this->load->view('footer');
}
}

View File

@ -0,0 +1,90 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class File extends MY_Controller
{
public function __construct()
{
parent::__construct();
}
public function open($title = null, $download = false)
{
if ($title == null) {
redirect(base_url());
} else {
$file = $this->db->query('SELECT name, type, path FROM files WHERE name = ?', [urldecode($title)])->result_array();
if (!empty($file)) {
$file = $file[0];
// TODO: FIX!
// header("Content-length: " . $file['size']);
header("Content-type: " . $file['type']);
if ($download) {
header("Content-Disposition: attachment; filename=" . $file['name'] . '.' . explode('/', $file['type'])[1]);
}
$imagePath = 'files/' . (isset($_GET['w']) || isset($_GET['h']) ? 'thumbs/' : '') . $file['name'] . (isset($_GET['w']) ? '_w' . $_GET['w'] : '') . (isset($_GET['h']) ? '_h' . $_GET['h'] : '') . '.' . explode('.', $file['path'])[1];
if (!file_exists($imagePath)) {
$config['image_library'] = 'gd2';
$config['source_image'] = $file['path'];
if (isset($_GET['w'])) {
$config['width'] = $_GET['w'];
}
if (isset($_GET['h'])) {
$config['height'] = $_GET['h'];
}
$config['maintain_ratio'] = TRUE;
$config['new_image'] = $imagePath;
$this->load->library('image_lib', $config);
if (!$this->image_lib->resize()) {
echo $this->image_lib->display_errors();
}
}
readfile(base_url($imagePath));
exit;
} else {
redirect(base_url());
}
}
}
public function thumbnail($videoID = null)
{
if ($videoID !== null && strlen($videoID) == 11) {
$thumbnail_url = "http://img.youtube.com/vi/" . $videoID . "/maxresdefault.jpg";
header("Content-Type: image/jpeg");
readfile($thumbnail_url);
} else {
redirect(base_url());
}
}
public function csgo($category = null, $item = null)
{
if ($category == null || $item == null) {
redirect(base_url());
} else {
if ($category == 'weapon') {
header("Content-Type: image/png");
readfile('http://csgo-stats.com/img/weapons/3d/' . $item . '.png');
} elseif ($category == 'map') {
header("Content-Type: image/jpeg");
readfile('http://csgo-stats.com/img/maps/' . $item . '.jpg');
} elseif ($category = 'mapicon') {
header("Content-Type: image/png");
readfile('http://csgo-stats.com/img/maps/icons/' . $item . '.png');
}
}
}
public function weapon()
{
header("Content-Type: image/jpeg");
readfile('http://csgo-stats.com/img/weapons/bg.jpg');
}
}

View File

@ -0,0 +1,29 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Lang extends MY_Controller
{
public function __construct()
{
parent::__construct();
$this->load->helper('url');
$this->load->helper('cookie');
}
function change($lang = "en")
{
if (isset($_GET['r']) && !empty($_GET['r'])) {
$url = urldecode(base64_decode($_GET['r']));
} else {
$url = base_url();
}
if (in_array($lang, ['de', 'en', 'fr'])) {
$this->session->set_userdata('site_lang', $lang);
setcookie('language', $lang, time() + 7776000, '/');
} else {
$this->session->set_userdata('site_lang', 'en');
setcookie('language', 'en', time() + 7776000, '/');
}
redirect($url);
}
}

View File

@ -0,0 +1,263 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Login extends MY_Controller
{
public function __construct()
{
parent::__construct('login');
$this->load->model('LoginModel', '', TRUE);
}
public function index()
{
if (isset($_POST['logout']) && $_POST['logout'] == 'Logout') {
$_POST['logout'] = '';
redirect("/logout");
}
if (isset($_SESSION['user'])) {
redirect(base_url('user/' . $_SESSION['user']['username']));
}
if (isset($_POST['loginname']) && !empty($_POST['loginname']) && isset($_POST['loginPassword']) && !empty($_POST['loginPassword'])) {
$_SESSION['loggedOut'] = false;
$rememberMe = isset($_POST['rememberMe']) ? $_POST['rememberMe'] : 'off';
$this->LoginModel->login($_POST['loginname'], $_POST['loginPassword'], $rememberMe);
isset($_GET['r']) && !empty($_GET['r']) ? redirect(base64_decode($_GET['r'])) : redirect(base_url('login'));
}
$notice = isset($_SESSION['notice']) ? $_SESSION['notice'] : '';
$_SESSION['notice'] = '';
$this->load->view('header', ['active' => 'login', 'title' => 'Login', 'additionalStyles' => ['login.css']]);
$this->load->view('login', ['notice' => $notice]);
$this->load->view('footer', ['additionalScripts' => ['login.js']]);
}
public function register()
{
$notice = ['state' => false,
'errors' => ['username', 'email', 'password', 'passwordRepeat'],
'messages' => [],
'endMessage' => lang('register_error_occured')];
$username = $this->input->post('username');
$email = $this->input->post('email');
$password = $this->input->post('password');
$passwordRepeat = $this->input->post('passwordRepeat');
// Username
if (isset($username)) {
if (!preg_match('/[^A-Za-z0-9._]/', $username)) {
if ($this->LoginModel->isAvailable($username) == "") {
if (strlen($username) >= 4) {
unset($notice['errors'][array_search('username', $notice['errors'])]);
} else {
$notice['messages'][] = ['type' => 'danger',
'headline' => lang('register_error_username_short'),
'body' => lang('register_error_username_short_body')];
}
} else {
$notice['messages'][] = ['type' => 'danger',
'headline' => lang('register_error_username_occupied'),
'body' => lang('register_error_username_occupied_body')];
}
} else {
$notice['messages'][] = ['type' => 'danger',
'headline' => lang('register_error_username_characters'),
'body' => lang('register_error_username_characters_body')];
}
} else {
$notice['messages'][] = ['type' => 'danger',
'headline' => lang('register_error_username_missing'),
'body' => lang('register_error_username_missing_body')];
}
// Email
if (isset($email)) {
$isRegistered = $this->LoginModel->isRegistered($email);
if ($isRegistered == "") {
$trashMail = $this->LoginModel->isTrashMail($email);
if (!$trashMail) {
unset($notice['errors'][array_search('email', $notice['errors'])]);
} else {
$notice['messages'][] = ['type' => 'danger',
'headline' => lang('register_error_trashmail'),
'body' => lang('register_error_trashmail')];
}
} else {
$notice['messages'][] = ['type' => 'danger',
'headline' => lang('register_error_email_occupied'),
'body' => lang('register_error_email_occupied')];
}
} else {
$notice['messages'][] = ['type' => 'danger',
'headline' => lang('register_error_email_missing'),
'body' => lang('register_error_email_missing')];
}
// Password
if (isset($password)) {
if (isset($passwordRepeat)) {
if ($password == $passwordRepeat) {
if ($this->LoginModel->checkPassword($password)) {
unset($notice['errors'][array_search('password', $notice['errors'])]);
unset($notice['errors'][array_search('passwordRepeat', $notice['errors'])]);
} else {
$notice['messages'][] = ['type' => 'danger',
'headline' => lang('register_error_pw_unsecure'),
'body' => lang('register_error_unsecure_body')];
}
} else {
$notice['messages'][] = ['type' => 'danger',
'headline' => lang('register_error_pw_different'),
'body' => lang('register_error_pw_different_body')];
}
} else {
$notice['messages'][] = ['type' => 'danger',
'headline' => lang('register_error_pw_second_missing'),
'body' => lang('register_error_pw_second_missing_body')];
}
} else {
$notice['messages'][] = ['type' => 'danger',
'headline' => lang('register_error_pw_missing'),
'body' => lang('register_error_pw_missing_body')];
}
// Register
if (empty($notice['errors'])) {
$this->LoginModel->register($username, $email, $password, 0); // TODO: Implement login method
$notice['messages'][] = ['type' => 'success',
'headline' => sprintf(lang('register_welcome'), $username),
'body' => lang('register_welcome_body')];
$notice['state'] = true;
$notice['endMessage'] = lang('register_end_message_success');
}
header("Content-Type: application/json");
echo json_encode($notice);
}
public function logout()
{
unset($_SESSION['user']);
$this->load->helper('cookie');
delete_cookie('rememberMe');
delete_cookie('token');
$notice = '<div class="alert alert-warning alert-dismissible"><button type="button" class="close" data-dismiss="alert" aria-label="Schließen"><span aria-hidden="true">&times;</span></button><strong>Abgemeldet!</strong> Du wurdest erfolgreich abgemeldet! Ich hoffe wir sehen uns bald wieder.</div>';
$_SESSION['notice'] = $notice;
$_SESSION['loggedOut'] = true;
$redirect = isset($_GET['redirect']) ? urldecode(base64_decode($_GET['redirect'])) : base_url("login");
redirect($redirect);
}
public function activate($emailHash = '', $activationKey = '')
{
if ($emailHash !== '' && $activationKey !== '' && strlen($activationKey) == 256 && strlen($emailHash) == 32) {
$email_id = $this->LoginModel->hashMailExists($emailHash, $activationKey);
if ($email_id !== NULL) {
$this->LoginModel->activateMail($email_id);
$_SESSION['notice'] = '<div class="alert alert-success alert-dismissible"><button type="button" class="close" data-dismiss="alert" aria-label="Schließen"><span aria-hidden="true">&times;</span></button><strong>Dein Account wurde erfolgreich bestätigt!</strong> Du kannst dich jetzt mit deinem Passwort einloggen und alle Funktionen dieser Seite ausreizen!</div>';
} else {
$_SESSION['notice'] = '<div class="alert alert-danger alert-dismissible"><button type="button" class="close" data-dismiss="alert" aria-label="Schließen"><span aria-hidden="true">&times;</span></button><strong>Dein Account konnte nicht aktiviert werden!</strong> Möglicherweise ist der Aktivierungs-Schlüssel falsch. Sollte dieser Fehler weiterhin auftreten, kontaktiere bitte das Website-Team!</div>';
}
} else {
$_SESSION['notice'] = '<div class="alert alert-danger alert-dismissible"><button type="button" class="close" data-dismiss="alert" aria-label="Schließen"><span aria-hidden="true">&times;</span></button><strong>Ein Fehler ist aufgetreten!</strong> Der angegebene Aktivierungs-Schlüssel ist ungültig und entspricht nicht den Anforderungen. Der Account kann nicht aktiviert werden!</div>';
}
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"] = '<b>Bitte gib deinen Nutzernamen oder deine E-Mail-Adresse an!</b> 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'] = '<b>Dieser Nutzer existiert nicht!</b> 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 = "<a href='" . base_url('reset/' . base64_encode($loginData['username']) . '/' . $resetKey) . "'></a>";
// $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'] = "<b>Eine E-Mail wurde an dich gesendet!</b> 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'] .= "<div class='alert alert-success' role='alert'><b>Dein Passwort wurde geändert!</b> Du kannst dich nun damit einloggen</div>";
$notice['type'] = true;
} else {
$notice['message'] .= "<div class='alert alert-danger' role='alert'><b>Wiederholtes Passwort falsch!</b> Das Passwort, das du wiederholt hast, stimmt nicht mit dem eigentlichen überein.</div>";
}
} else {
$notice['message'] .= "<div class='alert alert-danger' role='alert'><b>Zu unsicheres Passwort!</b> Dein Passwort sollte mindest 8 Zeichen lang sein und jeweils einen Groß-, einen Kleinbuchstaben, eine Zahl und ein Sonderzeichen enthalten.</div>";
}
} else {
$notice['message'] .= "<div class='alert alert-danger' role='alert'><b>Ungültiger Account</b> 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!</div>";
}
} else {
$notice['message'] .= "<div class='alert alert-danger' role='alert'><b>Wiederholtes Passwort fehlend!</b> Bitte gib dein Passwort zur Bestätigung ein zweites Mal ein!</div>";
}
echo json_encode($notice);
header('Content-Type: application/json');
exit;
}
$this->load->view('header', ['active' => 'reset_password', 'title' => 'Neues Passwort festlegen', 'additionalStyles' => ['login.css']]);
$this->load->view('network/password_reset', ['notice' => $notice['message']]);
$this->load->view('footer', ['additionalScripts' => ['login.js']]);
}
}

View File

@ -0,0 +1,154 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
use Coduo\PHPHumanizer\DateTimeHumanizer;
class Main extends MY_Controller
{
public function __construct()
{
parent::__construct('home');
$this->load->model('YoutubePlayerModel', '', TRUE);
$this->load->model('SocialMediaModel', '', TRUE);
$this->load->model('UserModel', '', TRUE);
$this->load->model('NotificationModel', '', TRUE);
$this->load->model('PostsModel', '', TRUE);
}
public function index()
{
// TODO: Add twitch, instagram and 500px as further services
// TODO: Receive posts async
// $this->SocialMediaModel->getTwitterPosts();
// $this->SocialMediaModel->getYouTubeVideos();
// $this->load->library('email');
// $config['protocol'] = 'sendmail';
// $config['mailpath'] = '/sendmail';
// $config['charset'] = 'iso-8859-1';
// $config['wordwrap'] = TRUE;
//
// $this->email->initialize($config);
//
// $this->email->from('info@kingofdog.eu', 'KingOfDog.de');
// $this->email->to('struckatmarcel@gmail.com');
//
// $this->email->subject('Email Test');
// $this->email->message('Testing the email class.');
//
// $this->email->send();
// ini_set('SMTP', 'smtp.gmail.com');
// ini_set('smtp_port', '465');
//
$video = $this->YoutubePlayerModel->newestVids(1)[0];
$currentlyActiveUsers = $this->UserModel->getActiveUsers(5);
$newestUsers = $this->UserModel->getNewestUsers(5);
$newestPosts = $this->PostsModel->getNewestPosts(3, 128);
$this->load->view('header', ['active' => 'home', 'title' => lang('home_sitetitle'), 'additionalStyles' => ['lib/social-media-font.css', 'sortlist.css', 'home.css']]);
$this->load->view('home', ['video' => $video, 'currentlyActiveUsers' => $currentlyActiveUsers, 'newestUsers' => $newestUsers, 'newestPosts' => $newestPosts]);
$this->load->view('footer', ['additionalScripts' => ['lib/isotope.pkgd.min.js', 'home.js']]);
}
public function getPosts()
{
$amount = (int)$this->input->get('amount');
$offset = $this->input->get('offset') * $amount;
$category = $this->input->get('category');
if ($category == "*") {
$items = $this->SocialMediaModel->getPosts($amount, $offset);
} else {
$items = $this->SocialMediaModel->getPostsOfCategory($amount, $offset, explode(".", $category)[1]);
}
$font_sizes = [27, 27, 24, 24, 24, 20, 16, 16, 14, 14, 12, 11, 10];
foreach ($items as $item) {
$post_date = $item['post_date'];
$item['post_date'] = DateTimeHumanizer::difference(new \DateTime(), new \DateTime("@$post_date"), $_SESSION['site_lang']);
$item['font_sizes'] = $font_sizes;
$this->load->view('post_list_entry', $item);
}
}
public function addFeedback()
{
$url = $this->input->post('url');
$message = $this->input->post('message');
$anonymous = filter_var($this->input->post('anonymous'), FILTER_VALIDATE_BOOLEAN);
var_dump($anonymous);
$email = NULL;
$userID = NULL;
if (!$anonymous && !empty($_SESSION['user'])) {
$userID = $_SESSION['user']['ID'];
}
$this->GeneralModel->addFeedback($url, $message, $anonymous, $userID, $email);
}
public function contactTeam()
{
$message = $this->input->post('message');
$email = $this->input->post('email');
$notice = ['type' => false, 'message' => ''];
if (isset($message) && $message != "") {
if ($email != "" || isset($_SESSION['user'])) {
if (isset($_SESSION['user']))
$email = $this->UserModel->getUser($_SESSION['user']['username'])[0]['email'];
if (preg_match("/[A-Za-z._]+@[A-Za-z._]+\.[A-Za-z._]+/", $email)) {
// TODO: Send contact mail
$notice['type'] = true;
$notice['message'] = "Deine Nachricht wurde versendet!";
} else {
$notice['message'] = "Die eingebene E-Mail-Adresse ist ungültig!";
}
} else {
$notice['message'] = "Bitte gib eine E-Mail-Adresse ein oder melde dich an.";
}
} else {
$notice['message'] = "Bitte gib eine zu versendende Nachricht ein.";
}
echo json_encode($notice);
header('Content-Type: application/json');
}
public function stillAlive()
{
if (isset($_SESSION['user']) && !empty($_SESSION['user'])) {
$this->UserModel->updateOnline(intval($_SESSION['user']['ID']));
}
redirect(base_url());
}
public function getNotifications()
{
header('Content-Type: application/json');
if (!isset($_SESSION['user']) || empty($_SESSION['user'])) {
echo json_encode(['status' => 'error', 'message' => 'Du musst eingeloggt sein, um Benachrichtigungen zu empfangen.']);
exit;
}
$returnData = ['status' => 'success', 'notifications' => []];
$notifications = $this->NotificationModel->getUserNotifications($_SESSION['user']['ID']);
$returnData['notifications'] = $notifications;
echo json_encode($returnData);
}
public function notificationsRead() {
header('Content-Type: application/json');
if(!isset($_SESSION['user']) || empty($_SESSION['user'])) {
echo json_encode(['success' => false, 'message' => 'Du musst eingeloggt sein, um Benachrichtigungen zu empfangen.']);
exit;
}
$this->NotificationModel->markUserNotificationsAsRead($_SESSION['user']['ID']);
echo json_encode(['success' => true]);
}
}

View File

@ -0,0 +1,216 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Posts extends MY_Controller
{
public function __construct()
{
parent::__construct('profile', 'language_names', 'country_names');
$this->load->model('UserModel', '', TRUE);
$this->load->model('PostsModel', '', TRUE);
}
public function index()
{
if (isset($_SESSION['user']) && !empty($_SESSION['user']))
redirect(base_url('posts/feed'));
redirect(base_url('posts/popular'));
}
public function feed()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']))
redirect(base_url('posts'));
$this->load->view('header', ['active' => 'feed', 'title' => 'Dein Feed', 'additionalStyles' => ['posts_list.css']]);
$this->load->view('network/posts/posts_list', ['active', 'feed']);
$this->load->view('footer', ['additionalScripts' => ['post_feed.js', 'post_search.js']]);
}
public function getFeedPosts()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']))
redirect(base_url('posts'));
$amount = (int)$this->input->get('amount');
$offset = (int)$this->input->get('offset') * $amount;
$posts = $this->PostsModel->getFeedPosts($_SESSION['user']['ID'], $amount, $offset);
foreach ($posts as $post) {
$this->load->view('network/posts/post_item', $post);
}
}
public function popular()
{
$this->load->view('header', ['active' => 'popular', 'title' => 'Beliebte Posts', 'additionalStyles' => ['posts_list.css']]);
$this->load->view('network/posts/posts_list', ['active' => 'popular']);
$this->load->view('footer', ['additionalScripts' => ['post_feed.js', 'post_search.js']]);
}
public function getPopularPosts()
{
$amount = (int)$this->input->get('amount');
$offset = (int)$this->input->get('offset') * $amount;
$posts = $this->PostsModel->getPopularPosts($amount, $offset);
foreach ($posts as $post) {
$this->load->view('network/posts/post_item', $post);
}
}
public function addPostLike()
{
header('Content-Type: application/json');
if (!isset($_SESSION['user']) || empty($_SESSION['user'])) {
echo json_encode([
'success' => false,
'message' => lang('post_like_account_missing')
]);
exit;
}
$postUUID = $this->input->post('postUUID');
$isLiked = $this->PostsModel->addPostLikeByUUID($postUUID, $_SESSION['user']['ID']);
$likeCount = $this->PostsModel->getPostLikeCountByUUID($postUUID);
echo json_encode([
'success' => true,
'message' => 'Du hast den Post erfolgreich bewertet.',
'isLiked' => $isLiked,
'likeCount' => $likeCount
]);
}
public function search()
{
$type = $this->input->get('type');
$query = $this->input->get('q');
$rank = $this->input->get('rank');
$this->load->view('header', ['active' => 'search', 'title' => 'Suche', 'additionalStyles' => ['posts_list.css']]);
$this->load->view('network/posts/posts_list', ['active' => 'search', 'search' => ['query' => $query, 'type' => $type, 'rank' => $rank]]);
$this->load->view('footer', ['additionalScripts' => ['post_search.js']]);
}
public function getSearchPosts()
{
$type = $this->input->get('type');
$query = $this->input->get('query');
$rank = $type == 'type-users' ? $this->input->get('rank') : '';
$lang = $type == 'type-users' ? $this->input->get('lang') : '';
$country = $type == 'type-users' ? $this->input->get('country') : '';
$amount = (int)$this->input->get('amount');
$offset = (int)$this->input->get('offset') * $amount;
if ($type !== 'type-users' && $rank !== '' && $lang !== '' && strlen($query) < 4) {
exit;
}
if (($type == 'type-all' && $offset == 0) || $type == 'type-users') {
$userAmount = $type == 'type-users' ? $amount : 3;
$userOffset = $type == 'type-users' ? $offset : 0;
$users = $this->UserModel->searchUsers($query, $rank, $country, $lang, $userAmount, $userOffset);
if (!empty($users)) {
if($offset == 0) {
echo '<h2>Nutzer (' . sizeof($users) . ')</h2>';
}
echo '<div class="row">';
foreach ($users as $user) {
$user['about'] = strlen($user['about']) > 60 ? substr($user['about'], 0, 60) . '...' : $user['about'];
echo $this->load->view('network/user/user_overview_card', $user, true);
}
echo '</div>';
}
}
if ($type == 'type-all' || $type == 'type-posts') {
$posts = $this->PostsModel->searchPosts($query, $amount, $offset);
if (!empty($posts) && $offset == 0) {
echo '<h2>Posts</h2>';
}
foreach ($posts as $post) {
$this->load->view('network/posts/post_item', $post);
}
}
}
public function getAvailableCountries() {
$countries = $this->UserModel->getAvailableCountries();
foreach ($countries as $i => $country) {
$countries[$i]['name'] = lang('country_' . $country['country']);
}
header('Content-Type: application/json');
echo json_encode(['countries' => $countries]);
}
public function getAvailableLanguages() {
$languages = $this->UserModel->getAvailableLanguages();
foreach ($languages as $i => $language) {
$languages[$i]['name'] = lang('lang_' . strtolower($language['language']));
}
header('Content-Type: application/json');
echo json_encode(['languages' => $languages]);
}
public function getReportModal() {
$this->load->view('network/posts/report_modal');
}
public function reportPost() {
header('Content-Type: application/json');
$uuid = $this->input->post('uuid');
$reason = $this->input->post('reason');
$reasonText = $this->input->post('explanation');
if($reason == '') {
echo json_encode(['success' => false, 'message' => 'Bitte wähle einen Grund für deine Meldung aus.']);
exit;
}
$allowedReasons = ['hatespeech', 'racism', 'terrorism', 'abuse', 'violence', 'copyright', 'spam', 'technical-issue'];
if(!array_search($reason, $allowedReasons)) {
echo json_encode(['success' => false, 'message' => 'Bitte wähle einen standardmäßig vorhandenen und validen Grund für die Meldung aus.']);
exit;
}
if(!$this->PostsModel->isUUIDValid($uuid)) {
echo json_encode(['success' => true, 'message' => 'Der ausgewählte Post ist nicht (mehr) vorhanden. Sollte es sich hierbei um ein Irrtum handeln, verfasse bitte über den Button unten rechts ein Feedback.']);
exit;
}
$this->PostsModel->reportPost($uuid, $reason, $reasonText);
echo json_encode(['success' => true, 'message' => 'Vielen Dank für das Melden dieses Posts. Wir werden schnellstmöglich angemessene Aktionen unternehmen.']);
}
public function getDeleteModal() {
header('Content-Type: application/json');
if(!isset($_SESSION['user'])) {
echo json_encode(['success' => false, 'message' => 'Du musst eingeloggt sein, um die Posts deines Accounts zu löschen']);
exit;
}
$uuid = $this->input->post('uuid');
$post = $this->PostsModel->getPostByUUID($uuid);
if(empty($post)) {
echo json_encode(['success' => false, 'message' => 'Der angegebene Post existiert nicht.']);
exit;
}
}
}

View File

@ -0,0 +1,91 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
use Coduo\PHPHumanizer\DateTimeHumanizer;
class Projects extends MY_Controller
{
public function __construct()
{
parent::__construct('projects');
$this->load->model('ProjectsModel', '', TRUE);
}
public function index($album = 'all')
{
$collections = $this->ProjectsModel->getCategories($album);
$content = $this->ProjectsModel->getEntries('all');
$this->load->view('header', ['active' => 'projects', 'title' => lang('projects_sitetitle'), 'additionalStyles' => ['sortlist.css', 'projects.css']]);
$this->load->view('projects', ['content' => $content, 'album' => $album, 'collections' => $collections]);
$this->load->view('footer', ['additionalScripts' => ['lib/isotope.pkgd.min.js', 'projects.js']]);
}
public function entry($entry = null)
{
if ($entry == null) {
redirect(base_url('projects'));
} else {
if ($this->ProjectsModel->checkIfNameExists($entry)) {
$data = $this->ProjectsModel->getEntryByName($entry, $_SESSION['site_lang']);
$timecreated = strtotime($data['datetime']);
$data['time_existing'] = DateTimeHumanizer::difference(new \DateTime(), new \DateTime("@$timecreated"), $_SESSION['site_lang']);
$voteCount = $this->ProjectsModel->getVoteCount($data['ID']);
$voteType = 0;
if (isset($_SESSION['user']['ID']))
$voteType = $this->ProjectsModel->getUserVoteType($data['ID'], $_SESSION['user']['ID']);
$prevProject = $this->ProjectsModel->getPrevProject($data['ID']);
$nextProject = $this->ProjectsModel->getNextProject($data['ID']);
$this->load->view('header', ['active' => 'projects', 'title' => $data['title'] . ' - ' . lang('projects_sitetitle'), 'additionalStyles' => ['project_entry.css']]);
$this->load->view('projects_entry', ['data' => $data, 'voteCount' => $voteCount, 'voteType' => $voteType, 'prevProject' => $prevProject, 'nextProject' => $nextProject]);
$this->load->view('footer', ['additionalScripts' => ['project-entry.js']]);
}
}
}
public function getEntries()
{
$items = $this->ProjectsModel->getEntries('all');
var_dump($items);
foreach ($items as $item) {
var_dump($item);
$this->load->view('projects_list_entry', $item);
}
}
public function addVote()
{
header('Content-Type: text/json');
if (!isset($_SESSION['user']) || empty($_SESSION['user'])) {
$result = ['type' => 'error', 'msg' => 'Du musst eingeloggt sein, um dieses Projekt zu bewerten.'];
echo json_encode($result);
exit;
}
$projectID = $this->input->post('id');
$voteType = $this->input->post('type');
if (!isset($projectID) || !isset($voteType)) {
$result = ['type' => 'error', 'msg' => 'Es ist ein unbekannter Fehler aufgetreten.'];
echo json_encode($result);
exit;
}
$projectID = intval($projectID);
$voteType = intval($voteType);
if ($voteType < 0)
$voteType = -1;
else
$voteType = 1;
$this->ProjectsModel->addVote($projectID, $_SESSION['user']['ID'], $voteType);
$voteCount = $this->ProjectsModel->getVoteCount($projectID);
$result = ['type' => 'success', 'msg' => 'Vielen Dank für deine Bewertung.', 'voteCount' => $voteCount];
echo json_encode($result);
}
}

View File

@ -0,0 +1,45 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Redirect extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('RedirectModel', '', TRUE);
}
public function index($redirect = null) {
if($redirect == null) {
redirect(base_url());
} else {
redirect("/r/p/" . $redirect);
}
}
public function p($redirect = null) {
var_dump($redirect);
if($redirect == null) {
if(isset($_SESSION['user']) && $_SESSION['user']['rank'] >= 9) {
$returnMessage = '';
if(isset($_POST['redirectInput']) && !empty($_POST['redirectInput']) && isset($_POST['redirectUrl']) && !empty($_POST['redirectUrl'])) {
$feedback = $this->redirect->insertRedirect($_POST['redirectUrl'], $_POST['redirectInput']);
if($feedback['feedback'] == 'success') {
$returnMessage = '<div class="alert alert-success" role="alert"><strong>Umleitung hinzugefügt!</strong> Code: "' .$_POST['redirectInput']. '" Ziel-Url: "' .$_POST['redirectUrl']. '"</div>';
} else {
$returnMessage = '<div class="alert alert-danger" role="alert"><strong>Error!</strong> ' .$feedback['message']. '</div>';
}
}
$this->load->view('header', ['title' => 'Redirect-Manager', 'active' => '']);
$this->load->view('redirect', ['message' => $returnMessage, 'allItems' => $this->RedirectModel->getItems()]);
$this->load->view('footer');
} else {
header("Location: /");
}
} else {
$url = $this->RedirectModel->getUrl($redirect);
header("Location: " . $url);
}
}
}

View File

@ -0,0 +1,219 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Csgo extends MY_Controller
{
public function __construct()
{
parent::__construct('tools');
}
public function index($user = 'kingofdog')
{
if (isset($_GET['q']) && !empty($_GET['q'])) redirect(base_url('tools/csgo/' . $_GET['q']));
$this->load->view('header', ['active' => 'csgo', 'title' => 'CS:GO Tools', 'additionalStyles' => ['csgo.css']]);
$this->load->view('tools/csgo', ['user' => $user]);
$this->load->view('footer', ['additionalScripts' => ['lib/nanobar.min.js', 'csgo.js']]);
}
public function data($user)
{
$data = simplexml_load_string(file_get_contents('http://steamcommunity.com/id/' . $user . '/?xml=1'));
$a['player_exists'] = true;
$a['player_owns_game'] = true;
$a['id64'] = (string)$data->steamID64;
$a['id'] = (string)$data->steamID;
$a['name'] = (string)$data->realname;
$a['location'] = (string)$data->location;
$a['onStat'] = (string)$data->onlineState;
$a['statusMes'] = (string)$data->stateMessage;
$a['avatar'] = (string)$data->avatarFull;
$a['vacban'] = (string)$data->vacBanned;
$a['tradeban'] = (string)$data->tradeBanState;
if($a['id'] == "") {
$a['player_exists'] = false;
$a['player_owns_game'] = false;
echo json_encode($a);
exit;
}
$status = ['in-game' => 'In Game', 'online' => 'Online', 'offline' => 'Offline', 'busy' => 'Busy', 'away' => 'Away'];
$a['status'] = $status[$a['onStat']];
$successful = file_get_contents('http://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v0002/?appid=730&key=79E0709F4D4157636A833312C91639FC&steamid=' . $a['id64'], true);
if($successful == false) {
goto go_on;
}
$data = json_decode($successful, true)['playerstats'];
$stats = $data['stats'];
$kills = [];
foreach ($stats as $stat) {
$a[$stat['name']] = $stat['value'];
if (strpos($stat['name'], 'total_kills_') !== false && !in_array($stat['name'], ['total_kills_headshot', 'total_kills_enemy_weapon', 'total_kills_enemy_blinded', 'total_kills_knife_fight', 'total_kills_against_zoomed_sniper'])) {
$kills[] = $stat['value'] . '_' . explode('_', $stat['name'])[2];
}
}
natsort($kills);
$a['kills'] = array_reverse($kills);
if ($a['last_match_wins'] > $a['last_match_rounds'] / 2) {
$a['last_match_end_status'] = 2;
} elseif ($a['last_match_wins'] < $a['last_match_rounds'] / 2) {
$a['last_match_end_status'] = 0;
} else {
$a['last_match_end_status'] = 1;
}
if(isset($data['achievements'])) {
$ach = $data['achievements'];
foreach ($ach as $entry) {
$a[$entry['name']] = $entry['achieved'];
}
$a['total_time_played'] = round($a['total_time_played'] / 60 / 60);
} else {
$a['player_owns_game'] = false;
}
go_on:
$data = json_decode(file_get_contents('http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=79E0709F4D4157636A833312C91639FC&steamids=' . $a['id64']), true)['response'];
$data = $data['players'];
$data = $data[0];
$a['lastseen'] = $data['lastlogoff'];
$a['url'] = $data['profileurl'];
$a['created'] = $data['timecreated'];
$a['country'] = $data['loccountrycode'];
$a['weapon_list'] = [
1 => ["Desert Eagle", "deagle"],
2 => ["Dual Berettas", "elite"],
3 => ["Five-SeveN", "fiveseven"],
4 => ["Glock-18", "glock"],
7 => ["AK-47", "ak47"],
8 => ["AUG", "aug"],
9 => ["AWP", "awp"],
10 => ["FAMAS", "famas"],
11 => ["G3SG1", "g3sg1"],
13 => ["Galil AR", "galilar"],
14 => ["M249", "m249"],
16 => ["M4A4", "m4a4"],
17 => ["MAC-10", "mac10"],
19 => ["P90", "p90"],
24 => ["UMP-45", "ump45"],
25 => ["XM1014", "xm1014"],
26 => ["PP-Bizon", "bizon"],
27 => ["MAG-7", "mag7"],
28 => ["Negev", "negev"],
29 => ["Sawed-Off", "sawedoff"],
30 => ["Tec-9", "tec9"],
31 => ["Zeus x27", "taser"],
32 => ["P2000", "hkp2000"],
33 => ["MP7", "m79"],
34 => ["MP9", "mp9"],
35 => ["Nova", "nova"],
36 => ["P250", "p250"],
38 => ["SCAR-20", "scar20"],
39 => ["SG 553", "sg556"],
40 => ["SSG 08", "ssg08"],
42 => ["Knife", "knife_ct"],
43 => ["Flashbang", "flashbang"],
44 => ["High Explosive Grenade", "hegrenade"],
45 => ["Smoke Grenade", "smokegrenade"],
46 => ["Molotov", "molotov"],
47 => ["Decoy Grenade", "decoy"],
48 => ["Incendiary Grenade", "incgrenade"],
59 => ["Knife", "knife"],
60 => ["M4A1-S", "m4a1"],
61 => ["USP-S", "usp"],
63 => ["CZ75-Auto", "cz75"],
64 => ["R8 Revolver", "deagle"],
];
if(isset($a['total_kills_headshot'])) {
$a['total_headshot_rate'] = number_format(
$a['total_kills_headshot'] / $a['total_kills'] * 100,
1,
lang('csgo_comma'),
lang('csgo_point')) . " %";
$a['total_kills'] = number_format($a['total_kills'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_time_played'] = number_format($a['total_time_played'], 0, lang('csgo_comma'), lang('csgo_point')) . " h";
$a['total_accuracy'] = number_format($a['total_shots_hit'] / $a['total_shots_fired'] * 100, 1, lang('csgo_comma'), lang('csgo_point')) . " %";
$a['total_mvps'] = number_format($a['total_mvps'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_win_rate'] = number_format($a['total_wins'] / $a['total_rounds_played'] * 100, 1, lang('csgo_comma'), lang('csgo_point')) . " %";
$a['total_planted_bombs'] = number_format($a['total_planted_bombs'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_rescued_hostages'] = number_format($a['total_rescued_hostages'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_result'] = $a['last_match_end_status'] == 2 ? 'win' : '';
$a['last_match_outcome'] = lang('csgo_' . $a['last_match_end_status']);
$a['last_match_favweapon_accuracy'] = number_format($a['last_match_favweapon_hits'] / $a['last_match_favweapon_shots'] * 100, 1, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_kd'] = number_format($a['last_match_kills'] / $a['last_match_deaths'], 2, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_kills'] = number_format($a['last_match_kills'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_deaths'] = number_format($a['last_match_deaths'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_mvps'] = number_format($a['last_match_mvps'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_damage'] = number_format($a['last_match_damage'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_money_spent'] = number_format($a['last_match_money_spent'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_dominations'] = number_format($a['last_match_dominations'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_revenges'] = number_format($a['last_match_revenges'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['last_match_contribution_score'] = number_format($a['last_match_contribution_score'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['favweapons'] = '';
for ($i = 0;
$i < 5;
$i++) {
$weapon = $a['kills'][$i];
$killCount = explode('_', $weapon)[0];
$weaponName = explode('_', $weapon)[1];
$a['favweapons'] .= '<li class="item ' . $weaponName . ' ';
$a['favweapons'] .= $i == 0 ? 'card">' : 'line">';
$a['favweapons'] .= '<h3 class="title"><span class="number">' . ($i + 1);
if ($i > 0) {
$a['favweapons'] .= '. ';
}
$a['favweapons'] .= '</span> ' . $weaponName . '</h3>';
if ($i == 0) {
$a['favweapons'] .= '<img src="' . base_url('file/csgo/weapon/' . $weaponName) . '" class="photo" alt="" />';
} else {
$a['favweapons'] .= ' <svg class="icon"><use xlink:href="#i-' . $weaponName . '"></use></svg>';
}
$a['favweapons'] .= '<p class="stat kills">' . $killCount . '<svg><use xlink:href="#i-kills"></use></svg></p></li>';
}
$a['total_deaths'] = number_format($a['total_deaths'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_kd'] = number_format($a['total_kills'] / $a['total_deaths'], 2, lang('csgo_comma'), lang('csgo_point'));
$a['total_contribution_score'] = number_format($a['total_contribution_score'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_damage_done'] = number_format($a['total_damage_done'], 0, lang('csgo_comma'), lang('csgo_point')) . ' HP';
$a['total_shots_fired'] = number_format($a['total_shots_fired'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_shots_hit'] = number_format($a['total_shots_hit'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_kills_headshot'] = number_format($a['total_kills_headshot'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_dominations'] = number_format($a['total_dominations'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_revenges'] = number_format($a['total_revenges'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_matches_played'] = number_format($a['total_matches_played'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_matches_won'] = number_format($a['total_matches_won'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_matches_won_percent'] = number_format($a['total_matches_won'] / $a['total_matches_played'] * 100, 2, lang('csgo_comma'), lang('csgo_point')) . ' %';
$a['total_rounds_played'] = number_format($a['total_rounds_played'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_wins'] = number_format($a['total_wins'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_wins_pistolround'] = number_format($a['total_wins_pistolround'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_defused_bombs'] = number_format($a['total_defused_bombs'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_rescued_hostages'] = number_format($a['total_rescued_hostages'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_kills_enemy_blinded'] = number_format($a['total_kills_enemy_blinded'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_kills_knife_fight'] = number_format($a['total_kills_knife_fight'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_kills_against_zoomed_sniper'] = number_format($a['total_kills_against_zoomed_sniper'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_kills_taser'] = number_format($a['total_kills_taser'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_kills_enemy_weapon'] = number_format($a['total_kills_enemy_weapon'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_money_earned'] = number_format($a['total_money_earned'], 0, lang('csgo_comma'), lang('csgo_point')) . ' $';
$a['total_weapons_donated'] = number_format($a['total_weapons_donated'], 0, lang('csgo_comma'), lang('csgo_point'));
$a['total_broken_windows'] = number_format($a['total_broken_windows'], 0, lang('csgo_comma'), lang('csgo_point'));
} else {
$a['player_owns_game'] = false;
}
header('Content-Type: application/json');
echo json_encode($a);
}
public function getDefaultPage($user) {
$this->load->view('csgo-tools', ['user' => $user]);
}
}

View File

@ -0,0 +1,25 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Encoder extends MY_Controller {
public function __construct() {
parent::__construct('tools');
}
public function base64() {
$this->load->view('header', ['active' => 'base64-encoder', 'title' => lang('base64_site_title')]);
// $this->load->view('encoder', ['type' => 'base64']);
$this->load->view('tools/encoders/base64');
$this->load->view('footer');
// $this->load->view('encoder_end', ['type' => 'base64']);
}
public function url() {
$this->load->view('header', ['active' => 'url-encoder', 'title' => lang('url_site_title')]);
// $this->load->view('encoder', ['type' => 'url']);
$this->load->view('tools/encoders/url');
$this->load->view('footer');
// $this->load->view('encoder_end', ['type' => 'url']);
}
}

View File

@ -0,0 +1,15 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Encrypter extends MY_Controller {
public function __construct() {
parent::__construct('tools');
}
public function index($active = 'adfgvx') {
$this->load->view('header', ['active' => 'encrypter', 'title' => lang('encrypter_site_title')]);
$this->load->view('tools/encrypter/main', ['active' => $active]);
$this->load->view('footer', ['additionalScripts' => ['encrypters.js']]);
}
}

View File

@ -0,0 +1,30 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Generators extends MY_Controller {
public function __construct() {
parent::__construct('tools');
$this->load->model('NicknameModel', '', TRUE);
}
public function nickname()
{
$this->load->view('header', ['active' => 'nickname-generator', 'title' => lang('nick_site_title')]);
$this->load->view('tools/generators/nickname', ["counter" => "unendlich"]);
$this->load->view('footer', ['additionalScripts' => ['nickname.js']]);
}
public function nickname_functions()
{
$this->NicknameModel->generateName();
}
public function password()
{
$this->load->view('header', ['active' => 'password-generator', 'title' => lang('pass_site_title'), 'additionalStyles' => ['tools.css']]);
$this->load->view('tools/generators/password');
$this->load->view('footer', ['additionalScripts' => ['password.js']]);
}
}

View File

@ -0,0 +1,92 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Minecraft extends MY_Controller {
public function __construct() {
parent::__construct('tools');
$this->load->model('minecraftModel', '', TRUE);
}
public function index() {
$this->load->view('header', ['active' => '', 'title' => 'Error']);
$this->load->view('under_construction');
$this->load->view('footer');
}
public function servers() {
$this->load->view('header', ['active' => '', 'title' => 'Error']);
$this->load->view('under_construction');
$this->load->view('footer');
}
public function players() {
$this->load->view('header', ['active' => '', 'title' => 'Error']);
$this->load->view('under_construction');
$this->load->view('footer');
}
/*public function server() {
$serverip = isset($_GET['serverip']) ? $_GET['serverip'] : 'gommehd.net';
$errorIP = $this->MinecraftModel->getServerName($serverip) == lang('servers_error_ip') ? true : false;
$this->load->view('header', ['active' => 'minecraft-servers', 'title' => lang('servers_site_title')]);
$this->load->view('minecraft', ['type' => 'server', 'serverip' => $serverip, 'error' => $errorIP]);
$this->load->view('footer');
}
public function player()
{
$username = !empty($_GET['username']) ? $_GET['username'] : "KingOfDog";
$username = $this->MinecraftModel->getUUID($username)[1];
$cracked = $this->MinecraftModel->getUUID($username)[2] == true ? '<small>Cracked</small>' : '<small style="color:#FFAA00;">Premium</small>';
$crackedBool = $this->MinecraftModel->getUUID($username)[2];
if ($crackedBool == false) {
$uuid = $this->MinecraftModel->getUUID($username)[0];
$uuid_formatted = $this->MinecraftModel->formatUUID($uuid);
} else {
$uuid = null;
$uuid_formatted = null;
}
if (isset($_GET['download']) && !empty($_GET['download'])) {
if ($_GET['download'] == "skin") {
header('Content-Type: image/png');
header('Content-Disposition: attachment; filename="skin_' . $username . '.png"');
readfile('https://crafatar.com/skins/' . $username);
die();
}
if ($_GET['download'] == "render") {
header('Content-Type: image/png');
header('Content-Disposition: attachment; filename="render_' . $username . '.png"');
readfile('https://crafatar.com/renders/body/' . $username . '?overlay&scale=7');
die();
}
if ($_GET['download'] == "head") {
header('Content-Type: image/png');
header('Content-Disposition: attachment; filename="head_' . $username . '.png"');
readfile('https://crafatar.com/renders/head/' . $username . '?overlay&scale=7');
die();
}
if ($_GET['download'] == "avatar") {
if (isset($_GET['size']) && !empty($_GET['size'])) {
$size = $_GET['size'];
} else {
$size = "128";
}
header('Content-Type: image/png');
header('Content-Disposition: attachment; filename="avatar' . $size . '_' . $username . '.png"');
readfile('https://crafatar.com/avatar/' . $username . '?overlay&size=' . $size);
die();
}
}
$this->load->view('header', ['active' => 'minecraft-players', 'title' => lang('players_site_title')]);
$this->load->view('minecraft', ['type' => 'player', 'username' => $username, 'uuid' => $uuid, 'uuid_formatted' => $uuid_formatted, 'cracked' => $cracked, 'crackedBool' => $crackedBool]);
$this->load->view('footer');
}*/
}

View File

@ -0,0 +1,16 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Tools extends MY_Controller {
public function __construct() {
parent::__construct('tools');
}
public function index()
{
$this->load->view('header', ['active' => 'tools', 'title' => 'Tools']);
$this->load->view('tools/index');
$this->load->view('footer');
}
}

View File

@ -0,0 +1,66 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Twitch extends MY_Controller {
public function __construct() {
parent::__construct('tools');
}
public function index($channel = 'kingofdog') {
if(isset($_GET['twitch-channel']) && !empty($_GET['twitch-channel'])) {
header("Location: /tools/twitch/" . $_GET['twitch-channel']);
}
$this->load->view('header', ['active' => 'twitch-tools', 'title' => lang('twitch_site_title')]);
$this->load->model('TwitchModel');
// $data =
$result = $this->load->view('twitch_result', ['json' => $this->TwitchModel->getTwitchInfos($channel), 'stream' => $this->TwitchModel->getTwitchStream($channel), 'videos' => $this->TwitchModel->getTwitchVideos($channel)], true);
$this->load->view('twitch', ['result' => $result]);
$this->load->view('footer');
}
public function sudoku() {
if(isset($_POST['sudoku'])) {
$sudoku = [];
$rows = [];
$cols = [];
$fields = [];
for ($i=0; $i < 9; $i++) {
for ($j=0; $j < 9; $j++) {
if(isset($_POST['field-' . $i . '-' . $j])) {
$sudoku[$i][$j] = $_POST['field-' . $i . '-' . $j];
} else {
$sudoku[$i][$j] = '_';
}
}
}
for ($i=0; $i < 9; $i++) {
for ($j=0; $j < 9; $j++) {
$rows[$i] .= $sudoku[$i][$j] . "|";
$cols[$i] .= $sudoku[$j][$i] . "|";
}
}
for ($i=0; $i < 3; $i++) {
for ($j=0; $j < 3; $j++) {
for ($k=0; $k < 3; $k++) {
for ($l=0; $l < 3; $l++) {
$fields[$i][$j] .= $sudoku[$i * $k][$j * $l] . "|";
}
}
}
}
var_dump($fields);
var_dump($rows);
var_dump($cols);
}
$this->load->view('header', ['active' => 'sudoku', 'title' => 'Sudoku-Löser']);
$this->load->view('sudoku');
$this->load->view('footer');
}
}

View File

@ -0,0 +1,287 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Youtube extends MY_Controller
{
public function __construct()
{
parent::__construct('tools');
$this->load->model('YoutubeDownloadModel', '', TRUE);
$this->load->model('RedirectModel', '', TRUE);
}
public function index()
{
$this->load->view('header', ['active' => 'youtube-downloader', 'title' => lang('ytdl_site_title')]);
$this->load->view('youtube_downloader');
$this->load->view('footer');
}
public function download()
{
if (empty($_GET['mime']) OR empty($_GET['token'])) {
header("Location: /youtube");
}
$mime = filter_var($_GET['mime']);
$ext = str_replace(array('/', 'x-'), '', strstr($mime, '/'));
$url = base64_decode(filter_var($_GET['token']));
$name = urldecode($_GET['title']) . '.' . $ext;
echo $url;
if ($url) {
$size = $this->YoutubeDownloadModel->get_size($url);
// Generate the server headers
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
header('Content-Type: "' . $mime . '"');
header('Content-Disposition: attachment; filename="' . $name . '"');
header('Expires: 0');
header('Content-Length: ' . $size);
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Content-Transfer-Encoding: binary");
header('Pragma: public');
} else {
header('Content-Type: "' . $mime . '"');
header('Content-Disposition: attachment; filename="' . $name . '"');
header("Content-Transfer-Encoding: binary");
header('Expires: 0');
header('Content-Length: ' . $size);
header('Pragma: no-cache');
}
readfile($url);
exit;
}
}
public function video()
{
echo $this->load->view('header', ['title' => lang('ytdl_site_title'), 'active' => 'youtube-downloader'], true);
if (isset($_REQUEST['videoid'])) {
$my_id = $_REQUEST['videoid'];
if (preg_match('/^https:\/\/w{3}?.youtube.com\//', $my_id)) {
$url = parse_url($my_id);
$my_id = NULL;
if (is_array($url) && count($url) > 0 && isset($url['query']) && !empty($url['query'])) {
$parts = explode('&', $url['query']);
if (is_array($parts) && count($parts) > 0) {
foreach ($parts as $p) {
$pattern = '/^v\=/';
if (preg_match($pattern, $p)) {
$my_id = preg_replace($pattern, '', $p);
break;
}
}
}
if (!$my_id) {
header("Location: /tools/youtube?error=1");
exit;
}
} else {
header("Location: /tools/youtube?error=2");
exit;
}
} elseif (preg_match('/^https?:\/\/youtu.be/', $my_id)) {
$url = parse_url($my_id);
$my_id = NULL;
$my_id = preg_replace('/^\//', '', $url['path']);
}
} else {
header("Location: /tools/youtube?error=1");
exit;
}
if (isset($_REQUEST['type'])) {
$my_type = $_REQUEST['type'];
} else {
$my_type = 'redirect';
}
if ($my_type == 'Download') {
?>
<section class="container">
<h1 class="center"><?= lang('ytdl_title'); ?></h1>
<p class="lead center"><?= lang('ytdl_description'); ?></p>
<div class="row center">
<?php
} // end of if for type=Download
/* First get the video info page for this video id */
//$my_video_info = 'http://www.youtube.com/get_video_info?&video_id='. $my_id;
$my_video_info = 'http://www.youtube.com/get_video_info?&video_id=' . $my_id . '&asv=3&el=detailpage&hl=' . lang('ytdl_language'); //video details fix *1
$my_video_info = $this->YoutubeDownloadModel->curlGet($my_video_info);
/* TODO: Check return from curl for status code */
if (empty($my_video_info)) {
header("Location: /tools/youtube?error=3");
}
$thumbnail_url = $title = $view_count = $author = $length_seconds = $url_encoded_fmt_stream_map = $type = $url = '';
parse_str($my_video_info);
$length_seconds = date("i:s", $length_seconds);
$view_count = number_format($view_count, 0, ',', '.');
if ($status == 'fail') {
header("Location: /tools/youtube?error=3");
exit();
} ?>
<div id="info">
<div class="row">
<div class="col-sm-4">
<a href="/file/thumbnail/<?= $my_id; ?>" target="_blank">
<img class="float-right" style="max-width:100%" src="/file/thumbnail/<?= $my_id; ?>">
</a>
</div>
<div class="col-sm-8">
<a href="https://youtu.be/<?= $my_id ?>" target="_blank">
<h3 align="left"><?= $title; ?></h3>
</a>
<h4 align="left"><?= lang('ytdl_views'); ?>: <?= $view_count; ?></h4>
<h4 align="left"><?= lang('ytdl_length') . ': ' . $length_seconds . ' ' . lang('ytdl_minutes'); ?></h4>
<h4 align="left"><?= lang('ytdl_author') ?>:
<a href="http://youtube.com/<?= $author; ?>"
target="_blank"><?= $author; ?></a>
</h4>
<a align="left" href="https://youtu.be/<?= $my_id; ?>" target="_blank"
class="btn btn-primary raised pull-left"><?= lang('ytdl_watch'); ?></a>
</div>
</div>
</div>
</div>
<div class="row">
<?php
$my_title = $title;
$cleanedtitle = $this->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 '<p>No encoded format stream found.</p>';
echo '<p>Here is what we got from YouTube:</p>';
echo $my_video_info;
}
if (count($my_formats_array) == 0) {
echo '<p>' . lang('ytdl_error_no_downloads') . '</p>';
exit;
}
/* create an array of available download formats */
$avail_formats[] = '';
$i = 0;
$ipbits = $ip = $itag = $sig = $quality = '';
$expire = time();
foreach ($my_formats_array as $format) {
parse_str($format);
$avail_formats[$i]['itag'] = $itag;
$avail_formats[$i]['quality'] = $quality;
$type = explode(';', $type);
$avail_formats[$i]['type'] = $type[0];
$avail_formats[$i]['url'] = urldecode($url) . '&signature=' . $sig;
parse_str(urldecode($url));
$avail_formats[$i]['expires'] = date("d.m.Y G:i:s", $expire);
$avail_formats[$i]['ipbits'] = $ipbits;
$avail_formats[$i]['ip'] = $ip;
$i++;
}
if ($my_type == 'Download') {
echo '<p align="left"><b>' . lang('ytdl_available_formats') . ':</b></p>
<div class="table-responsive"><table class="table table-hover table-striped"><thead><tr><td>' . lang('ytdl_format') . '</td><td>' . lang('ytdl_quality') . '</td><td>' . lang('ytdl_size') . '</td><td>' . lang('ytdl_download_link') . '</td><td>' . lang('ytdl_available_until') . '</td></tr></thead><tbody>';
$formats = [
'22' => '720p',
'18' => '360p',
'43' => '360p',
'5' => '240p',
'36' => '240p',
'17' => '144p'
];
/* now that we have the array, print the options */
for ($i = 0; $i < count($avail_formats); $i++) {
$type = explode('/', $avail_formats[$i]['type'])[1];
$thisurl = base_url('tools/youtube/download?mime=' . $avail_formats[$i]['type'] . '&title=' . urlencode(htmlspecialchars($my_title)) . '&token=' . base64_encode($avail_formats[$i]['url']));
$url = base_url('r/' . $this->RedirectModel->addRandomItem($thisurl, true, 6));
echo '<tr><td>';
echo '<a href="' . base_url('r/' . $this->RedirectModel->addRandomItem($avail_formats[$i]['url'] . '&title=' . $cleanedtitle, true, 6)) . '" class="mime">' . $type . '</a> ';
echo '</td> ' .
'<td>' . $formats[$avail_formats[$i]['itag']] . '</td><td><span class="size">' . $this->YoutubeDownloadModel->formatBytes($this->YoutubeDownloadModel->get_size($avail_formats[$i]['url'])) . '</span></td>';
echo '<td><a href="' . $url . '" class="dl btn btn-default btn-sm">' . lang('ytdl_download_link') . '</a></td><td>' . $avail_formats[$i]['expires'] . '</td>';
echo '</tr>';
}
echo '</tbody></table></div><small>' . lang('ytdl_not_related_youtube') . '</small><br><small>' . lang('ytdl_no_haftung') . '</small><br><small>Der Betreiber nimmt Abstand von jeglichen urheberrechtsverletzenden Handlungen, die mit dem YouTube-Downloader durchgeführt werden könnten und unterstützt diese keinesfalls.</small>';
?>
</div>
</section>
<?php
} else {
/* In this else, the request didn't come from a form but from something else
* like an RSS feed.
* As a result, we just want to return the best format, which depends on what
* the user provided in the url.
* If they provided "format=best" we just use the largest.
* If they provided "format=free" we provide the best non-flash version
* If they provided "format=ipad" we pull the best MP4 version
*
* Thanks to the python based youtube-dl for info on the formats
* http://rg3.github.com/youtube-dl/
*/
$format = $_REQUEST['format'];
$target_formats = '';
switch ($format) {
case "best":
/* largest formats first */
$target_formats = array('38', '37', '46', '22', '45', '35', '44', '34', '18', '43', '6', '5', '17', '13');
break;
case "free":
/* Here we include WebM but prefer it over FLV */
$target_formats = array('38', '46', '37', '45', '22', '44', '35', '43', '34', '18', '6', '5', '17', '13');
break;
case "ipad":
/* here we leave out WebM video and FLV - looking for MP4 */
$target_formats = array('37', '22', '18', '17');
break;
default:
/* If they passed in a number use it */
if (is_numeric($format)) {
$target_formats[] = $format;
} else {
$target_formats = array('38', '37', '46', '22', '45', '35', '44', '34', '18', '43', '6', '5', '17', '13');
}
break;
}
/* Now we need to find our best format in the list of available formats */
$best_format = '';
for ($i = 0; $i < count($target_formats); $i++) {
for ($j = 0; $j < count($avail_formats); $j++) {
if ($target_formats[$i] == $avail_formats[$j]['itag']) {
//echo '<p>Target format found, it is '. $avail_formats[$j]['itag'] .'</p>';
$best_format = $j;
break 2;
}
}
}
//echo '<p>Out of loop, best_format is '. $best_format .'</p>';
if ((isset($best_format)) &&
(isset($avail_formats[$best_format]['url'])) &&
(isset($avail_formats[$best_format]['type']))
) {
$redirect_url = $avail_formats[$best_format]['url'] . '&title=' . $cleanedtitle;
$content_type = $avail_formats[$best_format]['type'];
}
if (isset($redirect_url)) {
header("Location: $redirect_url");
}
}
$this->load->view('footer');
}
}

View File

@ -0,0 +1,134 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Uploader extends CI_Controller {
/* Constructor */
public function __construct()
{
parent::__construct();
$this->load->helper(array('jbimages','language'));
// is_allowed is a helper function which is supposed to return False if upload operation is forbidden
// [See jbimages/is_alllowed.php]
if (is_allowed() === FALSE)
{
exit;
}
// User configured settings
$this->config->load('uploader_settings', TRUE);
}
/* Language set */
private function _lang_set($lang)
{
// We accept any language set as lang_id in **_dlg.js
// Therefore an error will occur if language file doesn't exist
$this->config->set_item('language', $lang);
$this->lang->load('jbstrings', $lang);
}
/* Default upload routine */
public function upload ($lang='en')
{
// Set language
$this->_lang_set($lang);
// Get configuartion data (we fill up 2 arrays - $config and $conf)
$conf['img_path'] = $this->config->item('img_path', 'uploader_settings');
$conf['allow_resize'] = $this->config->item('allow_resize', 'uploader_settings');
$config['allowed_types'] = $this->config->item('allowed_types', 'uploader_settings');
$config['max_size'] = $this->config->item('max_size', 'uploader_settings');
$config['encrypt_name'] = $this->config->item('encrypt_name', 'uploader_settings');
$config['overwrite'] = $this->config->item('overwrite', 'uploader_settings');
$config['upload_path'] = $this->config->item('upload_path', 'uploader_settings');
if (!$conf['allow_resize'])
{
$config['max_width'] = $this->config->item('max_width', 'uploader_settings');
$config['max_height'] = $this->config->item('max_height', 'uploader_settings');
}
else
{
$conf['max_width'] = $this->config->item('max_width', 'uploader_settings');
$conf['max_height'] = $this->config->item('max_height', 'uploader_settings');
if ($conf['max_width'] == 0 and $conf['max_height'] == 0)
{
$conf['allow_resize'] = FALSE;
}
}
// Load uploader
$this->load->library('upload', $config);
if ($this->upload->do_upload()) // Success
{
// General result data
$result = $this->upload->data();
// Shall we resize an image?
if ($conf['allow_resize'] and $conf['max_width'] > 0 and $conf['max_height'] > 0 and (($result['image_width'] > $conf['max_width']) or ($result['image_height'] > $conf['max_height'])))
{
// Resizing parameters
$resizeParams = array
(
'source_image' => $result['full_path'],
'new_image' => $result['full_path'],
'width' => $conf['max_width'],
'height' => $conf['max_height']
);
// Load resize library
$this->load->library('image_lib', $resizeParams);
// Do resize
$this->image_lib->resize();
}
// Add our stuff
$result['result'] = "file_uploaded";
$result['resultcode'] = 'ok';
$result['file_name'] = $conf['img_path'] . '/' . $result['file_name'];
// $this->FileModel->addBlogImageToDatabase();
var_dump($result);
// Output to user
$this->load->view('ajax_upload_result', $result);
}
else // Failure
{
// Compile data for output
$result['result'] = $this->upload->display_errors(' ', ' ');
$result['resultcode'] = 'failed';
// Output to user
$this->load->view('ajax_upload_result', $result);
}
}
/* Blank Page (default source for iframe) */
public function blank($lang='en')
{
$this->_lang_set($lang);
$this->load->view('blank');
}
public function index($lang='en')
{
$this->blank($lang);
}
}
/* End of file uploader.php */
/* Location: ./application/controllers/uploader.php */

View File

@ -0,0 +1,615 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
use Coduo\PHPHumanizer\DateTimeHumanizer;
class User extends MY_Controller
{
public function __construct()
{
parent::__construct('profile', 'language_names', 'country_names');
$this->load->model('UserModel', '', TRUE);
$this->load->model('PostsModel', '', TRUE);
$this->load->model('FileModel', '', TRUE);
}
public function index($user = "")
{
if ($user == "") {
$title = "Error - Profile";
$message = ["type" => "danger", "message1" => "Dieser Nutzer existiert nicht!", "message2" => "Es wurde kein Nutzername angegeben."];
} else {
$user_data = $this->UserModel->getUser($user);
$user_exists = !empty($user_data);
if ($user_exists) {
$user_data = $user_data[0];
$user_stats = $this->UserModel->getUserStats($user_data['ID']);
$user_posts = $this->PostsModel->getUserPosts($user_data['ID'], 3, 0, 192);
$user_comments = $this->UserModel->getUserComments($user_data['ID'], 3, 0);
$user_blog_posts = $this->UserModel->getUserBlogPosts($user_data['ID'], 3, 0);
$date_created = strtotime($user_data['date_created']);
$user_data['time_existing'] = DateTimeHumanizer::difference(new \DateTime(), new \DateTime("@$date_created"), $_SESSION['site_lang']);
$title = $user_data['displayname'] . " - Profile";
$isCurrentUserFollowing = false;
if (isset($_SESSION['user']['ID']))
$isCurrentUserFollowing = $this->UserModel->isFollowing($_SESSION['user']['ID'], $user_data['ID']);
$_SESSION['currentProfilePage'] = $user_data['ID'];
} else {
$message = ["type" => "danger", "message1" => "Dieser Nutzer existiert nicht!", "message2" => "Der angegebene Nutzername konnte nicht gefunden werden."];
$title = "Error - Profile";
}
}
$this->load->view('header', ['active' => 'profile', 'title' => $title, 'additionalStyles' => ['profile_page.css']]);
if (isset($message)) {
$this->load->view('network/message', $message);
}
if (isset($user_data) && isset($user_stats) && isset($user_posts) && isset($user_comments) && isset($user_blog_posts)) {
$this->load->view('network/user/profile_page', ['data' => $user_data, 'stats' => $user_stats, 'posts' => $user_posts, 'comments' => $user_comments, 'blog_posts' => $user_blog_posts, 'isCurrentUserFollowing' => $isCurrentUserFollowing]);
}
$this->load->view('footer', ['additionalScripts' => ['profile_page.js']]);
}
public function comments($user = "")
{
if ($user == "") {
$title = "Error - Profile";
$message = ["type" => "danger", "message1" => "Dieser Nutzer existiert nicht!", "message2" => "Es wurde kein Nutzername angegeben."];
}
$user_data = $this->UserModel->getUser($user);
$user_exists = !empty($user_data);
if ($user_exists) {
$user_data = $user_data[0];
$dateCreated = strtotime($user_data['date_created']);
$user_data['time_existing'] = DateTimeHumanizer::difference(new \DateTime(), new \DateTime("@$dateCreated"), $_SESSION['site_lang']);
$user_stats = $this->UserModel->getUserStats($user_data['ID']);
$title = $user_data['displayname'] . " - Blog-Kommentare";
$isCurrentUserFollowing = false;
if (isset($_SESSION['user']['ID']))
$isCurrentUserFollowing = $this->UserModel->isFollowing($_SESSION['user']['ID'], $user_data['ID']);
$_SESSION['currentProfilePage'] = $user_data['ID'];
} else {
$message = ["type" => "danger", "message1" => "Dieser Nutzer existiert nicht!", "message2" => "Der angegebene Nutzername konnte nicht gefunden werden."];
$title = "Error - Profile";
}
$this->load->view('header', ['active' => 'profile', 'title' => $title, 'additionalStyles' => ['profile_page.css']]);
if (isset($message)) {
$this->load->view('network/message', $message);
}
if ($user_exists) {
$this->load->view('network/blog/user_comments', ['data' => $user_data, 'stats' => $user_stats, 'isCurrentUserFollowing' => $isCurrentUserFollowing]);
}
$this->load->view('footer', ['additionalScripts' => ['profile_page.js']]);
$this->load->view('network/blog/user_comments_end', ['data' => $user_data]);
}
public function getComments()
{
$user = (int)$this->input->get('user');
$amount = (int)$this->input->get('amount');
$offset = (int)$this->input->get('offset') * $amount;
$user_comments = $this->UserModel->getUserComments($user, $amount, $offset);
$comment_user = $this->UserModel->getUserByID($user)[0];
foreach ($user_comments as $comment) {
$this->load->view('network/blog/comment_item', ['data' => $comment_user, 'c' => $comment]);
}
}
public function posts($user = "")
{
if ($user == "") {
redirect(base_url('user'));
}
$user_data = $this->UserModel->getUser($user);
$user_exists = !empty($user_data);
if ($user_exists) {
$user_data = $user_data[0];
$dateCreated = strtotime($user_data['date_created']);
$user_data['time_existing'] = DateTimeHumanizer::difference(new \DateTime(), new \DateTime("@$dateCreated"), $_SESSION['site_lang']);
$user_stats = $this->UserModel->getUserStats($user_data['ID']);
$title = $user_data['displayname'] . " - Posts";
$isCurrentUserFollowing = false;
if (isset($_SESSION['user']['ID']))
$isCurrentUserFollowing = $this->UserModel->isFollowing($_SESSION['user']['ID'], $user_data['ID']);
$_SESSION['currentProfilePage'] = $user_data['ID'];
} else {
$message = ["type" => "danger", "message1" => "Dieser Nutzer existiert nicht!", "message2" => "Der angegebene Nutzername konnte nicht gefunden werden."];
$title = "Error - Profile";
}
$this->load->view('header', ['active' => 'profile', 'title' => $title, 'additionalStyles' => ['profile_page.css']]);
if (isset($message)) {
$this->load->view('network/message', $message);
}
if ($user_exists) {
$this->load->view('network/user/user_posts', ['data' => $user_data, 'stats' => $user_stats, 'isCurrentUserFollowing' => $isCurrentUserFollowing]);
}
$this->load->view('footer', ['additionalScripts' => ['profile_page.js']]);
$this->load->view('network/user/user_posts_end', ['data' => $user_data]);
}
public function getPosts()
{
$user = (int)$this->input->get('user');
$amount = (int)$this->input->get('amount');
$offset = (int)$this->input->get('offset') * $amount;
$user_posts = $this->PostsModel->getUserPosts($user, $amount, $offset);
foreach ($user_posts as $post) {
$this->load->view('network/posts/post_item', $post);
}
}
public function blogposts($user = "")
{
if ($user == "") {
redirect(base_url('user'));
}
$user_data = $this->UserModel->getUser($user);
$user_exists = !empty($user_data);
if ($user_exists) {
$user_data = $user_data[0];
$dateCreated = strtotime($user_data['date_created']);
$user_data['time_existing'] = DateTimeHumanizer::difference(new \DateTime(), new \DateTime("@$dateCreated"), $_SESSION['site_lang']);
$user_stats = $this->UserModel->getUserStats($user_data['ID']);
$title = $user_data['displayname'] . " - Posts";
$isCurrentUserFollowing = false;
if (isset($_SESSION['user']['ID']))
$isCurrentUserFollowing = $this->UserModel->isFollowing($_SESSION['user']['ID'], $user_data['ID']);
$_SESSION['currentProfilePage'] = $user_data['ID'];
} else {
$message = ["type" => "danger", "message1" => "Dieser Nutzer existiert nicht!", "message2" => "Der angegebene Nutzername konnte nicht gefunden werden."];
$title = "Error - Profile";
}
$this->load->view('header', ['active' => 'profile', 'title' => $title, 'additionalStyles' => ['profile_page.css']]);
if (isset($message)) {
$this->load->view('network/message', $message);
}
if ($user_exists) {
$this->load->view('network/blog/user_blog_posts', ['data' => $user_data, 'stats' => $user_stats, 'isCurrentUserFollowing' => $isCurrentUserFollowing]);
}
$this->load->view('footer', ['additionalScripts' => ['profile_page.js']]);
$this->load->view('network/blog/user_blog_posts_end', ['data' => $user_data]);
}
public function getBlogPosts()
{
$user = (int)$this->input->get('user');
$amount = (int)$this->input->get('amount');
$offset = (int)$this->input->get('offset') * $amount;
$user_posts = $this->UserModel->getUserBlogPosts($user, $amount, $offset);
$post_user = $this->UserModel->getUserByID($user)[0];
foreach ($user_posts as $post) {
$this->load->view('network/blog/blog_post_item', ['data' => $post_user, 'post' => $post]);
}
}
public function publishPost()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user'])) {
?>
<div class="alert alert-danger" role="alert">
<b>Veröffentlichen des Posts fehlgeschlagen!</b>
Du musst in deinen Account eingeloggt sein, um Posts erstellen zu können.<br>
Bitte erstelle dir entweder
<a href="<?= base_url('login') ?>">kostenlos einen neuen Account</a>
oder
<a href="<?= base_url('login') ?>">melde dich an</a>.
</div>
<?php
exit;
}
var_dump($this->input->post('postMedia'));
$content = $this->input->post('content');
if (strlen($content) >= 10000) {
?>
<div class="alert alert-warning" role="alert">
<b>Veröffentlichung des Posts fehlgeschlagen!</b> Dein Post ist leider zu lang. Er darf maximal 10.000 Zeichen umfassen.
</div>
<?php
exit;
}
$replyTo = $this->input->post('replyTo');
if ($replyTo !== "-1" && !$this->PostsModel->isUUIDValid($replyTo)) {
?>
<div class="alert alert-warning" role="alert">
<b>Veröffentlichung des Posts fehlgeschlagen!</b> Der Post, an den du deine Antwort richten willst, existiert nicht (mehr).<br>
Solltest du dies für einen Fehler halten, versuche es später erneut oder kontaktiere uns.
</div>
<?php
exit;
}
$postID = -1;
if ($replyTo !== "-1") {
$postID = $this->PostsModel->addReply($_SESSION['user']['ID'], $content, $replyTo);
} else {
$postID = $this->PostsModel->addPost($_SESSION['user']['ID'], $content);
}
$media = $this->input->post('postMedia');
foreach ($media as $entry) {
$image = str_replace(' ', '+', $entry['image']);
$image = substr($image, strpos($image, ',') + 1);
$image = base64_decode($image);
$fileUrl = $this->FileModel->uploadFileByContent($image, $entry['name'], $entry['type'], $entry['size']);
$this->PostsModel->addImageToPost($postID, $fileUrl);
}
?>
<div class="alert alert-success" role="alert">
<b>Dein Post wurde erfolgreich veröffentlicht!</b> Möchtest du nun deine Posts ansehen? <br>
<button type="button" class="btn btn-sm btn-default" data-dismiss="modal">Nein</button>
<a href='<?= base_url('user/' . $_SESSION['user']['username'] . '/posts') ?>' class='btn btn-sm btn-primary'>Ja</a>
</div>
<?php
}
public function followers($user = "")
{
if ($user == "") {
$title = "Error - Profile";
$message = ["type" => "danger", "message1" => "Dieser Nutzer existiert nicht!", "message2" => "Es wurde kein Nutzername angegeben."];
}
$user_data = $this->UserModel->getUser($user);
$user_exists = !empty($user_data);
if ($user_exists) {
$user_data = $user_data[0];
$dateCreated = strtotime($user_data['date_created']);
$user_data['time_existing'] = DateTimeHumanizer::difference(new \DateTime(), new \DateTime("@$dateCreated"), $_SESSION['site_lang']);
$user_stats = $this->UserModel->getUserStats($user_data['ID']);
$followers = $this->UserModel->getFollowers($user_data['ID']);
$title = $user_data['displayname'] . " - Follower";
$isCurrentUserFollowing = false;
if (isset($_SESSION['user']['ID']))
$isCurrentUserFollowing = $this->UserModel->isFollowing($_SESSION['user']['ID'], $user_data['ID']);
$_SESSION['currentProfilePage'] = $user_data['ID'];
} else {
$message = ["type" => "danger", "message1" => "Dieser Nutzer existiert nicht!", "message2" => "Der angegebene Nutzername konnte nicht gefunden werden."];
$title = "Error - Profile";
}
$this->load->view('header', ['active' => 'profile', 'title' => $title, 'additionalStyles' => ['profile_page.css']]);
if (isset($message)) {
$this->load->view('network/message', $message);
}
if ($user_exists) {
$this->load->view('network/user/user_followers', ['data' => $user_data, 'active' => 'followers', 'stats' => $user_stats, 'isCurrentUserFollowing' => $isCurrentUserFollowing, 'followers' => $followers]);
}
$this->load->view('footer', ['additionalScripts' => ['profile_page.js']]);
}
public function following($user = "")
{
if ($user == "") {
$title = "Error - Profile";
$message = ["type" => "danger", "message1" => "Dieser Nutzer existiert nicht!", "message2" => "Es wurde kein Nutzername angegeben."];
}
$user_data = $this->UserModel->getUser($user);
$user_exists = !empty($user_data);
if ($user_exists) {
$user_data = $user_data[0];
$dateCreated = strtotime($user_data['date_created']);
$user_data['time_existing'] = DateTimeHumanizer::difference(new \DateTime(), new \DateTime("@$dateCreated"), $_SESSION['site_lang']);
$user_stats = $this->UserModel->getUserStats($user_data['ID']);
$following = $this->UserModel->getFollowing($user_data['ID']);
$title = $user_data['displayname'] . " - Follower";
$isCurrentUserFollowing = false;
if (isset($_SESSION['user']['ID']))
$isCurrentUserFollowing = $this->UserModel->isFollowing($_SESSION['user']['ID'], $user_data['ID']);
$_SESSION['currentProfilePage'] = $user_data['ID'];
} else {
$message = ["type" => "danger", "message1" => "Dieser Nutzer existiert nicht!", "message2" => "Der angegebene Nutzername konnte nicht gefunden werden."];
$title = "Error - Profile";
}
$this->load->view('header', ['active' => 'profile', 'title' => $title, 'additionalStyles' => ['profile_page.css']]);
if (isset($message)) {
$this->load->view('network/message', $message);
}
if ($user_exists) {
$this->load->view('network/user/user_followers', ['data' => $user_data, 'active' => 'following', 'stats' => $user_stats, 'isCurrentUserFollowing' => $isCurrentUserFollowing, 'followers' => $following]);
}
$this->load->view('footer', ['additionalScripts' => ['profile_page.js']]);
}
public function switchFollowing()
{
header('Content-Type: application/json');
if(!isset($_SESSION['currentProfilePage'])) {
$response = ['type' => 'error', 'code' => -1];
echo json_encode($response);
exit;
}
$followedUser = $_SESSION['currentProfilePage'];
// code 0: not logged in
// code 1: same user
// code 10: unfollowed
// code 11: now following
if (!isset($_SESSION['user']['username'])) {
$response = ['type' => 'error', 'code' => 0];
echo json_encode($response);
exit;
}
$follower = $_SESSION['user']['ID'];
if ($follower == $followedUser) {
$response = ['type' => 'error', 'code' => 1];
echo json_encode($response);
exit;
}
if ($this->UserModel->isFollowing($follower, $followedUser)) {
$this->UserModel->unfollow($follower, $followedUser);
$response = ['type' => 'success', 'code' => 10];
echo json_encode($response);
exit;
}
$this->UserModel->follow($follower, $followedUser);
$response = ['type' => 'success', 'code' => 11];
echo json_encode($response);
exit;
}
public function edit($user = "")
{
if ($user == "") {
redirect(base_url('user'));
}
$user_data = $this->UserModel->getUser($user);
$user_exists = !empty($user_data);
if ($user_exists) {
$user_data = $user_data[0];
// Update Settings
$newData = [];
// TODO: Error messages
// Username
if (isset($_POST['username'])) {
if (!preg_match('/[^A-Za-z0-9._]/', $_POST['username'])) {
if ($this->LoginModel->isAvailable($_POST['username'])) {
if (strlen($_POST['username']) >= 4) {
$newData['username'] = strtolower($_POST['username']);
$newData['displayname'] = $_POST['username'];
} else {
$_SESSION['profileEditNotification'] .= "<div class='alert alert-danger' role='alert'><b>Zu kurzer Nutzername!</b> Dein Name muss 4 Zeichen oder mehr enthalten.</div>";
}
} else {
$_SESSION['profileEditNotification'] .= "<div class='alert alert-danger' role='alert'><b>Nutzername bereits vergeben!</b> Ein anderer Nutzer hat anscheinend diesen Namen bereits gewählt.</div>";
}
} else {
$_SESSION['profileEditNotification'] .= "<div class='alert alert-danger' role='alert'><b>Ungültiger Nutzername!</b> Dein Name darf nur Groß- (A-Z) und Kleinbuchstaben (a-z), Zahlen (0-9) und Punkte (.) sowie Unterstriche (_).</div>";
}
}
// Gender
if (isset($_POST['gender'])) {
if ($_POST['gender'] == "male" || $_POST['gender'] == "female" || $_POST['gender'] == 'other') {
$newData['gender'] = $_POST['gender'];
}
}
// Birth date
if (isset($_POST['birthdate-day']) && isset($_POST['birthdate-month'])) {
$day = intval($_POST['birthdate-day']);
$month = intval($_POST['birthdate-month']);
if ($month > 0 && $month <= 12) {
$monthDayCount = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
if ($day <= $monthDayCount[$month - 1]) {
$newData['birthdate'] = $day . '.' . $month . '.';
}
}
}
if (isset($_POST['birthdate-year'])) {
}
// Language
if (isset($_POST['language'])) {
$newData['language'] = $_POST['language'];
}
// Country
if (isset($_POST['country'])) {
$newData['country'] = $_POST['country'];
}
// Biography/About
if (isset($_POST['biography'])) {
$newData['about'] = $_POST['biography'];
}
// Avatar
if (isset($_FILES['avatar'])) {
$image = $this->FileModel->uploadImage('avatar', 4096, $_FILES['avatar']['name'], 200);
if ($image != null)
$newData['profile_picture'] = $image;
unset($_FILES['avatar']);
}
// Header
if (isset($_FILES['header'])) {
// var_dump($_FILES['header']);
$image = $this->FileModel->uploadImage('header', 4096, $_FILES['header']['name'], 1920);
// var_dump($image);
if ($image != null)
$newData['header_image'] = $image;
unset($_FILES['header']);
}
// Social Networks
if (isset($_POST['social-networks'])) {
}
// Profile color
if (isset($_POST['color'])) {
}
// E-Mail-Address
if (isset($_POST['email'])) {
if (isset($_POST['email-password']) && !empty($_POST['email-password'])) {
$loginData = $this->LoginModel->getLoginData($_SESSION['user']['username']);
if (empty($loginData)) {
$_SESSION['profileEditNotification'] .= "<div class='alert alert-danger' role='alert'><b>Ungültiger Account</b> 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!</div>";
} else {
$loginData = $loginData[0];
$encryptedPassword = $this->LoginModel->getPasswordHash($_POST['email-password'], $loginData['original_name']);
if ($loginData['password'] == $encryptedPassword) {
$isRegistered = $this->LoginModel->isRegistered($_POST['email']);
if ($isRegistered == "") {
$trashMail = $this->LoginModel->isTrashMail($_POST['email']);
if ($trashMail == '') {
$this->LoginModel->changeMailAddress($_POST['email'], $loginData['username']);
$_SESSION['profileEditNotification'] .= "<div class='alert alert-warning' role='alert'><b>Deine E-Mail-Adresse wurde geändert!</b> Nun musst du nur noch in deinem Postfach vorbeischauen und die neue Adresse aktivieren.</div>";
} else {
$_SESSION['profileEditNotification'] .= $trashMail;
}
} else {
$_SESSION['profileEditNotification'] .= $isRegistered;
}
} else {
$_SESSION['profileEditNotification'] .= "<div class='alert alert-danger' role='alert'><b>Ungültiges Passwort!</b> Es scheint als wäre das eingegebene Passwort nicht mit dem richtigen übereinstimmend.</div>";
}
}
} else {
$_SESSION['profileEditNotification'] .= "<div class='alert alert-danger' role='alert'><b>Bitte gib dein Passwort ein!</b> Das Ändern der E-Mail-Adresse ist ein tiefgreifender Eingriff in den Account. Daher benötigen wir zur Sicherheit nochmal dein Passwort.</div>";
}
}
// Notifications
if (isset($_POST['email-notifications'])) {
$newData['receiveEmails'] = filter_var($_POST['email-notifications'], FILTER_VALIDATE_BOOLEAN);
}
// Newsletter
if (isset($_POST['newsletter'])) {
$newData['receiveNewsletter'] = filter_var($_POST['newsletter'], FILTER_VALIDATE_BOOLEAN);
}
// Password
if (isset($_POST['passwordNew'])) {
if (isset($_POST['passwordOld'])) {
$loginData = $this->LoginModel->getLoginData($_SESSION['user']['username']);
if (!empty($loginData)) {
$loginData = $loginData[0];
$encryptedPassword = $this->LoginModel->getPasswordHash($_POST['passwordOld'], $loginData['original_name']);
if ($encryptedPassword == $loginData['password']) {
if ($this->LoginModel->checkPassword($_POST['passwordNew'])) {
if (isset($_POST['passwordNewRepeat']) && $_POST['passwordNew'] == $_POST['passwordNewRepeat']) {
$this->LoginModel->changePassword($_POST['passwordNew'], $loginData['original_name']);
$_SESSION['profileEditNotification'] .= "<div class='alert alert-success' role='alert'><b>Dein Passwort wurde geändert!</b> Du kannst dich nun damit einloggen</div>";
} else {
$_SESSION['profileEditNotification'] .= "<div class='alert alert-danger' role='alert'><b>Wiederholtes Passwort falsch!</b> Das Passwort, das du wiederholt hast, stimmt nicht mit dem eigentlichen überein.</div>";
}
} else {
$_SESSION['profileEditNotification'] .= "<div class='alert alert-danger' role='alert'><b>Zu unsicheres Passwort!</b> Dein Passwort sollte mindest 8 Zeichen lang sein und jeweils einen Groß-, einen Kleinbuchstaben, eine Zahl und ein Sonderzeichen enthalten.</div>";
}
} else {
$_SESSION['profileEditNotification'] .= "<div class='alert alert-danger' role='alert'><b>Altes Passwort falsch!</b> Dein altes eingegebenes Passwort ist falsch!</div>";
}
} else {
$_SESSION['profileEditNotification'] .= "<div class='alert alert-danger' role='alert'><b>Ungültiger Account</b> 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!</div>";
}
} else {
$_SESSION['profileEditNotification'] .= "<div class='alert alert-danger' role='alert'><b>Altes Passwort fehlend!</b> Bitte gib dein altes Passwort ebenfalls ein!</div>";
}
}
if (isset($_POST['showAds'])) {
if (isset($_SESSION['user']) && $_SESSION['user']['rank'] >= 2) {
$newData['showAds'] = filter_var($_POST['email-notifications'], FILTER_VALIDATE_BOOLEAN);
} else {
$_SESSION['profileEditNotification'] .= "<div class='alert alert-danger' role='alert'><b>Du bist dazu nicht berechtigt!</b> Um diese Einstellung zu verändern, musst du mindestens ein Premium-Nutzer oder höher sein!</div>";
}
}
if (!empty($newData)) {
// Add entry to history
$this->UserModel->insertIntoHistory($user_data);
// Update profile
$this->UserModel->updateProfile($newData, $user_data['ID']);
// redirect(base_url(uri_string()));
}
$user_stats = $this->UserModel->getUserStats($user_data['ID']);
$title = $user_data['displayname'] . ' - Profil bearbeiten';
}
$this->load->view('header', ['active' => 'profile', 'title' => $title, 'additionalStyles' => ['lib/selectize.css', 'lib/selectize.bootstrap3.css', 'profile_page.css']]);
$editMessage = isset($_SESSION['profileEditNotification']) ? $_SESSION['profileEditNotification'] : "";
$_SESSION['profileEditNotification'] = "";
if (isset($message)) {
$this->load->view('network/message', $message);
}
if ($user_exists) {
$this->load->view('network/user/profile_edit', ['message' => $editMessage, 'data' => $user_data, 'stats' => $user_stats]);
}
$this->load->view('footer', ['additionalScripts' => ['lib/selectize.js', 'profile_page.js', 'profile_edit.js']]);
}
public function single_post($username = null, $uuid = null, $origin = null)
{
$origin = isset($_GET['o']) ? $_GET['o'] : null;
if ($origin == null) {
$origin = base_url('user/' . $username);
} else {
$origin = base64_decode(urldecode($origin));
}
$this->load->view('header', ['active' => 'profile', 'title' => 'Test']);
$this->load->view('network/posts/user_post_page', ['origin' => $origin, 'username' => $username, 'uuid' => $uuid]);
$this->load->view('footer', ['additionalScripts' => ['single-post-page.js']]);
}
public function single_post_data($username = null, $uuid = null)
{
$message = "";
$post = [];
$replies = [];
if ($username == null) {
$message .= '<div class="alert alert-danger" role="alert"><b>Es wurde kein Nutzer angegeben!</b> Es können keine Posts von einem undefinierten Nutzer gefunden werden.</div>';
goto display;
}
if ($uuid == null) {
$message .= '<div class="alert alert-danger" role="alert"><b>Es wurde keine Post-ID angegeben!</b> Es können keine undefinierten Posts gefunden werden.</div>';
goto display;
}
$user = $this->UserModel->getUser($username);
if (empty($user)) {
$message .= '<div class="alert alert-warning" role="alert"><b>Es wurde kein Nutzer mit dem angegebenen Namen gefunden!</b> Vielleicht kannst du ja diese Lücke füllen?</div>';
goto display;
}
$user = $user[0];
$post = $this->PostsModel->getPostDetails($user['ID'], $uuid);
if (empty($post)) {
$message .= '<div class="alert alert-warning" role="alert"><b>Es wurde kein Post mit der angegebenen ID gefunden!</b> Vielleicht kannst du ja diesen neuen Content erschaffen?</div>';
goto display;
}
$post = $post[0];
$replies = $this->PostsModel->getPostReplies($post['ID']);
display:
$this->load->view('network/posts/user_post_content', ['message' => $message, 'post' => $post, 'replies' => $replies]);
}
}

View File

@ -0,0 +1,369 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Blog extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('BlogModel', '', TRUE);
$this->load->model('FileModel', '', TRUE);
}
public function index()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) redirect(base_url('login'));
$posts = $this->BlogModel->getPostList(false);
$this->load->view('admin/sidebar', ['title' => 'Alle Blog-Posts']);
$this->load->view('admin/blog_posts', ['posts' => $posts]);
$this->load->view('admin/footer');
}
public function tags() {
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) {
redirect(base_url('login'));
}
$tags = $this->BlogModel->getAllTags();
$tags = $this->BlogModel->mergeTagInfo($tags);
$this->load->view('admin/sidebar', ['title' => 'Alle Blog-Tags']);
$this->load->view('admin/blog_tags', ['tags' => $tags]);
$this->load->view('admin/footer', ['additionalScripts' => 'all-blog-tags.js']);
}
public function sendEdit()
{
header('Content-Type: application/json');
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) {
echo json_encode(['success' => false, 'message' => 'Du musst eingeloggt sein, um Blog-Posts zu verfassen']);
exit;
}
$postID = $this->input->post('postID');
$postID = is_numeric($postID) && is_int(intval($postID)) ? intval($postID) : -2;
if ($postID == -2) {
echo json_encode(['success' => false, 'message' => 'Ungültige Post-ID angegeben. Bitte versuche es später erneut']);
exit;
}
$contentID = $this->input->post('contentID');
$contentID = is_numeric($contentID) && is_int(intval($contentID)) ? intval($contentID) : -2;
$translationID = $this->input->post('translationID');
$translationID = is_numeric($translationID) && is_int(intval($translationID)) ? intval($translationID) : -2;
$postImage = $this->input->post('postImage');
$postTitle = $this->input->post('postTitle');
$postDescription = $this->input->post('postDescription');
$postContent = $this->input->post('postContent');
$postPublishDate = $this->input->post('postPublishDate');
$postPublishDate = date("Y-m-d H:i:s", strtotime($postPublishDate));
$postUrl = $this->input->post('postUrl');
$postCategory = $this->input->post('postCategory');
$postTags = $this->input->post('postTags');
$postLang = $this->input->post('postLanguage');
$postLang = $postLang !== NULL ? $postLang : 'de';
if(strlen($postUrl) == 0) {
echo json_encode(['success' => false, 'message' => 'Es wurde keine Post-URL angegeben.']);
exit;
}
if(strlen($postUrl) < 4) {
echo json_encode(['success' => false, 'message' => 'Die angegebene Post-URL ist zu kurz. Sie muss mindestens 4 Zeichen umfassen, um eine eindeutige Zuordnung zu ermöglichen.']);
exit;
}
if ($postID == -1 || $translationID == -1) { // Create new blog post
if ($postID == -1) {
$postID = $this->BlogModel->createNewPostDraft($_SESSION['user']['ID']);
if($this->BlogModel->postUrlExisting($postUrl)) {
echo json_encode(['success' => false, 'message' => 'Die angegebene Post-URL bereits vorhanden.']);
exit;
}
}
$translationID = $this->BlogModel->createNewTranslation($postID, $postLang);
}
if ($contentID < 0) {
$contentID = $this->BlogModel->createNewContentDraft($postID);
}
$this->BlogModel->updatePostDraft($postID, $postUrl, $postCategory, $postPublishDate, $postImage);
$this->BlogModel->updateContentDraft($contentID, $postContent, $postLang);
$this->BlogModel->updateTranslation($translationID, $postTitle, $postDescription);
if(!empty($postTags)) {
$this->BlogModel->deleteAllPostTags($postID);
foreach ($postTags as $postTag) {
$tagID = $this->BlogModel->createTagIfNotExists($postTag);
$this->BlogModel->addPostTagByID($postID, $tagID);
}
}
echo json_encode(['success' => true, 'message' => 'Der Entwurf wurde erfolgreich gespeichert.', 'postID' => $postID, 'contentID' => $contentID, 'translationID' => $translationID]);
}
public function publishPost()
{
header('Content-Type: application/json');
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) {
echo json_encode(['success' => false, 'message' => 'Du musst eingeloggt sein, um Blog-Posts zu verfassen']);
exit;
}
$postID = $this->input->post('postID');
$postID = is_numeric($postID) && is_int(intval($postID)) ? intval($postID) : -2;
if ($postID < 0) {
echo json_encode(['success' => false, 'message' => 'Ungültige Post-ID angegeben. Bitte versuche es später erneut']);
exit;
}
$contentIDs = $this->input->post('contentIDs');
$contentPublished = FALSE;
foreach ($contentIDs as $lang => $contentID) {
$contentID = is_numeric($contentID) && is_int(intval($contentID)) ? intval($contentID) : -2;
if($contentID < 0) {
continue;
}
$this->BlogModel->publishContentDraft($_SESSION['user']['ID'], $contentID, $postID, $lang);
$contentPublished = TRUE;
}
if (!$contentPublished) {
echo json_encode(['success' => false, 'message' => 'Ungültige Content-ID angegeben. Bitte versuche es später erneut']);
exit;
}
$this->BlogModel->publishPostDraft($postID);
echo json_encode(['success' => true, 'message' => 'Der Post wurde erfolgreich veröffentlicht.']);
}
public function getTranslations()
{
header('Content-Type: application/json');
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) {
echo json_encode(['status' => 'error', 'message' => 'Du musst eingeloggt sein, um Blog-Posts zu verfassen']);
exit;
}
$postID = $this->input->post('postID');
$postID = is_numeric($postID) && is_int(intval($postID)) ? intval($postID) : -2;
if ($postID < 0) {
echo json_encode(['status' => 'error', 'message' => 'Ungültige Post-ID angegeben. Bitte versuche es später erneut']);
exit;
}
$translations = $this->BlogModel->getPostTranslations($postID);
echo json_encode(['status' => 'success', 'translations' => $translations]);
}
public function getPost() {
header('Content-Type: application/json');
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) {
echo json_encode(['status' => 'error', 'message' => 'Du musst eingeloggt sein, um Blog-Posts zu verfassen.']);
exit;
}
$postID = intval($this->input->post('postID'));
if(!is_numeric($postID)) {
echo json_encode(['status' => 'error', 'message' => 'Es wurde eine ungültige Post-ID angegeben.']);
exit;
}
$postData = $this->BlogModel->getPostDataByID($postID);
if(empty($postData)) {
echo json_encode(['status' => 'error', 'message' => 'Es wurde kein Post mit der angegebenen Post-ID gefunden.']);
exit;
}
echo json_encode(['status' => 'success', 'postData' => $postData[0]]);
}
public function getContent() {
header('Content-Type: application/json');
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) {
echo json_encode(['status' => 'error', 'message' => 'Du musst eingeloggt sein, um Blog-Posts zu verfassen.']);
exit;
}
$postID = intval($this->input->post('postID'));
$contentID = intval($this->input->post('contentID'));
$language = $this->input->post('lang');
if(!is_numeric($postID)) {
echo json_encode(['status' => 'error', 'message' => 'Es wurde eine ungültige Post-ID angegeben.']);
exit;
}
if(!is_numeric($contentID)) {
echo json_encode(['status' => 'error', 'message' => 'Es wurde kein Content mit der angegebenen Content-ID gefunden.']);
exit;
}
$contentData = $this->BlogModel->getContentDataByID($postID, $contentID, $language);
if(empty($contentData)) {
echo json_encode(['status' => 'error', 'message' => 'Es wurde kein Content mit der angegebenen Content-ID gefunden.']);
exit;
}
echo json_encode(['status' => 'success', 'contentData' => $contentData[0]]);
}
public function getTranslationData() {
header('Content-Type: application/json');
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) {
echo json_encode(['status' => 'error', 'message' => 'Du musst eingeloggt sein, um Blog-Posts zu verfassen.']);
exit;
}
$postID = intval($this->input->post('postID'));
$translationID = intval($this->input->post('translationID'));
$language = $this->input->post('lang');
if(!is_numeric($postID)) {
echo json_encode(['status' => 'error', 'message' => 'Es wurde eine ungültige Post-ID angegeben.']);
exit;
}
if(!is_numeric($translationID)) {
echo json_encode(['status' => 'error', 'message' => 'Es wurde kein Übersetzung mit der angegebenen ID gefunden.']);
exit;
}
$translationData = $this->BlogModel->getTranslationDataByID($postID, $translationID, $language);
if(empty($translationData)) {
echo json_encode(['status' => 'error', 'message' => 'Es wurde kein Übersetzung mit der angegebenen ID gefunden.']);
exit;
}
echo json_encode(['status' => 'success', 'translationData' => $translationData[0]]);
}
public function getPostTags() {
header('Content-Type: application/json');
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) {
echo json_encode(['success' => false, 'message' => 'Du musst eingeloggt sein, um Blog-Posts zu verfassen.']);
exit;
}
$postID = intval($this->input->post('postID'));
if(!is_numeric($postID)) {
echo json_encode(['success' => false, 'message' => 'Es wurde eine ungültige Post-ID angegeben.']);
exit;
}
$postTags = $this->BlogModel->getTags($postID);
echo json_encode(['success' => true, 'tags' => $postTags]);
}
public function edit($postID = -1, $lang = "de")
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) redirect(base_url('login'));
$translations = ['de' => -1];
$contents = ['de' => -1];
if(!$postID != -1) {
if($this->BlogModel->postIDExisting($postID)) {
$postTranslations = $this->BlogModel->getPostTranslationIDs($postID);
foreach ($postTranslations as $postTranslation) {
$translations[$postTranslation['language']] = $postTranslation['postTranslationID'];
}
$postContents = $this->BlogModel->getPostContentIDs($postID);
foreach ($postContents as $postContent) {
$contents[$postContent['language']] = $postContent['contentID'];
}
}
}
$categories = $this->BlogModel->getCategories();
$this->load->view('admin/sidebar', ['title' => 'Blog-Post erstellen', 'additionalStyles' => ['lib/medium-editor.min.css', 'lib/default.min.css', 'lib/medium-editor-insert-plugin.min.css']]);
$this->load->view('admin/blog_edit', ['categories' => $categories, 'postID' => $postID, 'contents' => $contents, 'translations' => $translations, 'postLanguage' => $lang]);
$this->load->view('admin/footer', ['additionalScripts' => 'lib/medium-editor.min.js,lib/handlebars.runtime-v4.0.10.js,lib/jquery-sortable.min.js,lib/jquery.ui.widget.js,lib/jquery.iframe-transport.js,lib/jquery.fileupload.js,lib/medium-editor-insert-plugin.min.js,lib/autolist.min.js,lib/highlight.pack.js,lib/quill.min.js,blog-edit.js']);
}
public function history($postID = NULL)
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) redirect(base_url('login'));
if ($postID === NULL) redirect(base_url('admin/blog'));
$content['de'] = $this->BlogModel->getAllContentVersions($postID, 'de');
$content['en'] = $this->BlogModel->getAllContentVersions($postID, 'en');
$content['fr'] = $this->BlogModel->getAllContentVersions($postID, 'fr');
$this->load->view('admin/sidebar', ['title' => 'Geschichte']);
$this->load->view('admin/blog_history', ['content' => $content]);
$this->load->view('admin/footer');
}
public function new_category()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] !== 'admin') redirect(base_url('login'));
$name = filter_input(INPUT_POST, "name");
$display_name = filter_input(INPUT_POST, "display_name");
if ($name !== NULL && $display_name !== NULL) {
$category = $this->BlogModel->getCategoryIDAfterInsert($name, $display_name);
echo $category;
}
}
public function delete()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) redirect(base_url('login'));
$id = filter_input(INPUT_POST, "id");
echo $this->BlogModel->deletePost($id);
}
public function deleteFinally()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) redirect(base_url('login'));
$id = filter_input(INPUT_POST, "id");
$this->BlogModel->deletePostFinally($id);
}
public function restore()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) redirect(base_url('login'));
$id = filter_input(INPUT_POST, "id");
echo $this->BlogModel->restorePost($id);
}
public function trashbin()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) redirect(base_url('login'));
$posts = $this->BlogModel->getPostList(true);
$this->load->view('admin/sidebar', ['title' => 'Alle Blog-Posts']);
$this->load->view('admin/blog_posts', ['posts' => $posts, 'trashbin' => true]);
$this->load->view('admin/footer');
}
public function tagsList()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) {
echo '{"type":"error", "message":"<b>Fehler beim Upload!</b> Aufgrund von zu geringen Zugriffsrechten konnte das Bild leider nicht hochgeladen werden <i>Sollte es sich dabei um ein Irrtum handeln, kontaktiere bitte einen Admin über das Kontakformular.</i>"}';
header("Content-Type: application/json");
exit;
}
echo json_encode($this->BlogModel->getAllTags());
header("Content-Type: application/json");
}
}

View File

@ -0,0 +1,24 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Calendar extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('adminModel', '', TRUE);
}
public function index()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
$this->load->view('admin/sidebar', ['title' => 'Dashboard']);
$this->load->view('admin/calendar');
$this->load->view('admin/footer');
}
public function getAllEvents() {
$events = $this->adminModel->getCalendarEvents();
echo json_encode($events);
}
}

View File

@ -0,0 +1,18 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Contact extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('UserModel', '', TRUE);
}
public function index() {
$this->load->view('admin/sidebar', ['title' => 'Kontakt-Nachrichten']);
$this->load->view('admin/footer');
}
}

View File

@ -0,0 +1,17 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Dashboard extends CI_Controller {
public function __construct() {
parent::__construct();
}
public function index()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) redirect(base_url('login'));
$this->load->view('admin/sidebar', ['title' => 'Dashboard']);
$this->load->view('admin/dashboard');
$this->load->view('admin/footer');
}
}

View File

@ -0,0 +1,74 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Downloads extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('downloadsModel', '', TRUE);
$this->load->model('FileModel', '', TRUE);
}
public function index()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
$downloads = $this->downloadsModel->getDownloads();
$this->load->view('admin/sidebar', ['title' => 'Alle Downloads']);
$this->load->view('admin/downloads', ['downloads' => $downloads]);
$this->load->view('admin/footer');
}
public function edit($id = NULL)
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
$edit = $id === NULL ? false : true;
$p = $this->input->post(['title', 'description', 'descriptionEnglish', 'image', 'url', 'datetime']);
if ($edit) {
if ($this->downloadsModel->checkIfExists($id)) {
$downloadContent = $this->downloadsModel->getDownload($id);
} else {
redirect(base_url('admin/downloads/edit'));
}
if ($p['title'] != NULL && $p['description'] != NULL && $p['datetime'] != NULL && $p['url'] !== NULL) {
$imgurl = '/assets/images/placeholder.jpg';
if (isset($_FILES['downloadImage']) && $_FILES['downloadImage']['size'] > 0) {
$fileName = $_FILES['downloadImage']['name'];
$tmpName = $_FILES['downloadImage']['tmp_name'];
$fileSize = $_FILES['downloadImage']['size'];
$fileType = $_FILES['downloadImage']['type'];
unset($_FILES['downloadImage']);
$imgurl = $this->FileModel->uploadFile($fileName, $tmpName, $fileSize, $fileType);
}
$this->downloadsModel->addNewDownload($p['datetime'], $p['title'], $p['description'], $p['descriptionEnglish'], $imgurl, $p['url']);
redirect(base_url('admin/downloads/edit/' . $id));
}
$this->load->view('admin/sidebar', ['title' => 'Download-Eintrag bearbeiten']);
$this->load->view('admin/download_edit', ['edit' => $edit, 'content' => $downloadContent]);
$this->load->view('admin/footer');
} else {
if ($p['title'] != NULL && $p['description'] != NULL && $p['datetime'] != NULL && isset($_FILES['downloadImage']) && $_FILES['downloadImage']['size'] > 0 && $p['url'] !== NULL) {
$fileName = $_FILES['downloadImage']['name'];
$tmpName = $_FILES['downloadImage']['tmp_name'];
$fileSize = $_FILES['downloadImage']['size'];
$fileType = $_FILES['downloadImage']['type'];
$imgurl = $this->FileModel->uploadFile($fileName, $tmpName, $fileSize, $fileType);
unset($_FILES['downloadImage']);
$this->downloadsModel->addNewDownload($p['datetime'], $p['title'], $p['description'], $p['descriptionEnglish'], $imgurl, $p['url']);
redirect(base_url('admin/downloads/edit'));
}
$this->load->view('admin/sidebar', ['title' => 'Download-Eintrag erstellen']);
$this->load->view('admin/download_edit', ['edit' => $edit]);
$this->load->view('admin/footer');
}
}
}

View File

@ -0,0 +1,67 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Feedback extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('MessageModel', '', TRUE);
}
public function index() {
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
$feedback = $this->MessageModel->getFeedbackMessages();
$this->load->view('admin/sidebar', ['title' => 'Feedback-Nachrichten']);
$this->load->view('admin/feedback', ['feedback' => $feedback]);
$this->load->view('admin/footer', ['additionalScripts' => 'feedback.js']);
}
public function takeover($id = null, $state = 1) {
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
if($id != null) {
$this->MessageModel->setFeedbackSupporter($id, $_SESSION['user']['ID'], $state);
}
redirect(base_url('admin/feedback'));
}
public function change($id) {
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
if($id != null) {
$newStatus = $this->input->post('feedbackState');
$this->MessageModel->updateState($id, $_SESSION['user']['ID'], $newStatus);
}
redirect(base_url('admin/feedback'));
}
public function archive() {
// header('Content-Type: application/json');
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) {
echo json_encode(['type' => 'error', 'message' => 'Du musst eingeloggt sein, um Feedbacks zu beantworten.']);
exit;
}
$feedbackID = intval($this->input->post('id'));
if(!is_numeric($feedbackID)) {
echo json_encode(['type' => 'error', 'message' => 'Die angegebene Feedback-ID ist ungültig.']);
exit;
}
$successful = $this->MessageModel->archiveFeedback($feedbackID);
if($successful) {
echo json_encode(['type' => 'success', 'message' => 'Das Feedback wurde erfolgreich gelöscht.']);
} else {
echo json_encode(['type' => 'error', 'message' => 'Das Feedback muss vor dem Löschen zuerst bearbeitet und geschlossen werden.']);
}
}
}

View File

@ -0,0 +1,74 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Files extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('FileModel', '', TRUE);
}
public function index()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
if(isset($_FILES['fileUpload'])) {
$fileName = $_FILES['fileUpload']['name'];
$tmpName = $_FILES['fileUpload']['tmp_name'];
$fileSize = $_FILES['fileUpload']['size'];
$fileType = $_FILES['fileUpload']['type'];
$this->FileModel->uploadFile($fileName, $tmpName, $fileSize, $fileType);
unset($_FILES['fileUpload']);
redirect(base_url('admin/files'));
}
$files = $this->FileModel->getFileList();
$this->load->view('admin/sidebar', ['title' => 'Alle Dateien', 'additionalStyles' => ['lib/jquery.fileupload.css', 'lib/jquery.fileupload-ui.css']]);
$this->load->view('admin/files', ['files' => $files]);
$this->load->view('admin/footer', ['additionalScripts' => ['lib/jquery.ui.widget.js', 'lib/jquery.iframe-transport.js', 'lib/jquery.fileupload.js', 'lib/jquery.fileupload-process.js', 'lib/jquery.fileupload-image.js', 'lib/jquery.fileupload-audio.js', 'lib/jquery.fileupload-video.js', 'lib/jquery.fileupload-validate.js', 'lib/jquery.fileupload-ui.js']]);
}
public function delete() {
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
$id = filter_input(INPUT_POST, "id");
$this->FileModel->delete($id);
}
public function uploadImage()
{
header("Content-Type: application/json");
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 6) {
echo json_encode([
'success' => false,
'message' => '<b>Fehler beim Upload!</b> Aufgrund von zu geringen Zugriffsrechten konnte das Bild leider nicht hochgeladen werden. Sollte es sich dabei um ein Irrtum handeln, kontaktiere bitte einen Admin über das Kontaktformular.'
]);
exit;
}
if(!isset($_POST['image']) || !isset($_POST['name']) || !isset($_POST['type']) || !isset($_POST['size'])) {
echo json_encode([
'success' => false,
'message' => '<b>Fehler beim Upload!</b> Das hochgeladene Bild enthält fehlerhafte Informationen.'
]);
exit;
}
$image = str_replace(' ', '+', $_POST['image']);
$image = substr($image, strpos($image, ',') + 1);
$image = base64_decode($image);
$fileUrl = $this->FileModel->uploadFileByContent($image, $_POST['name'], $_POST['type'], $_POST['size']);
echo json_encode([
'success' => true,
'message' => '<b>Bild erfolgreich hochgeladen!</b>',
'url' => $fileUrl
]);
}
}

View File

@ -0,0 +1,109 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Projects extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('ProjectsModel', '', TRUE);
$this->load->model('FileModel', '', TRUE);
}
public function index()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
$entries = $this->ProjectsModel->getEntries('all');
$categories = $this->ProjectsModel->getCategories('all');
$this->load->view('admin/sidebar', ['title' => 'Projekte verwalten']);
$this->load->view('admin/projects', ['entries' => $entries, 'categories' => $categories]);
$this->load->view('admin/footer');
}
public function edit($id = NULL)
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
$edit = $id === NULL ? false : true;
$content = null;
$projectCategories = [];
if ($edit) {
if ($this->ProjectsModel->checkIfExists($id)) {
$content = $this->ProjectsModel->getEntry($id)[0];
$projectCategories = $this->ProjectsModel->getEntryCategories($id);
} else {
redirect(base_url('admin/projects/edit'));
}
}
$categories = $this->ProjectsModel->getCategories();
$this->load->view('admin/sidebar', ['title' => 'Projekt erstellen', 'additionalStyles' => ['lib/content-tools/content-tools.min.css', 'project-edit.css']]);
$this->load->view('admin/project_edit', ['edit' => -1, 'categories' => $categories, 'content' => $content, 'pCategories' => $projectCategories]);
$this->load->view('admin/footer', ['additionalScripts' => ['lib/content-tools/content-tools.min.js', 'project-edit.js']]);
}
public function sendEdit()
{
header('Content-Type: application/json');
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) {
echo json_encode(['success' => false, 'message' => 'Du hast nicht genügend Rechte, um Projekte zu erstellen bzw. bearbeiten.']);
exit;
}
$translations = [];
$translations['de']['title'] = $this->input->post('titleDE');
$translations['de']['description'] = $this->input->post('headlineDE');
$translations['de']['content'] = $this->input->post('contentDE');
$url = $this->input->post('url');
$download['available'] = $this->input->post('isDownloadable') == 'on' ? true : false;
$download['link'] = $this->input->post('downloadLink');
$download['name'] = $this->input->post('downloadLinkName');
$openSource['available'] = $this->input->post('isOpenSource') == 'on' ? true : false;
$openSource['link'] = $this->input->post('openSourceLink');
$openSource['name'] = $this->input->post('openSourceLinkName');
$customLink['link'] = $this->input->post('customLink');
$customLink['name'] = $this->input->post('customLinkName');
$categories = $this->input->post('categories');
$date = date('Y-m-d H:i:s', strtotime($this->input->post('date')));
$image = $this->input->post('image');
$editingID = $this->input->post('editingID');
if($editingID == '-1' && $this->ProjectsModel->checkIfNameExists($url)) {
echo json_encode(['success' => false, 'message' => 'Die angegebene URL ist bereits vergeben.']);
exit;
}
if ($editingID == '-1' || !$this->ProjectsModel->checkIfExists($editingID)) {
$editingID = $this->ProjectsModel->createNewProjectDraft();
}
$this->ProjectsModel->updateProject($editingID, $translations, $url, $download, $openSource, $customLink, $date, $image);
$this->ProjectsModel->updateCategories($editingID, $categories);
echo json_encode(['success' => true, 'message' => 'Das Projekt wurde erfolgreich gespeichert.', 'id' => $editingID]);
}
public function delete()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
$id = filter_input(INPUT_POST, "id");
$this->ProjectsModel->delete($id);
}
public function delete_category()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
$id = filter_input(INPUT_POST, "id");
$this->ProjectsModel->deleteCategory($id);
}
}

View File

@ -0,0 +1,49 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Redirects extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('RedirectModel', '', TRUE);
}
public function index()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
$redirects = $this->RedirectModel->getItems();
$this->load->view('admin/sidebar', ['title' => 'Alle Weiterleitungen']);
$this->load->view('admin/redirects', ['redirects' => $redirects]);
$this->load->view('admin/footer', ['additionalScripts' => ['redirects.js']]);
}
public function addRedirect() {
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
$id = $this->input->post('redirectID');
$name = $this->input->post('redirectName');
$url = $this->input->post('redirectUrl');
if(isset($name) && isset($url)) {
if(isset($id)) {
$this->RedirectModel->editRedirect($id, $url, $name);
} else {
$this->RedirectModel->insertRedirect($url, $name);
}
}
redirect(base_url('admin/redirects'));
}
public function removeRedirect($id = null) {
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
if($id != null) {
$this->RedirectModel->removeRedirect($id);
}
redirect(base_url('admin/redirects'));
}
}

View File

@ -0,0 +1,84 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Users extends MY_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('UserModel', '', TRUE);
}
public function index()
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
$usersData = $this->UserModel->getUserList(50, 0);
$this->load->view('admin/sidebar', ['title' => 'Alle Nutzer']);
$this->load->view('admin/users', ['users' => $usersData]);
$this->load->view('admin/footer');
}
public function details($userID = NULL)
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
if ($userID == NULL) redirect(base_url('admin/users'));
$userData = $this->UserModel->getUserByID($userID);
if ($userData == null) redirect(base_url('admin/users'));
$userData = $userData[0];
$this->load->view('admin/sidebar', ['title' => 'Details - ' . $userData['displayname']]);
$this->load->view('admin/user_details', ['user' => $userData]);
$this->load->view('admin/footer');
}
public function settings($userID = NULL)
{
if (!isset($_SESSION['user']) || empty($_SESSION['user']) || $_SESSION['user']['rank'] < 9) redirect(base_url('login'));
if ($userID == NULL) redirect(base_url('admin/users'));
$userData = $this->UserModel->getUserByID($userID);
if ($userData == null) redirect(base_url('admin/users'));
$userData = $userData[0];
if (isset($_POST['rank'])) {
$rank = intval($_POST['rank']);
if (($rank < 1) || ($rank > 3 && $rank < 6) || $rank > 10) {
redirect(base_url(uri_string()));
}
// Add entry to history
$historyData = [
'ID' => $userID,
'username' => $userData['username'],
'displayname' => $userData['displayname'],
'email' => $userData['email'],
'rank' => $userData['rank'],
'profile_picture' => $userData['profile_picture'],
'header_image' => $userData['header_image'],
'social_networks' => $userData['social_networks'],
'showAds' => $userData['showAds'],
'about' => $userData['about'],
'language' => $userData['language'],
'country' => $userData['country'],
'gender' => $userData['gender'],
'receiveEmails' => $userData['receiveEmails'],
'receiveNewsletter' => $userData['receiveNewsletter']
];
$this->UserModel->insertIntoHistory($historyData);
// Update profile
$this->UserModel->updateProfile(['rank' => $rank], $userID);
redirect(base_url(uri_string()));
}
$this->load->view('admin/sidebar', ['title' => 'Nutzer-Einstellungen - ' . $userData['displayname']]);
$this->load->view('admin/user_settings', ['user' => $userData]);
$this->load->view('admin/footer');
}
}

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@ -0,0 +1,36 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class MY_Controller extends CI_Controller
{
public function __construct(...$names)
{
parent::__construct();
$this->load->helper('cookie');
$lang = isset($_SESSION['site_lang']) ? $_SESSION['site_lang'] : 'de';
$_SESSION['site_lang'] = $lang;
foreach($this->lang->is_loaded as $loadedName => $loadedLang) {
if($loadedLang != $lang) {
$this->lang->load($loadedName, 'de'); // Fallback
$this->lang->load($loadedName, $lang);
}
}
foreach ($names as $name) {
$this->lang->load($name, 'de');
$this->lang->load($name, $lang);
}
setlocale(LC_TIME, $lang);
$rememberMe = get_cookie('rememberMe');
if($rememberMe != NULL) {
$token = get_cookie('token');
var_dump($rememberMe, $token);
}
}
}

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@ -0,0 +1,33 @@
<?php
/**
* Justboil.me - a TinyMCE image upload plugin
* jbimages/config.php
*
* Released under Creative Commons Attribution 3.0 Unported License
*
* License: http://creativecommons.org/licenses/by/3.0/
* Plugin info: http://justboil.me/
* Author: Viktor Kuzhelnyi
*
* Version: 2.3 released 23/06/2013
*/
/*-------------------------------------------------------------------
|
| IMPORTANT NOTE! In case, when TinyMCE<EFBFBD>s folder is not protected with HTTP Authorisation,
| you should require is_allowed() function to return
| `TRUE` if user is authorised,
| `FALSE` - otherwise
|
| This is intended to protect upload script, if someone guesses it's url.
|
-------------------------------------------------------------------*/
function is_allowed()
{
if(isset($_SESSION['user']) && $_SESSION['user']['rank'] >= 6) return TRUE;
else return FALSE;
}
?>

View File

@ -0,0 +1,6 @@
<?php
/*
This Helper is a wrapper of the file below
*/
include("is_allowed.php");

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

11
application/index.html Normal file
View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@ -0,0 +1,138 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['about_sitetitle'] = 'Über mich';
$lang['about_title'] = 'Über mich';
$lang['about_description'] = 'Erfahre mehr über meine Fähig- und Tätigkeiten und mein Leben!';
$lang['about_subtitle'] = 'Hallo, mein Name ist Marcel und ich ';
$lang['about_subtitle_words'] = '<span>designe gerne.</span><span>programmiere gerne.</span><span>fotografiere gerne.</span><span>schneide gerne.</span><span>bearbeite gerne.</span><span>animiere gerne.</span><span>filme gerne.</span><span>schreibe gerne.</span>';
$lang['about_introduction'] = 'Im Internet bin ich auch als KingOfDog vertreten.';
$lang['about_text'] = '<p>
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.
</p>
<p>
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
<i>DerMinecrafterMarcel</i>, beziehungsweise MinecrafterMarcel nach einer weiteren
Umbenennung in 2014.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
Und damit bleibt nur noch abzuwarten, was die Zukunft so bringen wird.
</p>';
$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"
]
];

View File

@ -0,0 +1,43 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['blog_search'] = 'Suchen';
$lang['blog_search_results'] = 'Deine Suche war nicht erfolgreich';
$lang['blog_search_results_small'] = 'Es wurden keine Ergebnisse entsprechend deiner Suchanfrage';
$lang['blog_search_results_small2'] = 'gefunden';
$lang['blog_back'] = 'Zurück';
$lang['blog_categories'] = 'Kategorien';
$lang['blog_category_posts'] = 'Mehr aus der gleichen Kategorie';
$lang['blog_category_posts_error'] = 'Keine weiteren Posts in der gleichen Kategorie vorhanden!';
$lang['blog_category_design'] = 'Design';
$lang['blog_category_development'] = 'Entwicklung';
$lang['blog_category_internet'] = 'Internet';
$lang['blog_category_minepoint'] = 'MinePoint';
$lang['blog_category_news'] = 'Aktuelles';
$lang['blog_category_social_media'] = 'Soziale Medien';
$lang['blog_category_technic'] = 'Technik';
$lang['blog_category_youtube'] = 'YouTube';
$lang['blog_approximate_reading_time'] = 'Geschätzte Lesedauer';
$lang['blog_about'] = 'Über den Autor';
$lang['blog_comment'] = 'Kommentar';
$lang['blog_comments'] = 'Kommentare';
$lang['blog_comment_reply'] = 'Antworten';
$lang['blog_comment_new'] = 'Kommentieren';
$lang['blog_comment_send'] = 'Kommentar senden';
$lang['blog_comment_required_login'] = 'Du musst angemeldet sein, um kommentieren zu können!';
$lang['blog_read'] = 'Weiterlesen';
$lang['blog_articels'] = 'Weitere Artikel';
$lang['blog_no_ads'] = 'Du möchtest keine gesponsorten Anzeigen mehr sehen? Dann unterstütze diese Webseite mit einer kleinen Spende. Egal welcher Betrag, du wirst keine Werbung mehr sehen!';
$lang['blog_previous_article'] = 'Vorheriger Artikel';
$lang['blog_next_article'] = 'Darauffolgender Artikel';
$lang['blog_post_not_available'] = 'Dieser Post ist leider nicht mehr verfügbar.';

View File

@ -0,0 +1,56 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link http://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['cal_su'] = 'So';
$lang['cal_mo'] = 'Mo';
$lang['cal_tu'] = 'Di';
$lang['cal_we'] = 'Mi';
$lang['cal_th'] = 'Do';
$lang['cal_fr'] = 'Fr';
$lang['cal_sa'] = 'Sa';
$lang['cal_sun'] = 'Son';
$lang['cal_mon'] = 'Mon';
$lang['cal_tue'] = 'Die';
$lang['cal_wed'] = 'Mit';
$lang['cal_thu'] = 'Don';
$lang['cal_fri'] = 'Fre';
$lang['cal_sat'] = 'Sam';
$lang['cal_sunday'] = 'Sonntag';
$lang['cal_monday'] = 'Montag';
$lang['cal_tuesday'] = 'Dienstag';
$lang['cal_wednesday'] = 'Mittwoch';
$lang['cal_thursday'] = 'Donnerstag';
$lang['cal_friday'] = 'Freitag';
$lang['cal_saturday'] = 'Samstag';
$lang['cal_jan'] = 'Jan';
$lang['cal_feb'] = 'Feb';
$lang['cal_mar'] = 'Mär';
$lang['cal_apr'] = 'Apr';
$lang['cal_may'] = 'Mai';
$lang['cal_jun'] = 'Jun';
$lang['cal_jul'] = 'Jul';
$lang['cal_aug'] = 'Aug';
$lang['cal_sep'] = 'Sep';
$lang['cal_oct'] = 'Okt';
$lang['cal_nov'] = 'Nov';
$lang['cal_dec'] = 'Dez';
$lang['cal_january'] = 'Januar';
$lang['cal_february'] = 'Februar';
$lang['cal_march'] = 'März';
$lang['cal_april'] = 'April';
$lang['cal_mayl'] = 'Mai';
$lang['cal_june'] = 'Juni';
$lang['cal_july'] = 'Juli';
$lang['cal_august'] = 'August';
$lang['cal_september'] = 'September';
$lang['cal_october'] = 'Oktober';
$lang['cal_november'] = 'November';
$lang['cal_december'] = 'Dezember';

View File

@ -0,0 +1,270 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['country_AF'] = 'Afghanistan';
$lang['country_EG'] = 'Ägypten';
$lang['country_AX'] = 'Åland';
$lang['country_AL'] = 'Albanien';
$lang['country_DZ'] = 'Algerien';
$lang['country_AS'] = 'Amerikanisch-Samoa';
$lang['country_VI'] = 'Amerikanische Jungferninseln';
$lang['country_AD'] = 'Andorra';
$lang['country_AO'] = 'Angola';
$lang['country_AI'] = 'Anguilla';
$lang['country_AQ'] = 'Antarktika';
$lang['country_AG'] = 'Antigua und Barbuda';
$lang['country_GQ'] = 'Äquatorialguinea';
$lang['country_AR'] = 'Argentinien';
$lang['country_AM'] = 'Armenien';
$lang['country_AW'] = 'Aruba';
$lang['country_AC'] = 'Ascension';
$lang['country_AZ'] = 'Aserbaidschan';
$lang['country_ET'] = 'Äthiopien';
$lang['country_AU'] = 'Australien';
$lang['country_BS'] = 'Bahamas';
$lang['country_BH'] = 'Bahrain';
$lang['country_BD'] = 'Bangladesch';
$lang['country_BB'] = 'Barbados';
$lang['country_BE'] = 'Belgien';
$lang['country_BZ'] = 'Belize';
$lang['country_BJ'] = 'Benin';
$lang['country_BM'] = 'Bermuda';
$lang['country_BT'] = 'Bhutan';
$lang['country_BO'] = 'Bolivien';
$lang['country_BQ'] = 'Bonaire; Sint Eustatius und Saba';
$lang['country_BA'] = 'Bosnien und Herzegowina';
$lang['country_BW'] = 'Botswana';
$lang['country_BV'] = 'Bouvetinsel';
$lang['country_BR'] = 'Brasilien';
$lang['country_VG'] = 'Britische Jungferninseln';
$lang['country_IO'] = 'Britisches Territorium im Indischen Ozean';
$lang['country_BN'] = 'Brunei Darussalam';
$lang['country_BG'] = 'Bulgarien';
$lang['country_BF'] = 'Burkina Faso';
$lang['country_BU'] = 'Burma';
$lang['country_BI'] = 'Burundi';
$lang['country_EA'] = 'Ceuta; Melilla';
$lang['country_CL'] = 'Chile';
$lang['country_CN'] = 'China; Volksrepublik';
$lang['country_CP'] = 'Clipperton';
$lang['country_CK'] = 'Cookinseln';
$lang['country_CR'] = 'Costa Rica';
$lang['country_CI'] = 'Côte dIvoire';
$lang['country_CW'] = 'Curaçao';
$lang['country_DK'] = 'Dänemark';
$lang['country_DD'] = 'Deutsche Demokratische Republik';
$lang['country_DE'] = 'Deutschland';
$lang['country_DG'] = 'Diego Garcia';
$lang['country_DM'] = 'Dominica';
$lang['country_DO'] = 'Dominikanische Republik';
$lang['country_DJ'] = 'Dschibuti';
$lang['country_EC'] = 'Ecuador';
$lang['country_SV'] = 'El Salvador';
$lang['country_ER'] = 'Eritrea';
$lang['country_EE'] = 'Estland';
$lang['country_CE'] = 'Europäische Gemeinschaft';
$lang['country_EU'] = 'Europäische Union';
$lang['country_FK'] = 'Falklandinseln';
$lang['country_FO'] = 'Färöer';
$lang['country_FJ'] = 'Fidschi';
$lang['country_FI'] = 'Finnland';
$lang['country_FR'] = 'Frankreich';
$lang['country_FX'] = 'Frankreich; France métropolitaine';
$lang['country_GF'] = 'Französisch-Guayana';
$lang['country_PF'] = 'Französisch-Polynesien';
$lang['country_TF'] = 'Französische Süd- und Antarktisgebiete';
$lang['country_GA'] = 'Gabun';
$lang['country_GM'] = 'Gambia';
$lang['country_GE'] = 'Georgien';
$lang['country_GH'] = 'Ghana';
$lang['country_GI'] = 'Gibraltar';
$lang['country_GD'] = 'Grenada';
$lang['country_GR'] = 'Griechenland';
$lang['country_GL'] = 'Grönland';
$lang['country_GP'] = 'Guadeloupe';
$lang['country_GU'] = 'Guam';
$lang['country_GT'] = 'Guatemala';
$lang['country_GG'] = 'Guernsey';
$lang['country_GN'] = 'Guinea';
$lang['country_GW'] = 'Guinea-Bissau';
$lang['country_GY'] = 'Guyana';
$lang['country_HT'] = 'Haiti';
$lang['country_HM'] = 'Heard und McDonaldinseln';
$lang['country_HN'] = 'Honduras';
$lang['country_HK'] = 'Hongkong';
$lang['country_IN'] = 'Indien';
$lang['country_ID'] = 'Indonesien';
$lang['country_IM'] = 'Insel Man';
$lang['country_IQ'] = 'Irak';
$lang['country_IR'] = 'Iran; Islamische Republik';
$lang['country_IE'] = 'Irland';
$lang['country_IS'] = 'Island';
$lang['country_IL'] = 'Israel';
$lang['country_IT'] = 'Italien';
$lang['country_JM'] = 'Jamaika';
$lang['country_JP'] = 'Japan';
$lang['country_YE'] = 'Jemen';
$lang['country_JE'] = 'Jersey';
$lang['country_JO'] = 'Jordanien';
$lang['country_YU'] = 'Jugoslawien';
$lang['country_KY'] = 'Kaimaninseln';
$lang['country_KH'] = 'Kambodscha';
$lang['country_CM'] = 'Kamerun';
$lang['country_CA'] = 'Kanada';
$lang['country_IC'] = 'Kanarische Inseln';
$lang['country_CV'] = 'Kap Verde';
$lang['country_KZ'] = 'Kasachstan';
$lang['country_QA'] = 'Katar';
$lang['country_KE'] = 'Kenia';
$lang['country_KG'] = 'Kirgisistan';
$lang['country_KI'] = 'Kiribati';
$lang['country_CC'] = 'Kokosinseln';
$lang['country_CO'] = 'Kolumbien';
$lang['country_KM'] = 'Komoren';
$lang['country_CD'] = 'Kongo; Demokratische Republik';
$lang['country_CG'] = 'Kongo; Republik';
$lang['country_KP'] = 'Korea; Demokratische Volksrepublik';
$lang['country_KR'] = 'Korea; Republik';
$lang['country_XK'] = 'Kosovo';
$lang['country_HR'] = 'Kroatien';
$lang['country_CU'] = 'Kuba';
$lang['country_KW'] = 'Kuwait';
$lang['country_LA'] = 'Laos; Demokratische Volksrepublik';
$lang['country_LS'] = 'Lesotho';
$lang['country_LV'] = 'Lettland';
$lang['country_LB'] = 'Libanon';
$lang['country_LR'] = 'Liberia';
$lang['country_LY'] = 'Libyen';
$lang['country_LI'] = 'Liechtenstein';
$lang['country_LT'] = 'Litauen';
$lang['country_LU'] = 'Luxemburg';
$lang['country_MO'] = 'Macau';
$lang['country_MG'] = 'Madagaskar';
$lang['country_MW'] = 'Malawi';
$lang['country_MY'] = 'Malaysia';
$lang['country_MV'] = 'Malediven';
$lang['country_ML'] = 'Mali';
$lang['country_MT'] = 'Malta';
$lang['country_MA'] = 'Marokko';
$lang['country_MH'] = 'Marshallinseln';
$lang['country_MQ'] = 'Martinique';
$lang['country_MR'] = 'Mauretanien';
$lang['country_MU'] = 'Mauritius';
$lang['country_YT'] = 'Mayotte';
$lang['country_MK'] = 'Mazedonien';
$lang['country_MX'] = 'Mexiko';
$lang['country_FM'] = 'Mikronesien';
$lang['country_MD'] = 'Moldawien';
$lang['country_MC'] = 'Monaco';
$lang['country_MN'] = 'Mongolei';
$lang['country_ME'] = 'Montenegro';
$lang['country_MS'] = 'Montserrat';
$lang['country_MZ'] = 'Mosambik';
$lang['country_MM'] = 'Myanmar';
$lang['country_NA'] = 'Namibia';
$lang['country_NR'] = 'Nauru';
$lang['country_NP'] = 'Nepal';
$lang['country_NC'] = 'Neukaledonien';
$lang['country_NZ'] = 'Neuseeland';
$lang['country_NT'] = 'Neutrale Zone';
$lang['country_NI'] = 'Nicaragua';
$lang['country_NL'] = 'Niederlande';
$lang['country_AN'] = 'Niederländische Antillen';
$lang['country_NE'] = 'Niger';
$lang['country_NG'] = 'Nigeria';
$lang['country_NU'] = 'Niue';
$lang['country_MP'] = 'Nördliche Marianen';
$lang['country_NF'] = 'Norfolkinsel';
$lang['country_NO'] = 'Norwegen';
$lang['country_OM'] = 'Oman';
$lang['country_AT'] = 'Österreich';
$lang['country_TLS'] = 'Osttimor';
$lang['country_PK'] = 'Pakistan';
$lang['country_PS'] = 'Staat Palästina';
$lang['country_PW'] = 'Palau';
$lang['country_PA'] = 'Panama';
$lang['country_PG'] = 'Papua-Neuguinea';
$lang['country_PY'] = 'Paraguay';
$lang['country_PE'] = 'Peru';
$lang['country_PH'] = 'Philippinen';
$lang['country_PN'] = 'Pitcairninseln';
$lang['country_PL'] = 'Polen';
$lang['country_PT'] = 'Portugal';
$lang['country_PR'] = 'Puerto Rico';
$lang['country_RE'] = 'Réunion';
$lang['country_RW'] = 'Ruanda';
$lang['country_RO'] = 'Rumänien';
$lang['country_RU'] = 'Russische Föderation';
$lang['country_SB'] = 'Salomonen';
$lang['country_BL'] = 'Saint-Barthélemy';
$lang['country_MF'] = 'Saint-Martin';
$lang['country_ZM'] = 'Sambia';
$lang['country_WS'] = 'Samoa';
$lang['country_SM'] = 'San Marino';
$lang['country_ST'] = 'São Tomé und Príncipe';
$lang['country_SA'] = 'Saudi-Arabien';
$lang['country_SE'] = 'Schweden';
$lang['country_CH'] = 'Schweiz';
$lang['country_SN'] = 'Senegal';
$lang['country_RS'] = 'Serbien';
$lang['country_CS'] = 'Serbien und Montenegro';
$lang['country_SC'] = 'Seychellen';
$lang['country_SL'] = 'Sierra Leone';
$lang['country_ZW'] = 'Simbabwe';
$lang['country_SG'] = 'Singapur';
$lang['country_SX'] = 'Sint Maarten';
$lang['country_SK'] = 'Slowakei';
$lang['country_SI'] = 'Slowenien';
$lang['country_SO'] = 'Somalia';
$lang['country_ES'] = 'Spanien';
$lang['country_LK'] = 'Sri Lanka';
$lang['country_SH'] = 'St. Helena';
$lang['country_KN'] = 'St. Kitts und Nevis';
$lang['country_LC'] = 'St. Lucia';
$lang['country_PM'] = 'Saint-Pierre und Miquelon';
$lang['country_VC'] = 'St. Vincent und die Grenadinen';
$lang['country_ZA'] = 'Südafrika';
$lang['country_SD'] = 'Sudan';
$lang['country_GS'] = 'Südgeorgien und die Südlichen Sandwichinseln';
$lang['country_SS'] = 'Südsudan';
$lang['country_SR'] = 'Suriname';
$lang['country_SJ'] = 'Svalbard und Jan Mayen';
$lang['country_SZ'] = 'Swasiland';
$lang['country_SY'] = 'Syrien; Arabische Republik';
$lang['country_TJ'] = 'Tadschikistan';
$lang['country_TW'] = 'Republik China';
$lang['country_TZ'] = 'Tansania; Vereinigte Republik';
$lang['country_TH'] = 'Thailand';
$lang['country_TG'] = 'Togo';
$lang['country_TK'] = 'Tokelau';
$lang['country_TO'] = 'Tonga';
$lang['country_TT'] = 'Trinidad und Tobago';
$lang['country_TA'] = 'Tristan da Cunha';
$lang['country_TD'] = 'Tschad';
$lang['country_CZ'] = 'Tschechien';
$lang['country_TN'] = 'Tunesien';
$lang['country_TR'] = 'Türkei';
$lang['country_TM'] = 'Turkmenistan';
$lang['country_TC'] = 'Turks- und Caicosinseln';
$lang['country_TV'] = 'Tuvalu';
$lang['country_SU'] = 'UdSSR';
$lang['country_UG'] = 'Uganda';
$lang['country_UA'] = 'Ukraine';
$lang['country_HU'] = 'Ungarn';
$lang['country_UM'] = 'United States Minor Outlying Islands';
$lang['country_UY'] = 'Uruguay';
$lang['country_UZ'] = 'Usbekistan';
$lang['country_VU'] = 'Vanuatu';
$lang['country_VA'] = 'Vatikanstadt';
$lang['country_VE'] = 'Venezuela';
$lang['country_AE'] = 'Vereinigte Arabische Emirate';
$lang['country_US'] = 'Vereinigte Staaten von Amerika';
$lang['country_GB'] = 'Vereinigtes Königreich Großbritannien und Nordirland';
$lang['country_VN'] = 'Vietnam';
$lang['country_WF'] = 'Wallis und Futuna';
$lang['country_CX'] = 'Weihnachtsinsel';
$lang['country_EH'] = 'Westsahara';
$lang['country_ZR'] = 'Zaire';
$lang['country_CF'] = 'Zentralafrikanische Republik';
$lang['country_CY'] = 'Zypern';

View File

@ -0,0 +1,66 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link http://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['date_year'] = 'Jahr';
$lang['date_years'] = 'Jahre';
$lang['date_month'] = 'Monat';
$lang['date_months'] = 'Monate';
$lang['date_week'] = 'Woche';
$lang['date_weeks'] = 'Wochen';
$lang['date_day'] = 'Tag';
$lang['date_days'] = 'Tage';
$lang['date_hour'] = 'Stunde';
$lang['date_hours'] = 'Stunden';
$lang['date_minute'] = 'Minute';
$lang['date_minutes'] = 'Minuten';
$lang['date_second'] = 'Sekunde';
$lang['date_seconds'] = 'Sekunden';
$lang['UM12'] = '(UTC -12:00) Baker/Howland Island';
$lang['UM11'] = '(UTC -11:00) Niue';
$lang['UM10'] = '(UTC -10:00) Hawaii-Aleutian Standard Time, Cook Islands, Tahiti';
$lang['UM95'] = '(UTC -9:30) Marquesas Islands';
$lang['UM9'] = '(UTC -9:00) Alaska Standard Time, Gambier Islands';
$lang['UM8'] = '(UTC -8:00) Pacific Standard Time, Clipperton Island';
$lang['UM7'] = '(UTC -7:00) Mountain Standard Time';
$lang['UM6'] = '(UTC -6:00) Central Standard Time';
$lang['UM5'] = '(UTC -5:00) Eastern Standard Time, Western Caribbean Standard Time';
$lang['UM45'] = '(UTC -4:30) Venezuelan Standard Time';
$lang['UM4'] = '(UTC -4:00) Atlantic Standard Time, Eastern Caribbean Standard Time';
$lang['UM35'] = '(UTC -3:30) Newfoundland Standard Time';
$lang['UM3'] = '(UTC -3:00) Argentina, Brazil, French Guiana, Uruguay';
$lang['UM2'] = '(UTC -2:00) South Georgia/South Sandwich Islands';
$lang['UM1'] = '(UTC -1:00) Azores, Cape Verde Islands';
$lang['UTC'] = '(UTC) Greenwich Mean Time, Western European Time';
$lang['UP1'] = '(UTC +1:00) Central European Time, West Africa Time';
$lang['UP2'] = '(UTC +2:00) Central Africa Time, Eastern European Time, Kaliningrad Time';
$lang['UP3'] = '(UTC +3:00) Moscow Time, East Africa Time, Arabia Standard Time';
$lang['UP35'] = '(UTC +3:30) Iran Standard Time';
$lang['UP4'] = '(UTC +4:00) Azerbaijan Standard Time, Samara Time';
$lang['UP45'] = '(UTC +4:30) Afghanistan';
$lang['UP5'] = '(UTC +5:00) Pakistan Standard Time, Yekaterinburg Time';
$lang['UP55'] = '(UTC +5:30) Indian Standard Time, Sri Lanka Time';
$lang['UP575'] = '(UTC +5:45) Nepal Time';
$lang['UP6'] = '(UTC +6:00) Bangladesh Standard Time, Bhutan Time, Omsk Time';
$lang['UP65'] = '(UTC +6:30) Cocos Islands, Myanmar';
$lang['UP7'] = '(UTC +7:00) Krasnoyarsk Time, Cambodia, Laos, Thailand, Vietnam';
$lang['UP8'] = '(UTC +8:00) Australian Western Standard Time, Beijing Time, Irkutsk Time';
$lang['UP875'] = '(UTC +8:45) Australian Central Western Standard Time';
$lang['UP9'] = '(UTC +9:00) Japan Standard Time, Korea Standard Time, Yakutsk Time';
$lang['UP95'] = '(UTC +9:30) Australian Central Standard Time';
$lang['UP10'] = '(UTC +10:00) Australian Eastern Standard Time, Vladivostok Time';
$lang['UP105'] = '(UTC +10:30) Lord Howe Island';
$lang['UP11'] = '(UTC +11:00) Srednekolymsk Time, Solomon Islands, Vanuatu';
$lang['UP115'] = '(UTC +11:30) Norfolk Island';
$lang['UP12'] = '(UTC +12:00) Fiji, Gilbert Islands, Kamchatka Time, New Zealand Standard Time';
$lang['UP1275'] = '(UTC +12:45) Chatham Islands Standard Time';
$lang['UP13'] = '(UTC +13:00) Samoa Time Zone, Phoenix Islands Time, Tonga';
$lang['UP14'] = '(UTC +14:00) Line Islands';

View File

@ -0,0 +1,35 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link http://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['db_invalid_connection_str'] = 'Die Datenbank-Einstellungen sind anhand der vorliegenden Verbindungsdaten nicht zu ermitteln.';
$lang['db_unable_to_connect'] = 'Mit den vorliegenden Einstellungen ist keine Verbindung zum Datenbank-Server möglich.';
$lang['db_unable_to_select'] = 'Die folgende Datenbank kann nicht gewählt werden: %s';
$lang['db_unable_to_create'] = 'Die folgende Datenbank kann nicht erstellt werden: %s';
$lang['db_invalid_query'] = 'Die vorliegende SQL-Abfrage ist ungültig.';
$lang['db_must_set_table'] = 'Sie müssen die Tabelle der Datenbank für Ihre Abfrage angegeben.';
$lang['db_must_use_set'] = 'Zum Updaten eines Eintrages müssen Sie die "set" Methode verwenden.';
$lang['db_must_use_index'] = 'Für einen Batch-Update müssen Sie einen passenden Index bestimmen.';
$lang['db_batch_missing_index'] = 'Eine oder mehrere angegebene Zeilen für einen Batch-Update haben einen fehlenden Index.';
$lang['db_must_use_where'] = 'Updates sind nicht erlaubt, solange Sie nicht eine "where" Bedingung enthalten.';
$lang['db_del_must_use_where'] = 'Löschungen sind nicht erlaubt, solange Sie nicht eine Bedingung wie "where" oder "like" enthalten sind.';
$lang['db_field_param_missing'] = 'Um Felder abzufragen benötigen Sie den Namen der Tabelle als Parameter.';
$lang['db_unsupported_function'] = 'Die verwendete Datenbank-Plattform unterstützt diese Funktion nicht.';
$lang['db_transaction_failure'] = 'Transaktions-Fehler: Rollback durchgeführt.';
$lang['db_unable_to_drop'] = 'Die angegebene Datenbank kann nicht gelöscht werden.';
$lang['db_unsupported_feature'] = 'Ihre Datenbank-Plattform unterstützt diese Funktion nicht.';
$lang['db_unsupported_compression'] = 'Das angegebene Format für die Daten-Komprimierung wird auf Ihrem Server nicht unterstützt.';
$lang['db_filepath_error'] = 'Die Daten konnten nicht in das angegebene Verzeichnis geschrieben werden.';
$lang['db_invalid_cache_path'] = 'Der angegebene Pfad für den Cache ist ungültig oder nicht beschreibbar.';
$lang['db_table_name_required'] = 'Ein Tabellenname wird für diesen Vorgang benötigt.';
$lang['db_column_name_required'] = 'Ein Spaltenname wird für diesen Vorgang benötigt.';
$lang['db_column_definition_required'] = 'Eine Spalten-Definition wird für diesen Vorgang benötigt.';
$lang['db_unable_to_set_charset'] = 'Der Verbindungs-Zeichensatz konnte nicht gesetzt werden: %s';
$lang['db_error_heading'] = 'Es ist ein Datenbank-Fehler aufgetreten.';

View File

@ -0,0 +1,17 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['donate_title'] = 'Du willst diese Webseite unterstützen?';
$lang['donate_subheader'] = 'Damit diese Seite weiterhin kostenfrei existieren kann, brauchen wir Geld zum Finanzieren der Server. Was bekommst du davon? Zum einen kannst du und alle anderen weiterhin diese Seite nutzen. Zum anderen siehst du keine Werbung mehr!';
$lang['donate_catchphrase'] = 'Hilf uns, diesen Dienst weiterhin aufrecht zu erhalten.';
$lang['donate_level1'] = 'Eine <span>1€</span> Spende reicht für \'ne Tüte Süßigkeiten für den Entwickler';
$lang['donate_level2'] = 'Eine <span>2€</span> Spende ermöglicht weiterhin die Entwicklung der Webseite.';
$lang['donate_level3'] = 'Eine <span>5€</span> Spende kann 2GB mehr RAM für den Server kaufen!';
$lang['donate_level4'] = 'Eine <span>10€</span> Spende würde den Mindestlohn für 1 Stunde Arbeit eines Entwicklers decken.';
$lang['donate_level5'] = 'Eine <span>15€</span> Spende könnte 150GB mehr Speicherplatz für eure Bilder, Texte, Videos und co. ermöglichen.';
$lang['donate_level6'] = 'Eine <span>20€</span> Spende wäre die Grundlage für den Kauf eines weiteren Servers.';
$lang['donate_level7'] = 'Eine <span>25€</span> Spende würde es uns ermöglichen verschiedene wichtige Lizenzen zu erwerben.';
$lang['donate_level8'] = 'Eine <span>30€</span> Spende reicht für eine PlayStore App-Veröffentlichung dieser Webseite.';
$lang['donate_level9'] = 'Eine <span>50€</span> Spende würde direkt in den Kauf eines weiteren Servers gesteckt werden.';
$lang['donate_level10'] = 'Eine <span>100€</span> Spende würde für 1 Monat lang für keine Verluste sorgen!';
$lang['donate_btn'] = "Spenden";

View File

@ -0,0 +1,30 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link http://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['email_must_be_array'] = 'Die Methode zur Überprüfung der E-Mail muss in einem Array übergeben werden.';
$lang['email_invalid_address'] = 'Ungültige E-Mail-Adresse: %s';
$lang['email_attachment_missing'] = 'Der folgende E-Mail-Anhang konnte nicht gefunden werden: %s';
$lang['email_attachment_unreadable'] = 'Der folgende Anhang konnte nicht geöffnet werden: %s';
$lang['email_no_from'] = 'Cannot send mail with no "From" header.';// to translate
$lang['email_no_recipients'] = 'Sie müssen mindestens einen der folgenden Empfänger angeben: To, Cc, oder Bcc';
$lang['email_send_failure_phpmail'] = 'Die E-Mail konnte mit PHP mail() nicht gesendet werden. Ihr Server ist offenbar nicht konfiguriert, um mit dieser Methode E-Mails zu versenden.';
$lang['email_send_failure_sendmail'] = 'Die E-Mail konnte mit PHP Sendmail nicht gesendet werden. Der Server ist offenbar nicht konfiguriert, um mit dieser Methode E-Mails zu versenden.';
$lang['email_send_failure_smtp'] = 'E-Mail konnte mit PHP SMTP nicht gesendet werden. Der Server ist offenbar nicht konfiguriert, um mit dieser Methode E-Mails zu versenden.';
$lang['email_sent'] = 'Ihre Nachricht wurde erfolgreich über das folgenden Protokoll verschickt: %s';
$lang['email_no_socket'] = 'Es konnte keine Socket-Verbindung zu Sendmail hergestellt werden. Bitte überprüfen Sie Ihre Einstellungen.';
$lang['email_no_hostname'] = 'Sie haben keine Angaben zum SMTP-Server vorgenommen.';
$lang['email_smtp_error'] = 'Der folgenden SMTP-Fehler ist aufgetreten: %s';
$lang['email_no_smtp_unpw'] = 'Fehler: Sie müssen einen SMTP Usernamen und ein Passwort angeben.';
$lang['email_failed_smtp_login'] = 'Das Senden des Kommandos AUTH LOGIN ist fehlgeschlagen. Fehler: %s';
$lang['email_smtp_auth_un'] = 'Der angegebene Username konnte nicht authentifiziert werden. Fehler: %s';
$lang['email_smtp_auth_pw'] = 'Das angegebene Passwort konnte nicht authentifiziert werden. Fehler: %s';
$lang['email_smtp_data_failure'] = 'Die Daten konnten nicht gesendet werden: %s';
$lang['email_exit_status'] = 'Abbruch Status-Code: %s';

View File

@ -0,0 +1,69 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['faq_title'] = 'FAQ - Häufig gestellte Fragen';
$lang['faq_des'] = 'Hier gibt es die Antworten auf alle häufig gestellten Fragen!';
$lang['faq_section1_title'] = 'Was ist das hier für eine Seite?';
$lang['faq_section1_q1'] = 'Was gibt es hier so?';
$lang['faq_section1_a1'] = 'Diese Seite ist sehr vielseitig. Der Hauptbestandteil ist der Blog und das Portfolio, in dem alle bisherigen, erwähnenswerten Projekte von KingOfDog zu finden sind. Mehr zu dem Blog ist in dem 5. Abschnitt zu lesen. Außerdem gibt es hier einige Tools, schau sie dir einfach selbst mal an, und eine Download-Seite, mit einigen nützlichen Dingen zum Downloaden. Das, was am meisten Entwicklungszeit gekostet hat, ist aber das Nutzersystem, mit eigenen Profilen und einem Kommentarsystem und vielem mehr! Erstell dir doch einfach kostenfrei ein Konto (mehr dazu im Abschnitt "Accounts auf KingOfDogTV.de" und erkunde das System selbst.';
$lang['faq_section1_q2'] = 'Und von wem ist das?';
$lang['faq_section1_a2'] = 'Wie man es Anhand des Namens schon erahnen kann: KingOfDog (eigentlich: Marcel). KingOfDog ist ein YouTuber (mit drei Kanälen: KingOfDog [Gaming, Meinungsvideos, Tutorials etc.], ZeybeFX [Designs] und ZeybeOfficial[Musik]), Designer, Programmierer und Developer. Fast im Alleingang hat er diese Webseite programmiert! Aber er möchte sich an dieser Stelle nicht zu sehr loben und herausheben: solltet ihr mehr wissen wollen, schaut auf der "About"-Seite vorbei oder lest euch den nächsten Abschnitt durch.';
$lang['faq_section1_q3'] = 'Kostest die Seite was?';
$lang['faq_section1_a3'] = 'Nein. Die Nutzung dieses Dienstes ist und bleibt kostenlos und wird hauptsächlich durch Werbeeinahmen und Spenden von gütigen Menschen am Leben gehalten. Solltet ihr wirklich einer der wenigen Spender sein wollen, könnt dies gerne tun. Ihr werdet auf der Startseite erwähnt und seht keine Werbung mehr auf der Seite. <b>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!</b>';
$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.<br>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 <b>kennt</b> 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. <br> 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.';

View File

@ -0,0 +1,14 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['footer_language'] = 'Sprache';
$lang['footer_blog_posts'] = 'Letzte Blog-Posts';
$lang['footer_about'] = 'Über mich';
$lang['footer_impress'] = 'Impressum';
$lang['footer_disclaimer'] = 'Disclaimer';
$lang['footer_faq'] = 'Häufig Gestellte Fragen (FAQ)';
$lang['footer_contact'] = 'Kontakt';
$lang['footer_privacy_policy'] = 'Datenschutzerklärung';
$lang['footer_about_text'] = 'Hi, ich bin KingOfDog, der Betreiber und Gründer dieser Webseite. Ich bin Developer, Designer und YouTuber aus Leidenschaft und betreibe seit 2013 den YouTube-Kanal KingOfDog. Wenn du mehr über mich erfahren möchstest, gehe auf meine';
$lang['footer_about_link'] = 'About-Seite';
$lang['footer_published'] = 'Veröffentlicht';

View File

@ -0,0 +1,40 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link http://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['form_validation_required'] = 'Das {field} Formularfeld ist eine Pflichtangabe.';
$lang['form_validation_isset'] = 'Das {field} Formularfeld mus einen gültigen Wert enthalten.';
$lang['form_validation_valid_email'] = 'Das {field} Formularfeld muss eine gültige E-Mail-Adresse beinhalten.';
$lang['form_validation_valid_emails'] = 'Das {field} Formularfeld muss gültige E-Mail-Adressen beinhalten.';
$lang['form_validation_valid_url'] = 'Das {field} Formularfeld muss eine gültige URL beinhalten.';
$lang['form_validation_valid_ip'] = 'Das {field} Formularfeld muss eine gültige IP-Adresse beinhalten.';
$lang['form_validation_min_length'] = 'Das {field} Formularfeld muss mindestens {param} Zeichen lang sein.';
$lang['form_validation_max_length'] = 'Das {field} Formularfeld darf nicht mehr als {param} Zeichen lang sein.';
$lang['form_validation_exact_length'] = 'Das {field} Formularfeld muss exakt {param} Zeichen lang sein.';
$lang['form_validation_alpha'] = 'Das {field} Formularfeld darf nur alphabetische Zeichen enthalten.';
$lang['form_validation_alpha_numeric'] = 'Das {field} Formularfeld darf nur alphanumerische Zeichen enthalten.';
$lang['form_validation_alpha_numeric_spaces'] = 'Das {field} Formularfeld darf nur alphanumerische Zeichen und Leerzeichen enthalten.';
$lang['form_validation_alpha_dash'] = 'Das {field} Formularfeld darf nur alphanumerische Zeichen, Unterstriche und Bindestriche enthalten.';
$lang['form_validation_numeric'] = 'Das {field} Formularfeld darf nur Zahlen enthalten.';
$lang['form_validation_is_numeric'] = 'Das {field} Formularfeld darf nur numerische Zeichen enthalten.';
$lang['form_validation_integer'] = 'Das {field} Formularfeld muss einen Integer-Wert enthalten.';
$lang['form_validation_regex_match'] = 'Das {field} Formularfeld hat keinen gültigen Wert.';
$lang['form_validation_matches'] = 'Das {field} Formularfeld stimmt nicht mit dem {param} Formularfeld überein.';
$lang['form_validation_differs'] = 'Das {field} Formularfeld muss sich vom {param} Formularfeld unterscheiden.';
$lang['form_validation_is_unique'] = 'Das {field} Formularfeld muss einen eindeutigen (unique) Wert enthalten.';
$lang['form_validation_is_natural'] = 'Das {field} Formularfeld muss Zahlen enthalten.';
$lang['form_validation_is_natural_no_zero'] = 'Das {field} Formularfeld muss Zahlen enthalten und größer als Null sein.';
$lang['form_validation_decimal'] = 'Das {field} Formularfeld mus eine Dezimalzahl enthalten.';
$lang['form_validation_less_than'] = 'Das {field} Formularfeld muss einen Zahlenwert enthalten der kleiner als {param} ist.';
$lang['form_validation_less_than_equal_to'] = 'Das {field} Formularfeld muss einen Zahlenwert enthalten der kleiner oder gleich {param} ist.';
$lang['form_validation_greater_than'] = 'Das {field} Formularfeld muss einen Zahlenwert enthalten der gößer als {param} ist.';
$lang['form_validation_greater_than_equal_to'] = 'Das {field} Formularfeld muss einen Wert enthalten, der größer oder gleich {param} ist.';
$lang['form_validation_error_message_not_set'] = 'Kann eine Fehlermeldung entsprechend Ihrer Feldname {field } zugreifen .';
$lang['form_validation_in_list'] = 'Das {field} Formularfeld muss eins dieser Elemente enthalten: {param}.';

View File

@ -0,0 +1,23 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link http://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['ftp_no_connection'] = 'Es wurde keine gültige Verbindungs-ID gefunden. Bitte stellen Sie sicher, dass Sie ein gültige Verbindung aufgebaut haben, bevor Sie Dateioperationen durchführen.';
$lang['ftp_unable_to_connect'] = 'Mit dem angegebenen Namen des FTP-Servers konnte keine Verbindung hergestellt werden.';
$lang['ftp_unable_to_login'] = 'Die Anmeldung am FTP-Server ist fehlgeschlagen. Bitte überprüfen Sie den Usernamen und das Passwort.';
$lang['ftp_unable_to_mkdir'] = 'Das angegebene Verzeichnis konnte nicht erstellt werden.';
$lang['ftp_unable_to_changedir'] = 'Die Verzeichnisse konnten nicht gewechselt werden.';
$lang['ftp_unable_to_chmod'] = 'Die Datei-Rechte konnten nicht gesetzt werden. Bitte überprüfen Sie den Systempfad.';
$lang['ftp_unable_to_upload'] = 'Die angegebene Datei konnte nicht übertragen werden. Bitte überprüfen Sie den Systempfad.';
$lang['ftp_unable_to_download'] = 'Die Datei konnte nicht herunter geladen werden. Bitte überprüfen Sie den Systempfad.';
$lang['ftp_no_source_file'] = 'Die (Quell-)Datei konnte nicht gefunden werden. Bitte überprüfen Sie den Systempfad.';
$lang['ftp_unable_to_rename'] = 'Die Datei konnte nicht umbenannt werden.';
$lang['ftp_unable_to_delete'] = 'Die Datei konnte nicht gelöscht werden.';
$lang['ftp_unable_to_move'] = 'Die Datei konnte nicht verschoben werden. Bitte überprüfen Sie, ob das Ziel-Verzeichnis existiert.';

View File

@ -0,0 +1,11 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['website_name'] = 'KingOfDogTV.de';
$lang['person_by'] = 'von';
$lang['additional_more'] = 'Mehr';
$lang['close'] = 'Schließen';
$lang['send'] = 'Absenden';
$lang['unknown'] = 'Unbekannt';
$lang['login'] = 'Anmelden';
$lang['edit'] = 'Bearbeiten';

View File

@ -0,0 +1,56 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['header_home'] = 'Startseite';
$lang['header_projects'] = 'Projekte';
$lang['header_blog'] = 'Blog';
$lang['header_tools'] = 'Tools';
$lang['header_tools_overview'] = 'Übersicht';
$lang['header_tools_encrypter'] = 'Verschlüsselung';
$lang['header_tools_url_encoder'] = 'URL-Encoder';
$lang['header_tools_base64'] = 'Base64-Encoder';
$lang['header_tools_password'] = 'Passwort-Generator';
$lang['header_tools_nickname'] = 'Nickname-Generator';
$lang['header_tools_csgo'] = 'CS:GO-Tools';
$lang['header_tools_minecraft_player'] = 'Minecraft Spieler-Tools';
$lang['header_tools_minecraft_server'] = 'Minecraft Server-Tools';
$lang['header_tools_youtube'] = 'YouTube-Downloader';
$lang['header_about'] = 'Über mich';
$lang['header_faq'] = 'Häufig gestelllte Fragen (FAQ)';
$lang['header_donate'] = 'Spenden';
$lang['header_network'] = 'Netzwerk';
$lang['header_network_feed'] = 'Dein Feed';
$lang['header_network_popular'] = 'Beliebt';
$lang['header_network_top_users'] = 'Top User';
$lang['header_network_trending_users'] = 'Aufstrebende User';
$lang['header_register'] = 'Registrieren';
$lang['header_login'] = 'Einloggen';
$lang['header_logout'] = 'Ausloggen';
$lang['header_your_profile'] = 'Dein Profil';
$lang['header_admin_panel'] = 'Admin-Panel';
$lang['header_profile'] = 'Profil';
$lang['header_edit_profile'] = 'Profil bearbeiten';
$lang['header_contact'] = 'Kontakt';
$lang['header_contact_title'] = 'Team kontaktieren';
$lang['header_contact_mail'] = 'E-Mail-Adresse';
$lang['header_contact_mail_placeholder'] = 'Bitte gib deine E-Mail-Adresse ein';
$lang['header_contact_msg'] = 'Nachricht';
$lang['header_contact_msg_placeholder'] = 'Bitte gib deine Nachricht an das Team der Webseite ein';
$lang['header_feedback'] = 'Feedback';
$lang['header_feedback_title'] = 'Feedback verfassen';
$lang['header_feedback_info'] = 'Wir arbeiten stetig an der Webseite, um sie immer weiter zu verbessern, um jedem Nutzer das bestmögliche und individuellste Nutzererlebnis zu bieten. Doch dabei sind wir auf <b>deine</b> 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.<br>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.<br><b>In allen Fällen gehen wir mit deinen Daten sensibel um und geben diese keinesfalls an Drittanbieter weiter!</b>';
$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';

View File

@ -0,0 +1,37 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['home_sitetitle'] = 'Startseite';
$lang['home_slider_portfolio_title'] = 'Meine Projekte. Design & Programmierung von A-Z';
$lang['home_slider_portfolio_des'] = 'Von Fotografie und Filmografie, über Webdesign und Webdevelopment, und über Animationen und Designs, hinzu Videoschnitt und Bildbearbeitung. Alles mögliche habe ich schon gemacht oder mache ich derzeit. In meinem Portfolio sind alle meine Projekte zu sehen!';
$lang['home_slider_portfolio_btn'] = 'Meine Projekte';
$lang['home_slider_blog_title'] = 'Design. Programmierung. Development. - und noch vieles mehr!';
$lang['home_slider_blog_des'] = 'Auf meinem Blog ist viel zu finden: von Design-Artikeln, über Meinungs-Posts und Technik-Infos, hin zu Software und Programmierungs-Texten!';
$lang['home_slider_blog_btn'] = 'Zum Blog';
$lang['home_slider_about_title'] = 'Ich bin KingOfDog';
$lang['home_slider_about_des'] = 'YouTuber, Designer, Developer - KingOfDog. Auf meiner "About"-Seite ist noch einiges mehr zu an Informationen und ähnliches zu finden!';
$lang['home_slider_about_btn'] = 'Mehr erfahren';
$lang['home_slider_video_title'] = 'Neuestes Video';
$lang['home_slider_video_des'] = 'Regieanweisung: <i>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!</i>';
$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.';

View File

@ -0,0 +1,28 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link http://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['imglib_source_image_required'] = 'In Ihren Einstellungen muss eine Quell-Datei angegeben werden.';
$lang['imglib_gd_required'] = 'Für diese Funktion muss die GD Image Library vorhanden sein.';
$lang['imglib_gd_required_for_props'] = 'Auf Ihrem Server muss die GD Image Library installiert sein, damit die Bildeigenschaften bestimmt werden können.';
$lang['imglib_unsupported_imagecreate'] = 'Ihr Server unterstützt die geforderte GD Funktion nicht, damit dieser Bildtyp bearbeitet werden kann.';
$lang['imglib_gif_not_supported'] = 'GIF-Bilder werden meist aus Lizenzgründen nicht unterstützt. Verwenden Sie stattdessen ein JPG- oder PNG-Datei.';
$lang['imglib_jpg_not_supported'] = 'JPG-Dateien werden nicht unterstützt.';
$lang['imglib_png_not_supported'] = 'PNG-Dateien werden nicht unterstützt.';
$lang['imglib_jpg_or_png_required'] = 'Die von Ihnen gewählte Einstellung für die Verkleinerungsfunktion arbeitet nur JPEG- oder PNG-Dateien.';
$lang['imglib_copy_error'] = 'Während dem Ersetzen der Datei ist ein Fehler aufgetreten. Stellen Sie sicher, dass das Verzeichnis beschreibbar ist.';
$lang['imglib_rotate_unsupported'] = 'Das Drehen von Grafiken scheint auf Ihrem Server nicht unterstützt zu werden.';
$lang['imglib_libpath_invalid'] = 'Der Pfad zu Ihrem Bild-Verzeichnis ist falsch. Bitte tragen Sie den korrekten Pfad in den Bild-Einstellungen ein.';
$lang['imglib_image_process_failed'] = 'Die Bildbearbeitung ist gescheitert. Bitte überprüfen, dass Ihr Server das gewählte Protokoll unterstützt und dass der Pfad zu den Bildern korrekt ist.';
$lang['imglib_rotation_angle_required'] = 'Es muss ein Winkel zur Drehung des Bildes angegeben werden.';
$lang['imglib_invalid_path'] = 'Der Pfad zum Bild ist falsch.';
$lang['imglib_copy_failed'] = 'Die Routine zum Kopieren des Bildes ist gescheitert.';
$lang['imglib_missing_font'] = 'Es konnte kein geeigneter Zeichensatz gefunden werden.';
$lang['imglib_save_failed'] = 'Das Bild konnte nicht gespeichert werden. Stellen Sie sicher, dass die benötigten Verzeichnis beschreibbar ist.';

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@ -0,0 +1,144 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['lang_aa'] = 'Afar';
$lang['lang_ab'] = 'Abchasisch';
$lang['lang_af'] = 'Afrikaans';
$lang['lang_am'] = 'Amharisch';
$lang['lang_ar'] = 'Arabisch';
$lang['lang_as'] = 'Assamesisch';
$lang['lang_ay'] = 'Aymara';
$lang['lang_az'] = 'Aserbaidschanisch';
$lang['lang_ba'] = 'Baschkirisch';
$lang['lang_be'] = 'Belorussisch';
$lang['lang_bg'] = 'Bulgarisch';
$lang['lang_bh'] = 'Biharisch';
$lang['lang_bi'] = 'Bislamisch';
$lang['lang_bn'] = 'Bengalisch';
$lang['lang_bo'] = 'Tibetanisch';
$lang['lang_br'] = 'Bretonisch';
$lang['lang_ca'] = 'Katalanisch';
$lang['lang_co'] = 'Korsisch';
$lang['lang_cs'] = 'Tschechisch';
$lang['lang_cy'] = 'Walisisch';
$lang['lang_da'] = 'Dänisch';
$lang['lang_de'] = 'Deutsch';
$lang['lang_dz'] = 'Dzongkha/Bhutani';
$lang['lang_el'] = 'Griechisch';
$lang['lang_en'] = 'Englisch';
$lang['lang_eo'] = 'Esperanto';
$lang['lang_es'] = 'Spanisch';
$lang['lang_et'] = 'Estnisch';
$lang['lang_eu'] = 'Baskisch';
$lang['lang_fa'] = 'Persisch';
$lang['lang_fi'] = 'Finnisch';
$lang['lang_fj'] = 'Fiji';
$lang['lang_fo'] = 'Färöisch';
$lang['lang_fr'] = 'Französisch';
$lang['lang_fy'] = 'Friesisch';
$lang['lang_ga'] = 'Irisch';
$lang['lang_gd'] = 'Schottisches Gälisch';
$lang['lang_gl'] = 'Galizisch';
$lang['lang_gn'] = 'Guarani';
$lang['lang_gu'] = 'Gujaratisch';
$lang['lang_ha'] = 'Haussa';
$lang['lang_he'] = 'Hebräisch';
$lang['lang_hi'] = 'Hindi';
$lang['lang_hr'] = 'Kroatisch';
$lang['lang_hu'] = 'Ungarisch';
$lang['lang_hy'] = 'Armenisch';
$lang['lang_ia'] = 'Interlingua';
$lang['lang_id'] = 'Indonesisch';
$lang['lang_ie'] = 'Interlingue';
$lang['lang_ik'] = 'Inupiak';
$lang['lang_is'] = 'Isländisch';
$lang['lang_it'] = 'Italienisch';
$lang['lang_iu'] = 'Inuktitut (Eskimo)';
$lang['lang_iw'] = 'Hebräisch';
$lang['lang_ja'] = 'Japanisch';
$lang['lang_ji'] = 'Jiddish';
$lang['lang_jv'] = 'Javanisch';
$lang['lang_ka'] = 'Georgisch';
$lang['lang_kk'] = 'Kasachisch';
$lang['lang_kl'] = 'Kalaallisut';
$lang['lang_km'] = 'Kambodschanisch';
$lang['lang_kn'] = 'Kannada';
$lang['lang_ko'] = 'Koreanisch';
$lang['lang_ks'] = 'Kaschmirisch';
$lang['lang_ku'] = 'Kurdisch';
$lang['lang_ky'] = 'Kirgisisch';
$lang['lang_la'] = 'Lateinisch';
$lang['lang_ln'] = 'Lingala';
$lang['lang_lo'] = 'Laotisch';
$lang['lang_lt'] = 'Litauisch';
$lang['lang_lv'] = 'Lettisch';
$lang['lang_mg'] = 'Malagasisch';
$lang['lang_mi'] = 'Maorisch';
$lang['lang_mk'] = 'Mazedonisch';
$lang['lang_ml'] = 'Malajalam';
$lang['lang_mn'] = 'Mongolisch';
$lang['lang_mo'] = 'Moldavisch';
$lang['lang_mr'] = 'Marathi';
$lang['lang_ms'] = 'Malaysisch';
$lang['lang_mt'] = 'Maltesisch';
$lang['lang_my'] = 'Burmesisch';
$lang['lang_na'] = 'Nauruisch';
$lang['lang_ne'] = 'Nepalesisch';
$lang['lang_nl'] = 'Holländisch';
$lang['lang_no'] = 'Norwegisch';
$lang['lang_oc'] = 'Okzitanisch';
$lang['lang_om'] = 'Oromo';
$lang['lang_or'] = 'Oriya';
$lang['lang_pa'] = 'Pundjabisch';
$lang['lang_pl'] = 'Polnisch';
$lang['lang_ps'] = 'Paschtu';
$lang['lang_pt'] = 'Portugiesisch';
$lang['lang_qu'] = 'Quechua';
$lang['lang_rm'] = 'Rätoromanisch';
$lang['lang_rn'] = 'Kirundisch';
$lang['lang_ro'] = 'Rumänisch';
$lang['lang_ru'] = 'Russisch';
$lang['lang_rw'] = 'Kijarwanda';
$lang['lang_sa'] = 'Sanskrit';
$lang['lang_sd'] = 'Zinti';
$lang['lang_sg'] = 'Sango';
$lang['lang_sh'] = 'Serbokroatisch';
$lang['lang_si'] = 'Singhalesisch';
$lang['lang_sk'] = 'Slowakisch';
$lang['lang_sl'] = 'Slowenisch';
$lang['lang_sm'] = 'Samoanisch';
$lang['lang_sn'] = 'Schonisch';
$lang['lang_so'] = 'Somalisch';
$lang['lang_sq'] = 'Albanisch';
$lang['lang_sr'] = 'Serbisch';
$lang['lang_ss'] = 'Swasiländisch';
$lang['lang_st'] = 'Sesothisch';
$lang['lang_su'] = 'Sudanesisch';
$lang['lang_sv'] = 'Schwedisch';
$lang['lang_sw'] = 'Suaheli';
$lang['lang_ta'] = 'Tamilisch';
$lang['lang_te'] = 'Tegulu';
$lang['lang_tg'] = 'Tadschikisch';
$lang['lang_th'] = 'Thai';
$lang['lang_ti'] = 'Tigrinja';
$lang['lang_tk'] = 'Turkmenisch';
$lang['lang_tl'] = 'Tagalog';
$lang['lang_tn'] = 'Sezuan';
$lang['lang_to'] = 'Tongaisch';
$lang['lang_tr'] = 'Türkisch';
$lang['lang_ts'] = 'Tsongaisch';
$lang['lang_tt'] = 'Tatarisch';
$lang['lang_tw'] = 'Twi';
$lang['lang_ug'] = 'Uigur';
$lang['lang_uk'] = 'Ukrainisch';
$lang['lang_ur'] = 'Urdu';
$lang['lang_uz'] = 'Usbekisch';
$lang['lang_vi'] = 'Vietnamesisch';
$lang['lang_vo'] = 'Volapük';
$lang['lang_wo'] = 'Wolof';
$lang['lang_xh'] = 'Xhosa';
$lang['lang_yi'] = 'Jiddish';
$lang['lang_yo'] = 'Joruba';
$lang['lang_za'] = 'Zhuang';
$lang['lang_zh'] = 'Chinesisch';
$lang['lang_zu'] = 'Zulu';

View File

@ -0,0 +1,33 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['register_error_occured'] = 'Leider ist ein Fehler aufgetreten';
$lang['register_error_username_short'] = 'Dein Nutzername ist zu kurz!';
$lang['register_error_username_short_body'] = 'Dein Name muss 4 Zeichen oder mehr enthalten.';
$lang['register_error_username_occupied'] = 'Nutzername bereits vergeben!';
$lang['register_error_username_occupied_body'] = 'Leider hat ein anderer Nutzer bereits den gleichen Namen gewählt.';
$lang['register_error_username_characters'] = 'Ungültiger Nutzername!';
$lang['register_error_username_characters_body'] = 'Dein Name darf ausschließlich Groß- (A-Z) und Kleinbuchstaben (a-z), Zahlen (0-9), Punkte (.) sowie Unterstriche (_) enthalten.';
$lang['register_error_username_missing'] = 'Bitte gib deinen Nutzernamen ein!';
$lang['register_error_username_missing_body'] = 'Wir benötigen deinen einzigartigen und wundervollen Namen, um dein Konto eindeutig identifizieren zu können!';
$lang['register_error_trashmail'] = 'Bitte verwende keine Trash-Mail.';
$lang['register_error_trashmail_body'] = 'Wir bemühen uns, den bestmöglichen Service zu bieten und würden uns daher sehr darüber freuen, wenn keine Wegwerf-Accounts genutzt würden.';
$lang['register_error_email_occupied'] = 'E-Mail-Adresse wird bereits verwendet!';
$lang['register_error_email_occupied_body'] = 'Es ist bereits ein anderer Account mit der gleichen E-Mail-Adresse registriert. Solltest du dein Passwort vergessen haben, kannst du es zurücksetzen. Hältst du diese Nachricht für ein Fehler? Kontaktiere uns!';
$lang['register_error_email_missing'] = 'Bitte gib deine E-Mail-Adresse ein!';
$lang['register_error_email_missing_body'] = 'Wir müssen bestätigen, dass du wirklich du bist, damit du unsere Seite nutzen kannst.';
$lang['register_error_pw_unsecure'] = 'Zu unsicheres Passwort!';
$lang['register_error_pw_unsecure_body'] = 'Dein Passwort sollte mindestens 8 Zeichen lang sein und jeweils einen Groß-, einen Kleinenbuchstaben, eine Zahl und ein Sonderzeichen enthalten.';
$lang['register_error_pw_different'] = 'Passwörter stimmen nicht überein';
$lang['register_error_pw_different_body'] = 'Beide Passwörter müssen übereinstimmen.';
$lang['register_error_pw_second_missing'] = 'Passwörter stimmen nicht überein!';
$lang['register_error_pw_second_missing_body'] = 'Bitte gib zur Sicherheit dein Passwort ein zweites Mal ein.';
$lang['register_error_pw_missing'] = 'Das Passwort fehlt!';
$lang['register_error_pw_missing_body'] = 'Bitte gib ein Passwort an, damit wir deinen Account effektiv schützen können.';
$lang['register_welcome'] = 'Herzlich willkommen, %1$s.';
$lang['register_welcome_body'] = 'Du kannst bald deinen Account in voller Pracht nutzen. Du braucht lediglich noch auf den Link in der E-Mail, die wir dir gesendet haben zu klicken und dann bist du schon fertig!';
$lang['register_end_message_success'] = 'Willkommen! Du bist nun ein Mitglied geworden.';

View File

@ -0,0 +1,19 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link http://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['migration_none_found'] = 'Es wurde keine Migration gefunden.';
$lang['migration_not_found'] = 'Die Migration mit der Versionsnummer %s wurde nicht gefunden.';
$lang['migration_sequence_gap'] = 'Es besteht eine Lücke zwischen der Reihenfolge der Migrationsversion: %s.';
$lang['migration_multiple_version'] = 'Es existieren mehrere Migrationen mit der gleichen Versionsnummer: %s.';
$lang['migration_class_doesnt_exist'] = 'Die Migration-Klasse "%s" konnte nicht gefunden werden.';
$lang['migration_missing_up_method'] = 'Der Migration-Klasse "%s" fehlt eine "up" Methode.';
$lang['migration_missing_down_method'] = 'Der Migration-Klasse "%s" fehlt eine "down" Methode.';
$lang['migration_invalid_filename'] = 'Migration "%s" hat einen ungültigen Dateinamen.';

View File

@ -0,0 +1,24 @@
<?php
$lang['notification.multiple'] = '%1$s und %2$s';
$lang['notification.many'] = '%1$s, %2$s und %3$s';
$lang['users.newFollower.single'] = '%1$s folgt dir nun.';
$lang['users.newFollower.multiple'] = '%1$s folgen dir nun.';
$lang['users.newFollower.many'] = '%1$s andere folgen dir nun.';
$lang['users.likedPost.single'] = '%1$s gefällt dein Post.';
$lang['users.likedPost.multiple'] = '%1$s gefallen dein Post.';
$lang['users.likedPost.many'] = '%1$s anderen gefallen dein Post.';
$lang['users.mentionedPost.single'] = '%1$s hat dich in einem Post erwähnt.';
$lang['users.repliedPost.single'] = '%1$s hat eine Antwort auf einen deiner Posts verfasst.';
$lang['users.repliedPost.multiple'] = '%1$s haben auf einen deiner Posts geantwortet.';
$lang['users.repliedPost.many'] = '%1$s andere auf einen deiner Posts geantwortet.';
$lang['admin.newUserRegistered.single'] = '%1$s hat einen neuen Account registriert.';
$lang['admin.feedback.single'] = '%1$s hat ein neues Feedback verfasst.';
$lang['admin.feedback.multiple'] = '%1$s haben ein neues Feedback verfasst.';
$lang['admin.feedback.many'] = '%1$s andere haben ein neues Feedback verfasst.';

View File

@ -0,0 +1,16 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link http://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['terabyte_abbr'] = 'TB';
$lang['gigabyte_abbr'] = 'GB';
$lang['megabyte_abbr'] = 'MB';
$lang['kilobyte_abbr'] = 'KB';
$lang['bytes'] = 'Bytes';

View File

@ -0,0 +1,15 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link http://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['pagination_first_link'] = '&lsaquo; Erste';
$lang['pagination_next_link'] = '&gt;';
$lang['pagination_prev_link'] = '&lt;';
$lang['pagination_last_link'] = 'Letzte &rsaquo;';

View File

@ -0,0 +1,56 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['profile_social_networks'] = 'Soziale Netzwerke';
// Profile card
$lang['profile_follow'] = 'Folgen';
$lang['profile_following'] = 'Folgt';
$lang['profile_unfollow'] = 'Entfolgen';
$lang['profile_gender'] = 'Geschlecht';
$lang['profile_gender_male'] = 'Männlich';
$lang['profile_gender_female'] = 'Weiblich';
$lang['profile_gender_other'] = 'Anderes';
$lang['profile_country'] = 'Land';
$lang['profile_language'] = 'Sprache';
$lang['profile_user_rank'] = 'Nutzer-Rang';
$lang['profile_rank'] = 'Rang';
$lang['profile_account_age'] = 'Account-Alter';
$lang['profile_account_created'] = 'Account erstellt %1$s';
$lang['profile_birth_date'] = 'Geburtsdatum';
$lang['profile_born'] = 'Geboren am';
// Profile page header
$lang['profile_contributions'] = 'Beiträge';
$lang['profile_posts'] = 'Posts';
$lang['profile_blog_posts'] = 'Blog-Posts';
$lang['profile_blog_comments'] = 'Blog-Kommentare';
$lang['profile_followers'] = 'Follower';
$lang['profile_followed_users'] = 'Folgt';
$lang['profile_edit'] = 'Profil bearbeiten';
// Content
$lang['profile_all_posts'] = 'Alle Posts';
$lang['profile_view_posts'] = 'Alle Posts ansehen';
$lang['profile_all_blog_posts'] = 'Alle Blog-Posts';
$lang['profile_view_blog_posts'] = 'Alle Blog-Posts ansehen';
$lang['profile_all_blog_comments'] = 'Alle Blog-Kommentare';
$lang['profile_view_blog_comments'] = 'Alle Blog-Kommentare ansehen';
$lang['profile_all_followers'] = 'Alle Follower';
$lang['profile_all_followed'] = 'Alle gefolgten Nutzer';
// Feed
$lang['feed_your_feed'] = 'Dein Feed';
$lang['feed_popular'] = 'Beliebt';
$lang['feed_top_users'] = 'Top User';
$lang['feed_trending_users'] = 'Aufstrebende User';
$lang['feed_your_profile'] = 'Dein Profil';
$lang['feed_search'] = 'Suchen';
$lang['feed_search_all'] = 'Alle';
$lang['feed_search_user'] = 'Nutzer';
$lang['feed_search_posts'] = 'Posts';
$lang['feed_search_media'] = 'Medien';
$lang['post_like_account_missing'] = 'Du musst eingeloggt sein, um Posts zu bewerten. <a href="' . base_url('login') . '" class="alert-link">Erstelle dir kostenlos einen Account oder melde dich an.</a>';

View File

@ -0,0 +1,32 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link http://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['profiler_database'] = 'DATABASE';
$lang['profiler_controller_info'] = 'CLASS/METHOD';
$lang['profiler_benchmarks'] = 'BENCHMARKS';
$lang['profiler_queries'] = 'QUERIES';
$lang['profiler_get_data'] = 'GET-Daten';
$lang['profiler_post_data'] = 'POST-Daten';
$lang['profiler_uri_string'] = 'URI STRING';
$lang['profiler_memory_usage'] = 'VERWENDETER ARBEITSSPEICHER';
$lang['profiler_config'] = 'CONFIG VARIABLES';
$lang['profiler_session_data'] = 'SESSION DATA';
$lang['profiler_headers'] = 'HTTP HEADERS';
$lang['profiler_no_db'] = 'Der Datenbanktreiber wurde aktuell nicht geladen.';
$lang['profiler_no_queries'] = 'Es wurde bisher keine Abfrage gestartet.';
$lang['profiler_no_post'] = 'Es sind keine POST-Daten vorhanden.';
$lang['profiler_no_get'] = 'Es sind keine GET-Daten vorhanden.';
$lang['profiler_no_uri'] = 'Es sind keine URI-Daten vorhanden.';
$lang['profiler_no_memory'] = 'Es sind keine Angaben für die Verwendung des Arbeitsspeichers verfügbar.';
$lang['profiler_no_profiles'] = 'E sind keine Profiler-Daten verfügbar, da alle Bereiche dazu deaktiviert wurden.';
$lang['profiler_section_hide'] = 'Verstecken';
$lang['profiler_section_show'] = 'Anzeigen';
$lang['profiler_seconds'] = 'Sekunden';

View File

@ -0,0 +1,21 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['projects_sitetitle'] = 'Meine Projekte';
$lang['projects_title'] = 'Meine Projekte - Downloads - Portfolio';
$lang['projects_description'] = 'Nahezu alle nennenswerten Projekte, die ich bisher in verschiedensten Bereichen erarbeitet habe, sind hier zu finden, zu durchstöbern und anzusehen!';
$lang['projects_download'] = 'Download verfügbar';
$lang['projects_opensource'] = 'Open Source verfügbar';
$lang['projects_filter_category'] = 'Filtern nach Projekt-Kategorie';
$lang['projects_filter_type'] = 'Filtern nach Projekt-Typ';
$lang['projects_sort'] = 'Sortieren nach';
$lang['projects_sort_name'] = 'Name';
$lang['projects_sort_date'] = 'Datum';
$lang['projects_sort_voteCount'] = 'Beliebtheit';
$lang['projects_all'] = 'Alle';
$lang['projects_back_to_overview'] = 'Zurück zur Übersicht';
$lang['projects_previous'] = 'Vorheriges Projekt';
$lang['projects_next'] = 'Darauffolgendes Projekt';

View File

@ -0,0 +1,249 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
// Encrypter
$lang['encrypter_adfgvx'] = 'Adfgvx';
$lang['encrypter_atbash'] = 'Atbash';
$lang['encrypter_caesar'] = 'Cäsar';
$lang['encrypter_'] = 'Gartenzaun';
$lang['encrypter_monosubkey'] = 'Monosubkey';
$lang['encrypter_playfair'] = 'Playfair';
$lang['encrypter_vigenere'] = 'Vigenère';
$lang['encrypter_encrypt'] = 'Verschlüsseln';
$lang['encrypter_decrypt'] = 'Entschlüsseln';
$lang['encrypter_decrypted'] = 'Unverschlüsselter Text';
$lang['encrypter_decrypted_ph'] = 'Gebe einen unverschlüsselten Text ein, um diesen zu verschlüsseln!';
$lang['encrypter_encrypted'] = 'Verschlüsselter Text';
$lang['encrypter_encrypted_ph'] = 'Gebe einen verschlüsselten Text ein, um diesen zu entschlüsseln!';
$lang['adfgvx_title'] = 'ADFGVX-Verschlüsselung';
$lang['adfgvx_desc'] = 'Die im Ersten Weltkrieg von den Deutschen verwendete ADFGVX-Verschlüsselung';
$lang['adfgvx_first_key'] = 'Erstes Schlüsselwort';
$lang['adfgvx_first_key_ph'] = 'Bitte gib das 1. Schlüsselwort ein';
$lang['adfgvx_second_key'] = 'Zweites Schlüsselwort';
$lang['adfgvx_second_key_ph'] = 'Bitte gib das 2. Schlüsselwort ein';
$lang['atbash_'] = '';
$lang['atbash_'] = '';
$lang['caesar_'] = '';
$lang['caesar_'] = '';
$lang['caesar_'] = '';
$lang['caesar_'] = '';
// Cäsar-Verschlüsselung
$lang['encrypter_site_title'] = 'Ver- und Entschlüsselung';
$lang['encrypter_title'] = 'Cäsar-Verschlüsselung';
$lang['encrypter_description'] = 'Mit meinem Cäsar-Encrypter kannst du Texte nach der <a href="https://de.wikipedia.org/wiki/Caesar-Verschl%C3%BCsselung" target="_blank">Cäsar Veschlüsselung</a> 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 <a href="https://de.wikipedia.org/wiki/Caesar-Verschl%C3%BCsselung" target="_blank">Cäsar Veschlüsselung</a> 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 <strong><code>10</code> Zeichen</strong> bestehen. Es gilt: <i>Je länger, desto sicherer!</i>';
$lang['pass_tipps2'] = 'Jedoch macht Länge alleine ein Passwort auch nicht sicher, daher sollte das Passwort möglichst eine Mischung aus <strong>Groß</strong>- und <strong>Kleinbuchstaben</strong>, <strong>Zahlen</strong> und <strong>Sonderzeichen</strong> sein. (z.B. <i>2Hundesindtoll!</i>)';
$lang['pass_tipps3'] = 'Dein Passwort sollte <strong>keine persönlichen</strong> Informationen, die mit dir in Verbindung gebracht werden könnten, enthalten. (z.B. Name des Haustiers, Wohnort, etc.)';
$lang['pass_tipps4'] = 'Es sollten <strong>keine häufig verwendeten</strong> 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: <i>Jeden Samstag um 18:00 Uhr kommt 100%-ig ein neues Video online.</i> ==> <i>JSu18:00Uk100%-igenVo.</i>';
$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: <br>https://www.youtube.com/watch?v=<code>-5h586HfAu8</code>';
$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';

View File

@ -0,0 +1,30 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link http://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['ut_test_name'] = 'Test Name';
$lang['ut_test_datatype'] = 'Test Datentyp';
$lang['ut_res_datatype'] = 'Erwarteter Datentyp';
$lang['ut_result'] = 'Ergebnis';
$lang['ut_undefined'] = 'Undefinierter Test Name';
$lang['ut_file'] = 'Dateiname';
$lang['ut_line'] = 'Zeilennummer';
$lang['ut_passed'] = 'Bestanden';
$lang['ut_failed'] = 'Durchgefallen';
$lang['ut_boolean'] = 'Boolean';
$lang['ut_integer'] = 'Integer';
$lang['ut_float'] = 'Float';
$lang['ut_double'] = 'Float'; // can be the same as float
$lang['ut_string'] = 'String';
$lang['ut_array'] = 'Array';
$lang['ut_object'] = 'Object';
$lang['ut_resource'] = 'Resource';
$lang['ut_null'] = 'Null';
$lang['ut_notes'] = 'Bemerkung';

View File

@ -0,0 +1,27 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link http://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['upload_userfile_not_set'] = 'Es wurde kein POST-Wert mit dem Namen userfile gefunden.';
$lang['upload_file_exceeds_limit'] = 'Die hoch geladene Datei überschreitet die in der Anweisung upload_max_filesize in php.ini festgelegte Größe';
$lang['upload_file_exceeds_form_limit'] = 'Die hoch geladene Datei überschreitet die in dem HTML Formular mittels der Anweisung MAX_FILE_SIZE angegebene maximale Dateigröße';
$lang['upload_file_partial'] = 'Die Datei wurde nur teilweise übertragen.';
$lang['upload_no_temp_directory'] = 'Es wurde kein temporäres Verzeichnis auf Ihrem Server gefunden.';
$lang['upload_unable_to_write_file'] = 'Das Speichern der Datei auf die Festplatte ist fehlgeschlagen.';
$lang['upload_stopped_by_extension'] = 'Eine PHP Erweiterung hat den Upload der Datei gestoppt.';
$lang['upload_no_file_selected'] = 'Es wurde keine Datei für den Upload ausgewählt.';
$lang['upload_invalid_filetype'] = 'Der Dateityp, der Datei, welche Sie hochladen möchten, ist nicht erlaubt.';
$lang['upload_invalid_filesize'] = 'Die Datei, welche Sie hochladen möchten, überschreitet die erlaubte Größe.';
$lang['upload_invalid_dimensions'] = 'Die Grafikdatei, welche Sie hochladen möchten überschreitet die maximal erlaubte Abmessung.';
$lang['upload_destination_error'] = 'Beim Versuch die hoch geladene Datei in das Zielverzeichnis zu verschieben ist ein Problem aufgetreten.';
$lang['upload_no_filepath'] = 'Der angegebene Upload-Pfad scheint nicht gültig zu sein.';
$lang['upload_no_file_types'] = 'Sie haben keine Angaben zu den erlaubten Dateitypen vorgenommen.';
$lang['upload_bad_filename'] = 'Der angegebene Dateiname existiert bereits auf dem Server.';
$lang['upload_not_writable'] = 'Das Upload-Zielverzeichnis scheint keine Schreibrechte zu besitzen.';

View File

@ -0,0 +1,105 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['about_sitetitle'] = 'About me';
$lang['about_title'] = 'About me';
$lang['about_description'] = 'Get more information about my life and my doing!';
$lang['about_subtitle'] = 'Hi, my name is Marcel and I like to';
$lang['about_subtitle_words'] = '<span>design.</span><span>program.</span><span>take photos.</span><span>cut videos.</span><span>edit photos.</span><span>animate.</span><span>shoot videos.</span><span>write.</span>';
$lang['about_introduction'] = 'In the internet, I\'m also known as KingOfDog.';
$lang['about_text'] = '<p>
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.
</p>
<p>
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 <i>DerMinecrafterMarcel</i> (<i>TheMinecrafterMarcel</i>), or <i>MinecrafterMarcel</i> after another renaming in 2014.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
Finally, we can only wait and see what the future may bring.
</p>';
$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"
]
];

View File

@ -0,0 +1,43 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['blog_search'] = 'Search';
$lang['blog_search_results'] = 'Your search was not successful';
$lang['blog_search_results_small'] = 'No results were found according to your search request';
$lang['blog_search_results_small2'] = '';
$lang['blog_back'] = 'Back';
$lang['blog_categories'] = 'Categories';
$lang['blog_category_posts'] = 'More of the same category';
$lang['blog_category_posts_error'] = 'No more posts of the same category were found!';
$lang['blog_category_design'] = 'Design';
$lang['blog_category_development'] = 'Development';
$lang['blog_category_internet'] = 'Internet';
$lang['blog_category_minepoint'] = 'MinePoint';
$lang['blog_category_news'] = 'News';
$lang['blog_category_social_media'] = 'Social Media';
$lang['blog_category_technic'] = 'Technic';
$lang['blog_category_youtube'] = 'YouTube';
$lang['blog_approximate_reading_time'] = 'Approximate Reading Duration';
$lang['blog_about'] = 'About the author';
$lang['blog_comment'] = 'Comment';
$lang['blog_comments'] = 'Comments';
$lang['blog_comment_reply'] = 'Reply';
$lang['blog_comment_new'] = 'Comment';
$lang['blog_comment_send'] = 'Send comment';
$lang['blog_comment_required_login'] = 'You have to logged in to comment this article!';
$lang['blog_read'] = 'Read';
$lang['blog_articels'] = 'Related articles';
$lang['blog_no_ads'] = 'You don\'t like to see sponsored ads anymore? Then support this website with a little donation. No matter the value, you won\'t see any more ads!';
$lang['blog_previous_article'] = 'Vorheriger Artikel';
$lang['blog_next_article'] = 'Darauffolgender Artikel';
$lang['blog_post_not_available'] = 'Sadly, this post isn\'t available anymore.';

View File

@ -0,0 +1,252 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['country_AD'] = 'Andorra';
$lang['country_AE'] = 'United Arab Emirates';
$lang['country_AF'] = 'Afghanistan';
$lang['country_AG'] = 'Antigua and Barbuda';
$lang['country_AI'] = 'Anguilla';
$lang['country_AL'] = 'Albania';
$lang['country_AM'] = 'Armenia';
$lang['country_AO'] = 'Angola';
$lang['country_AQ'] = 'Antarctica';
$lang['country_AR'] = 'Argentina';
$lang['country_AS'] = 'American Samoa';
$lang['country_AT'] = 'Austria';
$lang['country_AU'] = 'Australia';
$lang['country_AW'] = 'Aruba';
$lang['country_AX'] = 'Åland Islands';
$lang['country_AZ'] = 'Azerbaijan';
$lang['country_BA'] = 'Bosnia and Herzegovina';
$lang['country_BB'] = 'Barbados';
$lang['country_BD'] = 'Bangladesh';
$lang['country_BE'] = 'Belgium';
$lang['country_BF'] = 'Burkina Faso';
$lang['country_BG'] = 'Bulgaria';
$lang['country_BH'] = 'Bahrain';
$lang['country_BI'] = 'Burundi';
$lang['country_BJ'] = 'Benin';
$lang['country_BL'] = 'Saint Barthélemy';
$lang['country_BM'] = 'Bermuda';
$lang['country_BN'] = 'Brunei Darussalam';
$lang['country_BO'] = 'Bolivia, Plurinational State of';
$lang['country_BQ'] = 'Bonaire, Sint Eustatius and Saba';
$lang['country_BR'] = 'Brazil';
$lang['country_BS'] = 'Bahamas';
$lang['country_BT'] = 'Bhutan';
$lang['country_BV'] = 'Bouvet Island';
$lang['country_BW'] = 'Botswana';
$lang['country_BY'] = 'Belarus';
$lang['country_BZ'] = 'Belize';
$lang['country_CA'] = 'Canada';
$lang['country_CC'] = 'Cocos (Keeling) Islands';
$lang['country_CD'] = 'Congo, the Democratic Republic of the';
$lang['country_CF'] = 'Central African Republic';
$lang['country_CG'] = 'Congo';
$lang['country_CH'] = 'Switzerland';
$lang['country_CI'] = 'Côte d\'Ivoire';
$lang['country_CK'] = 'Cook Islands';
$lang['country_CL'] = 'Chile';
$lang['country_CM'] = 'Cameroon';
$lang['country_CN'] = 'China';
$lang['country_CO'] = 'Colombia';
$lang['country_CR'] = 'Costa Rica';
$lang['country_CU'] = 'Cuba';
$lang['country_CV'] = 'Cabo Verde';
$lang['country_CW'] = 'Curaçao';
$lang['country_CX'] = 'Christmas Island';
$lang['country_CY'] = 'Cyprus';
$lang['country_CZ'] = 'Czechia';
$lang['country_DE'] = 'Germany';
$lang['country_DJ'] = 'Djibouti';
$lang['country_DK'] = 'Denmark';
$lang['country_DM'] = 'Dominica';
$lang['country_DO'] = 'Dominican Republic';
$lang['country_DZ'] = 'Algeria';
$lang['country_EC'] = 'Ecuador';
$lang['country_EE'] = 'Estonia';
$lang['country_EG'] = 'Egypt';
$lang['country_EH'] = 'Western Sahara';
$lang['country_ER'] = 'Eritrea';
$lang['country_ES'] = 'Spain';
$lang['country_ET'] = 'Ethiopia';
$lang['country_FI'] = 'Finland';
$lang['country_FJ'] = 'Fiji';
$lang['country_FK'] = 'Falkland Islands (Malvinas)';
$lang['country_FM'] = 'Micronesia, Federated States of';
$lang['country_FO'] = 'Faroe Islands';
$lang['country_FR'] = 'France';
$lang['country_GA'] = 'Gabon';
$lang['country_GB'] = 'United Kingdom';
$lang['country_GD'] = 'Grenada';
$lang['country_GE'] = 'Georgia';
$lang['country_GF'] = 'French Guiana';
$lang['country_GG'] = 'Guernsey';
$lang['country_GH'] = 'Ghana';
$lang['country_GI'] = 'Gibraltar';
$lang['country_GL'] = 'Greenland';
$lang['country_GM'] = 'Gambia';
$lang['country_GN'] = 'Guinea';
$lang['country_GP'] = 'Guadeloupe';
$lang['country_GQ'] = 'Equatorial Guinea';
$lang['country_GR'] = 'Greece';
$lang['country_GS'] = 'South Georgia and the South Sandwich Islands';
$lang['country_GT'] = 'Guatemala';
$lang['country_GU'] = 'Guam';
$lang['country_GW'] = 'Guinea-Bissau';
$lang['country_GY'] = 'Guyana';
$lang['country_HK'] = 'Hong Kong';
$lang['country_HM'] = 'Heard Island and McDonald Islands';
$lang['country_HN'] = 'Honduras';
$lang['country_HR'] = 'Croatia';
$lang['country_HT'] = 'Haiti';
$lang['country_HU'] = 'Hungary';
$lang['country_ID'] = 'Indonesia';
$lang['country_IE'] = 'Ireland';
$lang['country_IL'] = 'Israel';
$lang['country_IM'] = 'Isle of Man';
$lang['country_IN'] = 'India';
$lang['country_IO'] = 'British Indian Ocean Territory';
$lang['country_IQ'] = 'Iraq';
$lang['country_IR'] = 'Iran, Islamic Republic of';
$lang['country_IS'] = 'Iceland';
$lang['country_IT'] = 'Italy';
$lang['country_JE'] = 'Jersey';
$lang['country_JM'] = 'Jamaica';
$lang['country_JO'] = 'Jordan';
$lang['country_JP'] = 'Japan';
$lang['country_KE'] = 'Kenya';
$lang['country_KG'] = 'Kyrgyzstan';
$lang['country_KH'] = 'Cambodia';
$lang['country_KI'] = 'Kiribati';
$lang['country_KM'] = 'Comoros';
$lang['country_KN'] = 'Saint Kitts and Nevis';
$lang['country_KP'] = 'Korea (the Democratic People\'s Republic of)';
$lang['country_KR'] = 'Korea (the Republic of)';
$lang['country_KW'] = 'Kuwait';
$lang['country_KY'] = 'Cayman Islands';
$lang['country_KZ'] = 'Kazakhstan';
$lang['country_LA'] = 'Lao People\'s Democratic Republic';
$lang['country_LB'] = 'Lebanon';
$lang['country_LC'] = 'Saint Lucia';
$lang['country_LI'] = 'Liechtenstein';
$lang['country_LK'] = 'Sri Lanka';
$lang['country_LR'] = 'Liberia';
$lang['country_LS'] = 'Lesotho';
$lang['country_LT'] = 'Lithuania';
$lang['country_LU'] = 'Luxembourg';
$lang['country_LV'] = 'Latvia';
$lang['country_LY'] = 'Libya';
$lang['country_MA'] = 'Morocco';
$lang['country_MC'] = 'Monaco';
$lang['country_MD'] = 'Moldova, Republic of';
$lang['country_ME'] = 'Montenegro';
$lang['country_MF'] = 'Saint Martin (French part)';
$lang['country_MG'] = 'Madagascar';
$lang['country_MH'] = 'Marshall Islands';
$lang['country_MK'] = 'Macedonia, the former Yugoslav Republic of';
$lang['country_ML'] = 'Mali';
$lang['country_MM'] = 'Myanmar';
$lang['country_MN'] = 'Mongolia';
$lang['country_MO'] = 'Macao';
$lang['country_MP'] = 'Northern Mariana Islands';
$lang['country_MQ'] = 'Martinique';
$lang['country_MR'] = 'Mauritania';
$lang['country_MS'] = 'Montserrat';
$lang['country_MT'] = 'Malta';
$lang['country_MU'] = 'Mauritius';
$lang['country_MV'] = 'Maldives';
$lang['country_MW'] = 'Malawi';
$lang['country_MX'] = 'Mexico';
$lang['country_MY'] = 'Malaysia';
$lang['country_MZ'] = 'Mozambique';
$lang['country_NA'] = 'Namibia';
$lang['country_NC'] = 'New Caledonia';
$lang['country_NE'] = 'Niger';
$lang['country_NF'] = 'Norfolk Island';
$lang['country_NG'] = 'Nigeria';
$lang['country_NI'] = 'Nicaragua';
$lang['country_NL'] = 'Netherlands[note 1]';
$lang['country_NO'] = 'Norway';
$lang['country_NP'] = 'Nepal';
$lang['country_NR'] = 'Nauru';
$lang['country_NU'] = 'Niue';
$lang['country_NZ'] = 'New Zealand';
$lang['country_OM'] = 'Oman';
$lang['country_PA'] = 'Panama';
$lang['country_PE'] = 'Peru';
$lang['country_PF'] = 'French Polynesia';
$lang['country_PG'] = 'Papua New Guinea';
$lang['country_PH'] = 'Philippines';
$lang['country_PK'] = 'Pakistan';
$lang['country_PL'] = 'Poland';
$lang['country_PM'] = 'Saint Pierre and Miquelon';
$lang['country_PN'] = 'Pitcairn';
$lang['country_PR'] = 'Puerto Rico';
$lang['country_PS'] = 'Palestine, State of';
$lang['country_PT'] = 'Portugal';
$lang['country_PW'] = 'Palau';
$lang['country_PY'] = 'Paraguay';
$lang['country_QA'] = 'Qatar';
$lang['country_RE'] = 'Réunion';
$lang['country_RO'] = 'Romania';
$lang['country_RS'] = 'Serbia';
$lang['country_RU'] = 'Russian Federation';
$lang['country_RW'] = 'Rwanda';
$lang['country_SA'] = 'Saudi Arabia';
$lang['country_SB'] = 'Solomon Islands';
$lang['country_SC'] = 'Seychelles';
$lang['country_SD'] = 'Sudan';
$lang['country_SE'] = 'Sweden';
$lang['country_SG'] = 'Singapore';
$lang['country_SH'] = 'Saint Helena, Ascension and Tristan da Cunha';
$lang['country_SI'] = 'Slovenia';
$lang['country_SJ'] = 'Svalbard and Jan Mayen';
$lang['country_SK'] = 'Slovakia';
$lang['country_SL'] = 'Sierra Leone';
$lang['country_SM'] = 'San Marino';
$lang['country_SN'] = 'Senegal';
$lang['country_SO'] = 'Somalia';
$lang['country_SR'] = 'Suriname';
$lang['country_SS'] = 'South Sudan';
$lang['country_ST'] = 'Sao Tome and Principe';
$lang['country_SV'] = 'El Salvador';
$lang['country_SX'] = 'Sint Maarten (Dutch part)';
$lang['country_SY'] = 'Syrian Arab Republic';
$lang['country_SZ'] = 'Swaziland';
$lang['country_TC'] = 'Turks and Caicos Islands';
$lang['country_TD'] = 'Chad';
$lang['country_TF'] = 'French Southern Territories';
$lang['country_TG'] = 'Togo';
$lang['country_TH'] = 'Thailand';
$lang['country_TJ'] = 'Tajikistan';
$lang['country_TK'] = 'Tokelau';
$lang['country_TL'] = 'Timor-Leste';
$lang['country_TM'] = 'Turkmenistan';
$lang['country_TN'] = 'Tunisia';
$lang['country_TO'] = 'Tonga';
$lang['country_TR'] = 'Turkey';
$lang['country_TT'] = 'Trinidad and Tobago';
$lang['country_TV'] = 'Tuvalu';
$lang['country_TW'] = 'Taiwan, Province of China [note 2]';
$lang['country_TZ'] = 'Tanzania, United Republic of';
$lang['country_UA'] = 'Ukraine';
$lang['country_UG'] = 'Uganda';
$lang['country_UM'] = 'United States Minor Outlying Islands';
$lang['country_US'] = 'United States';
$lang['country_UY'] = 'Uruguay';
$lang['country_UZ'] = 'Uzbekistan';
$lang['country_VA'] = 'Holy See (Vatican City State)';
$lang['country_VC'] = 'Saint Vincent and the Grenadines';
$lang['country_VE'] = 'Venezuela, Bolivarian Republic of';
$lang['country_VG'] = 'Virgin Islands, British';
$lang['country_VI'] = 'Virgin Islands, U.S.';
$lang['country_VN'] = 'Viet Nam';
$lang['country_VU'] = 'Vanuatu';
$lang['country_WF'] = 'Wallis and Futuna';
$lang['country_WS'] = 'Samoa';
$lang['country_YE'] = 'Yemen';
$lang['country_YT'] = 'Mayotte';
$lang['country_ZA'] = 'South Africa';
$lang['country_ZM'] = 'Zambia';
$lang['country_ZW'] = 'Zimbabwe';

View File

@ -0,0 +1,9 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['about_title'] = 'About me';
$lang['about_description'] = 'Get more information about my life and my jobs!';
$lang['about_subtitle'] = 'I am a';
$lang['about_subtitle_words'] = '<span>Designer</span><span>Cutter</span><span>Webdesigner</span><span>Developer</span><span>Animator</span><span>Photograf</span>';
$lang['about_introduction'] = 'I\'m KingOfDog, especially Youtuber and Designer, but I\'m a huge fan of dogs too.';
$lang['about_skills'] = 'My skills';

View File

@ -0,0 +1,17 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['donate_title'] = 'Do You Want To Support This Website?';
$lang['donate_subheader'] = 'In order to continue offering this free website, we need somehow money to pay for the servers. What do you get from this? First, you and all others can keep using this website. Secondly, you won\'t see any ads anymore';
$lang['donate_catchphrase'] = 'Help us keeping this service alive.';
$lang['donate_level1'] = 'An <span>1€</span> donation is enough for one bag of sweets for the developer.';
$lang['donate_level2'] = 'A <span>2€</span> donation enables us to continue developing this website.';
$lang['donate_level3'] = 'A <span>5€</span> donation makes possible to buy 2GB more RAM for the server.';
$lang['donate_level4'] = 'A <span>10€</span> donation would cover the minimum wage for one hour of work of one single developer.';
$lang['donate_level5'] = 'A <span>15€</span> donation could afford us to buy 150GB more disk space for your images, texts, videos etc.';
$lang['donate_level6'] = 'A <span>20€</span> donation would be the foundation for another server.';
$lang['donate_level7'] = 'A <span>25€</span> donation allows us to buy several different licenses.';
$lang['donate_level8'] = 'A <span>30€</span> donation is enough for publishing an app version of this website in the PlayStore.';
$lang['donate_level9'] = 'A <span>50€</span> donation would be directly invested into the purchase of another server unit.';
$lang['donate_level10'] = 'An <span>100€</span> donation would cover all major expenses for one month!';
$lang['donate_btn'] = "Donate";

View File

@ -0,0 +1,44 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['faq_title'] = 'FAQ - Frequently Asked Questions';
$lang['faq_des'] = 'On this page, you can find the answers to the most asked questions.';
$lang['faq_note_title'] = 'Hey, you! This page is currently not available in English. But we\'re working on it!';
$lang['faq_note_des'] = 'As you can see, we haven\'t translated this FAQ page into English. But to make you hope: we\'re currently working on the translation of this page. This page is very text intensive, so it takes a little bit more time to translate all question and answers. We\'re looking forward to publish the English translation in about one month, but we won\'t guarantee a release date yet. So we don\'t stand under pressure and have enough time to deliver you a high quality translation!';
$lang['faq_section1_title'] = 'What\'s the matter of this website?';
$lang['faq_section1_q1'] = 'What can I find here?';
$lang['faq_section1_q2'] = 'And from whom is that?';
$lang['faq_section1_q3'] = 'Does the site cost something?';
$lang['faq_section1_q4'] = 'Is there a team behind the website? And if so, who\'s part of it?';
$lang['faq_section1_q5'] = 'In what languages is the website available?';
$lang['faq_section2_title'] = 'Who is this KingOfDog? Do I HAVE to know him?';
$lang['faq_section2_q1'] = 'Who is KingOfDog?';
$lang['faq_section2_q2'] = 'And what does this guy do?';
$lang['faq_section2_q3'] = 'From where could I know him?';
$lang['faq_section2_q4'] = 'Why did he create this website?';
$lang['faq_section2_q5'] = 'How did he learn to code and to design?';
$lang['faq_section3_title'] = 'Accounts on KingOfDogTV.de';
$lang['faq_section3_q1'] = 'What\'s the purpose of an account?';
$lang['faq_section3_q2'] = 'Do I have to pay for it?';
$lang['faq_section3_q3'] = 'And why should I create an account?';
$lang['faq_section3_q4'] = 'Is that done with Wordpress?';
$lang['faq_section4_title'] = 'Privacy policies and more';
$lang['faq_section4_q1'] = 'Is my personal data safe here?';
$lang['faq_section4_q2'] = 'Is my data used for advertisement causes?';
$lang['faq_section4_q3'] = 'Do I get a cookie?';
$lang['faq_section4_q4'] = 'Who guarantees my privacy?';
$lang['faq_section4_q5'] = 'What about JavaScript?';
$lang['faq_section5_title'] = 'Blog';
$lang['faq_section5_q1'] = 'What can I find on the blog?';
$lang['faq_section5_q2'] = 'Is that interesting for me?';
$lang['faq_section5_q3'] = 'Do I have to pay for it?';
$lang['faq_section5_q4'] = 'How regularly are new posts published?';
$lang['faq_section5_q5'] = 'In what language is it? English?';
$lang['faq_section6_title'] = 'Technical Stuff';
$lang['faq_section6_q1'] = 'How was this website programmed?';
$lang['faq_section6_q2'] = 'Did you use third party software or frameworks like Wordpress?';
$lang['faq_section6_q3'] = 'Could you send me the source code? Please?';
$lang['faq_section6_q4'] = 'Do I get an admin access?';
$lang['faq_section6_q5'] = 'On what for servers is the website hosted?';

View File

@ -0,0 +1,14 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['footer_language'] = 'Language';
$lang['footer_blog_posts'] = 'Recent Blog Posts';
$lang['footer_about'] = 'About Me';
$lang['footer_impress'] = 'Impress';
$lang['footer_disclaimer'] = 'Disclaimer';
$lang['footer_faq'] = 'Frequently Asked Questions (FAQ)';
$lang['footer_contact'] = 'Contact us';
$lang['footer_privacy_policy'] = 'Privacy Policy';
$lang['footer_about_text'] = 'Hi, I\'m KingOfDog, the creator and the operator of this website. I love developing, designing and making YouTube videos passionate. Thereby, I\'ve got a YouTube channel since 2013 called KingOfDog. If you want to learn more, visit the';
$lang['footer_about_link'] = 'about page';
$lang['footer_published'] = 'Published';

View File

@ -0,0 +1,11 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['website_name'] = 'KingOfDogTV.de';
$lang['person_by'] = 'by';
$lang['additional_more'] = 'More';
$lang['close'] = 'Close';
$lang['send'] = 'Send';
$lang['unknown'] = 'Unknown';
$lang['login'] = 'Log in';
$lang['edit'] = 'Edit';

View File

@ -0,0 +1,54 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['header_home'] = 'Home';
$lang['header_projects'] = 'Projects';
$lang['header_blog'] = 'Blog';
$lang['header_tools'] = 'Tools';
$lang['header_tools_overview'] = 'Overview';
$lang['header_tools_encrypter'] = 'Encrypter';
$lang['header_tools_url_encoder'] = 'URL Encoder';
$lang['header_tools_base64'] = 'Base64 Encoder';
$lang['header_tools_password'] = 'Password Generator';
$lang['header_tools_nickname'] = 'Nickname Generator';
$lang['header_tools_csgo'] = 'CS:GO Tools';
$lang['header_tools_minecraft_player'] = 'Minecraft Player Tools';
$lang['header_tools_minecraft_server'] = 'Minecraft Server Tools';
$lang['header_tools_youtube'] = 'YouTube Downloader';
$lang['header_about'] = 'About';
$lang['header_faq'] = 'Frequently Asked Questions (FAQ)';
$lang['header_donate'] = 'Donate';
$lang['header_network'] = 'Network';
$lang['header_network_feed'] = 'Personal Feed';
$lang['header_network_popular'] = 'Popular';
$lang['header_network_top_users'] = 'Top Users';
$lang['header_network_trending_users'] = 'Trending Users';
$lang['header_register'] = 'Register';
$lang['header_login'] = 'Login';
$lang['header_logout'] = 'Logout';
$lang['header_your_profile'] = 'Your Profile';
$lang['header_admin_panel'] = 'Admin Panel';
$lang['header_contact'] = 'Contact';
$lang['header_contact_title'] = 'Contact team';
$lang['header_contact_mail'] = 'Email Address';
$lang['header_contact_mail_placeholder'] = 'Please enter your email address';
$lang['header_contact_msg'] = 'Message';
$lang['header_contact_msg_placeholder'] = 'Please enter your message to the team of this website';
$lang['header_feedback'] = 'Feedback';
$lang['header_feedback_title'] = 'Send Feedback';
$lang['header_feedback_info'] = 'We work all the time to improve this website more and more, so we can offer every user the best possible and most individual experience. Howerver, we are reliant on <b>your</b> 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.<br>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.<br><b>In all cases we treat your personal data sensible and will never ever give them to third parties.</b>';
$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';

View File

@ -0,0 +1,37 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['home_sitetitle'] = 'Home';
$lang['home_slider_portfolio_title'] = 'My Projects: Design & Development From A-Z';
$lang['home_slider_portfolio_des'] = 'From photography and filmography, over webdesign and webdevelopment, and over animations and designs, finally to video cutting and image editing. I made a lot of different activities and things and most of them are still part of my all day routine. In my portfolio you can see all of my projects!';
$lang['home_slider_portfolio_btn'] = 'My projects';
$lang['home_slider_blog_title'] = 'Design. Coding. Development. - And Much More!';
$lang['home_slider_blog_des'] = 'You can find plenty of topics on my blog: no matter if you like to get the newest design articles, opinions, information on tech or entries about software and coding.';
$lang['home_slider_blog_btn'] = 'To the blog';
$lang['home_slider_about_title'] = 'I Am KingOfDog';
$lang['home_slider_about_des'] = 'YouTuber, Designer, Developer - KingOfDog. On my About site you\'re able to receive more information about me and my life!';
$lang['home_slider_about_btn'] = 'Learn more';
$lang['home_slider_video_title'] = 'Most Recently Uploaded Video';
$lang['home_slider_video_des'] = 'Stage direction: <i>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.</i>';
$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.';

Some files were not shown because too many files have changed in this diff Show More