mirror of
https://github.com/claudehohl/Stikked.git
synced 2025-04-25 12:31:06 -05:00
Compare commits
24 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
6d2313d3a2 | ||
|
0d3efb00f9 | ||
|
e095fd0d15 | ||
|
fe75336691 | ||
|
8a5e55cec8 | ||
|
4245a8c8db | ||
|
8d61ba5c60 | ||
|
897338689e | ||
|
4745921930 | ||
|
a0a0d6dbbc | ||
|
50fd78d85e | ||
|
07879fcf12 | ||
|
09435ff69a | ||
|
59573236d6 | ||
|
26cd691cea | ||
|
c687068fd4 | ||
|
dbc31ac77e | ||
|
4462a471c5 | ||
|
64047bae4d | ||
|
7c18897f40 | ||
|
e579784507 | ||
|
a5c44e536c | ||
|
16f2864fa2 | ||
|
e8e0fd123c |
@ -1 +0,0 @@
|
||||
.git*
|
23
Dockerfile
23
Dockerfile
@ -1,23 +0,0 @@
|
||||
FROM php:7.1-apache
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
# Note that 'vim' and 'mysql-client' are changed to an echo,
|
||||
# as they're only useful when debugging, and leaving them in
|
||||
# the standard container only increases its size.
|
||||
RUN apt-get -y update && \
|
||||
apt-get -y install libpng-dev zlib1g-dev cron && \
|
||||
echo apt-get -y install vim mysql-client && \
|
||||
a2enmod rewrite && \
|
||||
docker-php-ext-install mysqli gd && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY htdocs /var/www/html
|
||||
COPY htdocs/application/config/stikked.php.dist /var/www/html/application/config/stikked.php
|
||||
|
||||
# This overwrites the entrypoint from the php container with ours, which updates the
|
||||
# stikked config file based on environment variables
|
||||
COPY docker/docker-php-entrypoint /usr/local/bin/
|
||||
|
||||
RUN chmod +x /usr/local/bin/docker-php-entrypoint
|
||||
|
24
README.md
24
README.md
@ -41,7 +41,7 @@ Prerequisites
|
||||
Installation
|
||||
------------
|
||||
|
||||
1. Download stikked from https://github.com/claudehohl/Stikked/tags
|
||||
1. Download Stikked from https://github.com/claudehohl/Stikked/releases
|
||||
2. Create a user and database for Stikked
|
||||
3. Copy application/config/stikked.php.dist to application/config/stikked.php
|
||||
4. Edit configuration settings in application/config/stikked.php - everything is described there
|
||||
@ -58,12 +58,11 @@ Installation
|
||||
How to run it in Docker
|
||||
-----------------------
|
||||
|
||||
sudo docker build -t stikked .
|
||||
sudo docker-compose up -d
|
||||
docker-compose up
|
||||
|
||||
This automatically creates a database with passwords that are configurable in the docker-compose.yml file.
|
||||
This automatically builds the docker-image and fires up nginx, php and mariadb. Access your Stikked instance at http://localhost/.
|
||||
|
||||
NOTE: This sets the captcha to false and requires port 80 to be accessible on the host machine. Also, a host entry of 127.0.0.1 stikked.local will fix the base_url issues.
|
||||
All files are served directly; the Stikked-configuration for Docker resides in docker/stikked.php
|
||||
|
||||
|
||||
Documentation
|
||||
@ -81,6 +80,21 @@ In the folder doc/, you will find:
|
||||
Changelog
|
||||
---------
|
||||
|
||||
### Version 0.14.0:
|
||||
|
||||
* Rewritten the Docker setup to be simple and clean:
|
||||
* switch to nginx-alpine, php-fpm-alpine and mariadb
|
||||
* docker-compose: autobuild php-image for stikked
|
||||
* serve all files directly (htdocs is mounted instead of copied)
|
||||
* stikked-configuration for docker resides in docker/stikked.php
|
||||
* force private-flag when a previously encrypted paste gets pasted public
|
||||
* Fixed a critical bug that allowed pasting despite captcha
|
||||
* Various bugfixes and improvements
|
||||
|
||||
#### Upgrade instructions
|
||||
|
||||
Copy your htdocs/application/stikked.php config file away. Upload the new version. Copy it back.
|
||||
|
||||
### Version 0.13.0:
|
||||
|
||||
* Updated CodeIgniter to 3.1.9
|
||||
|
@ -8,6 +8,8 @@ How to create your own theme
|
||||
For example: If you've only modified the main.css, create a folder named "css" in your theme folder, and put your main.css in there.
|
||||
The theme engine will load your css, and falls back to files in the default theme that aren't in your theme folder.
|
||||
|
||||
Note: Image files need to reside in the /images folder and it can't contain sub-directories.
|
||||
|
||||
Examples:
|
||||
|
||||
* gabdark - a theme with only a modified main.css
|
||||
|
@ -2,9 +2,5 @@ You want to improve Stikked? Always welcome! Send us your pull request and you w
|
||||
|
||||
Some guidelines:
|
||||
|
||||
* For PHP only files (not views/themes), please run the PHP Beautifier (http://pear.php.net/package/PHP_Beautifier) with the following parameters:
|
||||
```
|
||||
php_beautifier --indent_tabs -l "IndentStyles(style=bsd) ArrayNested() NewLines(before=function:T_CLASS:if,after=T_COMMENT) ListClassFunction()"
|
||||
```
|
||||
* Optionally, use https://phpbeautifier.com/ with "Allman style" formatting for smaller segments of PHP-only code
|
||||
* Coding style: PSR-2. For PHP files (not views/themes), please run phpfmt (https://marketplace.visualstudio.com/items?itemName=kokororin.vscode-phpfmt).
|
||||
* Other people may modify your contribution. Don't take that personal; we all want to improve Stikked. Your input is always welcome!
|
||||
|
@ -1,29 +1,31 @@
|
||||
version: "3.2"
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
db:
|
||||
image: mysql:latest
|
||||
nginx:
|
||||
image: nginx:1.17-alpine
|
||||
volumes:
|
||||
- db_data:/var/lib/mysql
|
||||
env_file: docker/stikked-envvars.txt
|
||||
|
||||
stikked:
|
||||
depends_on:
|
||||
- db
|
||||
image: stikked
|
||||
env_file: docker/stikked-envvars.txt
|
||||
- ./docker/nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
||||
- ./htdocs:/htdocs:ro
|
||||
ports:
|
||||
- 80:80
|
||||
- 127.0.0.1:80:80/tcp
|
||||
|
||||
# You should use persistant storage for this,
|
||||
# as if the volume is deleted, everything is gone!
|
||||
volumes:
|
||||
db_data:
|
||||
|
||||
# Example of NFS backed persistant storage:
|
||||
# db_data:
|
||||
# driver_opts:
|
||||
# type: "nfs"
|
||||
# o: "addr=192.168.1.254,nolock,soft,rw"
|
||||
# device: ":/nfs/export/pbdatabase"
|
||||
php:
|
||||
image: stikked-php:1
|
||||
volumes:
|
||||
- ./docker/php.ini:/usr/local/etc/php/php.ini:ro
|
||||
- ./docker/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf:ro
|
||||
- ./htdocs:/htdocs
|
||||
- ./docker/stikked.php:/htdocs/application/config/stikked.php:ro
|
||||
build:
|
||||
context: ./docker/php
|
||||
|
||||
mysql:
|
||||
image: mariadb:10.4
|
||||
command: mysqld --innodb-buffer-pool-size=4000000000
|
||||
volumes:
|
||||
- ./mysql-datadir_customize-in-docker-compose.yml:/var/lib/mysql
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
MYSQL_DATABASE: stikked
|
||||
MYSQL_USER: stikked
|
||||
MYSQL_PASSWORD: stikked
|
||||
|
@ -1,70 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This is copied from the original docker-php-entrypoint and was updated
|
||||
# by the Stikked container
|
||||
|
||||
set -e
|
||||
|
||||
# Check to see where Stikked might be - If you added Stikked to this
|
||||
# container with something like:
|
||||
# ADD https://github.com/claudehohl/Stikked/archive/0.12.0.tar.gz /usr/local
|
||||
# then it will be in /usr/local/stikked/Stikked-0.12.0/htdocs/application/config/stikked.php.dist
|
||||
|
||||
# If you're using the standard Dockerfile from Stikked, it will be in
|
||||
# /var/www/html/htdocs/applcation/config/stikked.php.dist
|
||||
|
||||
if [ -e /var/www/html/application/config/stikked.php.dist ]; then
|
||||
CFG=/var/www/html/application/config/stikked.php
|
||||
cp /var/www/html/application/config/stikked.php.dist $CFG
|
||||
elif [ -e /usr/local/stikked/Stikked-*/htdocs/application/config/stikked.php.dist ]; then
|
||||
CFG=$(echo /usr/local/stikked/Stikked-*/htdocs/application/config/stikked.php.dist | sed 's/\.dist//')
|
||||
cp /usr/local/stikked/Stikked-*/htdocs/application/config/stikked.php.dist $CFG
|
||||
else
|
||||
echo I can not find the stikked.php.dist file, which means docker-php-entrypoint
|
||||
echo needs to be updated. Sorry. I can not continue. Exiting.
|
||||
exit -1
|
||||
fi
|
||||
|
||||
# Set some default variables
|
||||
STIKKED_SITE_NAME="${STIKKED_SITE_NAME:-Dockerised Stikked Container}"
|
||||
STIKKED_BASE_URL="${STIKKED_BASE_URL:-https://bogus.example.com/}"
|
||||
STIKKED_DB_HOSTNAME="${STIKKED_DB_HOSTNAME:-db}"
|
||||
|
||||
# If these aren't set, use MYSQL_ values. If they're not set, then
|
||||
# just guess.
|
||||
STIKKED_DB_DATABASE="${STIKKED_DB_DATABASE:-${MYSQL_DATABASE:-stikked}}"
|
||||
STIKKED_DB_USERNAME="${STIKKED_DB_USERNAME:-${MYSQL_USER:-stikked}}"
|
||||
STIKKED_DB_PASSWORD="${STIKKED_DB_PASSWORD:-${MYSQL_PASSWORD:-stikked}}"
|
||||
|
||||
# If there's not a cron key, set a random one.
|
||||
if [ ! "$STIKKED_CRON_KEY" ]; then
|
||||
# Note - this is not very random. But it'll do in a pinch.
|
||||
STIKKED_CRON_KEY=$RANDOM.$RANDOM.$RANDOM.$RANDOM
|
||||
fi
|
||||
|
||||
# Put the cron file in place
|
||||
echo "*/5 * * * * root curl --silent http://localhost/cron/$STIKKED_CRON_KEY" > /etc/cron.d/stikked
|
||||
|
||||
# This gets all environment variables that start with STIKKED_
|
||||
svars=$(set | grep \^STIKKED_ | cut -d= -f1)
|
||||
for svar in $svars; do
|
||||
# Remove STIKKED_ from the front, and convert it to lower
|
||||
# case (STIKKED_CRON_KEY is now cron_key)
|
||||
val=$(echo $svar | sed 's/STIKKED_\(.*\)/\L\1/')
|
||||
# if it has a /, escape it - for example, in a path or URL.
|
||||
FIXED=$(echo ${!svar} | sed 's_/_\\/_g')
|
||||
# Tell the user what's going on
|
||||
echo Setting $val to be $FIXED
|
||||
# And actually update the file
|
||||
sed -i "s/\['$val'\].*/['$val'] = '$FIXED';/" $CFG
|
||||
done
|
||||
|
||||
# Start Cron, if it exists
|
||||
[ -e /usr/sbin/cron ] && /usr/sbin/cron
|
||||
|
||||
# first arg is `-f` or `--some-option`
|
||||
if [ "${1#-}" != "$1" ]; then
|
||||
set -- apache2-foreground "$@"
|
||||
fi
|
||||
|
||||
exec "$@"
|
69
docker/nginx.conf
Normal file
69
docker/nginx.conf
Normal file
@ -0,0 +1,69 @@
|
||||
upstream php {
|
||||
#server unix:/var/run/php5-fpm.sock;
|
||||
server php:9000;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80 backlog=1024;
|
||||
|
||||
server_name localhost;
|
||||
server_tokens off;
|
||||
|
||||
root /htdocs;
|
||||
index index.php;
|
||||
|
||||
client_body_buffer_size 8M;
|
||||
client_max_body_size 8M;
|
||||
|
||||
gzip on;
|
||||
gzip_types text/plain text/css application/javascript;
|
||||
|
||||
# Only requests to our Host are allowed
|
||||
if ($host !~ ^localhost$ ) {
|
||||
return 444;
|
||||
}
|
||||
|
||||
# Only allow these request methods
|
||||
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
|
||||
return 444;
|
||||
}
|
||||
|
||||
location = /favicon.ico {
|
||||
log_not_found off;
|
||||
access_log off;
|
||||
}
|
||||
|
||||
location = /robots.txt {
|
||||
allow all;
|
||||
log_not_found off;
|
||||
access_log off;
|
||||
}
|
||||
|
||||
# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
|
||||
location ~ /\. {
|
||||
deny all;
|
||||
}
|
||||
|
||||
# Deny access to any files with a .php extension in the static directory
|
||||
location ~* /(?:static)/.*\.php$ {
|
||||
deny all;
|
||||
}
|
||||
|
||||
location / {
|
||||
# This is cool because no php is touched for static content.
|
||||
# include the "?$args" part so non-default permalinks doesn't break when using query string
|
||||
try_files $uri $uri/ /index.php?$args;
|
||||
}
|
||||
|
||||
location ~ \.php$ {
|
||||
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
|
||||
include fastcgi.conf;
|
||||
fastcgi_intercept_errors on;
|
||||
fastcgi_pass php;
|
||||
}
|
||||
|
||||
location ~* \.(js|css|png|ico)$ {
|
||||
expires max;
|
||||
log_not_found off;
|
||||
}
|
||||
}
|
12
docker/php-fpm.conf
Normal file
12
docker/php-fpm.conf
Normal file
@ -0,0 +1,12 @@
|
||||
[www]
|
||||
user = www-data
|
||||
group = www-data
|
||||
listen = /run/php/php7.0-fpm.sock
|
||||
listen.owner = www-data
|
||||
listen.group = www-data
|
||||
pm = dynamic
|
||||
pm.max_children = 20
|
||||
pm.start_servers = 4
|
||||
pm.min_spare_servers = 4
|
||||
pm.max_spare_servers = 8
|
||||
pm.max_requests = 10000
|
65
docker/php.ini
Normal file
65
docker/php.ini
Normal file
@ -0,0 +1,65 @@
|
||||
[PHP]
|
||||
short_open_tag = Off
|
||||
precision = 14
|
||||
output_buffering = 4096
|
||||
zlib.output_compression = Off
|
||||
implicit_flush = Off
|
||||
serialize_precision = 17
|
||||
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
|
||||
zend.enable_gc = On
|
||||
expose_php = Off
|
||||
max_execution_time = 30
|
||||
max_input_time = 60
|
||||
memory_limit = 128M
|
||||
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
log_errors = On
|
||||
log_errors_max_len = 1024
|
||||
ignore_repeated_errors = Off
|
||||
ignore_repeated_source = Off
|
||||
report_memleaks = On
|
||||
track_errors = Off
|
||||
html_errors = On
|
||||
variables_order = "GPCS"
|
||||
request_order = "GP"
|
||||
register_argc_argv = Off
|
||||
auto_globals_jit = On
|
||||
post_max_size = 10M
|
||||
default_mimetype = "text/html"
|
||||
default_charset = "UTF-8"
|
||||
enable_dl = Off
|
||||
file_uploads = On
|
||||
upload_max_filesize = 8M
|
||||
max_file_uploads = 20
|
||||
allow_url_fopen = On
|
||||
allow_url_include = Off
|
||||
default_socket_timeout = 60
|
||||
|
||||
[MySQLi]
|
||||
mysqli.max_persistent = -1
|
||||
mysqli.allow_persistent = On
|
||||
mysqli.max_links = -1
|
||||
mysqli.cache_size = 2000
|
||||
mysqli.default_port = 3306
|
||||
mysqli.reconnect = Off
|
||||
|
||||
[Session]
|
||||
session.save_handler = files
|
||||
session.use_strict_mode = 0
|
||||
session.use_cookies = 1
|
||||
session.use_only_cookies = 1
|
||||
session.name = PHPSESSID
|
||||
session.auto_start = 0
|
||||
session.cookie_lifetime = 0
|
||||
session.cookie_path = /
|
||||
session.serialize_handler = php
|
||||
session.gc_probability = 0
|
||||
session.gc_divisor = 1000
|
||||
session.gc_maxlifetime = 1440
|
||||
session.cache_limiter = nocache
|
||||
session.cache_expire = 180
|
||||
session.use_trans_sid = 0
|
||||
session.hash_function = 0
|
||||
session.hash_bits_per_character = 5
|
||||
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
|
9
docker/php/Dockerfile
Normal file
9
docker/php/Dockerfile
Normal file
@ -0,0 +1,9 @@
|
||||
FROM php:7.1-fpm-alpine3.9
|
||||
|
||||
RUN apk add -U libjpeg-turbo-dev libpng-dev freetype-dev
|
||||
RUN docker-php-ext-configure gd \
|
||||
--enable-gd-native-ttf \
|
||||
--with-freetype-dir=/usr/include/freetype2 \
|
||||
--with-png-dir=/usr/include \
|
||||
--with-jpeg-dir=/usr/include
|
||||
RUN docker-php-ext-install gd mysqli
|
@ -1,27 +0,0 @@
|
||||
MYSQL_ROOT_PASSWORD=thisREALLYshouldBEchanged
|
||||
MYSQL_DATABASE=stikked
|
||||
MYSQL_USER=stikked
|
||||
MYSQL_PASSWORD=stikked
|
||||
|
||||
STIKKED_SITE_NAME=Stikked
|
||||
# Note that there is no need to escape the URL
|
||||
STIKKED_BASE_URL=http://stikked.local/
|
||||
|
||||
# This should match the database container name
|
||||
STIKKED_DB_HOSTNAME=db
|
||||
|
||||
# These do NOT need to be set, as they will be inherited from
|
||||
# the MYSQL_DATABASE settings above. However, you can set them
|
||||
# if you are using a seperately managed database.
|
||||
#STIKKED_DB_DATABASE=stikked
|
||||
#STIKKED_DB_USERNAME=stikked
|
||||
#STIKKED_DB_PASSWORD=stikked
|
||||
|
||||
# Other random examples
|
||||
STIKKED_DISALLOW_SEARCH_ENGINES="true"
|
||||
STIKKED_JS_EDITOR="codemirror"
|
||||
|
||||
# Example of enabling CAPTCHA
|
||||
#STIKKED_ENABLE_CAPTCHA="true"
|
||||
#STIKKED_RECAPTCHA_PUBLICKEY="_replace_this_with_your_public_key_"
|
||||
#STIKKED_RECAPTCHA_PRIVATEKEY="_replace_this_with_your_private_key_"
|
358
docker/stikked.php
Normal file
358
docker/stikked.php
Normal file
@ -0,0 +1,358 @@
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
/**
|
||||
* Site Name
|
||||
*
|
||||
* The name of your site
|
||||
*
|
||||
*/
|
||||
$config['site_name'] = 'Stikked';
|
||||
|
||||
/**
|
||||
* Base URL
|
||||
*
|
||||
* Set the base URL of Stikked. WITH trailing slash!
|
||||
*
|
||||
*/
|
||||
$config['base_url'] = 'http://localhost/';
|
||||
|
||||
/**
|
||||
* Database connection
|
||||
*
|
||||
* Credentials for your database
|
||||
* The database structure will be created automatically
|
||||
*
|
||||
*/
|
||||
$config['db_hostname'] = 'mysql';
|
||||
$config['db_database'] = 'stikked';
|
||||
$config['db_username'] = 'stikked';
|
||||
$config['db_password'] = 'stikked';
|
||||
|
||||
// If you are using sqlite:
|
||||
// uncomment the configuration lines below.
|
||||
//$config['db_database'] = 'db/stikked'; // you need to create a directory "db" and give the webserver write access. sqlite needs a writable folder to work properly!
|
||||
//$config['db_driver'] = 'sqlite';
|
||||
|
||||
/**
|
||||
* Table prefix
|
||||
* Generate table prefix for stikked db, commonly used if the webhoster only has one db.
|
||||
* Use underscore as suffix to easily see the tables.
|
||||
* example: $config['db_prefix'] = 'stikked_';
|
||||
* use $config['db_prefix'] = ''; if you don't want to use table prefix.
|
||||
*/
|
||||
$config['db_prefix'] = '';
|
||||
|
||||
/**
|
||||
* Theme
|
||||
*
|
||||
* Which theme to use
|
||||
* Folder name in htdocs/themes/
|
||||
* Currently: default, bootstrap, gabdark, gabdark3, geocities, snowkat, stikkedizr, cleanwhite, i386
|
||||
*
|
||||
*/
|
||||
$config['theme'] = 'default';
|
||||
|
||||
/**
|
||||
* Display QR code
|
||||
*
|
||||
* Whether or not to display the QR code
|
||||
*
|
||||
*/
|
||||
$config['qr_enabled'] = true;
|
||||
|
||||
/**
|
||||
* JavaScript-Editor
|
||||
*
|
||||
* Which editor to use
|
||||
* CodeMirror, ACE or none
|
||||
*
|
||||
* none: ~130kb JS
|
||||
* CodeMirror: ~300kb JS
|
||||
* ACE: >800kb JS
|
||||
*
|
||||
*/
|
||||
$config['js_editor'] = ''; // codemirror, ace, ''
|
||||
|
||||
/**
|
||||
* Language
|
||||
*
|
||||
* Which language to use
|
||||
* Translate Stikked to your own language, see htdocs/application/language files
|
||||
* Currently: english, german, swissgerman, spanish, norwegian, danish, portuguese, turkish, french, japanese, polish, russian, chinese-simplified, chinese-traditional, indonesia
|
||||
*
|
||||
*/
|
||||
$config['language'] = 'english';
|
||||
|
||||
/**
|
||||
* Combine JS & CSS files (recommended)
|
||||
*
|
||||
* htdocs/static/asset/ folder must be writeable
|
||||
*
|
||||
*/
|
||||
$config['combine_assets'] = false; # chown 82 htdocs/static/asset/ for Docker
|
||||
|
||||
/**
|
||||
* Content expiration
|
||||
*
|
||||
* Sets the "Expires:"-header to make use of browser-caching
|
||||
* Format: http://php.net/manual/en/function.strtotime.php
|
||||
* Examples: '+10 seconds', '+1 year', '-1 week'
|
||||
*
|
||||
*/
|
||||
$config['content_expiration'] = '-1 week';
|
||||
|
||||
/**
|
||||
* Key for Cron
|
||||
*
|
||||
* The password required to run the cron job */
|
||||
// Example cron: */5 * * * * curl --silent http://yoursite.com/cron/[key]
|
||||
//
|
||||
//
|
||||
$config['cron_key'] = '';
|
||||
|
||||
/**
|
||||
* url shortener config
|
||||
*
|
||||
* url_shortening_use:
|
||||
* - Enables specific url shortening engine or disables them all
|
||||
* - Valid values:
|
||||
* @string yourls
|
||||
* @string gwgd
|
||||
* @string googl
|
||||
* @string bitly
|
||||
* @string polr
|
||||
* @string random - Randomly chose any of upper API-s !WARNING! May be slow! For maximum performanse, it's recommended to either set all API keys or use random_url_engines to list working engines.
|
||||
* @string none - same as off
|
||||
*
|
||||
* random_url_engines:
|
||||
* - This variable sets list of APIs to be considered for usage if url_shortening_use is set to 'random'
|
||||
* To consider all API-s, either leave it empty (as empty array or string) or type all apis available (yourls,gwgd,googl,bitly)
|
||||
* be aware that considering all the APIs is not recommended because program will test them all, and that affects speed.
|
||||
* This will greatly improve performance of 'random' mode if listed are only valid, filled APIs.
|
||||
* Accepted inputs:
|
||||
* @array array('use this', 'and this', 'and this of course')
|
||||
* @string 'use this,and this,and this of course'
|
||||
* - If input is @string it must be comma delimited, otherwise will be ignored.
|
||||
* - Script will accept minimum of 2 APIs, ignored otherwise
|
||||
* - Only alphanumeric characters and "." are allowed. Everything else is filtered out.
|
||||
*
|
||||
* -------------------------------------------------------------------------------------------------------------
|
||||
* yourls_url: Your own instance of yourls URL-shortener (Download: http://yourls.org/)
|
||||
* Example: http://example.com/yourls/
|
||||
*
|
||||
* yourls_signature: Your signature, used to authenticate API requests.
|
||||
* You can find your signature under http://your-yourls-installation.com/admin/tools.php
|
||||
*
|
||||
* gwgd_url: Your own instance of the gw.gd URL-shortener (Download: https://github.com/neofutur/gwgd)
|
||||
* Default: http://gw.gd/
|
||||
*
|
||||
* googl_url_api: URL shortening service provided by Google Inc. (API: http://code.google.com/apis/console/)
|
||||
* Usage: Your API key
|
||||
*
|
||||
* bitly_url_api: Famous URL shortening service (API: http://dev.bitly.com/get_started.html)
|
||||
* Usage: Your API key
|
||||
*
|
||||
* polr_url: Your own instance of polr URL-shortener (Download: https://github.com/cydrobolt/polr)
|
||||
* polr_api: Your polr api key
|
||||
*
|
||||
**/
|
||||
$config['url_shortening_use'] = 'off';
|
||||
$config['random_url_engines'] = 'googl,bitly'; // Used only in random mode, read comment above for more info
|
||||
|
||||
// Yourls
|
||||
$config['yourls_url'] = '';
|
||||
$config['yourls_signature'] = '';
|
||||
|
||||
// gwgd_url
|
||||
$config['gwgd_url'] = '';
|
||||
$config['shorturl_selected'] = false;
|
||||
|
||||
// goo.gl API key
|
||||
$config['googl_url_api'] = '';
|
||||
|
||||
// Bit.ly API key
|
||||
$config['bitly_url_api'] = '';
|
||||
|
||||
// polr
|
||||
$config['polr_url'] = '';
|
||||
$config['polr_api'] = '';
|
||||
|
||||
/**
|
||||
* Credentials for the backup URL
|
||||
*
|
||||
* Basic auth user & pass for the backup URL, accessible via http://yoursite.com/backup
|
||||
*
|
||||
**/
|
||||
$config['backup_user'] = '';
|
||||
$config['backup_pass'] = '';
|
||||
|
||||
/**
|
||||
* Pastes Per Page
|
||||
*
|
||||
* Number of pastes per page, on the recent pastes listings.
|
||||
*
|
||||
**/
|
||||
$config['per_page'] = 15;
|
||||
|
||||
/**
|
||||
* API key
|
||||
*
|
||||
* Require a key to interact with the API.
|
||||
* Append to all API requests: ?apikey=[yourkey]
|
||||
*
|
||||
**/
|
||||
$config['apikey'] = '';
|
||||
|
||||
/**
|
||||
* Soft API
|
||||
*
|
||||
* When set to true, allow interaction:
|
||||
* without apikey: badword-check applies
|
||||
* with apikey: badwords are ignored
|
||||
*
|
||||
* This is useful to maintain a restrictive blocklist
|
||||
* for spammers and bypass it using the apikey.
|
||||
*
|
||||
**/
|
||||
$config['soft_api'] = false;
|
||||
|
||||
/**
|
||||
* Anti spam
|
||||
*
|
||||
* private_only: No recent pastes will be displayed.
|
||||
* enable_captcha: Users must enter a captcha to post.
|
||||
* recaptcha_publickey & recaptcha_privatekey: If filled, reCaptcha will be used (get a key from https://www.google.com/recaptcha/admin/create)
|
||||
* disable_api: Don't allow pasting via API (because we can't use a captcha there...)
|
||||
* disable_keep_forever: Don't allow pasting without expiration
|
||||
* blocked_words: Comma separated list, e.g. '.es.tl, mycraft.com, yourbadword'
|
||||
* disable_shorturl: "Create Shorturl" option will be disabled
|
||||
* disallow_search_engines: displays a robots.txt that forbids indexing
|
||||
*
|
||||
**/
|
||||
$config['private_only'] = false;
|
||||
$config['enable_captcha'] = true;
|
||||
$config['recaptcha_publickey'] = '';
|
||||
$config['recaptcha_privatekey'] = '';
|
||||
$config['disable_api'] = false;
|
||||
$config['disable_keep_forever'] = false;
|
||||
$config['blocked_words'] = '';
|
||||
$config['disable_shorturl'] = false;
|
||||
$config['disallow_search_engines'] = false;
|
||||
|
||||
//spamadmin: accessible via /spamadmin (only active when user + pass is set)
|
||||
$config['spamadmin_user'] = '';
|
||||
$config['spamadmin_pass'] = '';
|
||||
|
||||
/**
|
||||
* Default paste expiration time (minutes)
|
||||
*
|
||||
* Possible values:
|
||||
* burn (burn on reading)
|
||||
* 5 (5 minutes)
|
||||
* 60 (1 hour)
|
||||
* 1440 (1 day)
|
||||
* 10080 (1 week)
|
||||
* 40320 (1 month)
|
||||
* 483840 (1 year)
|
||||
* 0 (keep forever)
|
||||
**/
|
||||
$config['default_expiration'] = 0;
|
||||
|
||||
/**
|
||||
* Default language
|
||||
*
|
||||
* Preselected language. See application/config/geshi_languages.php for valid values (array keys)
|
||||
*
|
||||
**/
|
||||
$config['default_language'] = 'text';
|
||||
|
||||
/**
|
||||
* Name for anonymous poster
|
||||
*
|
||||
* What name is to be set for anonymous posters
|
||||
* DO NOT SET BLANK
|
||||
* Set to random for a random paste to be generated
|
||||
* NOTE: if changed only pastes from then on will be updated.
|
||||
*
|
||||
**/
|
||||
$config['unknown_poster'] = 'random';
|
||||
|
||||
/**
|
||||
* Name for untitled pastes
|
||||
*
|
||||
* What name is to be set for untitled pastes.
|
||||
* DO NOT SET BLANK
|
||||
* NOTE: if changed only pastes from then on will be updated.
|
||||
**/
|
||||
$config['unknown_title'] = 'Untitled';
|
||||
|
||||
/**
|
||||
* To require LDAP authentication or not.
|
||||
*
|
||||
* Weather to require LDAP authenticaiton or not.
|
||||
* Set to either 'true' to require authentication or 'false' not to.
|
||||
* NOTE: if changed, set LDAP settings in auth_ldap.php
|
||||
**/
|
||||
$config['require_auth'] = false;
|
||||
|
||||
/**
|
||||
* Override the displayed URL
|
||||
*
|
||||
* Display this URL in a paste's detail view instead of the main URL - e.g. if you use mod_rewrite
|
||||
* Variable $id: the paste_id
|
||||
* Example: 'http://example.com/$id'
|
||||
*
|
||||
**/
|
||||
$config['displayurl_override'] = '';
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* Words used for when unknown_poster is set to random
|
||||
*
|
||||
*
|
||||
**/
|
||||
$config['nouns'] = array('Hornbill', 'Elephant', 'Bison', 'Lion', 'Camel', 'Sheep',
|
||||
'Monkey', 'Prairie Dog', 'Plover', 'Tapir', 'Capybara', 'Cheetah', 'Flamingo', 'Peccary', 'Eider', 'Porcupine', 'Pelican', 'Dove', 'Crane', 'Tortoise', 'Agouti',
|
||||
'Tamarin', 'Pheasant', 'Owl', 'Gibbon', 'Goose', 'Baboon', 'Hamerkop', 'Zebra',
|
||||
'Macaw', 'Gibbon', 'Madrill', 'Wolf', 'Stork', 'Armadillo', 'Ostrich', 'Marmoset',
|
||||
'Lizard', 'Panda', 'Giraffe', 'Cassowary', 'Kangaroo', 'Gorilla', 'Pheasant',
|
||||
'Finch', 'Duck', 'Matamata', 'Teal', 'Macaque', 'Goat', 'Lechwe', 'Ibis', 'Parrot',
|
||||
'Parakeet', 'Bongo', 'Pudu', 'Echidna', 'Lemur', 'Bat', 'Curlew', 'Terrapin',
|
||||
'Peafowl', 'Duck', 'Owl', 'Parakeet', 'Meerkat', 'Tern', 'Wigeon', 'Pintail',
|
||||
'Meerkat', 'Motmot', 'Motmot', 'Shama', 'Dormouse', 'Horse', 'Rhinoceros', 'Sloth',
|
||||
'Mousedeer', 'Treeshrew', 'Bushbaby', 'Guinea Pig', 'Agouti', 'Water Vole', 'Hog',
|
||||
'Pig', 'Anoa', 'Octupus', 'Butterfly', 'Cat', 'Kitten', 'Coyote', 'Crocodile',
|
||||
'Cockroach', 'Crow', 'Bird', 'Dolphin', 'Earthworm', 'Frog', 'Hamster', 'Hedgehog',
|
||||
'Hog', 'Human', 'Hummingbird', 'Iguana', 'Leech', 'Leopard', ' Marten',
|
||||
'Mockingbird', 'Mockingjay', 'Mosquito', 'Moth', 'Partdridge', 'Bee', 'Penguin');
|
||||
|
||||
$config['adjectives'] = array('Ample', 'Mature', 'Bulky', 'Burly', 'Capacious',
|
||||
'Colossal', 'Commodious', 'Thundering', 'Mammoth', 'Mungo', 'Voluminous',
|
||||
'Walloping', 'Tiny', 'Baby', 'Bitty', 'Diminutive', 'Little', 'Paltry', 'Scanty',
|
||||
'Trivial', 'Scribby', 'Blush', 'Tinct', 'Colorant', 'Aqua', 'Beige', 'Bistre',
|
||||
'Buff', 'Bistre', 'Chartreuse', 'Chocolate', 'Cobalt', 'Coral', 'Cream', 'Crimson',
|
||||
'Denim', 'Emerald', 'Gray', 'Gamboge', 'Ivory', 'Mustard', 'Silly', 'Perl',
|
||||
'Whipped', 'Violet', 'Harmless', 'Gentle', 'Innocent', 'Reliable', 'Unreliable',
|
||||
'Soft', 'Toxic', 'Anorexic', 'Beefy', 'Sexy', 'Morose', 'Rude', 'Ungracious',
|
||||
'Abrupt', 'Gracious', 'Queen', 'Cute', 'Edgy', 'Insensitive', 'Round', 'Sharp',
|
||||
'Gruff', 'Subtle', 'Crippled', 'Eratic', 'Social', 'Jittery', 'Sole', 'Unique',
|
||||
'Botched', 'Tacky', 'Sludgy', 'Stained', 'Wet', 'Soiled', 'Big', 'Small', 'Sloppy',
|
||||
'Smelly', 'Funky', 'Putrid', 'Melodic', 'Corrupt', 'Lousy', 'Fiery', 'Red',
|
||||
'Sweet', 'Hot', 'Scorching', 'Sweltering', 'Torrid', 'Obese', 'Speedy', 'Flying',
|
||||
'Idiotic', 'Chunky', 'Forensic');
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* Words used for expiring pastes
|
||||
*
|
||||
*
|
||||
**/
|
||||
$config['expires'] = array('expire', 'perish', 'go to its last resting place',
|
||||
'go to meet its maker', 'cross the great divide', 'slip away', 'give up the ghost',
|
||||
'kick the bucket', 'croak', 'bite the big one', 'check out', 'buy the farm',
|
||||
'join the choir invisible', 'shuffle off the mortal coil', 'hop the perch',
|
||||
'run down the curtain', 'die', 'self destruct', 'explode');
|
@ -9,11 +9,11 @@ RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
|
||||
SetOutputFilter DEFLATE
|
||||
FileETag MTime Size
|
||||
|
||||
<IfModule !mod_rewrite>
|
||||
<IfModule !mod_rewrite.c>
|
||||
ErrorDocument 404 /index.php
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_expires>
|
||||
<IfModule mod_expires.c>
|
||||
ExpiresActive On
|
||||
ExpiresByType text/javascript "access plus 1 year"
|
||||
ExpiresByType application/x-javascript "access plus 1 year"
|
||||
@ -35,5 +35,3 @@ FileETag MTime Size
|
||||
#AuthName "Backend"
|
||||
#AuthUserFile /path/to/.htpasswd #create one with htpasswd -c .htpasswd username
|
||||
#Require user username
|
||||
|
||||
AddHandler php5-fastcgi .php .php5
|
||||
|
@ -1,82 +1,77 @@
|
||||
<?php
|
||||
/**
|
||||
* Class and Function List:
|
||||
* Function list:
|
||||
* Classes list:
|
||||
*/
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
//codemirror languages
|
||||
$config['ace_languages'] = array(
|
||||
'text' => 'text',
|
||||
'html5' => 'html',
|
||||
'css' => 'css',
|
||||
'javascript' => 'javascript',
|
||||
'php' => 'php',
|
||||
'python' => 'python',
|
||||
'ruby' => 'ruby',
|
||||
'lua' => 'lua',
|
||||
'bash' => 'sh',
|
||||
'erlang' => 'erlang',
|
||||
'go' => 'golang',
|
||||
'c' => 'c_cpp',
|
||||
'cpp' => 'c_cpp',
|
||||
'diff' => 'diff',
|
||||
'latex' => 'latex',
|
||||
'sql' => 'sql',
|
||||
'xml' => 'xml',
|
||||
'0' => 'text',
|
||||
'abap' => 'abap',
|
||||
'actionscript' => 'actionscript',
|
||||
'actionscript3' => 'actionscript',
|
||||
'ada' => 'ada',
|
||||
'apache' => 'apache_conf',
|
||||
'applescript' => 'applescript',
|
||||
'asm' => 'assembly_x86',
|
||||
'autohotkey' => 'autohotkey',
|
||||
'closure' => 'closure',
|
||||
'cobol' => 'cobol',
|
||||
'coffeescript' => 'coffee',
|
||||
'coffeescript' => 'coffee',
|
||||
'cpp-winapi' => 'c_cpp',
|
||||
'c_loadrunner' => 'c_cpp',
|
||||
'c_mac' => 'c_cpp',
|
||||
'c_winapi' => 'c_cpp',
|
||||
'csharp' => 'csharp',
|
||||
'd' => 'd',
|
||||
'dart' => 'dart',
|
||||
'dot' => 'dot',
|
||||
'eiffel' => 'eiffel',
|
||||
'fortran' => 'fortran',
|
||||
'groovy' => 'groovy',
|
||||
'haskell' => 'haskell',
|
||||
'haxe' => 'haxe',
|
||||
'ini' => 'ini',
|
||||
'io' => 'io',
|
||||
'java' => 'java',
|
||||
'java5' => 'java',
|
||||
'make' => 'makefile',
|
||||
'matlab' => 'matlab',
|
||||
'mysql' => 'mysql',
|
||||
'objc' => 'objectivec',
|
||||
'ocaml' => 'ocaml',
|
||||
'pascal' => 'pascal',
|
||||
'perl' => 'perl',
|
||||
'perl6' => 'perl',
|
||||
'postgresql' => 'pgsql',
|
||||
'powershell' => 'powershell',
|
||||
'prolog' => 'prolog',
|
||||
'properties' => 'properties',
|
||||
'rails' => 'ruby',
|
||||
'rust' => 'rust',
|
||||
'scala' => 'scala',
|
||||
'scheme' => 'scheme',
|
||||
'smarty' => 'smarty',
|
||||
'tcl' => 'tcl',
|
||||
'vala' => 'vala',
|
||||
'vb' => 'vbscript',
|
||||
'verilog' => 'verilog',
|
||||
'vhdl' => 'vhdl',
|
||||
'yaml' => 'yaml',
|
||||
'text' => 'text',
|
||||
'html5' => 'html',
|
||||
'css' => 'css',
|
||||
'javascript' => 'javascript',
|
||||
'php' => 'php',
|
||||
'python' => 'python',
|
||||
'ruby' => 'ruby',
|
||||
'lua' => 'lua',
|
||||
'bash' => 'sh',
|
||||
'erlang' => 'erlang',
|
||||
'go' => 'golang',
|
||||
'c' => 'c_cpp',
|
||||
'cpp' => 'c_cpp',
|
||||
'diff' => 'diff',
|
||||
'latex' => 'latex',
|
||||
'sql' => 'sql',
|
||||
'xml' => 'xml',
|
||||
'0' => 'text',
|
||||
'abap' => 'abap',
|
||||
'actionscript' => 'actionscript',
|
||||
'actionscript3' => 'actionscript',
|
||||
'ada' => 'ada',
|
||||
'apache' => 'apache_conf',
|
||||
'applescript' => 'applescript',
|
||||
'asm' => 'assembly_x86',
|
||||
'autohotkey' => 'autohotkey',
|
||||
'closure' => 'closure',
|
||||
'cobol' => 'cobol',
|
||||
'coffeescript' => 'coffee',
|
||||
'coffeescript' => 'coffee',
|
||||
'cpp-winapi' => 'c_cpp',
|
||||
'c_loadrunner' => 'c_cpp',
|
||||
'c_mac' => 'c_cpp',
|
||||
'c_winapi' => 'c_cpp',
|
||||
'csharp' => 'csharp',
|
||||
'd' => 'd',
|
||||
'dart' => 'dart',
|
||||
'dot' => 'dot',
|
||||
'eiffel' => 'eiffel',
|
||||
'fortran' => 'fortran',
|
||||
'groovy' => 'groovy',
|
||||
'haskell' => 'haskell',
|
||||
'haxe' => 'haxe',
|
||||
'ini' => 'ini',
|
||||
'io' => 'io',
|
||||
'java' => 'java',
|
||||
'java5' => 'java',
|
||||
'make' => 'makefile',
|
||||
'matlab' => 'matlab',
|
||||
'mysql' => 'mysql',
|
||||
'objc' => 'objectivec',
|
||||
'ocaml' => 'ocaml',
|
||||
'pascal' => 'pascal',
|
||||
'perl' => 'perl',
|
||||
'perl6' => 'perl',
|
||||
'postgresql' => 'pgsql',
|
||||
'powershell' => 'powershell',
|
||||
'prolog' => 'prolog',
|
||||
'properties' => 'properties',
|
||||
'rails' => 'ruby',
|
||||
'rust' => 'rust',
|
||||
'scala' => 'scala',
|
||||
'scheme' => 'scheme',
|
||||
'smarty' => 'smarty',
|
||||
'tcl' => 'tcl',
|
||||
'vala' => 'vala',
|
||||
'vb' => 'vbscript',
|
||||
'verilog' => 'verilog',
|
||||
'vhdl' => 'vhdl',
|
||||
'yaml' => 'yaml',
|
||||
);
|
||||
|
@ -1,20 +1,23 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
/*
|
||||
* This file is part of Auth_Ldap.
|
||||
|
||||
Auth_Ldap is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
Auth_Ldap is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Auth_Ldap is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
Auth_Ldap is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Auth_Ldap. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Auth_Ldap. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -33,27 +36,26 @@
|
||||
* login_attribute - LDAP attribute used to check usernames against
|
||||
* proxy_user - Distinguised name of a proxy user if your LDAP server does not allow anonymous binds
|
||||
* proxy pass - Password to use with above
|
||||
* roles - An array of role names to use within your app. The values are arbitrary.
|
||||
* roles - An array of role names to use within your app. The values are arbitrary.
|
||||
* The keys themselves represent the
|
||||
* "security level," ie
|
||||
* if( $security_level >= 3 ) {
|
||||
* // Is a power user
|
||||
* echo display_info_for_power_users_or_admins();
|
||||
* }
|
||||
* "security level," ie
|
||||
* if( $security_level >= 3 ) {
|
||||
* // Is a power user
|
||||
* echo display_info_for_power_users_or_admins();
|
||||
* }
|
||||
* member_attribute - Attribute to search to determine allowance after successful authentication
|
||||
* auditlog - Location to log auditable events. Needs to be writeable
|
||||
* by the web server
|
||||
*/
|
||||
|
||||
|
||||
$config['hosts'] = array('ldap.mycompany.com');
|
||||
$config['ports'] = array(389);
|
||||
$config['basedn'] = 'dc=mycompany,dc=com';
|
||||
$config['login_attribute'] = 'uid';
|
||||
$config['proxy_user'] = '';
|
||||
$config['proxy_pass'] = '';
|
||||
$config['roles'] = array(1 => 'User',
|
||||
$config['roles'] = array(1 => 'User',
|
||||
3 => 'Power User',
|
||||
5 => 'Administrator');
|
||||
$config['member_attribute'] = 'memberUid';
|
||||
$config['auditlog'] = 'application/logs/audit.log'; // Some place to log attempted logins (separate from message log)
|
||||
?>
|
||||
$config['auditlog'] = 'application/logs/audit.log'; // Some place to log attempted logins (separate from message log)
|
||||
|
@ -1,4 +1,7 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| AUTO-LOADER
|
||||
@ -25,7 +28,7 @@
|
||||
| 5. Language files
|
||||
| 6. Models
|
||||
|
|
||||
*/
|
||||
*/
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
@ -35,11 +38,10 @@
|
||||
|
|
||||
| $autoload['packages'] = array(APPPATH.'third_party', '/usr/local/shared');
|
||||
|
|
||||
*/
|
||||
*/
|
||||
|
||||
$autoload['packages'] = array();
|
||||
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| Auto-load Libraries
|
||||
@ -49,68 +51,63 @@ $autoload['packages'] = array();
|
||||
|
|
||||
| Prototype:
|
||||
|
|
||||
| $autoload['libraries'] = array('database', 'session', 'xmlrpc');
|
||||
*/
|
||||
| $autoload['libraries'] = array('database', 'session', 'xmlrpc');
|
||||
*/
|
||||
|
||||
$autoload['libraries'] = array('database', 'carabiner');
|
||||
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| Auto-load Helper Files
|
||||
| -------------------------------------------------------------------
|
||||
| Prototype:
|
||||
|
|
||||
| $autoload['helper'] = array('url', 'file');
|
||||
*/
|
||||
| $autoload['helper'] = array('url', 'file');
|
||||
*/
|
||||
|
||||
$autoload['helper'] = array('url', 'date', 'language');
|
||||
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| Auto-load Config files
|
||||
| -------------------------------------------------------------------
|
||||
| Prototype:
|
||||
|
|
||||
| $autoload['config'] = array('config1', 'config2');
|
||||
| $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('stikked');
|
||||
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| Auto-load Language files
|
||||
| -------------------------------------------------------------------
|
||||
| Prototype:
|
||||
|
|
||||
| $autoload['language'] = array('lang1', 'lang2');
|
||||
| $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('stikked');
|
||||
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| Auto-load Models
|
||||
| -------------------------------------------------------------------
|
||||
| Prototype:
|
||||
|
|
||||
| $autoload['model'] = array('model1', 'model2');
|
||||
| $autoload['model'] = array('model1', 'model2');
|
||||
|
|
||||
*/
|
||||
*/
|
||||
|
||||
$autoload['model'] = array();
|
||||
|
||||
|
||||
/* End of file autoload.php */
|
||||
/* Location: ./application/config/autoload.php */
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,6 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -8,13 +10,13 @@
|
||||
| URL to your CodeIgniter root. Typically this will be your base URL,
|
||||
| WITH a trailing slash:
|
||||
|
|
||||
| http://example.com/
|
||||
| http://example.com/
|
||||
|
|
||||
| If this is not set then CodeIgniter will guess the protocol, domain and
|
||||
| path to your installation.
|
||||
|
|
||||
*/
|
||||
$config['base_url'] = '';
|
||||
*/
|
||||
$config['base_url'] = '';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -23,7 +25,7 @@ $config['base_url'] = '';
|
||||
|
|
||||
| So that we can track your version.
|
||||
|
|
||||
*/
|
||||
*/
|
||||
$config['stikked_version'] = '0.13.0';
|
||||
|
||||
/*
|
||||
@ -35,7 +37,7 @@ $config['stikked_version'] = '0.13.0';
|
||||
| something else. If you are using mod_rewrite to remove the page set this
|
||||
| variable so that it is blank.
|
||||
|
|
||||
*/
|
||||
*/
|
||||
$config['index_page'] = '';
|
||||
|
||||
/*
|
||||
@ -47,14 +49,14 @@ $config['index_page'] = '';
|
||||
| URI string. The default setting of 'AUTO' works for most servers.
|
||||
| If your links do not seem to work, try one of the other delicious flavors:
|
||||
|
|
||||
| 'AUTO' Default - auto detects
|
||||
| 'PATH_INFO' Uses the PATH_INFO
|
||||
| 'QUERY_STRING' Uses the QUERY_STRING
|
||||
| 'REQUEST_URI' Uses the REQUEST_URI
|
||||
| 'ORIG_PATH_INFO' Uses the ORIG_PATH_INFO
|
||||
| 'AUTO' Default - auto detects
|
||||
| 'PATH_INFO' Uses the PATH_INFO
|
||||
| 'QUERY_STRING' Uses the QUERY_STRING
|
||||
| 'REQUEST_URI' Uses the REQUEST_URI
|
||||
| 'ORIG_PATH_INFO' Uses the ORIG_PATH_INFO
|
||||
|
|
||||
*/
|
||||
$config['uri_protocol'] = 'AUTO';
|
||||
*/
|
||||
$config['uri_protocol'] = 'AUTO';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -65,7 +67,7 @@ $config['uri_protocol'] = 'AUTO';
|
||||
| For more information please see the user guide:
|
||||
|
|
||||
| http://codeigniter.com/user_guide/general/urls.html
|
||||
*/
|
||||
*/
|
||||
|
||||
$config['url_suffix'] = '';
|
||||
|
||||
@ -78,8 +80,8 @@ $config['url_suffix'] = '';
|
||||
| there is an available translation if you intend to use something other
|
||||
| than english.
|
||||
|
|
||||
*/
|
||||
#$config['language'] = 'english'; #this is configured in config/stikked.php
|
||||
*/
|
||||
#$config['language'] = 'english'; #this is configured in config/stikked.php
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -89,7 +91,7 @@ $config['url_suffix'] = '';
|
||||
| This determines which character set is used by default in various methods
|
||||
| that require a character set to be provided.
|
||||
|
|
||||
*/
|
||||
*/
|
||||
$config['charset'] = 'UTF-8';
|
||||
|
||||
/*
|
||||
@ -100,9 +102,8 @@ $config['charset'] = 'UTF-8';
|
||||
| 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;
|
||||
|
||||
*/
|
||||
$config['enable_hooks'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -115,10 +116,9 @@ $config['enable_hooks'] = TRUE;
|
||||
| http://codeigniter.com/user_guide/general/core_classes.html
|
||||
| http://codeigniter.com/user_guide/general/creating_libraries.html
|
||||
|
|
||||
*/
|
||||
*/
|
||||
$config['subclass_prefix'] = 'MY_';
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Allowed URL Characters
|
||||
@ -135,10 +135,9 @@ $config['subclass_prefix'] = 'MY_';
|
||||
|
|
||||
| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!
|
||||
|
|
||||
*/
|
||||
*/
|
||||
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Enable Query Strings
|
||||
@ -163,12 +162,12 @@ $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
|
||||
| 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'; // experimental not currently in use
|
||||
*/
|
||||
$config['allow_get_array'] = true;
|
||||
$config['enable_query_strings'] = false;
|
||||
$config['controller_trigger'] = 'c';
|
||||
$config['function_trigger'] = 'm';
|
||||
$config['directory_trigger'] = 'd'; // experimental not currently in use
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -180,16 +179,16 @@ $config['directory_trigger'] = 'd'; // experimental not currently in use
|
||||
| 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
|
||||
| 0 = Disables logging, Error logging TURNED OFF
|
||||
| 1 = Error Messages (including PHP errors)
|
||||
| 2 = Debug Messages
|
||||
| 3 = Informational Messages
|
||||
| 4 = All 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'] = 4;
|
||||
|
||||
/*
|
||||
@ -200,7 +199,7 @@ $config['log_threshold'] = 4;
|
||||
| Leave this BLANK unless you would like to set something other than the default
|
||||
| application/logs/ folder. Use a full server path with trailing slash.
|
||||
|
|
||||
*/
|
||||
*/
|
||||
$config['log_path'] = '';
|
||||
|
||||
/*
|
||||
@ -211,7 +210,7 @@ $config['log_path'] = '';
|
||||
| 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';
|
||||
|
||||
/*
|
||||
@ -222,7 +221,7 @@ $config['log_date_format'] = 'Y-m-d H:i:s';
|
||||
| Leave this BLANK unless you would like to set something other than the default
|
||||
| system/cache/ folder. Use a full server path with trailing slash.
|
||||
|
|
||||
*/
|
||||
*/
|
||||
$config['cache_path'] = '';
|
||||
|
||||
/*
|
||||
@ -233,7 +232,7 @@ $config['cache_path'] = '';
|
||||
| If you use the Encryption class or the Session class you
|
||||
| MUST set an encryption key. See the user guide for info.
|
||||
|
|
||||
*/
|
||||
*/
|
||||
$config['encryption_key'] = '';
|
||||
|
||||
/*
|
||||
@ -243,54 +242,54 @@ $config['encryption_key'] = '';
|
||||
|
|
||||
| 'sess_driver'
|
||||
|
|
||||
| The storage driver to use: files, database, redis, memcached
|
||||
| The storage driver to use: files, database, redis, memcached
|
||||
|
|
||||
| 'sess_cookie_name'
|
||||
|
|
||||
| The session cookie name, must contain only [0-9a-z_-] characters
|
||||
| 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.
|
||||
| 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.
|
||||
| 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 '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.
|
||||
| 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!
|
||||
| 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.
|
||||
| Whether to match the user's IP address when reading the session data.
|
||||
|
|
||||
| 'sess_time_to_update'
|
||||
|
|
||||
| How many seconds between CI regenerating the session ID.
|
||||
| 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.
|
||||
| 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'] = 'database';
|
||||
$config['sess_cookie_name'] = 'stikked';
|
||||
$config['sess_expiration'] = 60*60*24*1;
|
||||
$config['sess_expiration'] = 60 * 60 * 24 * 1;
|
||||
$config['sess_save_path'] = 'sessions';
|
||||
$config['sess_match_ip'] = FALSE;
|
||||
$config['sess_match_ip'] = false;
|
||||
$config['sess_time_to_update'] = 300;
|
||||
$config['sess_regenerate_destroy'] = FALSE;
|
||||
$config['sess_regenerate_destroy'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -306,12 +305,12 @@ $config['sess_regenerate_destroy'] = FALSE;
|
||||
| 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;
|
||||
*/
|
||||
$config['cookie_prefix'] = '';
|
||||
$config['cookie_domain'] = '';
|
||||
$config['cookie_path'] = '/';
|
||||
$config['cookie_secure'] = false;
|
||||
$config['cookie_httponly'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -321,8 +320,8 @@ $config['cookie_httponly'] = FALSE;
|
||||
| Determines whether the XSS filter is always active when GET, POST or
|
||||
| COOKIE data is encountered
|
||||
|
|
||||
*/
|
||||
$config['global_xss_filtering'] = FALSE;
|
||||
*/
|
||||
$config['global_xss_filtering'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -335,8 +334,8 @@ $config['global_xss_filtering'] = FALSE;
|
||||
| 'csrf_token_name' = The token name
|
||||
| 'csrf_cookie_name' = The cookie name
|
||||
| 'csrf_expire' = The number in seconds the token should expire.
|
||||
*/
|
||||
$config['csrf_protection'] = FALSE;
|
||||
*/
|
||||
$config['csrf_protection'] = false;
|
||||
$config['csrf_token_name'] = 'csrf_test_name';
|
||||
$config['csrf_cookie_name'] = 'csrf_cookie_name';
|
||||
$config['csrf_expire'] = 7200;
|
||||
@ -357,8 +356,8 @@ $config['csrf_expire'] = 7200;
|
||||
| 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;
|
||||
*/
|
||||
$config['compress_output'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -370,10 +369,9 @@ $config['compress_output'] = FALSE;
|
||||
| GMT. See the 'date helper' page of the user guide for information
|
||||
| regarding date handling.
|
||||
|
|
||||
*/
|
||||
*/
|
||||
$config['time_reference'] = 'local';
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Rewrite PHP Short Tags
|
||||
@ -383,9 +381,8 @@ $config['time_reference'] = 'local';
|
||||
| can rewrite the tags on-the-fly, enabling you to utilize that syntax
|
||||
| in your view files. Options are TRUE or FALSE (boolean)
|
||||
|
|
||||
*/
|
||||
$config['rewrite_short_tags'] = FALSE;
|
||||
|
||||
*/
|
||||
$config['rewrite_short_tags'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -397,7 +394,7 @@ $config['rewrite_short_tags'] = FALSE;
|
||||
| header in order to properly identify the visitor's IP address.
|
||||
| Comma-delimited, e.g. '10.0.1.200,10.0.1.201'
|
||||
|
|
||||
*/
|
||||
*/
|
||||
$config['proxy_ips'] = '';
|
||||
|
||||
/*
|
||||
@ -407,9 +404,9 @@ $config['proxy_ips'] = '';
|
||||
|
|
||||
| The favorite languages, that's at the beginning of the list.
|
||||
|
|
||||
*/
|
||||
*/
|
||||
$config['favorite_languages'] = array('text', 'html5', 'css', 'javascript', 'php', 'python', 'ruby',
|
||||
'lua', 'bash', 'erlang', 'go', 'c', 'cpp', 'diff', 'latex', 'sql', 'xml');
|
||||
'lua', 'bash', 'erlang', 'go', 'c', 'cpp', 'diff', 'latex', 'sql', 'xml');
|
||||
|
||||
/* End of file config.php */
|
||||
/* Location: ./application/config/config.php */
|
||||
|
@ -1,5 +1,4 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
<?php defined('BASEPATH') or exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -10,8 +9,8 @@ defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
| error_reporting is disabled, the backtrace will not display, regardless
|
||||
| of this setting
|
||||
|
|
||||
*/
|
||||
defined('SHOW_DEBUG_BACKTRACE') OR define('SHOW_DEBUG_BACKTRACE', TRUE);
|
||||
*/
|
||||
defined('SHOW_DEBUG_BACKTRACE') or define('SHOW_DEBUG_BACKTRACE', true);
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -25,11 +24,11 @@ defined('SHOW_DEBUG_BACKTRACE') OR define('SHOW_DEBUG_BACKTRACE', TRUE);
|
||||
| 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);
|
||||
*/
|
||||
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);
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -38,15 +37,15 @@ defined('DIR_WRITE_MODE') OR define('DIR_WRITE_MODE', 0755);
|
||||
|
|
||||
| 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');
|
||||
*/
|
||||
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');
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -72,14 +71,14 @@ defined('FOPEN_READ_WRITE_CREATE_STRICT') OR define('FOPEN_READ_WRITE_CREA
|
||||
| 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
|
||||
*/
|
||||
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
|
||||
|
@ -1,5 +1,7 @@
|
||||
<?php
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| DATABASE CONNECTIVITY SETTINGS
|
||||
@ -13,97 +15,91 @@ if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
| 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.
|
||||
| ['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:
|
||||
| '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)
|
||||
| '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.
|
||||
| ['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;
|
||||
$CI = & get_instance();
|
||||
$query_builder = true;
|
||||
$CI = &get_instance();
|
||||
|
||||
if ($CI->config->item('db_driver') == 'sqlite')
|
||||
{
|
||||
$db['default']['database'] = $CI->config->item('db_database') . '.db';
|
||||
$db['default']['dbdriver'] = 'sqlite3';
|
||||
}
|
||||
else
|
||||
{
|
||||
$db['default']['hostname'] = $CI->config->item('db_hostname');
|
||||
$db['default']['username'] = $CI->config->item('db_username');
|
||||
$db['default']['password'] = $CI->config->item('db_password');
|
||||
$db['default']['database'] = $CI->config->item('db_database');
|
||||
if (null !== $CI->config->item('db_driver'))
|
||||
{
|
||||
$db['default']['dbdriver'] = $CI->config->item('db_driver');
|
||||
}
|
||||
else
|
||||
{
|
||||
$db['default']['dbdriver'] = 'mysqli';
|
||||
}
|
||||
if ($CI->config->item('db_driver') == 'sqlite') {
|
||||
$db['default']['database'] = $CI->config->item('db_database') . '.db';
|
||||
$db['default']['dbdriver'] = 'sqlite3';
|
||||
} else {
|
||||
$db['default']['hostname'] = $CI->config->item('db_hostname');
|
||||
$db['default']['username'] = $CI->config->item('db_username');
|
||||
$db['default']['password'] = $CI->config->item('db_password');
|
||||
$db['default']['database'] = $CI->config->item('db_database');
|
||||
if (null !== $CI->config->item('db_driver')) {
|
||||
$db['default']['dbdriver'] = $CI->config->item('db_driver');
|
||||
} else {
|
||||
$db['default']['dbdriver'] = 'mysqli';
|
||||
}
|
||||
}
|
||||
$db['default']['dbprefix'] = $CI->config->item('db_prefix');
|
||||
$db['default']['pconnect'] = FALSE;
|
||||
$db['default']['db_debug'] = TRUE;
|
||||
$db['default']['cache_on'] = FALSE;
|
||||
$db['default']['pconnect'] = false;
|
||||
$db['default']['db_debug'] = true;
|
||||
$db['default']['cache_on'] = false;
|
||||
$db['default']['cachedir'] = '';
|
||||
$db['default']['char_set'] = 'utf8';
|
||||
$db['default']['dbcollat'] = 'utf8_general_ci';
|
||||
$db['default']['swap_pre'] = '';
|
||||
$db['default']['autoinit'] = TRUE;
|
||||
$db['default']['stricton'] = FALSE;
|
||||
$db['default']['autoinit'] = true;
|
||||
$db['default']['stricton'] = false;
|
||||
|
||||
/* End of file database.php */
|
||||
/* Location: ./application/config/database.php */
|
||||
|
@ -1,15 +1,17 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
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">',
|
||||
'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">'
|
||||
);
|
||||
'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">',
|
||||
'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">',
|
||||
);
|
||||
|
||||
/* End of file doctypes.php */
|
||||
/* Location: ./application/config/doctypes.php */
|
||||
/* Location: ./application/config/doctypes.php */
|
||||
|
@ -1,4 +1,7 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| Foreign Characters
|
||||
@ -6,59 +9,59 @@
|
||||
| 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',
|
||||
'/Ç|Ć|Ĉ|Ċ|Č/' => 'C',
|
||||
'/ç|ć|ĉ|ċ|č/' => 'c',
|
||||
'/Ð|Ď|Đ/' => 'D',
|
||||
'/ð|ď|đ/' => 'd',
|
||||
'/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě/' => 'E',
|
||||
'/è|é|ê|ë|ē|ĕ|ė|ę|ě/' => 'e',
|
||||
'/Ĝ|Ğ|Ġ|Ģ/' => 'G',
|
||||
'/ĝ|ğ|ġ|ģ/' => 'g',
|
||||
'/Ĥ|Ħ/' => 'H',
|
||||
'/ĥ|ħ/' => 'h',
|
||||
'/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ/' => 'I',
|
||||
'/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı/' => 'i',
|
||||
'/Ĵ/' => 'J',
|
||||
'/ĵ/' => 'j',
|
||||
'/Ķ/' => 'K',
|
||||
'/ķ/' => 'k',
|
||||
'/Ĺ|Ļ|Ľ|Ŀ|Ł/' => 'L',
|
||||
'/ĺ|ļ|ľ|ŀ|ł/' => 'l',
|
||||
'/Ñ|Ń|Ņ|Ň/' => 'N',
|
||||
'/ñ|ń|ņ|ň|ʼn/' => 'n',
|
||||
'/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ/' => 'O',
|
||||
'/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º/' => 'o',
|
||||
'/Ŕ|Ŗ|Ř/' => 'R',
|
||||
'/ŕ|ŗ|ř/' => 'r',
|
||||
'/Ś|Ŝ|Ş|Š/' => 'S',
|
||||
'/ś|ŝ|ş|š|ſ/' => 's',
|
||||
'/Ţ|Ť|Ŧ/' => 'T',
|
||||
'/ţ|ť|ŧ/' => 't',
|
||||
'/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ/' => 'U',
|
||||
'/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ/' => 'u',
|
||||
'/Ý|Ÿ|Ŷ/' => 'Y',
|
||||
'/ý|ÿ|ŷ/' => 'y',
|
||||
'/Ŵ/' => 'W',
|
||||
'/ŵ/' => 'w',
|
||||
'/Ź|Ż|Ž/' => 'Z',
|
||||
'/ź|ż|ž/' => 'z',
|
||||
'/Æ|Ǽ/' => 'AE',
|
||||
'/ß/'=> 'ss',
|
||||
'/IJ/' => 'IJ',
|
||||
'/ij/' => 'ij',
|
||||
'/Œ/' => 'OE',
|
||||
'/ƒ/' => 'f'
|
||||
'/ä|æ|ǽ/' => 'ae',
|
||||
'/ö|œ/' => 'oe',
|
||||
'/ü/' => 'ue',
|
||||
'/Ä/' => 'Ae',
|
||||
'/Ü/' => 'Ue',
|
||||
'/Ö/' => 'Oe',
|
||||
'/À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ/' => 'A',
|
||||
'/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª/' => 'a',
|
||||
'/Ç|Ć|Ĉ|Ċ|Č/' => 'C',
|
||||
'/ç|ć|ĉ|ċ|č/' => 'c',
|
||||
'/Ð|Ď|Đ/' => 'D',
|
||||
'/ð|ď|đ/' => 'd',
|
||||
'/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě/' => 'E',
|
||||
'/è|é|ê|ë|ē|ĕ|ė|ę|ě/' => 'e',
|
||||
'/Ĝ|Ğ|Ġ|Ģ/' => 'G',
|
||||
'/ĝ|ğ|ġ|ģ/' => 'g',
|
||||
'/Ĥ|Ħ/' => 'H',
|
||||
'/ĥ|ħ/' => 'h',
|
||||
'/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ/' => 'I',
|
||||
'/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı/' => 'i',
|
||||
'/Ĵ/' => 'J',
|
||||
'/ĵ/' => 'j',
|
||||
'/Ķ/' => 'K',
|
||||
'/ķ/' => 'k',
|
||||
'/Ĺ|Ļ|Ľ|Ŀ|Ł/' => 'L',
|
||||
'/ĺ|ļ|ľ|ŀ|ł/' => 'l',
|
||||
'/Ñ|Ń|Ņ|Ň/' => 'N',
|
||||
'/ñ|ń|ņ|ň|ʼn/' => 'n',
|
||||
'/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ/' => 'O',
|
||||
'/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º/' => 'o',
|
||||
'/Ŕ|Ŗ|Ř/' => 'R',
|
||||
'/ŕ|ŗ|ř/' => 'r',
|
||||
'/Ś|Ŝ|Ş|Š/' => 'S',
|
||||
'/ś|ŝ|ş|š|ſ/' => 's',
|
||||
'/Ţ|Ť|Ŧ/' => 'T',
|
||||
'/ţ|ť|ŧ/' => 't',
|
||||
'/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ/' => 'U',
|
||||
'/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ/' => 'u',
|
||||
'/Ý|Ÿ|Ŷ/' => 'Y',
|
||||
'/ý|ÿ|ŷ/' => 'y',
|
||||
'/Ŵ/' => 'W',
|
||||
'/ŵ/' => 'w',
|
||||
'/Ź|Ż|Ž/' => 'Z',
|
||||
'/ź|ż|ž/' => 'z',
|
||||
'/Æ|Ǽ/' => 'AE',
|
||||
'/ß/' => 'ss',
|
||||
'/IJ/' => 'IJ',
|
||||
'/ij/' => 'ij',
|
||||
'/Œ/' => 'OE',
|
||||
'/ƒ/' => 'f',
|
||||
);
|
||||
|
||||
/* End of file foreign_chars.php */
|
||||
/* Location: ./application/config/foreign_chars.php */
|
||||
/* Location: ./application/config/foreign_chars.php */
|
||||
|
@ -1,252 +1,247 @@
|
||||
<?php
|
||||
/**
|
||||
* Class and Function List:
|
||||
* Function list:
|
||||
* Classes list:
|
||||
*/
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
//geshi languages
|
||||
$config['geshi_languages'] = array(
|
||||
'4cs' => '4CS',
|
||||
'6502acme' => 'MOS 6502',
|
||||
'6502kickass' => 'MOS 6502 Kick Assembler',
|
||||
'6502tasm' => 'MOS 6502 TASM/64TASS',
|
||||
'68000devpac' => 'Motorola 68000 Devpac Assembler',
|
||||
'abap' => 'ABAP',
|
||||
'actionscript' => 'Actionscript',
|
||||
'actionscript3' => 'ActionScript3',
|
||||
'ada' => 'Ada',
|
||||
'aimms' =>'AIMMS',
|
||||
'algol68' => 'ALGOL 68',
|
||||
'apache' => 'Apache',
|
||||
'applescript' => 'AppleScript',
|
||||
'apt_sources' => 'Apt sources.list',
|
||||
'arm' => 'ARM Assembler',
|
||||
'asm' => 'x86 Assembler',
|
||||
'asymptote' => 'asymptote',
|
||||
'asp' => 'ASP',
|
||||
'autoconf' => 'autoconf',
|
||||
'autohotkey' => 'Autohotkey',
|
||||
'autoit' => 'AutoIT',
|
||||
'avisynth' => 'AviSynth',
|
||||
'awk' => 'Awk',
|
||||
'bascomavr' => 'BASCOM AVR',
|
||||
'bash' => 'Bash',
|
||||
'basic4gl' => 'Basic4GL',
|
||||
'bbcode' => 'BBCode',
|
||||
'bf' => 'Brainfuck',
|
||||
'bibtex' => 'BibTeX',
|
||||
'blitzbasic' => 'BlitzBasic',
|
||||
'bnf' => 'BNF (Backus-Naur form)',
|
||||
'boo' => 'Boo',
|
||||
'c' => 'C',
|
||||
'c_loadrunner' => 'C (for LoadRunner)',
|
||||
'c_mac' => 'C for Macs',
|
||||
'c_winapi' => 'C with WiAPI',
|
||||
'cpp' => 'C++',
|
||||
'caddcl' => 'CAD DCL (Dialog Control Language)',
|
||||
'cadlisp' => 'AutoCAD/IntelliCAD Lisp',
|
||||
'cfdg' => 'CFDG',
|
||||
'cfm' => 'ColdFusion',
|
||||
'chaiscript' => 'ChaiScript',
|
||||
'chapel' => 'Chapel',
|
||||
'cil' => 'CIL (Common Intermediate Language)',
|
||||
'clojure' => 'Clojure',
|
||||
'cmake' => 'CMake',
|
||||
'cobol' => 'COBOL',
|
||||
'coffeescript' => 'CoffeeScript',
|
||||
'cpp-winapi' => 'C++ with WinAPI',
|
||||
'csharp' => 'C#',
|
||||
'css' => 'CSS',
|
||||
'cuesheet' => 'Cuesheet',
|
||||
'd' => 'D',
|
||||
'dart' => 'Dart',
|
||||
'dcs' => 'DCS',
|
||||
'dcl' => 'DCL',
|
||||
'dcpu16' => 'DCPU/16 Assembly',
|
||||
'delphi' => 'Delphi (Object Pascal)',
|
||||
'diff' => 'Diff-output',
|
||||
'div' => 'DIV',
|
||||
'dos' => 'DOS',
|
||||
'dot' => 'dot',
|
||||
'e' => 'E',
|
||||
'ecmascript' => 'ECMAScript',
|
||||
'eiffel' => 'Eiffel',
|
||||
'email' => 'Email (mbox/eml/RFC format)',
|
||||
'epc' => 'Enerscript',
|
||||
'erlang' => 'Erlang',
|
||||
'euphoria' => 'Euphoria',
|
||||
'ezt' => 'EZT',
|
||||
'f1' => 'Formula One',
|
||||
'falcon' => 'Falcon',
|
||||
'fo' => 'fo',
|
||||
'fortran' => 'Fortran',
|
||||
'freebasic' => 'FreeBasic',
|
||||
'freeswitch' => 'FreeSWITCH',
|
||||
'fsharp' => 'F#',
|
||||
'gambas' => 'GAMBAS',
|
||||
'gdb' => 'GDB',
|
||||
'genero' => 'Genero',
|
||||
'genie' => 'Genie',
|
||||
'gettext' => 'GNU Gettext .po/.pot',
|
||||
'glsl' => 'glSlang',
|
||||
'gml' => 'GML',
|
||||
'gnuplot' => 'Gnuplot script',
|
||||
'go' => 'Go',
|
||||
'groovy' => 'Groovy',
|
||||
'gwbasic' => 'GwBasic',
|
||||
'haskell' => 'Haskell',
|
||||
'haxe' => 'Haxe',
|
||||
'hicest' => 'HicEst',
|
||||
'hq9plus' => 'HQ9+',
|
||||
'html4strict' => 'HTML 4.01 strict',
|
||||
'html5' => 'HTML5',
|
||||
'icon' => 'Icon',
|
||||
'idl' => 'Unoidl',
|
||||
'ini' => 'INI',
|
||||
'inno' => 'Inno Script',
|
||||
'intercal' => 'INTERCAL',
|
||||
'io' => 'Io',
|
||||
'ispfpanel' => 'ISPF Panel',
|
||||
'j' => 'J',
|
||||
'java' => 'Java',
|
||||
'java5' => 'Java 5',
|
||||
'javascript' => 'JavaScript',
|
||||
'jcl' => 'Job Control Language',
|
||||
'jquery' => 'jQuery 1.3',
|
||||
'4cs' => '4CS',
|
||||
'6502acme' => 'MOS 6502',
|
||||
'6502kickass' => 'MOS 6502 Kick Assembler',
|
||||
'6502tasm' => 'MOS 6502 TASM/64TASS',
|
||||
'68000devpac' => 'Motorola 68000 Devpac Assembler',
|
||||
'abap' => 'ABAP',
|
||||
'actionscript' => 'Actionscript',
|
||||
'actionscript3' => 'ActionScript3',
|
||||
'ada' => 'Ada',
|
||||
'aimms' => 'AIMMS',
|
||||
'algol68' => 'ALGOL 68',
|
||||
'apache' => 'Apache',
|
||||
'applescript' => 'AppleScript',
|
||||
'apt_sources' => 'Apt sources.list',
|
||||
'arm' => 'ARM Assembler',
|
||||
'asm' => 'x86 Assembler',
|
||||
'asymptote' => 'asymptote',
|
||||
'asp' => 'ASP',
|
||||
'autoconf' => 'autoconf',
|
||||
'autohotkey' => 'Autohotkey',
|
||||
'autoit' => 'AutoIT',
|
||||
'avisynth' => 'AviSynth',
|
||||
'awk' => 'Awk',
|
||||
'bascomavr' => 'BASCOM AVR',
|
||||
'bash' => 'Bash',
|
||||
'basic4gl' => 'Basic4GL',
|
||||
'bbcode' => 'BBCode',
|
||||
'bf' => 'Brainfuck',
|
||||
'bibtex' => 'BibTeX',
|
||||
'blitzbasic' => 'BlitzBasic',
|
||||
'bnf' => 'BNF (Backus-Naur form)',
|
||||
'boo' => 'Boo',
|
||||
'c' => 'C',
|
||||
'c_loadrunner' => 'C (for LoadRunner)',
|
||||
'c_mac' => 'C for Macs',
|
||||
'c_winapi' => 'C with WiAPI',
|
||||
'cpp' => 'C++',
|
||||
'caddcl' => 'CAD DCL (Dialog Control Language)',
|
||||
'cadlisp' => 'AutoCAD/IntelliCAD Lisp',
|
||||
'cfdg' => 'CFDG',
|
||||
'cfm' => 'ColdFusion',
|
||||
'chaiscript' => 'ChaiScript',
|
||||
'chapel' => 'Chapel',
|
||||
'cil' => 'CIL (Common Intermediate Language)',
|
||||
'clojure' => 'Clojure',
|
||||
'cmake' => 'CMake',
|
||||
'cobol' => 'COBOL',
|
||||
'coffeescript' => 'CoffeeScript',
|
||||
'cpp-winapi' => 'C++ with WinAPI',
|
||||
'csharp' => 'C#',
|
||||
'css' => 'CSS',
|
||||
'cuesheet' => 'Cuesheet',
|
||||
'd' => 'D',
|
||||
'dart' => 'Dart',
|
||||
'dcs' => 'DCS',
|
||||
'dcl' => 'DCL',
|
||||
'dcpu16' => 'DCPU/16 Assembly',
|
||||
'delphi' => 'Delphi (Object Pascal)',
|
||||
'diff' => 'Diff-output',
|
||||
'div' => 'DIV',
|
||||
'dos' => 'DOS',
|
||||
'dot' => 'dot',
|
||||
'e' => 'E',
|
||||
'ecmascript' => 'ECMAScript',
|
||||
'eiffel' => 'Eiffel',
|
||||
'email' => 'Email (mbox/eml/RFC format)',
|
||||
'epc' => 'Enerscript',
|
||||
'erlang' => 'Erlang',
|
||||
'euphoria' => 'Euphoria',
|
||||
'ezt' => 'EZT',
|
||||
'f1' => 'Formula One',
|
||||
'falcon' => 'Falcon',
|
||||
'fo' => 'fo',
|
||||
'fortran' => 'Fortran',
|
||||
'freebasic' => 'FreeBasic',
|
||||
'freeswitch' => 'FreeSWITCH',
|
||||
'fsharp' => 'F#',
|
||||
'gambas' => 'GAMBAS',
|
||||
'gdb' => 'GDB',
|
||||
'genero' => 'Genero',
|
||||
'genie' => 'Genie',
|
||||
'gettext' => 'GNU Gettext .po/.pot',
|
||||
'glsl' => 'glSlang',
|
||||
'gml' => 'GML',
|
||||
'gnuplot' => 'Gnuplot script',
|
||||
'go' => 'Go',
|
||||
'groovy' => 'Groovy',
|
||||
'gwbasic' => 'GwBasic',
|
||||
'haskell' => 'Haskell',
|
||||
'haxe' => 'Haxe',
|
||||
'hicest' => 'HicEst',
|
||||
'hq9plus' => 'HQ9+',
|
||||
'html4strict' => 'HTML 4.01 strict',
|
||||
'html5' => 'HTML5',
|
||||
'icon' => 'Icon',
|
||||
'idl' => 'Unoidl',
|
||||
'ini' => 'INI',
|
||||
'inno' => 'Inno Script',
|
||||
'intercal' => 'INTERCAL',
|
||||
'io' => 'Io',
|
||||
'ispfpanel' => 'ISPF Panel',
|
||||
'j' => 'J',
|
||||
'java' => 'Java',
|
||||
'java5' => 'Java 5',
|
||||
'javascript' => 'JavaScript',
|
||||
'jcl' => 'Job Control Language',
|
||||
'jquery' => 'jQuery 1.3',
|
||||
|
||||
//'kixtart' => 'PHP',
|
||||
'klonec' => 'KLone with C',
|
||||
'klonecpp' => 'KLone with C++',
|
||||
'kotlin' => 'Kotlin',
|
||||
'latex' => 'LaTeX',
|
||||
'lb' => 'Liberty BASIC',
|
||||
'ldif' => 'LDIF',
|
||||
'lisp' => 'Generic Lisp',
|
||||
'llvm' => 'LLVM',
|
||||
'locobasic' => 'Locomotive Basic (Amstrad CPC series)',
|
||||
'logcat' => 'Logcat',
|
||||
'logtalk' => 'Logtalk',
|
||||
'lolcode' => 'LOLcode',
|
||||
'lotusformulas' => '@Formula/@Command',
|
||||
'lotusscript' => 'LotusScript',
|
||||
'lscript' => 'Lightwave Script',
|
||||
'lsl2' => 'Linden Scripting',
|
||||
'lua' => 'Lua',
|
||||
'm68k' => 'Motorola 68000 Assembler',
|
||||
'magiksf' => 'MagikSF',
|
||||
'make' => 'Make',
|
||||
'mapbasic' => 'MapBasic',
|
||||
'matlab' => 'Matlab M-file',
|
||||
'mirc' => 'mIRC Scripting',
|
||||
'mmix' => 'MMIX Assembler',
|
||||
'modula2' => 'Modula-2',
|
||||
'modula3' => 'Modula-3',
|
||||
'mpasm' => 'Microchip Assembler',
|
||||
'mxml' => 'MXML',
|
||||
'mysql' => 'MySQL',
|
||||
'nagios' => 'Nagios',
|
||||
'netrexx' => 'NetRexx',
|
||||
'newlisp' => 'newLISP',
|
||||
'nginx' => 'nginx',
|
||||
'nimrod' => 'Nimrod',
|
||||
'nsis' => 'Nullsoft Scriptable Install System',
|
||||
'oberon2' => 'Oberon-2',
|
||||
'objc' => 'Objective-C',
|
||||
'objeck' => 'Objeck Programming Language',
|
||||
'ocaml' => 'OCaml (Objective Caml)',
|
||||
'octave' => 'GNU Octave M-file',
|
||||
'oobas' => 'OpenOffice.org Basic',
|
||||
'oorexx' => 'ooRexx',
|
||||
'oracle11' => 'Oracle 11i',
|
||||
'oracle8' => 'Oracle 8',
|
||||
'oxygene' => 'Delphi Prism (Oxygene)',
|
||||
'oz' => 'Oz',
|
||||
'parasail' => 'ParaSail',
|
||||
'parigp' => 'PARI/GP',
|
||||
'pascal' => 'Pascal',
|
||||
'pcre' => 'PCRE',
|
||||
'per' => 'Per (forms)',
|
||||
'perl' => 'Perl',
|
||||
'perl6' => 'Perl 6',
|
||||
'pf' => 'OpenBSD packet filter',
|
||||
'php' => 'PHP',
|
||||
'pic16' => 'PIC16 Assembler',
|
||||
'pike' => 'Pike',
|
||||
'pixelbender' => 'Pixel Bender 1.0',
|
||||
'pli' => 'PL/I',
|
||||
'plsql' => 'Oracle 9.2 PL/SQL',
|
||||
'postgresql' => 'PostgreSQL',
|
||||
'postscript' => 'Postscript',
|
||||
'povray' => 'Povray',
|
||||
'powerbuilder' => 'PowerBuilder (PowerScript)',
|
||||
'powershell' => 'PowerShell',
|
||||
'proftpd' => 'ProFTPd',
|
||||
'progress' => 'Progress',
|
||||
'prolog' => 'Prolog',
|
||||
'properties' => 'Property',
|
||||
'providex' => 'ProvideX',
|
||||
'purebasic' => 'PureBasic',
|
||||
'pys60' => 'Python for S60',
|
||||
'python' => 'Python',
|
||||
'q' => 'q/kdb+',
|
||||
'qbasic' => 'QBasic/QuickBASIC',
|
||||
'qml' => 'QML',
|
||||
'racket' => 'Racket',
|
||||
'rails' => 'Ruby (with Ruby on Rails Framework)',
|
||||
'rbs' => 'RBS Script',
|
||||
'rebol' => 'Rebol',
|
||||
'reg' => 'Microsoft Registry Editor',
|
||||
'rexx' => 'Rexx',
|
||||
'robots' => 'robots.txt',
|
||||
'rpmspec' => 'RPM Spec',
|
||||
'rsplus' => 'R',
|
||||
'ruby' => 'Ruby',
|
||||
'rust' => 'Rust',
|
||||
'sas' => 'SAS',
|
||||
'scala' => 'Scala',
|
||||
'scheme' => 'Scheme',
|
||||
'scilab' => 'SciLab',
|
||||
'scl' => 'SCL',
|
||||
'sdlbasic' => 'sdlBasic',
|
||||
'smalltalk' => 'Smalltalk',
|
||||
'smarty' => 'Smarty template',
|
||||
'spark' => 'SPARK',
|
||||
'sparql' => 'SPARQL',
|
||||
'sql' => 'SQL',
|
||||
'standardml' => 'StandardML',
|
||||
'stonescript' => 'StoneScript',
|
||||
'systemverilog' => 'SystemVerilog IEEE 1800-2009(draft8)',
|
||||
'tcl' => 'TCL/iTCL',
|
||||
'teraterm' => 'Tera Term Macro',
|
||||
'text' => 'Plain Text',
|
||||
'thinbasic' => 'thinBasic',
|
||||
'tsql' => 'T-SQL',
|
||||
'typoscript' => 'TypoScript',
|
||||
'unicon' => 'Unicon',
|
||||
'uscript' => 'UnrealScript',
|
||||
'upc' => 'UPC',
|
||||
'urbi' => 'Urbi',
|
||||
'vala' => 'Vala',
|
||||
'vb' => 'Visual Basic',
|
||||
'vbnet' => 'VB.NET',
|
||||
'vbscript' => 'VBScript',
|
||||
'vedit' => 'Vedit macro language',
|
||||
'verilog' => 'Verilog',
|
||||
'vhdl' => 'VHDL',
|
||||
'vim' => 'Vim scripting',
|
||||
'visualfoxpro' => 'Visual FoxPro',
|
||||
'visualprolog' => 'Visual Prolog',
|
||||
'whitespace' => 'Whitespace',
|
||||
'whois' => 'Whois response (RPSL format)',
|
||||
'winbatch' => 'WinBatch',
|
||||
'xbasic' => 'XBasic',
|
||||
'xml' => 'XML',
|
||||
'xorg_conf' => 'xorg.conf',
|
||||
'xpp' => 'Axapta/Dynamics Ax X++',
|
||||
'yaml' => 'YAML',
|
||||
'z80' => 'ZiLOG Z80 Assembler',
|
||||
'zxbasic' => 'ZXBasic',
|
||||
//'kixtart' => 'PHP',
|
||||
'klonec' => 'KLone with C',
|
||||
'klonecpp' => 'KLone with C++',
|
||||
'kotlin' => 'Kotlin',
|
||||
'latex' => 'LaTeX',
|
||||
'lb' => 'Liberty BASIC',
|
||||
'ldif' => 'LDIF',
|
||||
'lisp' => 'Generic Lisp',
|
||||
'llvm' => 'LLVM',
|
||||
'locobasic' => 'Locomotive Basic (Amstrad CPC series)',
|
||||
'logcat' => 'Logcat',
|
||||
'logtalk' => 'Logtalk',
|
||||
'lolcode' => 'LOLcode',
|
||||
'lotusformulas' => '@Formula/@Command',
|
||||
'lotusscript' => 'LotusScript',
|
||||
'lscript' => 'Lightwave Script',
|
||||
'lsl2' => 'Linden Scripting',
|
||||
'lua' => 'Lua',
|
||||
'm68k' => 'Motorola 68000 Assembler',
|
||||
'magiksf' => 'MagikSF',
|
||||
'make' => 'Make',
|
||||
'mapbasic' => 'MapBasic',
|
||||
'matlab' => 'Matlab M-file',
|
||||
'mirc' => 'mIRC Scripting',
|
||||
'mmix' => 'MMIX Assembler',
|
||||
'modula2' => 'Modula-2',
|
||||
'modula3' => 'Modula-3',
|
||||
'mpasm' => 'Microchip Assembler',
|
||||
'mxml' => 'MXML',
|
||||
'mysql' => 'MySQL',
|
||||
'nagios' => 'Nagios',
|
||||
'netrexx' => 'NetRexx',
|
||||
'newlisp' => 'newLISP',
|
||||
'nginx' => 'nginx',
|
||||
'nimrod' => 'Nimrod',
|
||||
'nsis' => 'Nullsoft Scriptable Install System',
|
||||
'oberon2' => 'Oberon-2',
|
||||
'objc' => 'Objective-C',
|
||||
'objeck' => 'Objeck Programming Language',
|
||||
'ocaml' => 'OCaml (Objective Caml)',
|
||||
'octave' => 'GNU Octave M-file',
|
||||
'oobas' => 'OpenOffice.org Basic',
|
||||
'oorexx' => 'ooRexx',
|
||||
'oracle11' => 'Oracle 11i',
|
||||
'oracle8' => 'Oracle 8',
|
||||
'oxygene' => 'Delphi Prism (Oxygene)',
|
||||
'oz' => 'Oz',
|
||||
'parasail' => 'ParaSail',
|
||||
'parigp' => 'PARI/GP',
|
||||
'pascal' => 'Pascal',
|
||||
'pcre' => 'PCRE',
|
||||
'per' => 'Per (forms)',
|
||||
'perl' => 'Perl',
|
||||
'perl6' => 'Perl 6',
|
||||
'pf' => 'OpenBSD packet filter',
|
||||
'php' => 'PHP',
|
||||
'pic16' => 'PIC16 Assembler',
|
||||
'pike' => 'Pike',
|
||||
'pixelbender' => 'Pixel Bender 1.0',
|
||||
'pli' => 'PL/I',
|
||||
'plsql' => 'Oracle 9.2 PL/SQL',
|
||||
'postgresql' => 'PostgreSQL',
|
||||
'postscript' => 'Postscript',
|
||||
'povray' => 'Povray',
|
||||
'powerbuilder' => 'PowerBuilder (PowerScript)',
|
||||
'powershell' => 'PowerShell',
|
||||
'proftpd' => 'ProFTPd',
|
||||
'progress' => 'Progress',
|
||||
'prolog' => 'Prolog',
|
||||
'properties' => 'Property',
|
||||
'providex' => 'ProvideX',
|
||||
'purebasic' => 'PureBasic',
|
||||
'pys60' => 'Python for S60',
|
||||
'python' => 'Python',
|
||||
'q' => 'q/kdb+',
|
||||
'qbasic' => 'QBasic/QuickBASIC',
|
||||
'qml' => 'QML',
|
||||
'racket' => 'Racket',
|
||||
'rails' => 'Ruby (with Ruby on Rails Framework)',
|
||||
'rbs' => 'RBS Script',
|
||||
'rebol' => 'Rebol',
|
||||
'reg' => 'Microsoft Registry Editor',
|
||||
'rexx' => 'Rexx',
|
||||
'robots' => 'robots.txt',
|
||||
'rpmspec' => 'RPM Spec',
|
||||
'rsplus' => 'R',
|
||||
'ruby' => 'Ruby',
|
||||
'rust' => 'Rust',
|
||||
'sas' => 'SAS',
|
||||
'scala' => 'Scala',
|
||||
'scheme' => 'Scheme',
|
||||
'scilab' => 'SciLab',
|
||||
'scl' => 'SCL',
|
||||
'sdlbasic' => 'sdlBasic',
|
||||
'smalltalk' => 'Smalltalk',
|
||||
'smarty' => 'Smarty template',
|
||||
'spark' => 'SPARK',
|
||||
'sparql' => 'SPARQL',
|
||||
'sql' => 'SQL',
|
||||
'standardml' => 'StandardML',
|
||||
'stonescript' => 'StoneScript',
|
||||
'systemverilog' => 'SystemVerilog IEEE 1800-2009(draft8)',
|
||||
'tcl' => 'TCL/iTCL',
|
||||
'teraterm' => 'Tera Term Macro',
|
||||
'text' => 'Plain Text',
|
||||
'thinbasic' => 'thinBasic',
|
||||
'tsql' => 'T-SQL',
|
||||
'typoscript' => 'TypoScript',
|
||||
'unicon' => 'Unicon',
|
||||
'uscript' => 'UnrealScript',
|
||||
'upc' => 'UPC',
|
||||
'urbi' => 'Urbi',
|
||||
'vala' => 'Vala',
|
||||
'vb' => 'Visual Basic',
|
||||
'vbnet' => 'VB.NET',
|
||||
'vbscript' => 'VBScript',
|
||||
'vedit' => 'Vedit macro language',
|
||||
'verilog' => 'Verilog',
|
||||
'vhdl' => 'VHDL',
|
||||
'vim' => 'Vim scripting',
|
||||
'visualfoxpro' => 'Visual FoxPro',
|
||||
'visualprolog' => 'Visual Prolog',
|
||||
'whitespace' => 'Whitespace',
|
||||
'whois' => 'Whois response (RPSL format)',
|
||||
'winbatch' => 'WinBatch',
|
||||
'xbasic' => 'XBasic',
|
||||
'xml' => 'XML',
|
||||
'xorg_conf' => 'xorg.conf',
|
||||
'xpp' => 'Axapta/Dynamics Ax X++',
|
||||
'yaml' => 'YAML',
|
||||
'z80' => 'ZiLOG Z80 Assembler',
|
||||
'zxbasic' => 'ZXBasic',
|
||||
);
|
||||
|
@ -1,4 +1,7 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------------
|
||||
| Hooks
|
||||
@ -6,15 +9,9 @@
|
||||
| This file lets you define "hooks" to extend CI without hacking the core
|
||||
| files. Please see the user guide for info:
|
||||
|
|
||||
| http://codeigniter.com/user_guide/general/hooks.html
|
||||
| http://codeigniter.com/user_guide/general/hooks.html
|
||||
|
|
||||
*/
|
||||
|
||||
$hook['pre_controller'][] = array(
|
||||
'function' => 'pick_language',
|
||||
'filename' => 'pick_language.php',
|
||||
'filepath' => 'hooks'
|
||||
);
|
||||
*/
|
||||
|
||||
/* End of file hooks.php */
|
||||
/* Location: ./application/config/hooks.php */
|
||||
|
@ -1,41 +1,38 @@
|
||||
<?php defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Enable/Disable Migrations
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Migrations are disabled by default but should be enabled
|
||||
| whenever you intend to do a schema migration.
|
||||
|
|
||||
*/
|
||||
$config['migration_enabled'] = FALSE;
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Migrations version
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This is used to set migration version that the file system should be on.
|
||||
| If you run $this->migration->latest() 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/';
|
||||
|
||||
|
||||
/* End of file migration.php */
|
||||
/* Location: ./application/config/migration.php */
|
||||
<?php defined('BASEPATH') or exit('No direct script access allowed');
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Enable/Disable Migrations
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Migrations are disabled by default but should be enabled
|
||||
| whenever you intend to do a schema migration.
|
||||
|
|
||||
*/
|
||||
$config['migration_enabled'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Migrations version
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This is used to set migration version that the file system should be on.
|
||||
| If you run $this->migration->latest() 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/';
|
||||
|
||||
/* End of file migration.php */
|
||||
/* Location: ./application/config/migration.php */
|
||||
|
@ -1,5 +1,4 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
<?php defined('BASEPATH') or exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
@ -8,177 +7,177 @@ defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
| 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',
|
||||
'7z' => array('application/x-7z-compressed', 'application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'),
|
||||
'7zip' => array('application/x-7z-compressed', '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'),
|
||||
'odc' => 'application/vnd.oasis.opendocument.chart',
|
||||
'otc' => 'application/vnd.oasis.opendocument.chart-template',
|
||||
'odf' => 'application/vnd.oasis.opendocument.formula',
|
||||
'otf' => 'application/vnd.oasis.opendocument.formula-template',
|
||||
'odg' => 'application/vnd.oasis.opendocument.graphics',
|
||||
'otg' => 'application/vnd.oasis.opendocument.graphics-template',
|
||||
'odi' => 'application/vnd.oasis.opendocument.image',
|
||||
'oti' => 'application/vnd.oasis.opendocument.image-template',
|
||||
'odp' => 'application/vnd.oasis.opendocument.presentation',
|
||||
'otp' => 'application/vnd.oasis.opendocument.presentation-template',
|
||||
'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
|
||||
'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template',
|
||||
'odt' => 'application/vnd.oasis.opendocument.text',
|
||||
'odm' => 'application/vnd.oasis.opendocument.text-master',
|
||||
'ott' => 'application/vnd.oasis.opendocument.text-template',
|
||||
'oth' => 'application/vnd.oasis.opendocument.text-web'
|
||||
'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',
|
||||
'7z' => array('application/x-7z-compressed', 'application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'),
|
||||
'7zip' => array('application/x-7z-compressed', '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'),
|
||||
'odc' => 'application/vnd.oasis.opendocument.chart',
|
||||
'otc' => 'application/vnd.oasis.opendocument.chart-template',
|
||||
'odf' => 'application/vnd.oasis.opendocument.formula',
|
||||
'otf' => 'application/vnd.oasis.opendocument.formula-template',
|
||||
'odg' => 'application/vnd.oasis.opendocument.graphics',
|
||||
'otg' => 'application/vnd.oasis.opendocument.graphics-template',
|
||||
'odi' => 'application/vnd.oasis.opendocument.image',
|
||||
'oti' => 'application/vnd.oasis.opendocument.image-template',
|
||||
'odp' => 'application/vnd.oasis.opendocument.presentation',
|
||||
'otp' => 'application/vnd.oasis.opendocument.presentation-template',
|
||||
'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
|
||||
'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template',
|
||||
'odt' => 'application/vnd.oasis.opendocument.text',
|
||||
'odm' => 'application/vnd.oasis.opendocument.text-master',
|
||||
'ott' => 'application/vnd.oasis.opendocument.text-template',
|
||||
'oth' => 'application/vnd.oasis.opendocument.text-web',
|
||||
);
|
||||
|
@ -1,4 +1,7 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------------
|
||||
| Profiler Sections
|
||||
@ -7,11 +10,9 @@
|
||||
| data are displayed when the Profiler is enabled.
|
||||
| Please see the user guide for info:
|
||||
|
|
||||
| http://codeigniter.com/user_guide/general/profiling.html
|
||||
| http://codeigniter.com/user_guide/general/profiling.html
|
||||
|
|
||||
*/
|
||||
|
||||
|
||||
*/
|
||||
|
||||
/* End of file profiler.php */
|
||||
/* Location: ./application/config/profiler.php */
|
||||
/* Location: ./application/config/profiler.php */
|
||||
|
@ -1,4 +1,7 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------------
|
||||
| URI ROUTING
|
||||
@ -9,7 +12,7 @@
|
||||
| and its corresponding controller class/method. The segments in a
|
||||
| URL normally follow this pattern:
|
||||
|
|
||||
| example.com/class/method/id/
|
||||
| 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
|
||||
@ -17,7 +20,7 @@
|
||||
|
|
||||
| Please see the user guide for complete details:
|
||||
|
|
||||
| http://codeigniter.com/user_guide/general/routing.html
|
||||
| http://codeigniter.com/user_guide/general/routing.html
|
||||
|
|
||||
| -------------------------------------------------------------------------
|
||||
| RESERVED ROUTES
|
||||
@ -25,18 +28,18 @@
|
||||
|
|
||||
| There area two reserved routes:
|
||||
|
|
||||
| $route['default_controller'] = 'welcome';
|
||||
| $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';
|
||||
| $route['404_override'] = 'errors/page_missing';
|
||||
|
|
||||
| This route will tell the Router what URI segments to use if those provided
|
||||
| in the URL cannot be matched to a valid route.
|
||||
|
|
||||
*/
|
||||
*/
|
||||
|
||||
$route['default_controller'] = "main";
|
||||
$route['scaffolding_trigger'] = "";
|
||||
|
@ -1,4 +1,7 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| SMILEYS
|
||||
@ -10,57 +13,57 @@
|
||||
| Please see user guide for more info:
|
||||
| http://codeigniter.com/user_guide/helpers/smiley_helper.html
|
||||
|
|
||||
*/
|
||||
*/
|
||||
|
||||
$smileys = array(
|
||||
|
||||
// smiley image name width height alt
|
||||
// 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', 'excaim'),
|
||||
':question:' => array('question.gif', '19', '19', 'question') // no comma after last item
|
||||
':-)' => 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', 'excaim'),
|
||||
':question:' => array('question.gif', '19', '19', 'question'), // no comma after last item
|
||||
|
||||
);
|
||||
);
|
||||
|
||||
/* End of file smileys.php */
|
||||
/* Location: ./application/config/smileys.php */
|
||||
/* Location: ./application/config/smileys.php */
|
||||
|
@ -1,11 +1,13 @@
|
||||
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
/**
|
||||
* Site Name
|
||||
*
|
||||
* The name of your site
|
||||
*
|
||||
*/
|
||||
*/
|
||||
$config['site_name'] = 'Stikked';
|
||||
|
||||
/**
|
||||
@ -13,7 +15,7 @@ $config['site_name'] = 'Stikked';
|
||||
*
|
||||
* Set the base URL of Stikked. WITH trailing slash!
|
||||
*
|
||||
*/
|
||||
*/
|
||||
$config['base_url'] = 'https://yourpastebin.com/';
|
||||
|
||||
/**
|
||||
@ -22,7 +24,7 @@ $config['base_url'] = 'https://yourpastebin.com/';
|
||||
* Credentials for your database
|
||||
* The database structure will be created automatically
|
||||
*
|
||||
*/
|
||||
*/
|
||||
$config['db_hostname'] = '127.0.0.1';
|
||||
$config['db_database'] = 'stikked';
|
||||
$config['db_username'] = 'stikked';
|
||||
@ -39,7 +41,7 @@ $config['db_password'] = 'stikked';
|
||||
* Use underscore as suffix to easily see the tables.
|
||||
* example: $config['db_prefix'] = 'stikked_';
|
||||
* use $config['db_prefix'] = ''; if you don't want to use table prefix.
|
||||
*/
|
||||
*/
|
||||
$config['db_prefix'] = '';
|
||||
|
||||
/**
|
||||
@ -49,7 +51,7 @@ $config['db_prefix'] = '';
|
||||
* Folder name in htdocs/themes/
|
||||
* Currently: default, bootstrap, gabdark, gabdark3, geocities, snowkat, stikkedizr, cleanwhite, i386
|
||||
*
|
||||
*/
|
||||
*/
|
||||
$config['theme'] = 'default';
|
||||
|
||||
/**
|
||||
@ -57,7 +59,7 @@ $config['theme'] = 'default';
|
||||
*
|
||||
* Whether or not to display the QR code
|
||||
*
|
||||
*/
|
||||
*/
|
||||
$config['qr_enabled'] = true;
|
||||
|
||||
/**
|
||||
@ -70,7 +72,7 @@ $config['qr_enabled'] = true;
|
||||
* CodeMirror: ~300kb JS
|
||||
* ACE: >800kb JS
|
||||
*
|
||||
*/
|
||||
*/
|
||||
$config['js_editor'] = ''; // codemirror, ace, ''
|
||||
|
||||
/**
|
||||
@ -80,7 +82,7 @@ $config['js_editor'] = ''; // codemirror, ace, ''
|
||||
* Translate Stikked to your own language, see htdocs/application/language files
|
||||
* Currently: english, german, swissgerman, spanish, norwegian, danish, portuguese, turkish, french, japanese, polish, russian, chinese-simplified, chinese-traditional, indonesia
|
||||
*
|
||||
*/
|
||||
*/
|
||||
$config['language'] = 'english';
|
||||
|
||||
/**
|
||||
@ -88,7 +90,7 @@ $config['language'] = 'english';
|
||||
*
|
||||
* htdocs/static/asset/ folder must be writeable
|
||||
*
|
||||
*/
|
||||
*/
|
||||
$config['combine_assets'] = false;
|
||||
|
||||
/**
|
||||
@ -98,7 +100,7 @@ $config['combine_assets'] = false;
|
||||
* Format: http://php.net/manual/en/function.strtotime.php
|
||||
* Examples: '+10 seconds', '+1 year', '-1 week'
|
||||
*
|
||||
*/
|
||||
*/
|
||||
$config['content_expiration'] = '-1 week';
|
||||
|
||||
/**
|
||||
@ -155,11 +157,10 @@ $config['cron_key'] = '';
|
||||
* polr_url: Your own instance of polr URL-shortener (Download: https://github.com/cydrobolt/polr)
|
||||
* polr_api: Your polr api key
|
||||
*
|
||||
**/
|
||||
**/
|
||||
$config['url_shortening_use'] = 'off';
|
||||
$config['random_url_engines'] = 'googl,bitly'; // Used only in random mode, read comment above for more info
|
||||
|
||||
|
||||
// Yourls
|
||||
$config['yourls_url'] = '';
|
||||
$config['yourls_signature'] = '';
|
||||
@ -178,13 +179,12 @@ $config['bitly_url_api'] = '';
|
||||
$config['polr_url'] = '';
|
||||
$config['polr_api'] = '';
|
||||
|
||||
|
||||
/**
|
||||
* Credentials for the backup URL
|
||||
*
|
||||
* Basic auth user & pass for the backup URL, accessible via http://yoursite.com/backup
|
||||
*
|
||||
**/
|
||||
**/
|
||||
$config['backup_user'] = '';
|
||||
$config['backup_pass'] = '';
|
||||
|
||||
@ -193,7 +193,7 @@ $config['backup_pass'] = '';
|
||||
*
|
||||
* Number of pastes per page, on the recent pastes listings.
|
||||
*
|
||||
**/
|
||||
**/
|
||||
$config['per_page'] = 15;
|
||||
|
||||
/**
|
||||
@ -202,7 +202,7 @@ $config['per_page'] = 15;
|
||||
* Require a key to interact with the API.
|
||||
* Append to all API requests: ?apikey=[yourkey]
|
||||
*
|
||||
**/
|
||||
**/
|
||||
$config['apikey'] = '';
|
||||
|
||||
/**
|
||||
@ -215,7 +215,7 @@ $config['apikey'] = '';
|
||||
* This is useful to maintain a restrictive blocklist
|
||||
* for spammers and bypass it using the apikey.
|
||||
*
|
||||
**/
|
||||
**/
|
||||
$config['soft_api'] = false;
|
||||
|
||||
/**
|
||||
@ -230,7 +230,7 @@ $config['soft_api'] = false;
|
||||
* disable_shorturl: "Create Shorturl" option will be disabled
|
||||
* disallow_search_engines: displays a robots.txt that forbids indexing
|
||||
*
|
||||
**/
|
||||
**/
|
||||
$config['private_only'] = false;
|
||||
$config['enable_captcha'] = true;
|
||||
$config['recaptcha_publickey'] = '';
|
||||
@ -257,7 +257,7 @@ $config['spamadmin_pass'] = '';
|
||||
* 40320 (1 month)
|
||||
* 483840 (1 year)
|
||||
* 0 (keep forever)
|
||||
**/
|
||||
**/
|
||||
$config['default_expiration'] = 0;
|
||||
|
||||
/**
|
||||
@ -265,7 +265,7 @@ $config['default_expiration'] = 0;
|
||||
*
|
||||
* Preselected language. See application/config/geshi_languages.php for valid values (array keys)
|
||||
*
|
||||
**/
|
||||
**/
|
||||
$config['default_language'] = 'text';
|
||||
|
||||
/**
|
||||
@ -276,7 +276,7 @@ $config['default_language'] = 'text';
|
||||
* Set to random for a random paste to be generated
|
||||
* NOTE: if changed only pastes from then on will be updated.
|
||||
*
|
||||
**/
|
||||
**/
|
||||
$config['unknown_poster'] = 'random';
|
||||
|
||||
/**
|
||||
@ -285,7 +285,7 @@ $config['unknown_poster'] = 'random';
|
||||
* What name is to be set for untitled pastes.
|
||||
* DO NOT SET BLANK
|
||||
* NOTE: if changed only pastes from then on will be updated.
|
||||
**/
|
||||
**/
|
||||
$config['unknown_title'] = 'Untitled';
|
||||
|
||||
/**
|
||||
@ -294,7 +294,7 @@ $config['unknown_title'] = 'Untitled';
|
||||
* Weather to require LDAP authenticaiton or not.
|
||||
* Set to either 'true' to require authentication or 'false' not to.
|
||||
* NOTE: if changed, set LDAP settings in auth_ldap.php
|
||||
**/
|
||||
**/
|
||||
$config['require_auth'] = false;
|
||||
|
||||
/**
|
||||
@ -304,7 +304,7 @@ $config['require_auth'] = false;
|
||||
* Variable $id: the paste_id
|
||||
* Example: 'http://example.com/$id'
|
||||
*
|
||||
**/
|
||||
**/
|
||||
$config['displayurl_override'] = '';
|
||||
|
||||
/**
|
||||
@ -313,36 +313,36 @@ $config['displayurl_override'] = '';
|
||||
* Words used for when unknown_poster is set to random
|
||||
*
|
||||
*
|
||||
**/
|
||||
**/
|
||||
$config['nouns'] = array('Hornbill', 'Elephant', 'Bison', 'Lion', 'Camel', 'Sheep',
|
||||
'Monkey', 'Prairie Dog', 'Plover', 'Tapir', 'Capybara', 'Cheetah', 'Flamingo', 'Peccary', 'Eider', 'Porcupine', 'Pelican', 'Dove', 'Crane', 'Tortoise', 'Agouti',
|
||||
'Tamarin', 'Pheasant', 'Owl', 'Gibbon', 'Goose', 'Baboon', 'Hamerkop', 'Zebra',
|
||||
'Macaw', 'Gibbon', 'Madrill', 'Wolf', 'Stork', 'Armadillo', 'Ostrich', 'Marmoset',
|
||||
'Lizard', 'Panda', 'Giraffe', 'Cassowary', 'Kangaroo', 'Gorilla', 'Pheasant',
|
||||
'Finch', 'Duck', 'Matamata', 'Teal', 'Macaque', 'Goat', 'Lechwe', 'Ibis', 'Parrot',
|
||||
'Parakeet', 'Bongo', 'Pudu', 'Echidna', 'Lemur', 'Bat', 'Curlew', 'Terrapin',
|
||||
'Peafowl', 'Duck', 'Owl', 'Parakeet', 'Meerkat', 'Tern', 'Wigeon', 'Pintail',
|
||||
'Meerkat', 'Motmot', 'Motmot', 'Shama', 'Dormouse', 'Horse', 'Rhinoceros', 'Sloth',
|
||||
'Mousedeer', 'Treeshrew', 'Bushbaby', 'Guinea Pig', 'Agouti', 'Water Vole', 'Hog',
|
||||
'Pig', 'Anoa', 'Octupus', 'Butterfly', 'Cat', 'Kitten', 'Coyote', 'Crocodile',
|
||||
'Cockroach', 'Crow', 'Bird', 'Dolphin', 'Earthworm', 'Frog', 'Hamster', 'Hedgehog',
|
||||
'Hog', 'Human', 'Hummingbird', 'Iguana', 'Leech', 'Leopard', ' Marten',
|
||||
'Mockingbird', 'Mockingjay', 'Mosquito', 'Moth', 'Partdridge', 'Bee', 'Penguin');
|
||||
'Monkey', 'Prairie Dog', 'Plover', 'Tapir', 'Capybara', 'Cheetah', 'Flamingo', 'Peccary', 'Eider', 'Porcupine', 'Pelican', 'Dove', 'Crane', 'Tortoise', 'Agouti',
|
||||
'Tamarin', 'Pheasant', 'Owl', 'Gibbon', 'Goose', 'Baboon', 'Hamerkop', 'Zebra',
|
||||
'Macaw', 'Gibbon', 'Madrill', 'Wolf', 'Stork', 'Armadillo', 'Ostrich', 'Marmoset',
|
||||
'Lizard', 'Panda', 'Giraffe', 'Cassowary', 'Kangaroo', 'Gorilla', 'Pheasant',
|
||||
'Finch', 'Duck', 'Matamata', 'Teal', 'Macaque', 'Goat', 'Lechwe', 'Ibis', 'Parrot',
|
||||
'Parakeet', 'Bongo', 'Pudu', 'Echidna', 'Lemur', 'Bat', 'Curlew', 'Terrapin',
|
||||
'Peafowl', 'Duck', 'Owl', 'Parakeet', 'Meerkat', 'Tern', 'Wigeon', 'Pintail',
|
||||
'Meerkat', 'Motmot', 'Motmot', 'Shama', 'Dormouse', 'Horse', 'Rhinoceros', 'Sloth',
|
||||
'Mousedeer', 'Treeshrew', 'Bushbaby', 'Guinea Pig', 'Agouti', 'Water Vole', 'Hog',
|
||||
'Pig', 'Anoa', 'Octupus', 'Butterfly', 'Cat', 'Kitten', 'Coyote', 'Crocodile',
|
||||
'Cockroach', 'Crow', 'Bird', 'Dolphin', 'Earthworm', 'Frog', 'Hamster', 'Hedgehog',
|
||||
'Hog', 'Human', 'Hummingbird', 'Iguana', 'Leech', 'Leopard', ' Marten',
|
||||
'Mockingbird', 'Mockingjay', 'Mosquito', 'Moth', 'Partdridge', 'Bee', 'Penguin');
|
||||
|
||||
$config['adjectives'] = array('Ample', 'Mature', 'Bulky', 'Burly', 'Capacious',
|
||||
'Colossal', 'Commodious', 'Thundering', 'Mammoth', 'Mungo', 'Voluminous',
|
||||
'Walloping', 'Tiny', 'Baby', 'Bitty', 'Diminutive', 'Little', 'Paltry', 'Scanty',
|
||||
'Trivial', 'Scribby', 'Blush', 'Tinct', 'Colorant', 'Aqua', 'Beige', 'Bistre',
|
||||
'Buff', 'Bistre', 'Chartreuse', 'Chocolate', 'Cobalt', 'Coral', 'Cream', 'Crimson',
|
||||
'Denim', 'Emerald', 'Gray', 'Gamboge', 'Ivory', 'Mustard', 'Silly', 'Perl',
|
||||
'Whipped', 'Violet', 'Harmless', 'Gentle', 'Innocent', 'Reliable', 'Unreliable',
|
||||
'Soft', 'Toxic', 'Anorexic', 'Beefy', 'Sexy', 'Morose', 'Rude', 'Ungracious',
|
||||
'Abrupt', 'Gracious', 'Queen', 'Cute', 'Edgy', 'Insensitive', 'Round', 'Sharp',
|
||||
'Gruff', 'Subtle', 'Crippled', 'Eratic', 'Social', 'Jittery', 'Sole', 'Unique',
|
||||
'Botched', 'Tacky', 'Sludgy', 'Stained', 'Wet', 'Soiled', 'Big', 'Small', 'Sloppy',
|
||||
'Smelly', 'Funky', 'Putrid', 'Melodic', 'Corrupt', 'Lousy', 'Fiery', 'Red',
|
||||
'Sweet', 'Hot', 'Scorching', 'Sweltering', 'Torrid', 'Obese', 'Speedy', 'Flying',
|
||||
'Idiotic', 'Chunky', 'Forensic');
|
||||
'Colossal', 'Commodious', 'Thundering', 'Mammoth', 'Mungo', 'Voluminous',
|
||||
'Walloping', 'Tiny', 'Baby', 'Bitty', 'Diminutive', 'Little', 'Paltry', 'Scanty',
|
||||
'Trivial', 'Scribby', 'Blush', 'Tinct', 'Colorant', 'Aqua', 'Beige', 'Bistre',
|
||||
'Buff', 'Bistre', 'Chartreuse', 'Chocolate', 'Cobalt', 'Coral', 'Cream', 'Crimson',
|
||||
'Denim', 'Emerald', 'Gray', 'Gamboge', 'Ivory', 'Mustard', 'Silly', 'Perl',
|
||||
'Whipped', 'Violet', 'Harmless', 'Gentle', 'Innocent', 'Reliable', 'Unreliable',
|
||||
'Soft', 'Toxic', 'Anorexic', 'Beefy', 'Sexy', 'Morose', 'Rude', 'Ungracious',
|
||||
'Abrupt', 'Gracious', 'Queen', 'Cute', 'Edgy', 'Insensitive', 'Round', 'Sharp',
|
||||
'Gruff', 'Subtle', 'Crippled', 'Eratic', 'Social', 'Jittery', 'Sole', 'Unique',
|
||||
'Botched', 'Tacky', 'Sludgy', 'Stained', 'Wet', 'Soiled', 'Big', 'Small', 'Sloppy',
|
||||
'Smelly', 'Funky', 'Putrid', 'Melodic', 'Corrupt', 'Lousy', 'Fiery', 'Red',
|
||||
'Sweet', 'Hot', 'Scorching', 'Sweltering', 'Torrid', 'Obese', 'Speedy', 'Flying',
|
||||
'Idiotic', 'Chunky', 'Forensic');
|
||||
|
||||
/**
|
||||
*
|
||||
@ -350,9 +350,9 @@ $config['adjectives'] = array('Ample', 'Mature', 'Bulky', 'Burly', 'Capacious',
|
||||
* Words used for expiring pastes
|
||||
*
|
||||
*
|
||||
**/
|
||||
**/
|
||||
$config['expires'] = array('expire', 'perish', 'go to its last resting place',
|
||||
'go to meet its maker', 'cross the great divide', 'slip away', 'give up the ghost',
|
||||
'kick the bucket', 'croak', 'bite the big one', 'check out', 'buy the farm',
|
||||
'join the choir invisible', 'shuffle off the mortal coil', 'hop the perch',
|
||||
'run down the curtain', 'die', 'self destruct', 'explode');
|
||||
'go to meet its maker', 'cross the great divide', 'slip away', 'give up the ghost',
|
||||
'kick the bucket', 'croak', 'bite the big one', 'check out', 'buy the farm',
|
||||
'join the choir invisible', 'shuffle off the mortal coil', 'hop the perch',
|
||||
'run down the curtain', 'die', 'self destruct', 'explode');
|
||||
|
@ -1,4 +1,7 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| USER AGENT TYPES
|
||||
@ -8,171 +11,170 @@
|
||||
| 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 6.0' => 'Windows Longhorn',
|
||||
'windows nt 5.2' => 'Windows 2003',
|
||||
'windows nt 5.0' => 'Windows 2000',
|
||||
'windows nt 5.1' => 'Windows XP',
|
||||
'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' => 'Unknown Windows OS',
|
||||
'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'
|
||||
);
|
||||
*/
|
||||
|
||||
$platforms = array(
|
||||
'windows nt 6.0' => 'Windows Longhorn',
|
||||
'windows nt 5.2' => 'Windows 2003',
|
||||
'windows nt 5.0' => 'Windows 2000',
|
||||
'windows nt 5.1' => 'Windows XP',
|
||||
'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' => 'Unknown Windows OS',
|
||||
'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',
|
||||
);
|
||||
|
||||
// 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(
|
||||
'Flock' => 'Flock',
|
||||
'Chrome' => 'Chrome',
|
||||
'Opera' => 'Opera',
|
||||
'MSIE' => 'Internet Explorer',
|
||||
'Internet Explorer' => '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'
|
||||
);
|
||||
'Flock' => 'Flock',
|
||||
'Chrome' => 'Chrome',
|
||||
'Opera' => 'Opera',
|
||||
'MSIE' => 'Internet Explorer',
|
||||
'Internet Explorer' => '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',
|
||||
);
|
||||
|
||||
$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'
|
||||
// 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",
|
||||
'hiptop' => "Danger Hiptop",
|
||||
'nec-' => "NEC",
|
||||
'panasonic' => "Panasonic",
|
||||
'philips' => "Philips",
|
||||
'sagem' => "Sagem",
|
||||
'sanyo' => "Sanyo",
|
||||
'spv' => "SPV",
|
||||
'zte' => "ZTE",
|
||||
'sendo' => "Sendo",
|
||||
// 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",
|
||||
'hiptop' => "Danger Hiptop",
|
||||
'nec-' => "NEC",
|
||||
'panasonic' => "Panasonic",
|
||||
'philips' => "Philips",
|
||||
'sagem' => "Sagem",
|
||||
'sanyo' => "Sanyo",
|
||||
'spv' => "SPV",
|
||||
'zte' => "ZTE",
|
||||
'sendo' => "Sendo",
|
||||
|
||||
// Operating Systems
|
||||
'symbian' => "Symbian",
|
||||
'SymbianOS' => "SymbianOS",
|
||||
'elaine' => "Palm",
|
||||
'palm' => "Palm",
|
||||
'series60' => "Symbian S60",
|
||||
'windows ce' => "Windows CE",
|
||||
// Operating Systems
|
||||
'symbian' => "Symbian",
|
||||
'SymbianOS' => "SymbianOS",
|
||||
'elaine' => "Palm",
|
||||
'palm' => "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",
|
||||
// Browsers
|
||||
'obigo' => "Obigo",
|
||||
'netfront' => "Netfront Browser",
|
||||
'openwave' => "Openwave Browser",
|
||||
'mobilexplorer' => "Mobile Explorer",
|
||||
'operamini' => "Opera Mini",
|
||||
'opera mini' => "Opera Mini",
|
||||
|
||||
// Other
|
||||
'digital paths' => "Digital Paths",
|
||||
'avantgo' => "AvantGo",
|
||||
'xiino' => "Xiino",
|
||||
'novarra' => "Novarra Transcoder",
|
||||
'vodafone' => "Vodafone",
|
||||
'docomo' => "NTT DoCoMo",
|
||||
'o2' => "O2",
|
||||
// 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"
|
||||
);
|
||||
// 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',
|
||||
'slurp' => 'Inktomi Slurp',
|
||||
'yahoo' => 'Yahoo',
|
||||
'askjeeves' => 'AskJeeves',
|
||||
'fastcrawler' => 'FastCrawler',
|
||||
'infoseek' => 'InfoSeek Robot 1.0',
|
||||
'lycos' => 'Lycos'
|
||||
);
|
||||
'googlebot' => 'Googlebot',
|
||||
'msnbot' => 'MSNBot',
|
||||
'slurp' => 'Inktomi Slurp',
|
||||
'yahoo' => 'Yahoo',
|
||||
'askjeeves' => 'AskJeeves',
|
||||
'fastcrawler' => 'FastCrawler',
|
||||
'infoseek' => 'InfoSeek Robot 1.0',
|
||||
'lycos' => 'Lycos',
|
||||
);
|
||||
|
||||
/* End of file user_agents.php */
|
||||
/* Location: ./application/config/user_agents.php */
|
||||
/* Location: ./application/config/user_agents.php */
|
||||
|
@ -1,225 +1,185 @@
|
||||
<?php
|
||||
/**
|
||||
* Class and Function List:
|
||||
* Function list:
|
||||
* - __construct()
|
||||
* - index()
|
||||
* - create()
|
||||
* - paste()
|
||||
* - random()
|
||||
* - recent()
|
||||
* - trending()
|
||||
* - langs()
|
||||
* Classes list:
|
||||
* - Api extends Main
|
||||
*/
|
||||
include_once ('application/controllers/Main.php');
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
include_once 'application/controllers/Main.php';
|
||||
|
||||
class Api extends Main
|
||||
{
|
||||
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if (config_item('disable_api'))
|
||||
{
|
||||
die("The API has been disabled\n");
|
||||
}
|
||||
|
||||
// if ldap is configured and no api token is configured, fail the request
|
||||
if ((config_item('require_auth') == true) && (config_item('apikey') == ''))
|
||||
{
|
||||
die("API key not configured");
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if (config_item('disable_api')) {
|
||||
die("The API has been disabled\n");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function index()
|
||||
{
|
||||
$languages = $this->languages->get_languages();
|
||||
$languages = array_keys($languages);
|
||||
$languages = implode(', ', $languages);
|
||||
$data['languages'] = $languages;
|
||||
$this->load->view('api_help', $data);
|
||||
}
|
||||
|
||||
function create()
|
||||
{
|
||||
|
||||
if (config_item('apikey') != $this->input->get('apikey') && config_item('soft_api') == false)
|
||||
{
|
||||
die("Invalid API key\n");
|
||||
}
|
||||
$this->load->model('pastes');
|
||||
$this->load->library('form_validation'); //needed by parent class
|
||||
// if ldap is configured and no api token is configured, fail the request
|
||||
if ((config_item('require_auth') == true) && (config_item('apikey') == '')) {
|
||||
die("API key not configured");
|
||||
}
|
||||
|
||||
|
||||
if (!$this->input->post('text'))
|
||||
{
|
||||
$data['msg'] = 'Error: Missing paste text';
|
||||
$this->load->view('view/api', $data);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (!$this->input->post('lang'))
|
||||
{
|
||||
$_POST['lang'] = 'text';
|
||||
}
|
||||
$_POST['code'] = $this->input->post('text');
|
||||
|
||||
if ($this->config->item('private_only'))
|
||||
{
|
||||
$_POST['private'] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
//validations
|
||||
|
||||
if (!$this->_valid_ip())
|
||||
{
|
||||
die("You are not allowed to paste\n");
|
||||
}
|
||||
|
||||
if (config_item('soft_api') == true && (config_item('apikey') == $this->input->get('apikey')))
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$languages = $this->languages->get_languages();
|
||||
$languages = array_keys($languages);
|
||||
$languages = implode(', ', $languages);
|
||||
$data['languages'] = $languages;
|
||||
$this->load->view('api_help', $data);
|
||||
}
|
||||
|
||||
//pass
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (!$this->_blockwords_check())
|
||||
{
|
||||
die("Your paste contains blocked words\n");
|
||||
}
|
||||
}
|
||||
public function create()
|
||||
{
|
||||
|
||||
if (!$this->input->post('expire'))
|
||||
{
|
||||
$_POST['expire'] = config_item('default_expiration');
|
||||
}
|
||||
if (config_item('apikey') != $this->input->get('apikey') && config_item('soft_api') == false) {
|
||||
die("Invalid API key\n");
|
||||
}
|
||||
$this->load->model('pastes');
|
||||
$this->load->library('form_validation'); //needed by parent class
|
||||
|
||||
//create paste
|
||||
$paste_url = $this->pastes->createPaste();
|
||||
$data['msg'] = base_url() . $paste_url;
|
||||
$this->load->view('view/api', $data);
|
||||
}
|
||||
}
|
||||
|
||||
function paste()
|
||||
{
|
||||
|
||||
if (config_item('apikey') != $this->input->get('apikey'))
|
||||
{
|
||||
die("Invalid API key\n");
|
||||
}
|
||||
|
||||
if (config_item('private_only'))
|
||||
{
|
||||
show_404();
|
||||
}
|
||||
$this->load->model('pastes');
|
||||
$check = $this->pastes->checkPaste(3);
|
||||
|
||||
if ($check)
|
||||
{
|
||||
$data = $this->pastes->getPaste(3);
|
||||
}
|
||||
else
|
||||
{
|
||||
$data = array(
|
||||
'message' => 'Not found',
|
||||
);
|
||||
}
|
||||
echo json_encode($data);
|
||||
}
|
||||
|
||||
function random()
|
||||
{
|
||||
|
||||
if (config_item('apikey') != $this->input->get('apikey'))
|
||||
{
|
||||
die("Invalid API key\n");
|
||||
}
|
||||
|
||||
if (config_item('private_only'))
|
||||
{
|
||||
show_404();
|
||||
}
|
||||
$this->load->model('pastes');
|
||||
$data = $this->pastes->random_paste();
|
||||
echo json_encode($data);
|
||||
}
|
||||
|
||||
function recent()
|
||||
{
|
||||
|
||||
if (config_item('apikey') != $this->input->get('apikey'))
|
||||
{
|
||||
die("Invalid API key\n");
|
||||
}
|
||||
|
||||
if (config_item('private_only'))
|
||||
{
|
||||
show_404();
|
||||
}
|
||||
$this->load->model('pastes');
|
||||
$pastes = $this->pastes->getLists('api/recent');
|
||||
$pastes = $pastes['pastes'];
|
||||
$data = array();
|
||||
foreach ($pastes as $paste)
|
||||
{
|
||||
$data[] = array(
|
||||
'pid' => $paste['pid'],
|
||||
'title' => $paste['title'],
|
||||
'name' => $paste['name'],
|
||||
'created' => $paste['created'],
|
||||
'lang' => $paste['lang'],
|
||||
);
|
||||
}
|
||||
echo json_encode($data);
|
||||
}
|
||||
|
||||
function trending()
|
||||
{
|
||||
|
||||
if (config_item('apikey') != $this->input->get('apikey'))
|
||||
{
|
||||
die("Invalid API key\n");
|
||||
}
|
||||
|
||||
if (config_item('private_only'))
|
||||
{
|
||||
show_404();
|
||||
}
|
||||
$this->load->model('pastes');
|
||||
$pastes = $this->pastes->getTrends('api/trending', 2);
|
||||
$pastes = $pastes['pastes'];
|
||||
$data = array();
|
||||
foreach ($pastes as $paste)
|
||||
{
|
||||
$data[] = array(
|
||||
'pid' => $paste['pid'],
|
||||
'title' => $paste['title'],
|
||||
'name' => $paste['name'],
|
||||
'created' => $paste['created'],
|
||||
'lang' => $paste['lang'],
|
||||
'hits' => $paste['hits'],
|
||||
);
|
||||
}
|
||||
echo json_encode($data);
|
||||
}
|
||||
|
||||
function langs()
|
||||
{
|
||||
if (config_item('apikey') != $this->input->get('apikey'))
|
||||
{
|
||||
die("Invalid API key\n");
|
||||
}
|
||||
|
||||
$languages = $this->languages->get_languages();
|
||||
echo json_encode($languages);
|
||||
}
|
||||
if (!$this->input->post('text')) {
|
||||
$data['msg'] = 'Error: Missing paste text';
|
||||
$this->load->view('view/api', $data);
|
||||
} else {
|
||||
|
||||
if (!$this->input->post('lang')) {
|
||||
$_POST['lang'] = 'text';
|
||||
}
|
||||
$_POST['code'] = $this->input->post('text');
|
||||
|
||||
if ($this->config->item('private_only')) {
|
||||
$_POST['private'] = 1;
|
||||
}
|
||||
|
||||
//validations
|
||||
|
||||
if (!$this->_valid_ip()) {
|
||||
die("You are not allowed to paste\n");
|
||||
}
|
||||
|
||||
if (config_item('soft_api') == true && (config_item('apikey') == $this->input->get('apikey'))) {
|
||||
|
||||
//pass
|
||||
|
||||
} else {
|
||||
|
||||
if (!$this->_blockwords_check()) {
|
||||
die("Your paste contains blocked words\n");
|
||||
}
|
||||
}
|
||||
|
||||
if (!$this->input->post('expire')) {
|
||||
$_POST['expire'] = config_item('default_expiration');
|
||||
}
|
||||
|
||||
//create paste
|
||||
$paste_url = $this->pastes->createPaste();
|
||||
$data['msg'] = base_url() . $paste_url;
|
||||
$this->load->view('view/api', $data);
|
||||
}
|
||||
}
|
||||
|
||||
public function paste()
|
||||
{
|
||||
|
||||
if (config_item('apikey') != $this->input->get('apikey')) {
|
||||
die("Invalid API key\n");
|
||||
}
|
||||
|
||||
if (config_item('private_only')) {
|
||||
show_404();
|
||||
}
|
||||
$this->load->model('pastes');
|
||||
$check = $this->pastes->checkPaste(3);
|
||||
|
||||
if ($check) {
|
||||
$data = $this->pastes->getPaste(3);
|
||||
} else {
|
||||
$data = array(
|
||||
'message' => 'Not found',
|
||||
);
|
||||
}
|
||||
echo json_encode($data);
|
||||
}
|
||||
|
||||
public function random()
|
||||
{
|
||||
|
||||
if (config_item('apikey') != $this->input->get('apikey')) {
|
||||
die("Invalid API key\n");
|
||||
}
|
||||
|
||||
if (config_item('private_only')) {
|
||||
show_404();
|
||||
}
|
||||
$this->load->model('pastes');
|
||||
$data = $this->pastes->random_paste();
|
||||
echo json_encode($data);
|
||||
}
|
||||
|
||||
public function recent()
|
||||
{
|
||||
|
||||
if (config_item('apikey') != $this->input->get('apikey')) {
|
||||
die("Invalid API key\n");
|
||||
}
|
||||
|
||||
if (config_item('private_only')) {
|
||||
show_404();
|
||||
}
|
||||
$this->load->model('pastes');
|
||||
$pastes = $this->pastes->getLists('api/recent');
|
||||
$pastes = $pastes['pastes'];
|
||||
$data = array();
|
||||
foreach ($pastes as $paste) {
|
||||
$data[] = array(
|
||||
'pid' => $paste['pid'],
|
||||
'title' => $paste['title'],
|
||||
'name' => $paste['name'],
|
||||
'created' => $paste['created'],
|
||||
'lang' => $paste['lang'],
|
||||
);
|
||||
}
|
||||
echo json_encode($data);
|
||||
}
|
||||
|
||||
public function trending()
|
||||
{
|
||||
|
||||
if (config_item('apikey') != $this->input->get('apikey')) {
|
||||
die("Invalid API key\n");
|
||||
}
|
||||
|
||||
if (config_item('private_only')) {
|
||||
show_404();
|
||||
}
|
||||
$this->load->model('pastes');
|
||||
$pastes = $this->pastes->getTrends('api/trending', 2);
|
||||
$pastes = $pastes['pastes'];
|
||||
$data = array();
|
||||
foreach ($pastes as $paste) {
|
||||
$data[] = array(
|
||||
'pid' => $paste['pid'],
|
||||
'title' => $paste['title'],
|
||||
'name' => $paste['name'],
|
||||
'created' => $paste['created'],
|
||||
'lang' => $paste['lang'],
|
||||
'hits' => $paste['hits'],
|
||||
);
|
||||
}
|
||||
echo json_encode($data);
|
||||
}
|
||||
|
||||
public function langs()
|
||||
{
|
||||
if (config_item('apikey') != $this->input->get('apikey')) {
|
||||
die("Invalid API key\n");
|
||||
}
|
||||
|
||||
$languages = $this->languages->get_languages();
|
||||
echo json_encode($languages);
|
||||
}
|
||||
}
|
||||
|
@ -1,35 +1,24 @@
|
||||
<?php
|
||||
/**
|
||||
* Class and Function List:
|
||||
* Function list:
|
||||
* - __construct()
|
||||
* - index()
|
||||
* - login()
|
||||
* - logout()
|
||||
* - alpha_dash_dot()
|
||||
* Classes list:
|
||||
* - Auth extends CI_Controller
|
||||
*/
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
/*
|
||||
* This file is part of Auth_Ldap.
|
||||
|
||||
Auth_Ldap is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
Auth_Ldap is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Auth_Ldap is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
Auth_Ldap is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Auth_Ldap. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Auth_Ldap. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* @author Greg Wojtak <gwojtak@techrockdo.com>
|
||||
* @copyright Copyright © 2010,2011 by Greg Wojtak <gwojtak@techrockdo.com>
|
||||
@ -40,87 +29,73 @@ if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class Auth extends CI_Controller
|
||||
{
|
||||
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->helper('form');
|
||||
$this->load->library('Form_validation');
|
||||
$this->load->library('auth_ldap');
|
||||
$this->load->helper('url');
|
||||
$this->load->library('table');
|
||||
}
|
||||
|
||||
function index()
|
||||
{
|
||||
$this->session->keep_flashdata('tried_to');
|
||||
$this->login();
|
||||
}
|
||||
|
||||
function login($errorMsg = NULL)
|
||||
{
|
||||
$this->session->keep_flashdata('tried_to');
|
||||
|
||||
if (!$this->auth_ldap->is_authenticated())
|
||||
{
|
||||
|
||||
// Set up rules for form validation
|
||||
$rules = $this->form_validation;
|
||||
$rules->set_rules('username', 'Username', 'required|callback_alpha_dash_dot');
|
||||
$rules->set_rules('password', 'Password', 'required');
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->helper('form');
|
||||
$this->load->library('Form_validation');
|
||||
$this->load->library('auth_ldap');
|
||||
$this->load->helper('url');
|
||||
$this->load->library('table');
|
||||
}
|
||||
|
||||
// Do the login...
|
||||
|
||||
if ($rules->run() && $this->auth_ldap->login($rules->set_value('username') , $rules->set_value('password')))
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$this->session->keep_flashdata('tried_to');
|
||||
$this->login();
|
||||
}
|
||||
|
||||
// Login WIN!
|
||||
|
||||
if ($this->session->flashdata('tried_to'))
|
||||
{
|
||||
redirect($this->session->flashdata('tried_to'));
|
||||
}
|
||||
else
|
||||
{
|
||||
redirect('/');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
public function login($errorMsg = null)
|
||||
{
|
||||
$this->session->keep_flashdata('tried_to');
|
||||
|
||||
// Login FAIL
|
||||
$this->session->set_flashdata('login_error', 'Incorrect username or password.');
|
||||
$this->load->view('auth/login_form');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!$this->auth_ldap->is_authenticated()) {
|
||||
|
||||
// Already logged in...
|
||||
redirect('/');
|
||||
}
|
||||
}
|
||||
|
||||
function logout()
|
||||
{
|
||||
|
||||
if ($this->session->userdata('logged_in'))
|
||||
{
|
||||
$data['name'] = $this->session->userdata('cn');
|
||||
$data['username'] = $this->session->userdata('username');
|
||||
$data['logged_in'] = TRUE;
|
||||
$this->auth_ldap->logout();
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['logged_in'] = FALSE;
|
||||
}
|
||||
redirect('/');
|
||||
}
|
||||
public
|
||||
function alpha_dash_dot($str)
|
||||
{
|
||||
return (!preg_match("/^([-a-z0-9_\-\.])+$/i", $str)) ? FALSE : TRUE;
|
||||
}
|
||||
// Set up rules for form validation
|
||||
$rules = $this->form_validation;
|
||||
$rules->set_rules('username', 'Username', 'required|callback_alpha_dash_dot');
|
||||
$rules->set_rules('password', 'Password', 'required');
|
||||
|
||||
// Do the login...
|
||||
|
||||
if ($rules->run() && $this->auth_ldap->login($rules->set_value('username'), $rules->set_value('password'))) {
|
||||
|
||||
// Login WIN!
|
||||
|
||||
if ($this->session->flashdata('tried_to')) {
|
||||
redirect($this->session->flashdata('tried_to'));
|
||||
} else {
|
||||
redirect('/');
|
||||
}
|
||||
} else {
|
||||
|
||||
// Login FAIL
|
||||
$this->session->set_flashdata('login_error', 'Incorrect username or password.');
|
||||
$this->load->view('auth/login_form');
|
||||
}
|
||||
} else {
|
||||
|
||||
// Already logged in...
|
||||
redirect('/');
|
||||
}
|
||||
}
|
||||
|
||||
public function logout()
|
||||
{
|
||||
|
||||
if ($this->session->userdata('logged_in')) {
|
||||
$data['name'] = $this->session->userdata('cn');
|
||||
$data['username'] = $this->session->userdata('username');
|
||||
$data['logged_in'] = true;
|
||||
$this->auth_ldap->logout();
|
||||
} else {
|
||||
$data['logged_in'] = false;
|
||||
}
|
||||
redirect('/');
|
||||
}
|
||||
public function alpha_dash_dot($str)
|
||||
{
|
||||
return (!preg_match("/^([-a-z0-9_\-\.])+$/i", $str)) ? false : true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -1,43 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
* Class and Function List:
|
||||
* Function list:
|
||||
* - __construct()
|
||||
* - index()
|
||||
* Classes list:
|
||||
* - Backup extends CI_Controller
|
||||
*/
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
class Backup extends CI_Controller
|
||||
{
|
||||
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
//protection
|
||||
$user = $this->config->item('backup_user');
|
||||
$pass = $this->config->item('backup_pass');
|
||||
|
||||
if ($user == '' || $pass == '' || !isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER'] != $user || $_SERVER['PHP_AUTH_PW'] != $pass)
|
||||
{
|
||||
header('WWW-Authenticate: Basic realm="Backup"');
|
||||
header('HTTP/1.0 401 Unauthorized');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
function index()
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
// Load the DB utility class
|
||||
$this->load->dbutil();
|
||||
//protection
|
||||
$user = $this->config->item('backup_user');
|
||||
$pass = $this->config->item('backup_pass');
|
||||
|
||||
// Backup your entire database and assign it to a variable
|
||||
$backup = & $this->dbutil->backup();
|
||||
if ($user == '' || $pass == '' || !isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER'] != $user || $_SERVER['PHP_AUTH_PW'] != $pass) {
|
||||
header('WWW-Authenticate: Basic realm="Backup"');
|
||||
header('HTTP/1.0 401 Unauthorized');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// Load the download helper and send the file to your desktop
|
||||
$this->load->helper('download');
|
||||
force_download('stikked.gz', $backup);
|
||||
}
|
||||
public function index()
|
||||
{
|
||||
|
||||
// Load the DB utility class
|
||||
$this->load->dbutil();
|
||||
|
||||
// Backup your entire database and assign it to a variable
|
||||
$backup = &$this->dbutil->backup();
|
||||
|
||||
// Load the download helper and send the file to your desktop
|
||||
$this->load->helper('download');
|
||||
force_download('stikked.gz', $backup);
|
||||
}
|
||||
}
|
||||
|
@ -1,34 +1,27 @@
|
||||
<?php
|
||||
/**
|
||||
* Class and Function List:
|
||||
* Function list:
|
||||
* - __construct()
|
||||
* - index()
|
||||
* - view()
|
||||
* Classes list:
|
||||
* - Iphone extends CI_Controller
|
||||
*/
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
class Iphone extends CI_Controller
|
||||
{
|
||||
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->model('languages');
|
||||
}
|
||||
|
||||
function index()
|
||||
{
|
||||
$this->load->model('pastes');
|
||||
$data = $this->pastes->getLists('iphone/');
|
||||
$this->load->view('iphone/recent', $data);
|
||||
}
|
||||
|
||||
function view()
|
||||
{
|
||||
$this->load->model('pastes');
|
||||
$data = $this->pastes->getPaste(3);
|
||||
$this->load->view('iphone/view', $data);
|
||||
}
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->model('languages');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$this->load->model('pastes');
|
||||
$data = $this->pastes->getLists('iphone/');
|
||||
$this->load->view('iphone/recent', $data);
|
||||
}
|
||||
|
||||
public function view()
|
||||
{
|
||||
$this->load->model('pastes');
|
||||
$data = $this->pastes->getPaste(3);
|
||||
$this->load->view('iphone/view', $data);
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,159 +1,139 @@
|
||||
<?php
|
||||
/**
|
||||
* Class and Function List:
|
||||
* Function list:
|
||||
* - __construct()
|
||||
* - index()
|
||||
* - spam_detail()
|
||||
* - blacklist()
|
||||
* - unblock_ip()
|
||||
* Classes list:
|
||||
* - Spamadmin extends CI_Controller
|
||||
*/
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
class Spamadmin extends CI_Controller
|
||||
{
|
||||
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
//protection
|
||||
$user = $this->config->item('spamadmin_user');
|
||||
$pass = $this->config->item('spamadmin_pass');
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
// FastCGI doesn't provide PHP_AUTH_USER and PHP_AUTH_PW, apparently?
|
||||
if (empty($_SERVER['PHP_AUTH_USER']) && empty($_SERVER['PHP_AUTH_PW'])) {
|
||||
if (!empty($_SERVER['HTTP_AUTHORIZATION'])) {
|
||||
list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
|
||||
}
|
||||
}
|
||||
//protection
|
||||
$user = $this->config->item('spamadmin_user');
|
||||
$pass = $this->config->item('spamadmin_pass');
|
||||
|
||||
// If they're not set, set them to blank. The null coalesce operator would be handy here, but
|
||||
// that's PHP 7.0 and higher...
|
||||
if (empty($_SERVER['PHP_AUTH_USER']))
|
||||
{
|
||||
$_SERVER['PHP_AUTH_USER'] = "";
|
||||
}
|
||||
if (empty($_SERVER['PHP_AUTH_PW']))
|
||||
{
|
||||
$_SERVER['PHP_AUTH_PW'] = "";
|
||||
}
|
||||
|
||||
if ($user === '' || $pass === '' || $_SERVER['PHP_AUTH_USER'] !== $user || $_SERVER['PHP_AUTH_PW'] !== $pass)
|
||||
{
|
||||
header('WWW-Authenticate: Basic realm="Spamadmin"');
|
||||
header('HTTP/1.0 401 Unauthorized');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
function index()
|
||||
{
|
||||
$this->load->model('pastes');
|
||||
$pastes_to_delete = $this->input->post('pastes_to_delete');
|
||||
|
||||
if ($pastes_to_delete)
|
||||
{
|
||||
foreach (explode(' ', $pastes_to_delete) as $pid)
|
||||
{
|
||||
$this->db->where('pid', $pid);
|
||||
$this->db->delete('pastes');
|
||||
}
|
||||
redirect(site_url('spamadmin/' . $this->uri->segment(2)));
|
||||
}
|
||||
// FastCGI doesn't provide PHP_AUTH_USER and PHP_AUTH_PW, apparently?
|
||||
if (empty($_SERVER['PHP_AUTH_USER']) && empty($_SERVER['PHP_AUTH_PW'])) {
|
||||
if (!empty($_SERVER['HTTP_AUTHORIZATION'])) {
|
||||
list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
|
||||
}
|
||||
}
|
||||
|
||||
//render view
|
||||
$data = $this->pastes->getSpamLists();
|
||||
$this->load->view('list_ips', $data);
|
||||
}
|
||||
|
||||
function spam_detail()
|
||||
{
|
||||
$this->load->model('pastes');
|
||||
$ip_address = $this->uri->segment(2);
|
||||
|
||||
if ($this->input->post('confirm_remove') && $ip_address != '')
|
||||
{
|
||||
$this->db->where('ip_address', $ip_address);
|
||||
$this->db->delete('pastes');
|
||||
$paste_count = $this->db->affected_rows();
|
||||
|
||||
if ($this->input->post('block_ip'))
|
||||
{
|
||||
$query = $this->db->get_where('blocked_ips', array(
|
||||
'ip_address' => $ip_address
|
||||
));
|
||||
|
||||
if ($query->num_rows() == 0)
|
||||
{
|
||||
$this->db->insert('blocked_ips', array(
|
||||
'ip_address' => $ip_address,
|
||||
'blocked_at' => time() ,
|
||||
'spam_attempts' => $paste_count,
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
// If they're not set, set them to blank. The null coalesce operator would be handy here, but
|
||||
// that's PHP 7.0 and higher...
|
||||
if (empty($_SERVER['PHP_AUTH_USER'])) {
|
||||
$_SERVER['PHP_AUTH_USER'] = "";
|
||||
}
|
||||
if (empty($_SERVER['PHP_AUTH_PW'])) {
|
||||
$_SERVER['PHP_AUTH_PW'] = "";
|
||||
}
|
||||
|
||||
//fill data
|
||||
$data = $this->pastes->getSpamLists('spamadmin/' . $ip_address, $seg = 3, $ip_address);
|
||||
$data['ip_address'] = $ip_address;
|
||||
$ip = explode('.', $ip_address);
|
||||
|
||||
if (count($ip) > 1)
|
||||
{
|
||||
$ip_firstpart = $ip[0] . '.' . $ip[1] . '.';
|
||||
$data['ip_range'] = $ip_firstpart . '*.*';
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($user === '' || $pass === '' || $_SERVER['PHP_AUTH_USER'] !== $user || $_SERVER['PHP_AUTH_PW'] !== $pass) {
|
||||
header('WWW-Authenticate: Basic realm="Spamadmin"');
|
||||
header('HTTP/1.0 401 Unauthorized');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// ipv6
|
||||
$ip = explode(':', $ip_address);
|
||||
$ip_firstpart = $ip[0] . ':' . $ip[1] . ':' . $ip[2] . ':' . $ip[3] . ':' . $ip[4] . ':' . $ip[5] . ':' . $ip[6];
|
||||
$data['ip_range'] = $ip_firstpart . ':*';
|
||||
}
|
||||
public function index()
|
||||
{
|
||||
$this->load->model('pastes');
|
||||
$pastes_to_delete = $this->input->post('pastes_to_delete');
|
||||
|
||||
//view
|
||||
$this->load->view('spam_detail', $data);
|
||||
}
|
||||
|
||||
function blacklist()
|
||||
{
|
||||
if ($pastes_to_delete) {
|
||||
foreach (explode(' ', $pastes_to_delete) as $pid) {
|
||||
$this->db->where('pid', $pid);
|
||||
$this->db->delete('pastes');
|
||||
}
|
||||
redirect(site_url('spamadmin/' . $this->uri->segment(2)));
|
||||
}
|
||||
|
||||
//pagination
|
||||
$amount = $this->config->item('per_page');
|
||||
$page = ($this->uri->segment(3) ? $this->uri->segment(3) : 0);
|
||||
//render view
|
||||
$data = $this->pastes->getSpamLists();
|
||||
$this->load->view('list_ips', $data);
|
||||
}
|
||||
|
||||
//get
|
||||
$this->db->select('ip_address, blocked_at, spam_attempts');
|
||||
$this->db->order_by('blocked_at desc, ip_address asc');
|
||||
$query = $this->db->get('blocked_ips', $amount, $page);
|
||||
$data['blocked_ips'] = $query->result_array();
|
||||
public function spam_detail()
|
||||
{
|
||||
$this->load->model('pastes');
|
||||
$ip_address = $this->uri->segment(2);
|
||||
|
||||
//pagination
|
||||
$config['base_url'] = site_url('spamadmin/blacklist');
|
||||
$query = $this->db->get('blocked_ips');
|
||||
$config['total_rows'] = $query->num_rows();
|
||||
$config['per_page'] = $amount;
|
||||
$config['num_links'] = 9;
|
||||
$config['full_tag_open'] = '<div class="pages">';
|
||||
$config['full_tag_close'] = '</div>';
|
||||
$config['uri_segment'] = 3;
|
||||
$this->load->library('pagination');
|
||||
$this->pagination->initialize($config);
|
||||
$data['pages'] = $this->pagination->create_links();
|
||||
if ($this->input->post('confirm_remove') && $ip_address != '') {
|
||||
$this->db->where('ip_address', $ip_address);
|
||||
$this->db->delete('pastes');
|
||||
$paste_count = $this->db->affected_rows();
|
||||
|
||||
//view
|
||||
$this->load->view('list_blocked_ips', $data);
|
||||
}
|
||||
|
||||
function unblock_ip()
|
||||
{
|
||||
$ip_address = $this->uri->segment(4);
|
||||
$this->db->where('ip_address', $ip_address);
|
||||
$this->db->delete('blocked_ips');
|
||||
redirect('spamadmin/blacklist');
|
||||
}
|
||||
if ($this->input->post('block_ip')) {
|
||||
$query = $this->db->get_where('blocked_ips', array(
|
||||
'ip_address' => $ip_address,
|
||||
));
|
||||
|
||||
if ($query->num_rows() == 0) {
|
||||
$this->db->insert('blocked_ips', array(
|
||||
'ip_address' => $ip_address,
|
||||
'blocked_at' => time(),
|
||||
'spam_attempts' => $paste_count,
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//fill data
|
||||
$data = $this->pastes->getSpamLists('spamadmin/' . $ip_address, $seg = 3, $ip_address);
|
||||
$data['ip_address'] = $ip_address;
|
||||
$ip = explode('.', $ip_address);
|
||||
|
||||
if (count($ip) > 1) {
|
||||
$ip_firstpart = $ip[0] . '.' . $ip[1] . '.';
|
||||
$data['ip_range'] = $ip_firstpart . '*.*';
|
||||
} else {
|
||||
|
||||
// ipv6
|
||||
$ip = explode(':', $ip_address);
|
||||
$ip_firstpart = $ip[0] . ':' . $ip[1] . ':' . $ip[2] . ':' . $ip[3] . ':' . $ip[4] . ':' . $ip[5] . ':' . $ip[6];
|
||||
$data['ip_range'] = $ip_firstpart . ':*';
|
||||
}
|
||||
|
||||
//view
|
||||
$this->load->view('spam_detail', $data);
|
||||
}
|
||||
|
||||
public function blacklist()
|
||||
{
|
||||
|
||||
//pagination
|
||||
$amount = $this->config->item('per_page');
|
||||
$page = ($this->uri->segment(3) ? $this->uri->segment(3) : 0);
|
||||
|
||||
//get
|
||||
$this->db->select('ip_address, blocked_at, spam_attempts');
|
||||
$this->db->order_by('blocked_at desc, ip_address asc');
|
||||
$query = $this->db->get('blocked_ips', $amount, $page);
|
||||
$data['blocked_ips'] = $query->result_array();
|
||||
|
||||
//pagination
|
||||
$config['base_url'] = site_url('spamadmin/blacklist');
|
||||
$query = $this->db->get('blocked_ips');
|
||||
$config['total_rows'] = $query->num_rows();
|
||||
$config['per_page'] = $amount;
|
||||
$config['num_links'] = 9;
|
||||
$config['full_tag_open'] = '<div class="pages">';
|
||||
$config['full_tag_close'] = '</div>';
|
||||
$config['uri_segment'] = 3;
|
||||
$this->load->library('pagination');
|
||||
$this->pagination->initialize($config);
|
||||
$data['pages'] = $this->pagination->create_links();
|
||||
|
||||
//view
|
||||
$this->load->view('list_blocked_ips', $data);
|
||||
}
|
||||
|
||||
public function unblock_ip()
|
||||
{
|
||||
$ip_address = $this->uri->segment(4);
|
||||
$this->db->where('ip_address', $ip_address);
|
||||
$this->db->delete('blocked_ips');
|
||||
redirect('spamadmin/blacklist');
|
||||
}
|
||||
}
|
||||
|
@ -1,227 +1,186 @@
|
||||
<?php
|
||||
/**
|
||||
* Class and Function List:
|
||||
* Function list:
|
||||
* - __construct()
|
||||
* - css()
|
||||
* - fonts()
|
||||
* - images()
|
||||
* - js()
|
||||
* - _expires_header()
|
||||
* Classes list:
|
||||
* - Theme_assets extends CI_Controller
|
||||
*/
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
class Theme_assets extends CI_Controller
|
||||
{
|
||||
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->theme = config_item('theme');
|
||||
}
|
||||
|
||||
function css()
|
||||
{
|
||||
$css_file = $this->uri->segment(4);
|
||||
$css_file = basename($css_file); // Fix LFI Vulnerability
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->theme = config_item('theme');
|
||||
}
|
||||
|
||||
|
||||
if ($css_file == 'fonts')
|
||||
{
|
||||
$font_file = $this->uri->segment(5);
|
||||
$font_file = basename($font_file);
|
||||
public function css()
|
||||
{
|
||||
$css_file = $this->uri->segment(4);
|
||||
$css_file = basename($css_file); // Fix LFI Vulnerability
|
||||
|
||||
//file path
|
||||
$file_path = 'themes/' . $this->theme . '/css/fonts/' . $font_file;
|
||||
|
||||
if (!file_exists($file_path))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
$path_parts = pathinfo(dirname(dirname(dirname(__FILE__))) . '/' . $file_path);
|
||||
|
||||
if ($path_parts['extension'] == "woff")
|
||||
{
|
||||
header('Content-type: application/font-woff');
|
||||
}
|
||||
|
||||
if ($path_parts['extension'] == "eot")
|
||||
{
|
||||
header('Content-type: application/vnd.ms-fontobject');
|
||||
}
|
||||
|
||||
if ($path_parts['extension'] == "ttf" || $path_parts['extension'] == "ttc")
|
||||
{
|
||||
header('Content-type: application/x-font-ttf');
|
||||
}
|
||||
|
||||
if ($path_parts['extension'] == "otf")
|
||||
{
|
||||
header('Content-type: font/opentype');
|
||||
}
|
||||
|
||||
if ($path_parts['extension'] == "svg")
|
||||
{
|
||||
header('Content-type: image/svg+xml');
|
||||
}
|
||||
|
||||
if ($path_parts['extension'] == "svgz")
|
||||
{
|
||||
header("Content-Encoding: gzip");
|
||||
header('Content-type: image/svg+xml');
|
||||
}
|
||||
if ($css_file == 'fonts') {
|
||||
$font_file = $this->uri->segment(5);
|
||||
$font_file = basename($font_file);
|
||||
|
||||
//send
|
||||
$this->_expires_header(1);
|
||||
readfile($file_path);
|
||||
}
|
||||
else
|
||||
{
|
||||
//file path
|
||||
$file_path = 'themes/' . $this->theme . '/css/fonts/' . $font_file;
|
||||
|
||||
//file path
|
||||
$file_path = 'themes/' . $this->theme . '/css/' . $css_file;
|
||||
if (!file_exists($file_path)) {
|
||||
return false;
|
||||
}
|
||||
$path_parts = pathinfo(dirname(dirname(dirname(__FILE__))) . '/' . $file_path);
|
||||
|
||||
//fallback to default css if view in theme not found
|
||||
|
||||
if (!file_exists($file_path))
|
||||
{
|
||||
$file_path = 'themes/default/css/' . $css_file;
|
||||
}
|
||||
if ($path_parts['extension'] == "woff") {
|
||||
header('Content-type: application/font-woff');
|
||||
}
|
||||
|
||||
// Double checking file
|
||||
|
||||
if (!file_exists($file_path))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if ($path_parts['extension'] == "eot") {
|
||||
header('Content-type: application/vnd.ms-fontobject');
|
||||
}
|
||||
|
||||
//send
|
||||
header('Content-type: text/css');
|
||||
$this->_expires_header(1);
|
||||
readfile($file_path);
|
||||
}
|
||||
}
|
||||
|
||||
function fonts()
|
||||
{
|
||||
$font_file = $this->uri->segment(4);
|
||||
if ($path_parts['extension'] == "ttf" || $path_parts['extension'] == "ttc") {
|
||||
header('Content-type: application/x-font-ttf');
|
||||
}
|
||||
|
||||
//file path
|
||||
$file_path = 'themes/' . $this->theme . '/fonts/' . $font_file;
|
||||
if ($path_parts['extension'] == "otf") {
|
||||
header('Content-type: font/opentype');
|
||||
}
|
||||
|
||||
//no fallback to default, since default has no such fonts
|
||||
//since no fallbcack, there is no doucle checking for file
|
||||
if ($path_parts['extension'] == "svg") {
|
||||
header('Content-type: image/svg+xml');
|
||||
}
|
||||
|
||||
|
||||
if (!file_exists($file_path))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if ($path_parts['extension'] == "svgz") {
|
||||
header("Content-Encoding: gzip");
|
||||
header('Content-type: image/svg+xml');
|
||||
}
|
||||
|
||||
//send
|
||||
$path_parts = pathinfo(dirname(dirname(dirname(__FILE__))) . '/' . $file_path);
|
||||
|
||||
if ($path_parts['extension'] == "woff")
|
||||
{
|
||||
header('Content-type: application/font-woff');
|
||||
}
|
||||
|
||||
if ($path_parts['extension'] == "eot")
|
||||
{
|
||||
header('Content-type: application/vnd.ms-fontobject');
|
||||
}
|
||||
|
||||
if ($path_parts['extension'] == "ttf" || $path_parts['extension'] == "ttc")
|
||||
{
|
||||
header('Content-type: application/x-font-ttf');
|
||||
}
|
||||
|
||||
if ($path_parts['extension'] == "otf")
|
||||
{
|
||||
header('Content-type: font/opentype');
|
||||
}
|
||||
|
||||
if ($path_parts['extension'] == "svg")
|
||||
{
|
||||
header('Content-type: image/svg+xml');
|
||||
}
|
||||
|
||||
if ($path_parts['extension'] == "svgz")
|
||||
{
|
||||
header("Content-Encoding: gzip");
|
||||
header('Content-type: image/svg+xml');
|
||||
}
|
||||
$this->_expires_header(1);
|
||||
readfile($file_path);
|
||||
}
|
||||
|
||||
function images()
|
||||
{
|
||||
$image_file = $this->uri->segment(4);
|
||||
$image_file = basename($image_file);
|
||||
//send
|
||||
$this->_expires_header(1);
|
||||
readfile($file_path);
|
||||
|
||||
//file path
|
||||
$file_path = 'themes/' . $this->theme . '/images/' . $image_file;
|
||||
} else {
|
||||
|
||||
//fallback to default css if view in theme not found
|
||||
|
||||
if (!file_exists($file_path))
|
||||
{
|
||||
$file_path = 'themes/default/images/' . $image_file;
|
||||
}
|
||||
//file path
|
||||
$file_path = 'themes/' . $this->theme . '/css/' . $css_file;
|
||||
|
||||
// double checking file
|
||||
|
||||
if (!file_exists($file_path))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
//fallback to default css if view in theme not found
|
||||
|
||||
//send
|
||||
$size = getimagesize($file_path);
|
||||
header('Content-type: ' . $size['mime']);
|
||||
$this->_expires_header(30);
|
||||
readfile($file_path);
|
||||
}
|
||||
|
||||
function js()
|
||||
{
|
||||
if (!file_exists($file_path)) {
|
||||
$file_path = 'themes/default/css/' . $css_file;
|
||||
}
|
||||
|
||||
//get js
|
||||
$segments = $this->uri->segment_array();
|
||||
array_shift($segments);
|
||||
array_shift($segments);
|
||||
array_shift($segments);
|
||||
$js_file = implode('/', $segments);
|
||||
$js_file = str_replace('../', '', $js_file);
|
||||
// Double checking file
|
||||
|
||||
//file path
|
||||
$file_path = 'themes/' . $this->theme . '/js/' . $js_file;
|
||||
if (!file_exists($file_path)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
//fallback to default js if js in theme not found
|
||||
|
||||
if (!file_exists($file_path))
|
||||
{
|
||||
$file_path = 'themes/default/js/' . $js_file;
|
||||
}
|
||||
//send
|
||||
header('Content-type: text/css');
|
||||
$this->_expires_header(1);
|
||||
readfile($file_path);
|
||||
}
|
||||
}
|
||||
|
||||
// return empty string if not found, to not mess up existing JS
|
||||
|
||||
if (!file_exists($file_path))
|
||||
{
|
||||
header('HTTP/1.1 404 Not Found');
|
||||
return '';
|
||||
}
|
||||
public function fonts()
|
||||
{
|
||||
$font_file = $this->uri->segment(4);
|
||||
|
||||
//send
|
||||
header('Content-Type: application/x-javascript; charset=utf-8');
|
||||
$this->_expires_header(30);
|
||||
readfile($file_path);
|
||||
}
|
||||
private
|
||||
function _expires_header($days)
|
||||
{
|
||||
header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', time() + 60 * 60 * 24 * $days));
|
||||
}
|
||||
//file path
|
||||
$file_path = 'themes/' . $this->theme . '/fonts/' . $font_file;
|
||||
|
||||
//no fallback to default, since default has no such fonts
|
||||
//since no fallbcack, there is no doucle checking for file
|
||||
if (!file_exists($file_path)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
//send
|
||||
$path_parts = pathinfo(dirname(dirname(dirname(__FILE__))) . '/' . $file_path);
|
||||
|
||||
if ($path_parts['extension'] == "woff") {
|
||||
header('Content-type: application/font-woff');
|
||||
}
|
||||
|
||||
if ($path_parts['extension'] == "eot") {
|
||||
header('Content-type: application/vnd.ms-fontobject');
|
||||
}
|
||||
|
||||
if ($path_parts['extension'] == "ttf" || $path_parts['extension'] == "ttc") {
|
||||
header('Content-type: application/x-font-ttf');
|
||||
}
|
||||
|
||||
if ($path_parts['extension'] == "otf") {
|
||||
header('Content-type: font/opentype');
|
||||
}
|
||||
|
||||
if ($path_parts['extension'] == "svg") {
|
||||
header('Content-type: image/svg+xml');
|
||||
}
|
||||
|
||||
if ($path_parts['extension'] == "svgz") {
|
||||
header("Content-Encoding: gzip");
|
||||
header('Content-type: image/svg+xml');
|
||||
}
|
||||
$this->_expires_header(1);
|
||||
readfile($file_path);
|
||||
}
|
||||
|
||||
public function images()
|
||||
{
|
||||
$image_file = $this->uri->segment(4);
|
||||
$image_file = basename($image_file);
|
||||
|
||||
//file path
|
||||
$file_path = 'themes/' . $this->theme . '/images/' . $image_file;
|
||||
|
||||
//fallback to default css if view in theme not found
|
||||
if (!file_exists($file_path)) {
|
||||
$file_path = 'themes/default/images/' . $image_file;
|
||||
}
|
||||
|
||||
// double checking file
|
||||
if (!file_exists($file_path)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
//send
|
||||
$size = getimagesize($file_path);
|
||||
header('Content-type: ' . $size['mime']);
|
||||
$this->_expires_header(30);
|
||||
readfile($file_path);
|
||||
}
|
||||
|
||||
public function js()
|
||||
{
|
||||
//get js
|
||||
$segments = $this->uri->segment_array();
|
||||
array_shift($segments);
|
||||
array_shift($segments);
|
||||
array_shift($segments);
|
||||
$js_file = implode('/', $segments);
|
||||
$js_file = str_replace('../', '', $js_file);
|
||||
|
||||
//file path
|
||||
$file_path = 'themes/' . $this->theme . '/js/' . $js_file;
|
||||
|
||||
//fallback to default js if js in theme not found
|
||||
if (!file_exists($file_path)) {
|
||||
$file_path = 'themes/default/js/' . $js_file;
|
||||
}
|
||||
|
||||
// return empty string if not found, to not mess up existing JS
|
||||
if (!file_exists($file_path)) {
|
||||
header('HTTP/1.1 404 Not Found');
|
||||
return '';
|
||||
}
|
||||
|
||||
//send
|
||||
header('Content-Type: application/x-javascript; charset=utf-8');
|
||||
$this->_expires_header(30);
|
||||
readfile($file_path);
|
||||
}
|
||||
|
||||
private function _expires_header($days)
|
||||
{
|
||||
header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', time() + 60 * 60 * 24 * $days));
|
||||
}
|
||||
}
|
||||
|
@ -1,57 +1,50 @@
|
||||
<?php
|
||||
/**
|
||||
* Class and Function List:
|
||||
* Function list:
|
||||
* - __construct()
|
||||
* - index()
|
||||
* Classes list:
|
||||
* - Unittest extends CI_Controller
|
||||
*/
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
class Unittest extends CI_Controller
|
||||
{
|
||||
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
//protection
|
||||
|
||||
if ($_SERVER['HTTP_HOST'] != 'stikked')
|
||||
{
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
function index()
|
||||
{
|
||||
$this->load->library('unit_test');
|
||||
$this->load->model('pastes');
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
//self test
|
||||
$test = 1 + 1;
|
||||
$expected_result = 2;
|
||||
$test_name = 'Self test: Adds one plus one';
|
||||
$this->unit->run($test, $expected_result, $test_name);
|
||||
//protection
|
||||
|
||||
//manipulation: create paste
|
||||
$_POST['code'] = '<?php echo "hello world!";';
|
||||
$_POST['lang'] = 'php';
|
||||
$_POST['title'] = 'hello world';
|
||||
$_POST['name'] = 'stikkeduser';
|
||||
$pid = $this->pastes->createPaste();
|
||||
if ($_SERVER['HTTP_HOST'] != 'stikked') {
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
//paste created, has pid
|
||||
$test = $pid;
|
||||
$expected_result = 'is_string';
|
||||
$test_name = 'Create paste, has pid';
|
||||
$this->unit->run($test, $expected_result, $test_name);
|
||||
$pid = str_replace('view/', '', $pid);
|
||||
public function index()
|
||||
{
|
||||
$this->load->library('unit_test');
|
||||
$this->load->model('pastes');
|
||||
|
||||
//manipulation: delete paste
|
||||
$this->pastes->delete_paste($pid);
|
||||
//self test
|
||||
$test = 1 + 1;
|
||||
$expected_result = 2;
|
||||
$test_name = 'Self test: Adds one plus one';
|
||||
$this->unit->run($test, $expected_result, $test_name);
|
||||
|
||||
//report
|
||||
echo $this->unit->report();
|
||||
}
|
||||
//manipulation: create paste
|
||||
$_POST['code'] = '<?php echo "hello world!";';
|
||||
$_POST['lang'] = 'php';
|
||||
$_POST['title'] = 'hello world';
|
||||
$_POST['name'] = 'stikkeduser';
|
||||
$pid = $this->pastes->createPaste();
|
||||
|
||||
//paste created, has pid
|
||||
$test = $pid;
|
||||
$expected_result = 'is_string';
|
||||
$test_name = 'Create paste, has pid';
|
||||
$this->unit->run($test, $expected_result, $test_name);
|
||||
$pid = str_replace('view/', '', $pid);
|
||||
|
||||
//manipulation: delete paste
|
||||
$this->pastes->delete_paste($pid);
|
||||
|
||||
//report
|
||||
echo $this->unit->report();
|
||||
}
|
||||
}
|
||||
|
@ -1,209 +1,178 @@
|
||||
<?php
|
||||
/**
|
||||
* Class and Function List:
|
||||
* Function list:
|
||||
* - __construct()
|
||||
* - view()
|
||||
* - _ci_load()
|
||||
* Classes list:
|
||||
* - MY_Loader extends CI_Loader
|
||||
*/
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
class MY_Loader extends CI_Loader
|
||||
{
|
||||
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
log_message('debug', 'MY_Loader Class Initialized');
|
||||
}
|
||||
|
||||
function view($view, $vars = array() , $return = FALSE)
|
||||
{
|
||||
|
||||
//theme name
|
||||
$theme = config_item('theme');
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
log_message('debug', 'MY_Loader Class Initialized');
|
||||
}
|
||||
|
||||
//view path
|
||||
$view_path = 'themes/' . $theme . '/views/' . $view . '.php';
|
||||
public function view($view, $vars = array(), $return = false)
|
||||
{
|
||||
|
||||
//fallback to default view if view in theme not found
|
||||
|
||||
if (!file_exists($view_path))
|
||||
{
|
||||
$view_path = 'themes/default/views/' . $view . '.php';
|
||||
}
|
||||
//theme name
|
||||
$theme = config_item('theme');
|
||||
|
||||
//return
|
||||
return $this->_ci_load(array(
|
||||
'_ci_view' => $view_path,
|
||||
'_ci_vars' => $this->_ci_prepare_view_vars($vars) ,
|
||||
'_ci_return' => $return
|
||||
));
|
||||
}
|
||||
//view path
|
||||
$view_path = 'themes/' . $theme . '/views/' . $view . '.php';
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Internal CI Data Loader
|
||||
*
|
||||
* Used to load views and files.
|
||||
*
|
||||
* Variables are prefixed with _ci_ to avoid symbol collision with
|
||||
* variables made available to view files.
|
||||
*
|
||||
* @used-by CI_Loader::view()
|
||||
* @used-by CI_Loader::file()
|
||||
* @param array $_ci_data Data to load
|
||||
* @return object
|
||||
*/
|
||||
protected
|
||||
function _ci_load($_ci_data)
|
||||
{
|
||||
//fallback to default view if view in theme not found
|
||||
|
||||
// Set the default data variables
|
||||
foreach (array(
|
||||
'_ci_view',
|
||||
'_ci_vars',
|
||||
'_ci_path',
|
||||
'_ci_return'
|
||||
) as $_ci_val)
|
||||
{
|
||||
$$_ci_val = isset($_ci_data[$_ci_val]) ? $_ci_data[$_ci_val] : FALSE;
|
||||
}
|
||||
$file_exists = FALSE;
|
||||
if (!file_exists($view_path)) {
|
||||
$view_path = 'themes/default/views/' . $view . '.php';
|
||||
}
|
||||
|
||||
// Set the path to the requested file
|
||||
|
||||
if (is_string($_ci_path) && $_ci_path !== '')
|
||||
{
|
||||
$_ci_x = explode('/', $_ci_path);
|
||||
$_ci_file = end($_ci_x);
|
||||
}
|
||||
else
|
||||
{
|
||||
$_ci_ext = pathinfo($_ci_view, PATHINFO_EXTENSION);
|
||||
$_ci_file = ($_ci_ext === '') ? $_ci_view . '.php' : $_ci_view;
|
||||
foreach ($this->_ci_view_paths as $_ci_view_file => $cascade)
|
||||
{
|
||||
//return
|
||||
return $this->_ci_load(array(
|
||||
'_ci_view' => $view_path,
|
||||
'_ci_vars' => $this->_ci_prepare_view_vars($vars),
|
||||
'_ci_return' => $return,
|
||||
));
|
||||
}
|
||||
|
||||
/* *** modification for stikked themes ***
|
||||
*
|
||||
* we are by default in the htdocs/application/views folder, which is bad.
|
||||
* for security reasons, themes folder should be outside the application dir.
|
||||
* but file_exists() doesn't work with ../../ in filenames :-(
|
||||
* so, applying the full FrontControllerPATH here, making ../../ superfluous.
|
||||
*
|
||||
*/
|
||||
|
||||
if (file_exists(FCPATH . $_ci_file))
|
||||
{
|
||||
$_ci_path = FCPATH . $_ci_file;
|
||||
$file_exists = TRUE;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!$cascade)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$file_exists && !file_exists($_ci_path))
|
||||
{
|
||||
show_error('Unable to load the requested file: ' . $_ci_file);
|
||||
}
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
// This allows anything loaded using $this->load (views, files, etc.)
|
||||
// to become accessible from within the Controller and Model functions.
|
||||
/**
|
||||
* Internal CI Data Loader
|
||||
*
|
||||
* Used to load views and files.
|
||||
*
|
||||
* Variables are prefixed with _ci_ to avoid symbol collision with
|
||||
* variables made available to view files.
|
||||
*
|
||||
* @used-by CI_Loader::view()
|
||||
* @used-by CI_Loader::file()
|
||||
* @param array $_ci_data Data to load
|
||||
* @return object
|
||||
*/
|
||||
protected function _ci_load($_ci_data)
|
||||
{
|
||||
|
||||
$_ci_CI = & get_instance();
|
||||
foreach (get_object_vars($_ci_CI) as $_ci_key => $_ci_var)
|
||||
{
|
||||
|
||||
if (!isset($this->$_ci_key))
|
||||
{
|
||||
$this->$_ci_key = & $_ci_CI->$_ci_key;
|
||||
}
|
||||
}
|
||||
// Set the default data variables
|
||||
foreach (array(
|
||||
'_ci_view',
|
||||
'_ci_vars',
|
||||
'_ci_path',
|
||||
'_ci_return',
|
||||
) as $_ci_val) {
|
||||
$$_ci_val = isset($_ci_data[$_ci_val]) ? $_ci_data[$_ci_val] : false;
|
||||
}
|
||||
$file_exists = false;
|
||||
|
||||
/*
|
||||
* Extract and cache variables
|
||||
*
|
||||
* You can either set variables using the dedicated $this->load->vars()
|
||||
* function or via the second parameter of this function. We'll merge
|
||||
* the two types and cache them so that views that are embedded within
|
||||
* other views can have access to these variables.
|
||||
*/
|
||||
|
||||
if (is_array($_ci_vars))
|
||||
{
|
||||
$this->_ci_cached_vars = array_merge($this->_ci_cached_vars, $_ci_vars);
|
||||
}
|
||||
extract($this->_ci_cached_vars);
|
||||
// Set the path to the requested file
|
||||
|
||||
/*
|
||||
* Buffer the output
|
||||
*
|
||||
* We buffer the output for two reasons:
|
||||
* 1. Speed. You get a significant speed boost.
|
||||
* 2. So that the final rendered template can be post-processed by
|
||||
* the output class. Why do we need post processing? For one thing,
|
||||
* in order to show the elapsed page load time. Unless we can
|
||||
* intercept the content right before it's sent to the browser and
|
||||
* then stop the timer it won't be accurate.
|
||||
*/
|
||||
ob_start();
|
||||
if (is_string($_ci_path) && $_ci_path !== '') {
|
||||
$_ci_x = explode('/', $_ci_path);
|
||||
$_ci_file = end($_ci_x);
|
||||
} else {
|
||||
$_ci_ext = pathinfo($_ci_view, PATHINFO_EXTENSION);
|
||||
$_ci_file = ($_ci_ext === '') ? $_ci_view . '.php' : $_ci_view;
|
||||
foreach ($this->_ci_view_paths as $_ci_view_file => $cascade) {
|
||||
|
||||
// If the PHP installation does not support short tags we'll
|
||||
// do a little string replacement, changing the short tags
|
||||
/* *** modification for stikked themes ***
|
||||
*
|
||||
* we are by default in the htdocs/application/views folder, which is bad.
|
||||
* for security reasons, themes folder should be outside the application dir.
|
||||
* but file_exists() doesn't work with ../../ in filenames :-(
|
||||
* so, applying the full FrontControllerPATH here, making ../../ superfluous.
|
||||
*
|
||||
*/
|
||||
|
||||
// to standard PHP echo statements.
|
||||
if (file_exists(FCPATH . $_ci_file)) {
|
||||
$_ci_path = FCPATH . $_ci_file;
|
||||
$file_exists = true;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (!is_php('5.4') && !ini_get('short_open_tag') && config_item('rewrite_short_tags') === TRUE)
|
||||
{
|
||||
echo eval('?>' . preg_replace('/;*\s*\?>/', '; ?>', str_replace('<?=', '<?php echo ', file_get_contents($_ci_path))));
|
||||
}
|
||||
else
|
||||
{
|
||||
include ($_ci_path); // include() vs include_once() allows for multiple views with the same name
|
||||
if (!$cascade) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
log_message('info', 'File loaded: ' . $_ci_path);
|
||||
if (!$file_exists && !file_exists($_ci_path)) {
|
||||
show_error('Unable to load the requested file: ' . $_ci_file);
|
||||
}
|
||||
|
||||
// Return the file data if requested
|
||||
|
||||
if ($_ci_return === TRUE)
|
||||
{
|
||||
$buffer = ob_get_contents();
|
||||
@ob_end_clean();
|
||||
return $buffer;
|
||||
}
|
||||
// This allows anything loaded using $this->load (views, files, etc.)
|
||||
// to become accessible from within the Controller and Model functions.
|
||||
|
||||
/*
|
||||
* Flush the buffer... or buff the flusher?
|
||||
*
|
||||
* In order to permit views to be nested within
|
||||
* other views, we need to flush the content back out whenever
|
||||
* we are beyond the first level of output buffering so that
|
||||
* it can be seen and included properly by the first included
|
||||
* template and any subsequent ones. Oy!
|
||||
*/
|
||||
|
||||
if (ob_get_level() > $this->_ci_ob_level + 1)
|
||||
{
|
||||
ob_end_flush();
|
||||
}
|
||||
else
|
||||
{
|
||||
$_ci_CI->output->append_output(ob_get_contents());
|
||||
@ob_end_clean();
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
$_ci_CI = &get_instance();
|
||||
foreach (get_object_vars($_ci_CI) as $_ci_key => $_ci_var) {
|
||||
|
||||
if (!isset($this->$_ci_key)) {
|
||||
$this->$_ci_key = &$_ci_CI->$_ci_key;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Extract and cache variables
|
||||
*
|
||||
* You can either set variables using the dedicated $this->load->vars()
|
||||
* function or via the second parameter of this function. We'll merge
|
||||
* the two types and cache them so that views that are embedded within
|
||||
* other views can have access to these variables.
|
||||
*/
|
||||
|
||||
if (is_array($_ci_vars)) {
|
||||
$this->_ci_cached_vars = array_merge($this->_ci_cached_vars, $_ci_vars);
|
||||
}
|
||||
extract($this->_ci_cached_vars);
|
||||
|
||||
/*
|
||||
* Buffer the output
|
||||
*
|
||||
* We buffer the output for two reasons:
|
||||
* 1. Speed. You get a significant speed boost.
|
||||
* 2. So that the final rendered template can be post-processed by
|
||||
* the output class. Why do we need post processing? For one thing,
|
||||
* in order to show the elapsed page load time. Unless we can
|
||||
* intercept the content right before it's sent to the browser and
|
||||
* then stop the timer it won't be accurate.
|
||||
*/
|
||||
ob_start();
|
||||
|
||||
// If the PHP installation does not support short tags we'll
|
||||
// do a little string replacement, changing the short tags
|
||||
|
||||
// to standard PHP echo statements.
|
||||
|
||||
if (!is_php('5.4') && !ini_get('short_open_tag') && config_item('rewrite_short_tags') === true) {
|
||||
echo eval('?>' . preg_replace('/;*\s*\?>/', '; ?>', str_replace('<?=', '<?php echo ', file_get_contents($_ci_path))));
|
||||
} else {
|
||||
include $_ci_path; // include() vs include_once() allows for multiple views with the same name
|
||||
|
||||
}
|
||||
log_message('info', 'File loaded: ' . $_ci_path);
|
||||
|
||||
// Return the file data if requested
|
||||
|
||||
if ($_ci_return === true) {
|
||||
$buffer = ob_get_contents();
|
||||
@ob_end_clean();
|
||||
return $buffer;
|
||||
}
|
||||
|
||||
/*
|
||||
* Flush the buffer... or buff the flusher?
|
||||
*
|
||||
* In order to permit views to be nested within
|
||||
* other views, we need to flush the content back out whenever
|
||||
* we are beyond the first level of output buffering so that
|
||||
* it can be seen and included properly by the first included
|
||||
* template and any subsequent ones. Oy!
|
||||
*/
|
||||
|
||||
if (ob_get_level() > $this->_ci_ob_level + 1) {
|
||||
ob_end_flush();
|
||||
} else {
|
||||
$_ci_CI->output->append_output(ob_get_contents());
|
||||
@ob_end_clean();
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
@ -1,25 +1,18 @@
|
||||
<?php
|
||||
/**
|
||||
* Class and Function List:
|
||||
* Function list:
|
||||
* - create_captcha()
|
||||
* - display_captcha()
|
||||
* - b()
|
||||
* Classes list:
|
||||
*/
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
/**
|
||||
* CodeIgniter
|
||||
*
|
||||
* An open source application development framework for PHP 5.1.6 or newer
|
||||
*
|
||||
* @package CodeIgniter
|
||||
* @author ExpressionEngine Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2011, EllisLab, Inc.
|
||||
* @license http://codeigniter.com/user_guide/license.html
|
||||
* @link http://codeigniter.com
|
||||
* @since Version 1.0
|
||||
* @package CodeIgniter
|
||||
* @author ExpressionEngine Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2011, EllisLab, Inc.
|
||||
* @license http://codeigniter.com/user_guide/license.html
|
||||
* @link http://codeigniter.com
|
||||
* @since Version 1.0
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
@ -28,11 +21,11 @@ if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
/**
|
||||
* CodeIgniter CAPTCHA Helper
|
||||
*
|
||||
* @package CodeIgniter
|
||||
* @subpackage Helpers
|
||||
* @category Helpers
|
||||
* @author ExpressionEngine Dev Team
|
||||
* @link http://codeigniter.com/user_guide/helpers/xml_helper.html
|
||||
* @package CodeIgniter
|
||||
* @subpackage Helpers
|
||||
* @category Helpers
|
||||
* @author ExpressionEngine Dev Team
|
||||
* @link http://codeigniter.com/user_guide/helpers/xml_helper.html
|
||||
*/
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
@ -40,432 +33,380 @@ if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
/**
|
||||
* Create CAPTCHA
|
||||
*
|
||||
* @access public
|
||||
* @param array array of data for the CAPTCHA
|
||||
* @param string path to create the image in
|
||||
* @param string URL to the CAPTCHA image folder
|
||||
* @param string server path to font
|
||||
* @return string
|
||||
* @access public
|
||||
* @param array array of data for the CAPTCHA
|
||||
* @param string path to create the image in
|
||||
* @param string URL to the CAPTCHA image folder
|
||||
* @param string server path to font
|
||||
* @return string
|
||||
*/
|
||||
|
||||
if (!function_exists('create_captcha'))
|
||||
{
|
||||
|
||||
function create_captcha($data = '', $img_path = '', $img_url = '', $font_path = '')
|
||||
{
|
||||
$defaults = array(
|
||||
'word' => '',
|
||||
'img_path' => '',
|
||||
'img_url' => '',
|
||||
'img_width' => '150',
|
||||
'img_height' => '30',
|
||||
'font_path' => '',
|
||||
'expiration' => 7200
|
||||
);
|
||||
foreach ($defaults as $key => $val)
|
||||
{
|
||||
|
||||
if (!is_array($data))
|
||||
{
|
||||
|
||||
if (!isset($$key) OR $$key == '')
|
||||
{
|
||||
$$key = $val;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$$key = (!isset($data[$key])) ? $val : $data[$key];
|
||||
}
|
||||
}
|
||||
|
||||
if ($img_path == '' OR $img_url == '')
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!@is_dir($img_path))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!is_writable($img_path))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!extension_loaded('gd'))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
if (!function_exists('create_captcha')) {
|
||||
|
||||
// -----------------------------------
|
||||
// Remove old images
|
||||
function create_captcha($data = '', $img_path = '', $img_url = '', $font_path = '')
|
||||
{
|
||||
$defaults = array(
|
||||
'word' => '',
|
||||
'img_path' => '',
|
||||
'img_url' => '',
|
||||
'img_width' => '150',
|
||||
'img_height' => '30',
|
||||
'font_path' => '',
|
||||
'expiration' => 7200,
|
||||
);
|
||||
foreach ($defaults as $key => $val) {
|
||||
|
||||
// -----------------------------------
|
||||
if (!is_array($data)) {
|
||||
|
||||
list($usec, $sec) = explode(" ", microtime());
|
||||
$now = ((float)$usec + (float)$sec);
|
||||
$current_dir = @opendir($img_path);
|
||||
while ($filename = @readdir($current_dir))
|
||||
{
|
||||
|
||||
if ($filename != "." and $filename != ".." and $filename != "index.html")
|
||||
{
|
||||
$name = str_replace(".jpg", "", $filename);
|
||||
|
||||
if (($name + $expiration) < $now)
|
||||
{
|
||||
@unlink($img_path . $filename);
|
||||
}
|
||||
}
|
||||
}
|
||||
@closedir($current_dir);
|
||||
if (!isset($$key) or $$key == '') {
|
||||
$$key = $val;
|
||||
}
|
||||
} else {
|
||||
$$key = (!isset($data[$key])) ? $val : $data[$key];
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------
|
||||
// Do we have a "word" yet?
|
||||
if ($img_path == '' or $img_url == '') {
|
||||
return false;
|
||||
}
|
||||
|
||||
// -----------------------------------
|
||||
if (!@is_dir($img_path)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if ($word == '')
|
||||
{
|
||||
$pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||
$str = '';
|
||||
for ($i = 0;$i < 8;$i++)
|
||||
{
|
||||
$str.= substr($pool, mt_rand(0, strlen($pool) - 1) , 1);
|
||||
}
|
||||
$word = $str;
|
||||
}
|
||||
if (!is_writable($img_path)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// -----------------------------------
|
||||
// Determine angle and position
|
||||
if (!extension_loaded('gd')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// -----------------------------------
|
||||
// -----------------------------------
|
||||
// Remove old images
|
||||
|
||||
$length = strlen($word);
|
||||
$angle = ($length >= 6) ? rand(-($length - 6) , ($length - 6)) : 0;
|
||||
$x_axis = rand(6, (360 / $length) - 16);
|
||||
$y_axis = ($angle >= 0) ? rand($img_height, $img_width) : rand(6, $img_height);
|
||||
// -----------------------------------
|
||||
|
||||
// -----------------------------------
|
||||
// Create image
|
||||
list($usec, $sec) = explode(" ", microtime());
|
||||
$now = ((float) $usec + (float) $sec);
|
||||
$current_dir = @opendir($img_path);
|
||||
while ($filename = @readdir($current_dir)) {
|
||||
|
||||
// -----------------------------------
|
||||
if ($filename != "." and $filename != ".." and $filename != "index.html") {
|
||||
$name = str_replace(".jpg", "", $filename);
|
||||
|
||||
// PHP.net recommends imagecreatetruecolor(), but it isn't always available
|
||||
if (($name + $expiration) < $now) {
|
||||
@unlink($img_path . $filename);
|
||||
}
|
||||
}
|
||||
}
|
||||
@closedir($current_dir);
|
||||
|
||||
|
||||
if (function_exists('imagecreatetruecolor'))
|
||||
{
|
||||
$im = imagecreatetruecolor($img_width, $img_height);
|
||||
}
|
||||
else
|
||||
{
|
||||
$im = imagecreate($img_width, $img_height);
|
||||
}
|
||||
// -----------------------------------
|
||||
// Do we have a "word" yet?
|
||||
|
||||
// -----------------------------------
|
||||
// Assign colors
|
||||
// -----------------------------------
|
||||
|
||||
// -----------------------------------
|
||||
if ($word == '') {
|
||||
$pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||
$str = '';
|
||||
for ($i = 0; $i < 8; $i++) {
|
||||
$str .= substr($pool, mt_rand(0, strlen($pool) - 1), 1);
|
||||
}
|
||||
$word = $str;
|
||||
}
|
||||
|
||||
$bg_color = imagecolorallocate($im, 255, 255, 255);
|
||||
$border_color = imagecolorallocate($im, 153, 102, 102);
|
||||
$text_color = imagecolorallocate($im, 204, 153, 153);
|
||||
$grid_color = imagecolorallocate($im, 255, 182, 182);
|
||||
$shadow_color = imagecolorallocate($im, 255, 240, 240);
|
||||
// -----------------------------------
|
||||
// Determine angle and position
|
||||
|
||||
// -----------------------------------
|
||||
// Create the rectangle
|
||||
// -----------------------------------
|
||||
|
||||
// -----------------------------------
|
||||
$length = strlen($word);
|
||||
$angle = ($length >= 6) ? rand(-($length - 6), ($length - 6)) : 0;
|
||||
$x_axis = rand(6, (360 / $length) - 16);
|
||||
$y_axis = ($angle >= 0) ? rand($img_height, $img_width) : rand(6, $img_height);
|
||||
|
||||
ImageFilledRectangle($im, 0, 0, $img_width, $img_height, $bg_color);
|
||||
// -----------------------------------
|
||||
// Create image
|
||||
|
||||
// -----------------------------------
|
||||
// Create the spiral pattern
|
||||
// -----------------------------------
|
||||
|
||||
// -----------------------------------
|
||||
// PHP.net recommends imagecreatetruecolor(), but it isn't always available
|
||||
|
||||
$theta = 1;
|
||||
$thetac = 7;
|
||||
$radius = 16;
|
||||
$circles = 20;
|
||||
$points = 32;
|
||||
for ($i = 0;$i < ($circles * $points) - 1;$i++)
|
||||
{
|
||||
$theta = $theta + $thetac;
|
||||
$rad = $radius * ($i / $points);
|
||||
$x = ($rad * cos($theta)) + $x_axis;
|
||||
$y = ($rad * sin($theta)) + $y_axis;
|
||||
$theta = $theta + $thetac;
|
||||
$rad1 = $radius * (($i + 1) / $points);
|
||||
$x1 = ($rad1 * cos($theta)) + $x_axis;
|
||||
$y1 = ($rad1 * sin($theta)) + $y_axis;
|
||||
imageline($im, $x, $y, $x1, $y1, $grid_color);
|
||||
$theta = $theta - $thetac;
|
||||
}
|
||||
if (function_exists('imagecreatetruecolor')) {
|
||||
$im = imagecreatetruecolor($img_width, $img_height);
|
||||
} else {
|
||||
$im = imagecreate($img_width, $img_height);
|
||||
}
|
||||
|
||||
// -----------------------------------
|
||||
// Write the text
|
||||
// -----------------------------------
|
||||
// Assign colors
|
||||
|
||||
// -----------------------------------
|
||||
// -----------------------------------
|
||||
|
||||
$use_font = ($font_path != '' AND file_exists($font_path) AND function_exists('imagettftext')) ? TRUE : FALSE;
|
||||
|
||||
if ($use_font == FALSE)
|
||||
{
|
||||
$font_size = 5;
|
||||
$x = rand(0, $img_width / ($length / 3));
|
||||
$y = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
$font_size = 16;
|
||||
$x = rand(0, $img_width / ($length / 1.5));
|
||||
$y = $font_size + 2;
|
||||
}
|
||||
for ($i = 0;$i < strlen($word);$i++)
|
||||
{
|
||||
|
||||
if ($use_font == FALSE)
|
||||
{
|
||||
$y = rand(0, $img_height / 2);
|
||||
imagestring($im, $font_size, $x, $y, substr($word, $i, 1) , $text_color);
|
||||
$x+= ($font_size * 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
$y = rand($img_height / 2, $img_height - 3);
|
||||
imagettftext($im, $font_size, $angle, $x, $y, $text_color, $font_path, substr($word, $i, 1));
|
||||
$x+= $font_size;
|
||||
}
|
||||
}
|
||||
$bg_color = imagecolorallocate($im, 255, 255, 255);
|
||||
$border_color = imagecolorallocate($im, 153, 102, 102);
|
||||
$text_color = imagecolorallocate($im, 204, 153, 153);
|
||||
$grid_color = imagecolorallocate($im, 255, 182, 182);
|
||||
$shadow_color = imagecolorallocate($im, 255, 240, 240);
|
||||
|
||||
// -----------------------------------
|
||||
// Create the border
|
||||
// -----------------------------------
|
||||
// Create the rectangle
|
||||
|
||||
// -----------------------------------
|
||||
// -----------------------------------
|
||||
|
||||
imagerectangle($im, 0, 0, $img_width - 1, $img_height - 1, $border_color);
|
||||
ImageFilledRectangle($im, 0, 0, $img_width, $img_height, $bg_color);
|
||||
|
||||
// -----------------------------------
|
||||
// Generate the image
|
||||
// -----------------------------------
|
||||
// Create the spiral pattern
|
||||
|
||||
// -----------------------------------
|
||||
// -----------------------------------
|
||||
|
||||
$img_name = $now . '.jpg';
|
||||
ImageJPEG($im, $img_path . $img_name);
|
||||
$img = "<img src=\"$img_url$img_name\" width=\"$img_width\" height=\"$img_height\" style=\"border:0;\" alt=\" \" />";
|
||||
ImageDestroy($im);
|
||||
return array(
|
||||
'word' => $word,
|
||||
'time' => $now,
|
||||
'image' => $img
|
||||
);
|
||||
}
|
||||
$theta = 1;
|
||||
$thetac = 7;
|
||||
$radius = 16;
|
||||
$circles = 20;
|
||||
$points = 32;
|
||||
for ($i = 0; $i < ($circles * $points) - 1; $i++) {
|
||||
$theta = $theta + $thetac;
|
||||
$rad = $radius * ($i / $points);
|
||||
$x = ($rad * cos($theta)) + $x_axis;
|
||||
$y = ($rad * sin($theta)) + $y_axis;
|
||||
$theta = $theta + $thetac;
|
||||
$rad1 = $radius * (($i + 1) / $points);
|
||||
$x1 = ($rad1 * cos($theta)) + $x_axis;
|
||||
$y1 = ($rad1 * sin($theta)) + $y_axis;
|
||||
imageline($im, $x, $y, $x1, $y1, $grid_color);
|
||||
$theta = $theta - $thetac;
|
||||
}
|
||||
|
||||
// -----------------------------------
|
||||
// Write the text
|
||||
|
||||
// -----------------------------------
|
||||
|
||||
$use_font = ($font_path != '' and file_exists($font_path) and function_exists('imagettftext')) ? true : false;
|
||||
|
||||
if ($use_font == false) {
|
||||
$font_size = 5;
|
||||
$x = rand(0, $img_width / ($length / 3));
|
||||
$y = 0;
|
||||
} else {
|
||||
$font_size = 16;
|
||||
$x = rand(0, $img_width / ($length / 1.5));
|
||||
$y = $font_size + 2;
|
||||
}
|
||||
for ($i = 0; $i < strlen($word); $i++) {
|
||||
|
||||
if ($use_font == false) {
|
||||
$y = rand(0, $img_height / 2);
|
||||
imagestring($im, $font_size, $x, $y, substr($word, $i, 1), $text_color);
|
||||
$x += ($font_size * 2);
|
||||
} else {
|
||||
$y = rand($img_height / 2, $img_height - 3);
|
||||
imagettftext($im, $font_size, $angle, $x, $y, $text_color, $font_path, substr($word, $i, 1));
|
||||
$x += $font_size;
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------
|
||||
// Create the border
|
||||
|
||||
// -----------------------------------
|
||||
|
||||
imagerectangle($im, 0, 0, $img_width - 1, $img_height - 1, $border_color);
|
||||
|
||||
// -----------------------------------
|
||||
// Generate the image
|
||||
|
||||
// -----------------------------------
|
||||
|
||||
$img_name = $now . '.jpg';
|
||||
ImageJPEG($im, $img_path . $img_name);
|
||||
$img = "<img src=\"$img_url$img_name\" width=\"$img_width\" height=\"$img_height\" style=\"border:0;\" alt=\" \" />";
|
||||
ImageDestroy($im);
|
||||
return array(
|
||||
'word' => $word,
|
||||
'time' => $now,
|
||||
'image' => $img,
|
||||
);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Display CAPTCHA
|
||||
*
|
||||
* @access public
|
||||
* @return string
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
|
||||
if (!function_exists('display_captcha'))
|
||||
{
|
||||
|
||||
function display_captcha($word = '')
|
||||
{
|
||||
$data = '';
|
||||
list($usec, $sec) = explode(" ", microtime());
|
||||
$now = ((float)$usec + (float)$sec);
|
||||
$defaults = array(
|
||||
'word' => $word,
|
||||
'img_path' => '',
|
||||
'img_url' => '',
|
||||
'img_width' => '180',
|
||||
'img_height' => '40',
|
||||
'font_path' => '',
|
||||
'expiration' => 7200
|
||||
);
|
||||
foreach ($defaults as $key => $val)
|
||||
{
|
||||
|
||||
if (!is_array($data))
|
||||
{
|
||||
|
||||
if (!isset($$key) OR $$key == '')
|
||||
{
|
||||
$$key = $val;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$$key = (!isset($data[$key])) ? $val : $data[$key];
|
||||
}
|
||||
}
|
||||
|
||||
if (!extension_loaded('gd'))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
if (!function_exists('display_captcha')) {
|
||||
|
||||
// -----------------------------------
|
||||
// Do we have a "word" yet?
|
||||
function display_captcha($word = '')
|
||||
{
|
||||
$data = '';
|
||||
list($usec, $sec) = explode(" ", microtime());
|
||||
$now = ((float) $usec + (float) $sec);
|
||||
$defaults = array(
|
||||
'word' => $word,
|
||||
'img_path' => '',
|
||||
'img_url' => '',
|
||||
'img_width' => '180',
|
||||
'img_height' => '40',
|
||||
'font_path' => '',
|
||||
'expiration' => 7200,
|
||||
);
|
||||
foreach ($defaults as $key => $val) {
|
||||
|
||||
// -----------------------------------
|
||||
if (!is_array($data)) {
|
||||
|
||||
|
||||
if ($word == '')
|
||||
{
|
||||
$pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||
$str = '';
|
||||
for ($i = 0;$i < 4;$i++)
|
||||
{
|
||||
$str.= substr($pool, mt_rand(0, strlen($pool) - 1) , 1);
|
||||
}
|
||||
$word = $str;
|
||||
}
|
||||
if (!isset($$key) or $$key == '') {
|
||||
$$key = $val;
|
||||
}
|
||||
} else {
|
||||
$$key = (!isset($data[$key])) ? $val : $data[$key];
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------
|
||||
// Determine angle and position
|
||||
if (!extension_loaded('gd')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// -----------------------------------
|
||||
// -----------------------------------
|
||||
// Do we have a "word" yet?
|
||||
|
||||
$length = strlen($word);
|
||||
$angle = ($length >= 6) ? mt_rand(-($length - 6) , ($length - 6)) : 0;
|
||||
$angle = 10;
|
||||
$x_axis = mt_rand(6, (360 / $length) - 16);
|
||||
$y_axis = ($angle >= 0) ? mt_rand($img_height, $img_width) : mt_rand(6, $img_height);
|
||||
// -----------------------------------
|
||||
|
||||
// -----------------------------------
|
||||
// Create image
|
||||
if ($word == '') {
|
||||
$pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||
$str = '';
|
||||
for ($i = 0; $i < 4; $i++) {
|
||||
$str .= substr($pool, mt_rand(0, strlen($pool) - 1), 1);
|
||||
}
|
||||
$word = $str;
|
||||
}
|
||||
|
||||
// -----------------------------------
|
||||
// -----------------------------------
|
||||
// Determine angle and position
|
||||
|
||||
// PHP.net recommends imagecreatetruecolor(), but it isn't always available
|
||||
// -----------------------------------
|
||||
|
||||
|
||||
if (function_exists('imagecreatetruecolor'))
|
||||
{
|
||||
$im = imagecreatetruecolor($img_width, $img_height);
|
||||
}
|
||||
else
|
||||
{
|
||||
$im = imagecreate($img_width, $img_height);
|
||||
}
|
||||
$length = strlen($word);
|
||||
$angle = ($length >= 6) ? mt_rand(-($length - 6), ($length - 6)) : 0;
|
||||
$angle = 10;
|
||||
$x_axis = mt_rand(6, (360 / $length) - 16);
|
||||
$y_axis = ($angle >= 0) ? mt_rand($img_height, $img_width) : mt_rand(6, $img_height);
|
||||
|
||||
// -----------------------------------
|
||||
// Assign colors
|
||||
// -----------------------------------
|
||||
// Create image
|
||||
|
||||
// -----------------------------------
|
||||
// -----------------------------------
|
||||
|
||||
|
||||
function b()
|
||||
{
|
||||
return mt_rand(240, 255);
|
||||
}
|
||||
$bg_color = imagecolorallocate($im, b() , b() , b());
|
||||
$border_color = imagecolorallocate($im, 153, 102, 102);
|
||||
$text_color = imagecolorallocate($im, 204, 153, 153);
|
||||
$grid_color = imagecolorallocate($im, 255, 182, 182);
|
||||
$shadow_color = imagecolorallocate($im, 255, 240, 240);
|
||||
// PHP.net recommends imagecreatetruecolor(), but it isn't always available
|
||||
|
||||
// -----------------------------------
|
||||
// Create the rectangle
|
||||
if (function_exists('imagecreatetruecolor')) {
|
||||
$im = imagecreatetruecolor($img_width, $img_height);
|
||||
} else {
|
||||
$im = imagecreate($img_width, $img_height);
|
||||
}
|
||||
|
||||
// -----------------------------------
|
||||
// -----------------------------------
|
||||
// Assign colors
|
||||
|
||||
ImageFilledRectangle($im, 0, 0, $img_width, $img_height, $bg_color);
|
||||
// -----------------------------------
|
||||
|
||||
// -----------------------------------
|
||||
// Create the spiral pattern
|
||||
function b()
|
||||
{
|
||||
return mt_rand(240, 255);
|
||||
}
|
||||
$bg_color = imagecolorallocate($im, b(), b(), b());
|
||||
$border_color = imagecolorallocate($im, 153, 102, 102);
|
||||
$text_color = imagecolorallocate($im, 204, 153, 153);
|
||||
$grid_color = imagecolorallocate($im, 255, 182, 182);
|
||||
$shadow_color = imagecolorallocate($im, 255, 240, 240);
|
||||
|
||||
// -----------------------------------
|
||||
// -----------------------------------
|
||||
// Create the rectangle
|
||||
|
||||
$theta = 1;
|
||||
$thetac = 7;
|
||||
$radius = 16;
|
||||
$circles = 20;
|
||||
$points = 32;
|
||||
for ($i = 0;$i < ($circles * $points) - 1;$i++)
|
||||
{
|
||||
$theta = $theta + $thetac;
|
||||
$rad = $radius * ($i / $points);
|
||||
$x = ($rad * cos($theta)) + $x_axis;
|
||||
$y = ($rad * sin($theta)) + $y_axis;
|
||||
$theta = $theta + $thetac;
|
||||
$rad1 = $radius * (($i + 1) / $points);
|
||||
$x1 = ($rad1 * cos($theta)) + $x_axis;
|
||||
$y1 = ($rad1 * sin($theta)) + $y_axis;
|
||||
imageline($im, $x, $y, $x1, $y1, $grid_color);
|
||||
$theta = $theta - $thetac;
|
||||
}
|
||||
// -----------------------------------
|
||||
|
||||
// -----------------------------------
|
||||
// Write the text
|
||||
ImageFilledRectangle($im, 0, 0, $img_width, $img_height, $bg_color);
|
||||
|
||||
// -----------------------------------
|
||||
// -----------------------------------
|
||||
// Create the spiral pattern
|
||||
|
||||
//get random font
|
||||
// -----------------------------------
|
||||
|
||||
$fn = explode(',', '4,5,6,8,16,17,19,24,26');
|
||||
$f = mt_rand(0, count($fn) - 1);
|
||||
$font_path = './static/fonts/font' . $fn[$f] . '.ttf';
|
||||
$use_font = ($font_path != '' AND file_exists($font_path) AND function_exists('imagettftext')) ? TRUE : FALSE;
|
||||
|
||||
if ($use_font == FALSE)
|
||||
{
|
||||
$font_size = 5;
|
||||
$x = mt_rand(0, $img_width / ($length / 3));
|
||||
$y = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
$font_size = 16;
|
||||
$x = mt_rand(0, $img_width / ($length / 1.5));
|
||||
$y = $font_size + 2;
|
||||
}
|
||||
for ($i = 0;$i < strlen($word);$i++)
|
||||
{
|
||||
|
||||
if ($use_font == FALSE)
|
||||
{
|
||||
$y = mt_rand(0, $img_height / 2);
|
||||
imagestring($im, $font_size, $x, $y, substr($word, $i, 1) , $text_color);
|
||||
$x+= ($font_size * 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
$y = mt_rand($img_height / 2, $img_height - 3);
|
||||
imagettftext($im, $font_size, $angle, $x, $y, $text_color, $font_path, substr($word, $i, 1));
|
||||
$x+= $font_size;
|
||||
}
|
||||
}
|
||||
$theta = 1;
|
||||
$thetac = 7;
|
||||
$radius = 16;
|
||||
$circles = 20;
|
||||
$points = 32;
|
||||
for ($i = 0; $i < ($circles * $points) - 1; $i++) {
|
||||
$theta = $theta + $thetac;
|
||||
$rad = $radius * ($i / $points);
|
||||
$x = ($rad * cos($theta)) + $x_axis;
|
||||
$y = ($rad * sin($theta)) + $y_axis;
|
||||
$theta = $theta + $thetac;
|
||||
$rad1 = $radius * (($i + 1) / $points);
|
||||
$x1 = ($rad1 * cos($theta)) + $x_axis;
|
||||
$y1 = ($rad1 * sin($theta)) + $y_axis;
|
||||
imageline($im, $x, $y, $x1, $y1, $grid_color);
|
||||
$theta = $theta - $thetac;
|
||||
}
|
||||
|
||||
// -----------------------------------
|
||||
// Create the border
|
||||
// -----------------------------------
|
||||
// Write the text
|
||||
|
||||
// -----------------------------------
|
||||
// -----------------------------------
|
||||
|
||||
imagerectangle($im, 0, 0, $img_width - 1, $img_height - 1, $border_color);
|
||||
//get random font
|
||||
|
||||
// -----------------------------------
|
||||
// Generate the image
|
||||
$fn = explode(',', '4,5,6,8,16,17,19,24,26');
|
||||
$f = mt_rand(0, count($fn) - 1);
|
||||
$font_path = './static/fonts/font' . $fn[$f] . '.ttf';
|
||||
$use_font = ($font_path != '' and file_exists($font_path) and function_exists('imagettftext')) ? true : false;
|
||||
|
||||
// -----------------------------------
|
||||
if ($use_font == false) {
|
||||
$font_size = 5;
|
||||
$x = mt_rand(0, $img_width / ($length / 3));
|
||||
$y = 0;
|
||||
} else {
|
||||
$font_size = 16;
|
||||
$x = mt_rand(0, $img_width / ($length / 1.5));
|
||||
$y = $font_size + 2;
|
||||
}
|
||||
for ($i = 0; $i < strlen($word); $i++) {
|
||||
|
||||
$img_name = $now . '.jpg';
|
||||
echo ImageJPEG($im);
|
||||
ImageDestroy($im);
|
||||
}
|
||||
if ($use_font == false) {
|
||||
$y = mt_rand(0, $img_height / 2);
|
||||
imagestring($im, $font_size, $x, $y, substr($word, $i, 1), $text_color);
|
||||
$x += ($font_size * 2);
|
||||
} else {
|
||||
$y = mt_rand($img_height / 2, $img_height - 3);
|
||||
imagettftext($im, $font_size, $angle, $x, $y, $text_color, $font_path, substr($word, $i, 1));
|
||||
$x += $font_size;
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------
|
||||
// Create the border
|
||||
|
||||
// -----------------------------------
|
||||
|
||||
imagerectangle($im, 0, 0, $img_width - 1, $img_height - 1, $border_color);
|
||||
|
||||
// -----------------------------------
|
||||
// Generate the image
|
||||
|
||||
// -----------------------------------
|
||||
|
||||
$img_name = $now . '.jpg';
|
||||
echo ImageJPEG($im);
|
||||
ImageDestroy($im);
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
/* End of file captcha_helper.php */
|
||||
|
||||
|
||||
/* Location: ./system/heleprs/captcha_helper.php */
|
||||
|
@ -1,58 +1,46 @@
|
||||
<?php
|
||||
/**
|
||||
* Class and Function List:
|
||||
* Function list:
|
||||
* - json_encode()
|
||||
* Classes list:
|
||||
*/
|
||||
//If you are on a version of PHP before 5.2, this might help:
|
||||
|
||||
if (!function_exists('json_encode'))
|
||||
{
|
||||
|
||||
function json_encode($data)
|
||||
{
|
||||
switch ($type = gettype($data))
|
||||
{
|
||||
case 'NULL':
|
||||
return 'null';
|
||||
case 'boolean':
|
||||
return ($data ? 'true' : 'false');
|
||||
case 'integer':
|
||||
case 'double':
|
||||
case 'float':
|
||||
return $data;
|
||||
case 'string':
|
||||
return '"' . addslashes($data) . '"';
|
||||
case 'object':
|
||||
$data = get_object_vars($data);
|
||||
case 'array':
|
||||
$output_index_count = 0;
|
||||
$output_indexed = array();
|
||||
$output_associative = array();
|
||||
foreach ($data as $key => $value)
|
||||
{
|
||||
$output_indexed[] = json_encode($value);
|
||||
$output_associative[] = json_encode($key) . ':' . json_encode($value);
|
||||
|
||||
if ($output_index_count !== NULL && $output_index_count++ !== $key)
|
||||
{
|
||||
$output_index_count = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if ($output_index_count !== NULL)
|
||||
{
|
||||
return '[' . implode(',', $output_indexed) . ']';
|
||||
}
|
||||
else
|
||||
{
|
||||
return '{' . implode(',', $output_associative) . '}';
|
||||
}
|
||||
default:
|
||||
return ''; // Not supported
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
//If you are on a version of PHP before 5.2, this might help:
|
||||
if (!function_exists('json_encode')) {
|
||||
|
||||
function json_encode($data)
|
||||
{
|
||||
switch ($type = gettype($data)) {
|
||||
case 'NULL':
|
||||
return 'null';
|
||||
case 'boolean':
|
||||
return ($data ? 'true' : 'false');
|
||||
case 'integer':
|
||||
case 'double':
|
||||
case 'float':
|
||||
return $data;
|
||||
case 'string':
|
||||
return '"' . addslashes($data) . '"';
|
||||
case 'object':
|
||||
$data = get_object_vars($data);
|
||||
case 'array':
|
||||
$output_index_count = 0;
|
||||
$output_indexed = array();
|
||||
$output_associative = array();
|
||||
foreach ($data as $key => $value) {
|
||||
$output_indexed[] = json_encode($value);
|
||||
$output_associative[] = json_encode($key) . ':' . json_encode($value);
|
||||
|
||||
if ($output_index_count !== null && $output_index_count++ !== $key) {
|
||||
$output_index_count = null;
|
||||
}
|
||||
}
|
||||
|
||||
if ($output_index_count !== null) {
|
||||
return '[' . implode(',', $output_indexed) . ']';
|
||||
} else {
|
||||
return '{' . implode(',', $output_associative) . '}';
|
||||
}
|
||||
default:
|
||||
return ''; // Not supported
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,24 +1,18 @@
|
||||
<?php
|
||||
/**
|
||||
* Class and Function List:
|
||||
* Function list:
|
||||
* - lang()
|
||||
* - random_expire_msg()
|
||||
* Classes list:
|
||||
*/
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
/**
|
||||
* CodeIgniter
|
||||
*
|
||||
* An open source application development framework for PHP 5.1.6 or newer
|
||||
*
|
||||
* @package CodeIgniter
|
||||
* @author ExpressionEngine Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2011, EllisLab, Inc.
|
||||
* @license http://codeigniter.com/user_guide/license.html
|
||||
* @link http://codeigniter.com
|
||||
* @since Version 1.0
|
||||
* @package CodeIgniter
|
||||
* @author ExpressionEngine Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2011, EllisLab, Inc.
|
||||
* @license http://codeigniter.com/user_guide/license.html
|
||||
* @link http://codeigniter.com
|
||||
* @since Version 1.0
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
@ -27,11 +21,11 @@ if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
/**
|
||||
* CodeIgniter Language Helpers
|
||||
*
|
||||
* @package CodeIgniter
|
||||
* @subpackage Helpers
|
||||
* @category Helpers
|
||||
* @author ExpressionEngine Dev Team
|
||||
* @link http://codeigniter.com/user_guide/helpers/language_helper.html
|
||||
* @package CodeIgniter
|
||||
* @subpackage Helpers
|
||||
* @category Helpers
|
||||
* @author ExpressionEngine Dev Team
|
||||
* @link http://codeigniter.com/user_guide/helpers/language_helper.html
|
||||
*/
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
@ -41,49 +35,45 @@ if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
*
|
||||
* Fetches a language variable and optionally outputs a form label
|
||||
*
|
||||
* @access public
|
||||
* @param string the language line
|
||||
* @param string the id of the form element
|
||||
* @return string
|
||||
* @access public
|
||||
* @param string the language line
|
||||
* @param string the id of the form element
|
||||
* @return string
|
||||
*/
|
||||
|
||||
if (!function_exists('lang'))
|
||||
{
|
||||
|
||||
function lang($index, $id = '')
|
||||
{
|
||||
$CI = & get_instance();
|
||||
$line = $CI->lang->line($index);
|
||||
|
||||
if ($id != '')
|
||||
{
|
||||
$line = '<label for="' . $id . '">' . $line . "</label>";
|
||||
}
|
||||
return ($line != '' ? $line : '[' . $index . ']');
|
||||
}
|
||||
if (!function_exists('lang')) {
|
||||
|
||||
function lang($index, $id = '')
|
||||
{
|
||||
$CI = &get_instance();
|
||||
$line = $CI->lang->line($index);
|
||||
|
||||
if ($id != '') {
|
||||
$line = '<label for="' . $id . '">' . $line . "</label>";
|
||||
}
|
||||
return ($line != '' ? $line : '[' . $index . ']');
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Random expire msg
|
||||
*
|
||||
* Displays a random expire message
|
||||
*
|
||||
* @access public
|
||||
* @return string
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
|
||||
if (!function_exists('random_expire_msg'))
|
||||
{
|
||||
|
||||
function random_expire_msg()
|
||||
{
|
||||
$CI = & get_instance();
|
||||
$expires = $CI->config->item('expires');
|
||||
return $expires[rand(0, sizeof($expires) - 1) ];
|
||||
}
|
||||
if (!function_exists('random_expire_msg')) {
|
||||
|
||||
function random_expire_msg()
|
||||
{
|
||||
$CI = &get_instance();
|
||||
$expires = $CI->config->item('expires');
|
||||
return $expires[rand(0, sizeof($expires) - 1)];
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
/* End of file language_helper.php */
|
||||
|
||||
|
||||
/* Location: ./system/helpers/language_helper.php */
|
||||
|
@ -44,18 +44,18 @@ define("RECAPTCHA_VERIFY_SERVER", "www.google.com");
|
||||
* @param $data - array of string elements to be encoded
|
||||
* @return string - encoded request
|
||||
*/
|
||||
function _recaptcha_qsencode ($data) {
|
||||
$req = "";
|
||||
foreach ( $data as $key => $value )
|
||||
$req .= $key . '=' . urlencode( stripslashes($value) ) . '&';
|
||||
function _recaptcha_qsencode($data)
|
||||
{
|
||||
$req = "";
|
||||
foreach ($data as $key => $value) {
|
||||
$req .= $key . '=' . urlencode(stripslashes($value)) . '&';
|
||||
}
|
||||
|
||||
// Cut the last '&'
|
||||
$req=substr($req,0,strlen($req)-1);
|
||||
return $req;
|
||||
// Cut the last '&'
|
||||
$req = substr($req, 0, strlen($req) - 1);
|
||||
return $req;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Submits an HTTP POST to a reCAPTCHA server
|
||||
* @param string $host
|
||||
@ -64,35 +64,36 @@ function _recaptcha_qsencode ($data) {
|
||||
* @param int port
|
||||
* @return array response
|
||||
*/
|
||||
function _recaptcha_http_post($host, $path, $data, $port = 80) {
|
||||
function _recaptcha_http_post($host, $path, $data, $port = 80)
|
||||
{
|
||||
|
||||
$req = _recaptcha_qsencode ($data);
|
||||
$req = _recaptcha_qsencode($data);
|
||||
|
||||
$http_request = "POST $path HTTP/1.0\r\n";
|
||||
$http_request .= "Host: $host\r\n";
|
||||
$http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n";
|
||||
$http_request .= "Content-Length: " . strlen($req) . "\r\n";
|
||||
$http_request .= "User-Agent: reCAPTCHA/PHP\r\n";
|
||||
$http_request .= "\r\n";
|
||||
$http_request .= $req;
|
||||
$http_request = "POST $path HTTP/1.0\r\n";
|
||||
$http_request .= "Host: $host\r\n";
|
||||
$http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n";
|
||||
$http_request .= "Content-Length: " . strlen($req) . "\r\n";
|
||||
$http_request .= "User-Agent: reCAPTCHA/PHP\r\n";
|
||||
$http_request .= "\r\n";
|
||||
$http_request .= $req;
|
||||
|
||||
$response = '';
|
||||
if( false == ( $fs = @fsockopen($host, $port, $errno, $errstr, 10) ) ) {
|
||||
die ('Could not open socket');
|
||||
}
|
||||
$response = '';
|
||||
if (false == ($fs = @fsockopen($host, $port, $errno, $errstr, 10))) {
|
||||
die('Could not open socket');
|
||||
}
|
||||
|
||||
fwrite($fs, $http_request);
|
||||
fwrite($fs, $http_request);
|
||||
|
||||
while ( !feof($fs) )
|
||||
$response .= fgets($fs, 1160); // One TCP-IP packet
|
||||
fclose($fs);
|
||||
$response = explode("\r\n\r\n", $response, 2);
|
||||
while (!feof($fs)) {
|
||||
$response .= fgets($fs, 1160);
|
||||
}
|
||||
// One TCP-IP packet
|
||||
fclose($fs);
|
||||
$response = explode("\r\n\r\n", $response, 2);
|
||||
|
||||
return $response;
|
||||
return $response;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Gets the challenge HTML (javascript and non-javascript version).
|
||||
* This is called from the browser, and the resulting reCAPTCHA HTML widget
|
||||
@ -103,96 +104,89 @@ function _recaptcha_http_post($host, $path, $data, $port = 80) {
|
||||
|
||||
* @return string - The HTML to be embedded in the user's form.
|
||||
*/
|
||||
function recaptcha_get_html ($pubkey, $error = null, $use_ssl = false)
|
||||
function recaptcha_get_html($pubkey, $error = null, $use_ssl = false)
|
||||
{
|
||||
if ($pubkey == null || $pubkey == '') {
|
||||
die ("To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>");
|
||||
}
|
||||
|
||||
if ($use_ssl) {
|
||||
$server = RECAPTCHA_API_SECURE_SERVER;
|
||||
} else {
|
||||
$server = RECAPTCHA_API_SERVER;
|
||||
}
|
||||
if ($pubkey == null || $pubkey == '') {
|
||||
die("To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>");
|
||||
}
|
||||
|
||||
$errorpart = "";
|
||||
if ($error) {
|
||||
$errorpart = "&error=" . $error;
|
||||
}
|
||||
return '<script src=\'https://www.google.com/recaptcha/api.js\'></script>
|
||||
if ($use_ssl) {
|
||||
$server = RECAPTCHA_API_SECURE_SERVER;
|
||||
} else {
|
||||
$server = RECAPTCHA_API_SERVER;
|
||||
}
|
||||
|
||||
$errorpart = "";
|
||||
if ($error) {
|
||||
$errorpart = "&error=" . $error;
|
||||
}
|
||||
return '<script src=\'https://www.google.com/recaptcha/api.js\'></script>
|
||||
<div class="g-recaptcha" data-sitekey="' . $pubkey . '"></div>';
|
||||
|
||||
/*return '<script type="text/javascript" src="'. $server . '/challenge?k=' . $pubkey . $errorpart . '"></script>
|
||||
|
||||
/*return '<script type="text/javascript" src="'. $server . '/challenge?k=' . $pubkey . $errorpart . '"></script>
|
||||
|
||||
<noscript>
|
||||
<iframe src="'. $server . '/noscript?k=' . $pubkey . $errorpart . '" height="300" width="500" frameborder="0"></iframe><br/>
|
||||
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
|
||||
<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
|
||||
</noscript>';*/
|
||||
<noscript>
|
||||
<iframe src="'. $server . '/noscript?k=' . $pubkey . $errorpart . '" height="300" width="500" frameborder="0"></iframe><br/>
|
||||
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
|
||||
<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
|
||||
</noscript>';*/
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* A ReCaptchaResponse is returned from recaptcha_check_answer()
|
||||
*/
|
||||
class ReCaptchaResponse {
|
||||
var $is_valid;
|
||||
var $error;
|
||||
class ReCaptchaResponse
|
||||
{
|
||||
public $is_valid;
|
||||
public $error;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Calls an HTTP POST function to verify if the user's guess was correct
|
||||
* @param string $privkey
|
||||
* @param string $remoteip
|
||||
* @param string $challenge
|
||||
* @param string $response
|
||||
* @param array $extra_params an array of extra variables to post to the server
|
||||
* @return ReCaptchaResponse
|
||||
*/
|
||||
function recaptcha_check_answer ($privkey, $remoteip, $challenge, $response, $extra_params = array())
|
||||
* Calls an HTTP POST function to verify if the user's guess was correct
|
||||
* @param string $privkey
|
||||
* @param string $remoteip
|
||||
* @param string $challenge
|
||||
* @param string $response
|
||||
* @param array $extra_params an array of extra variables to post to the server
|
||||
* @return ReCaptchaResponse
|
||||
*/
|
||||
function recaptcha_check_answer($privkey, $remoteip, $challenge, $response, $extra_params = array())
|
||||
{
|
||||
if ($privkey == null || $privkey == '') {
|
||||
die ("To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>");
|
||||
}
|
||||
if ($privkey == null || $privkey == '') {
|
||||
die("To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>");
|
||||
}
|
||||
|
||||
if ($remoteip == null || $remoteip == '') {
|
||||
die ("For security reasons, you must pass the remote ip to reCAPTCHA");
|
||||
}
|
||||
if ($remoteip == null || $remoteip == '') {
|
||||
die("For security reasons, you must pass the remote ip to reCAPTCHA");
|
||||
}
|
||||
|
||||
|
||||
|
||||
//discard spam submissions
|
||||
if ($challenge == null || strlen($challenge) == 0 || $response == null || strlen($response) == 0) {
|
||||
$recaptcha_response = new ReCaptchaResponse();
|
||||
$recaptcha_response->is_valid = false;
|
||||
$recaptcha_response->error = 'incorrect-captcha-sol';
|
||||
return $recaptcha_response;
|
||||
}
|
||||
|
||||
$response = _recaptcha_http_post (RECAPTCHA_VERIFY_SERVER, "/recaptcha/api/verify",
|
||||
array (
|
||||
'privatekey' => $privkey,
|
||||
'remoteip' => $remoteip,
|
||||
'challenge' => $challenge,
|
||||
'response' => $response
|
||||
) + $extra_params
|
||||
);
|
||||
|
||||
$answers = explode ("\n", $response [1]);
|
||||
//discard spam submissions
|
||||
if ($challenge == null || strlen($challenge) == 0 || $response == null || strlen($response) == 0) {
|
||||
$recaptcha_response = new ReCaptchaResponse();
|
||||
|
||||
if (trim ($answers [0]) == 'true') {
|
||||
$recaptcha_response->is_valid = true;
|
||||
}
|
||||
else {
|
||||
$recaptcha_response->is_valid = false;
|
||||
$recaptcha_response->error = $answers [1];
|
||||
}
|
||||
$recaptcha_response->is_valid = false;
|
||||
$recaptcha_response->error = 'incorrect-captcha-sol';
|
||||
return $recaptcha_response;
|
||||
}
|
||||
|
||||
$response = _recaptcha_http_post(RECAPTCHA_VERIFY_SERVER, "/recaptcha/api/verify",
|
||||
array(
|
||||
'privatekey' => $privkey,
|
||||
'remoteip' => $remoteip,
|
||||
'challenge' => $challenge,
|
||||
'response' => $response,
|
||||
) + $extra_params
|
||||
);
|
||||
|
||||
$answers = explode("\n", $response[1]);
|
||||
$recaptcha_response = new ReCaptchaResponse();
|
||||
|
||||
if (trim($answers[0]) == 'true') {
|
||||
$recaptcha_response->is_valid = true;
|
||||
} else {
|
||||
$recaptcha_response->is_valid = false;
|
||||
$recaptcha_response->error = $answers[1];
|
||||
}
|
||||
return $recaptcha_response;
|
||||
|
||||
}
|
||||
|
||||
@ -203,45 +197,48 @@ function recaptcha_check_answer ($privkey, $remoteip, $challenge, $response, $ex
|
||||
* @param string $domain The domain where the page is hosted
|
||||
* @param string $appname The name of your application
|
||||
*/
|
||||
function recaptcha_get_signup_url ($domain = null, $appname = null) {
|
||||
return "https://www.google.com/recaptcha/admin/create?" . _recaptcha_qsencode (array ('domains' => $domain, 'app' => $appname));
|
||||
function recaptcha_get_signup_url($domain = null, $appname = null)
|
||||
{
|
||||
return "https://www.google.com/recaptcha/admin/create?" . _recaptcha_qsencode(array('domains' => $domain, 'app' => $appname));
|
||||
}
|
||||
|
||||
function _recaptcha_aes_pad($val) {
|
||||
$block_size = 16;
|
||||
$numpad = $block_size - (strlen ($val) % $block_size);
|
||||
return str_pad($val, strlen ($val) + $numpad, chr($numpad));
|
||||
function _recaptcha_aes_pad($val)
|
||||
{
|
||||
$block_size = 16;
|
||||
$numpad = $block_size - (strlen($val) % $block_size);
|
||||
return str_pad($val, strlen($val) + $numpad, chr($numpad));
|
||||
}
|
||||
|
||||
/* Mailhide related code */
|
||||
|
||||
function _recaptcha_aes_encrypt($val,$ky) {
|
||||
if (! function_exists ("mcrypt_encrypt")) {
|
||||
die ("To use reCAPTCHA Mailhide, you need to have the mcrypt php module installed.");
|
||||
}
|
||||
$mode=MCRYPT_MODE_CBC;
|
||||
$enc=MCRYPT_RIJNDAEL_128;
|
||||
$val=_recaptcha_aes_pad($val);
|
||||
return mcrypt_encrypt($enc, $ky, $val, $mode, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0");
|
||||
function _recaptcha_aes_encrypt($val, $ky)
|
||||
{
|
||||
if (!function_exists("mcrypt_encrypt")) {
|
||||
die("To use reCAPTCHA Mailhide, you need to have the mcrypt php module installed.");
|
||||
}
|
||||
$mode = MCRYPT_MODE_CBC;
|
||||
$enc = MCRYPT_RIJNDAEL_128;
|
||||
$val = _recaptcha_aes_pad($val);
|
||||
return mcrypt_encrypt($enc, $ky, $val, $mode, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0");
|
||||
}
|
||||
|
||||
|
||||
function _recaptcha_mailhide_urlbase64 ($x) {
|
||||
return strtr(base64_encode ($x), '+/', '-_');
|
||||
function _recaptcha_mailhide_urlbase64($x)
|
||||
{
|
||||
return strtr(base64_encode($x), '+/', '-_');
|
||||
}
|
||||
|
||||
/* gets the reCAPTCHA Mailhide url for a given email, public key and private key */
|
||||
function recaptcha_mailhide_url($pubkey, $privkey, $email) {
|
||||
if ($pubkey == '' || $pubkey == null || $privkey == "" || $privkey == null) {
|
||||
die ("To use reCAPTCHA Mailhide, you have to sign up for a public and private key, " .
|
||||
"you can do so at <a href='http://www.google.com/recaptcha/mailhide/apikey'>http://www.google.com/recaptcha/mailhide/apikey</a>");
|
||||
}
|
||||
|
||||
function recaptcha_mailhide_url($pubkey, $privkey, $email)
|
||||
{
|
||||
if ($pubkey == '' || $pubkey == null || $privkey == "" || $privkey == null) {
|
||||
die("To use reCAPTCHA Mailhide, you have to sign up for a public and private key, " .
|
||||
"you can do so at <a href='http://www.google.com/recaptcha/mailhide/apikey'>http://www.google.com/recaptcha/mailhide/apikey</a>");
|
||||
}
|
||||
|
||||
$ky = pack('H*', $privkey);
|
||||
$cryptmail = _recaptcha_aes_encrypt ($email, $ky);
|
||||
|
||||
return "https://www.google.com/recaptcha/mailhide/d?k=" . $pubkey . "&c=" . _recaptcha_mailhide_urlbase64 ($cryptmail);
|
||||
$ky = pack('H*', $privkey);
|
||||
$cryptmail = _recaptcha_aes_encrypt($email, $ky);
|
||||
|
||||
return "https://www.google.com/recaptcha/mailhide/d?k=" . $pubkey . "&c=" . _recaptcha_mailhide_urlbase64($cryptmail);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -249,17 +246,18 @@ function recaptcha_mailhide_url($pubkey, $privkey, $email) {
|
||||
* eg, given johndoe@example,com return ["john", "example.com"].
|
||||
* the email is then displayed as john...@example.com
|
||||
*/
|
||||
function _recaptcha_mailhide_email_parts ($email) {
|
||||
$arr = preg_split("/@/", $email );
|
||||
function _recaptcha_mailhide_email_parts($email)
|
||||
{
|
||||
$arr = preg_split("/@/", $email);
|
||||
|
||||
if (strlen ($arr[0]) <= 4) {
|
||||
$arr[0] = substr ($arr[0], 0, 1);
|
||||
} else if (strlen ($arr[0]) <= 6) {
|
||||
$arr[0] = substr ($arr[0], 0, 3);
|
||||
} else {
|
||||
$arr[0] = substr ($arr[0], 0, 4);
|
||||
}
|
||||
return $arr;
|
||||
if (strlen($arr[0]) <= 4) {
|
||||
$arr[0] = substr($arr[0], 0, 1);
|
||||
} else if (strlen($arr[0]) <= 6) {
|
||||
$arr[0] = substr($arr[0], 0, 3);
|
||||
} else {
|
||||
$arr[0] = substr($arr[0], 0, 4);
|
||||
}
|
||||
return $arr;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -268,14 +266,12 @@ function _recaptcha_mailhide_email_parts ($email) {
|
||||
*
|
||||
* http://www.google.com/recaptcha/mailhide/apikey
|
||||
*/
|
||||
function recaptcha_mailhide_html($pubkey, $privkey, $email) {
|
||||
$emailparts = _recaptcha_mailhide_email_parts ($email);
|
||||
$url = recaptcha_mailhide_url ($pubkey, $privkey, $email);
|
||||
|
||||
return htmlentities($emailparts[0]) . "<a href='" . htmlentities ($url) .
|
||||
"' onclick=\"window.open('" . htmlentities ($url) . "', '', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=500,height=300'); return false;\" title=\"Reveal this e-mail address\">...</a>@" . htmlentities ($emailparts [1]);
|
||||
function recaptcha_mailhide_html($pubkey, $privkey, $email)
|
||||
{
|
||||
$emailparts = _recaptcha_mailhide_email_parts($email);
|
||||
$url = recaptcha_mailhide_url($pubkey, $privkey, $email);
|
||||
|
||||
return htmlentities($emailparts[0]) . "<a href='" . htmlentities($url) .
|
||||
"' onclick=\"window.open('" . htmlentities($url) . "', '', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=500,height=300'); return false;\" title=\"Reveal this e-mail address\">...</a>@" . htmlentities($emailparts[1]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
@ -1,62 +1,49 @@
|
||||
<?php
|
||||
/**
|
||||
* Class and Function List:
|
||||
* Function list:
|
||||
* - __construct()
|
||||
* - valid_language()
|
||||
* - get_languages()
|
||||
* - code_to_description()
|
||||
* Classes list:
|
||||
* - Languages extends CI_Model
|
||||
*/
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
class Languages extends CI_Model
|
||||
{
|
||||
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->config('geshi_languages');
|
||||
$this->geshi_languages = $this->config->item('geshi_languages');
|
||||
$this->favorite_languages = $this->config->item('favorite_languages');
|
||||
|
||||
if ($this->favorite_languages === NULL)
|
||||
{
|
||||
$this->load->config('config');
|
||||
$this->favorite_languages = $this->config->item('favorite_languages');
|
||||
}
|
||||
}
|
||||
|
||||
function valid_language($lang)
|
||||
{
|
||||
return array_key_exists($lang, $this->geshi_languages);
|
||||
}
|
||||
|
||||
function get_languages()
|
||||
{
|
||||
$data = array();
|
||||
|
||||
if (is_array($this->favorite_languages))
|
||||
{
|
||||
foreach ($this->favorite_languages as $key)
|
||||
{
|
||||
$data[$key] = $this->geshi_languages[$key];
|
||||
}
|
||||
$data["0"] = "-----------------";
|
||||
}
|
||||
foreach ($this->geshi_languages as $key => $value)
|
||||
{
|
||||
|
||||
if (!in_array($key, $data))
|
||||
{
|
||||
$data[$key] = $value;
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
function code_to_description($code)
|
||||
{
|
||||
return $this->geshi_languages[$code];
|
||||
}
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->config('geshi_languages');
|
||||
$this->geshi_languages = $this->config->item('geshi_languages');
|
||||
$this->favorite_languages = $this->config->item('favorite_languages');
|
||||
|
||||
if ($this->favorite_languages === null) {
|
||||
$this->load->config('config');
|
||||
$this->favorite_languages = $this->config->item('favorite_languages');
|
||||
}
|
||||
}
|
||||
|
||||
public function valid_language($lang)
|
||||
{
|
||||
return array_key_exists($lang, $this->geshi_languages);
|
||||
}
|
||||
|
||||
public function get_languages()
|
||||
{
|
||||
$data = array();
|
||||
|
||||
if (is_array($this->favorite_languages)) {
|
||||
foreach ($this->favorite_languages as $key) {
|
||||
$data[$key] = $this->geshi_languages[$key];
|
||||
}
|
||||
$data["0"] = "-----------------";
|
||||
}
|
||||
foreach ($this->geshi_languages as $key => $value) {
|
||||
|
||||
if (!in_array($key, $data)) {
|
||||
$data[$key] = $value;
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function code_to_description($code)
|
||||
{
|
||||
return $this->geshi_languages[$code];
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
259
htdocs/index.php
259
htdocs/index.php
@ -26,13 +26,13 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
@ -53,7 +53,7 @@
|
||||
*
|
||||
* NOTE: If you change these, also change the error_reporting() code below
|
||||
*/
|
||||
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
|
||||
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------
|
||||
@ -63,30 +63,26 @@
|
||||
* Different environments will require different levels of error reporting.
|
||||
* By default development will show errors but testing and live will hide them.
|
||||
*/
|
||||
switch (ENVIRONMENT)
|
||||
{
|
||||
case 'development':
|
||||
error_reporting(-1);
|
||||
ini_set('display_errors', 1);
|
||||
break;
|
||||
switch (ENVIRONMENT) {
|
||||
case 'development':
|
||||
error_reporting(-1);
|
||||
ini_set('display_errors', 1);
|
||||
break;
|
||||
|
||||
case 'testing':
|
||||
case 'production':
|
||||
ini_set('display_errors', 0);
|
||||
if (version_compare(PHP_VERSION, '5.3', '>='))
|
||||
{
|
||||
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED);
|
||||
}
|
||||
else
|
||||
{
|
||||
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE);
|
||||
}
|
||||
break;
|
||||
case 'testing':
|
||||
case 'production':
|
||||
ini_set('display_errors', 0);
|
||||
if (version_compare(PHP_VERSION, '5.3', '>=')) {
|
||||
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED);
|
||||
} else {
|
||||
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
|
||||
echo 'The application environment is not set correctly.';
|
||||
exit(1); // EXIT_ERROR
|
||||
default:
|
||||
header('HTTP/1.1 503 Service Unavailable.', true, 503);
|
||||
echo 'The application environment is not set correctly.';
|
||||
exit(1); // EXIT_ERROR
|
||||
}
|
||||
|
||||
/*
|
||||
@ -97,7 +93,7 @@ switch (ENVIRONMENT)
|
||||
* This variable must contain the name of your "system" directory.
|
||||
* Set the path if it is not in the same directory as this file.
|
||||
*/
|
||||
$system_path = 'system';
|
||||
$system_path = 'system';
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------
|
||||
@ -114,7 +110,7 @@ switch (ENVIRONMENT)
|
||||
*
|
||||
* NO TRAILING SLASH!
|
||||
*/
|
||||
$application_folder = 'application';
|
||||
$application_folder = 'application';
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------
|
||||
@ -129,8 +125,7 @@ switch (ENVIRONMENT)
|
||||
*
|
||||
* NO TRAILING SLASH!
|
||||
*/
|
||||
$view_folder = 'themes/default/views';
|
||||
|
||||
$view_folder = 'themes/default/views';
|
||||
|
||||
/*
|
||||
* --------------------------------------------------------------------
|
||||
@ -151,16 +146,15 @@ switch (ENVIRONMENT)
|
||||
*
|
||||
* Un-comment the $routing array below to use this feature
|
||||
*/
|
||||
// The directory name, relative to the "controllers" directory. Leave blank
|
||||
// if your controller is not in a sub-directory within the "controllers" one
|
||||
// $routing['directory'] = '';
|
||||
// The directory name, relative to the "controllers" directory. Leave blank
|
||||
// if your controller is not in a sub-directory within the "controllers" one
|
||||
// $routing['directory'] = '';
|
||||
|
||||
// The controller class file name. Example: mycontroller
|
||||
// $routing['controller'] = '';
|
||||
|
||||
// The controller function you wish to be called.
|
||||
// $routing['function'] = '';
|
||||
// The controller class file name. Example: mycontroller
|
||||
// $routing['controller'] = '';
|
||||
|
||||
// The controller function you wish to be called.
|
||||
// $routing['function'] = '';
|
||||
|
||||
/*
|
||||
* -------------------------------------------------------------------
|
||||
@ -176,9 +170,7 @@ switch (ENVIRONMENT)
|
||||
*
|
||||
* Un-comment the $assign_to_config array below to use this feature
|
||||
*/
|
||||
// $assign_to_config['name_of_config_item'] = 'value of config item';
|
||||
|
||||
|
||||
// $assign_to_config['name_of_config_item'] = 'value of config item';
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
// END OF USER CONFIGURABLE SETTINGS. DO NOT EDIT BELOW THIS LINE
|
||||
@ -190,120 +182,97 @@ switch (ENVIRONMENT)
|
||||
* ---------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// Set the current directory correctly for CLI requests
|
||||
if (defined('STDIN'))
|
||||
{
|
||||
chdir(dirname(__FILE__));
|
||||
}
|
||||
// Set the current directory correctly for CLI requests
|
||||
if (defined('STDIN')) {
|
||||
chdir(dirname(__FILE__));
|
||||
}
|
||||
|
||||
if (($_temp = realpath($system_path)) !== FALSE)
|
||||
{
|
||||
$system_path = $_temp.DIRECTORY_SEPARATOR;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Ensure there's a trailing slash
|
||||
$system_path = strtr(
|
||||
rtrim($system_path, '/\\'),
|
||||
'/\\',
|
||||
DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR
|
||||
).DIRECTORY_SEPARATOR;
|
||||
}
|
||||
if (($_temp = realpath($system_path)) !== false) {
|
||||
$system_path = $_temp . DIRECTORY_SEPARATOR;
|
||||
} else {
|
||||
// Ensure there's a trailing slash
|
||||
$system_path = strtr(
|
||||
rtrim($system_path, '/\\'),
|
||||
'/\\',
|
||||
DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR
|
||||
) . DIRECTORY_SEPARATOR;
|
||||
}
|
||||
|
||||
// Is the system path correct?
|
||||
if ( ! is_dir($system_path))
|
||||
{
|
||||
header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
|
||||
echo 'Your system folder path does not appear to be set correctly. Please open the following file and correct this: '.pathinfo(__FILE__, PATHINFO_BASENAME);
|
||||
exit(3); // EXIT_CONFIG
|
||||
}
|
||||
// Is the system path correct?
|
||||
if (!is_dir($system_path)) {
|
||||
header('HTTP/1.1 503 Service Unavailable.', true, 503);
|
||||
echo 'Your system folder path does not appear to be set correctly. Please open the following file and correct this: ' . pathinfo(__FILE__, PATHINFO_BASENAME);
|
||||
exit(3); // EXIT_CONFIG
|
||||
}
|
||||
|
||||
/*
|
||||
* -------------------------------------------------------------------
|
||||
* Now that we know the path, set the main path constants
|
||||
* -------------------------------------------------------------------
|
||||
*/
|
||||
// The name of THIS file
|
||||
define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME));
|
||||
// The name of THIS file
|
||||
define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME));
|
||||
|
||||
// Path to the system directory
|
||||
define('BASEPATH', $system_path);
|
||||
// Path to the system directory
|
||||
define('BASEPATH', $system_path);
|
||||
|
||||
// Path to the front controller (this file) directory
|
||||
define('FCPATH', dirname(__FILE__).DIRECTORY_SEPARATOR);
|
||||
// Path to the front controller (this file) directory
|
||||
define('FCPATH', dirname(__FILE__) . DIRECTORY_SEPARATOR);
|
||||
|
||||
// Name of the "system" directory
|
||||
define('SYSDIR', basename(BASEPATH));
|
||||
// Name of the "system" directory
|
||||
define('SYSDIR', basename(BASEPATH));
|
||||
|
||||
// The path to the "application" directory
|
||||
if (is_dir($application_folder))
|
||||
{
|
||||
if (($_temp = realpath($application_folder)) !== FALSE)
|
||||
{
|
||||
$application_folder = $_temp;
|
||||
}
|
||||
else
|
||||
{
|
||||
$application_folder = strtr(
|
||||
rtrim($application_folder, '/\\'),
|
||||
'/\\',
|
||||
DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR
|
||||
);
|
||||
}
|
||||
}
|
||||
elseif (is_dir(BASEPATH.$application_folder.DIRECTORY_SEPARATOR))
|
||||
{
|
||||
$application_folder = BASEPATH.strtr(
|
||||
trim($application_folder, '/\\'),
|
||||
'/\\',
|
||||
DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
|
||||
echo 'Your application folder path does not appear to be set correctly. Please open the following file and correct this: '.SELF;
|
||||
exit(3); // EXIT_CONFIG
|
||||
}
|
||||
// The path to the "application" directory
|
||||
if (is_dir($application_folder)) {
|
||||
if (($_temp = realpath($application_folder)) !== false) {
|
||||
$application_folder = $_temp;
|
||||
} else {
|
||||
$application_folder = strtr(
|
||||
rtrim($application_folder, '/\\'),
|
||||
'/\\',
|
||||
DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR
|
||||
);
|
||||
}
|
||||
} elseif (is_dir(BASEPATH . $application_folder . DIRECTORY_SEPARATOR)) {
|
||||
$application_folder = BASEPATH . strtr(
|
||||
trim($application_folder, '/\\'),
|
||||
'/\\',
|
||||
DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR
|
||||
);
|
||||
} else {
|
||||
header('HTTP/1.1 503 Service Unavailable.', true, 503);
|
||||
echo 'Your application folder path does not appear to be set correctly. Please open the following file and correct this: ' . SELF;
|
||||
exit(3); // EXIT_CONFIG
|
||||
}
|
||||
|
||||
define('APPPATH', $application_folder.DIRECTORY_SEPARATOR);
|
||||
define('APPPATH', $application_folder . DIRECTORY_SEPARATOR);
|
||||
|
||||
// The path to the "views" directory
|
||||
if ( ! isset($view_folder[0]) && is_dir(APPPATH.'views'.DIRECTORY_SEPARATOR))
|
||||
{
|
||||
$view_folder = APPPATH.'views';
|
||||
}
|
||||
elseif (is_dir($view_folder))
|
||||
{
|
||||
if (($_temp = realpath($view_folder)) !== FALSE)
|
||||
{
|
||||
$view_folder = $_temp;
|
||||
}
|
||||
else
|
||||
{
|
||||
$view_folder = strtr(
|
||||
rtrim($view_folder, '/\\'),
|
||||
'/\\',
|
||||
DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR
|
||||
);
|
||||
}
|
||||
}
|
||||
elseif (is_dir(APPPATH.$view_folder.DIRECTORY_SEPARATOR))
|
||||
{
|
||||
$view_folder = APPPATH.strtr(
|
||||
trim($view_folder, '/\\'),
|
||||
'/\\',
|
||||
DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
|
||||
echo 'Your view folder path does not appear to be set correctly. Please open the following file and correct this: '.SELF;
|
||||
exit(3); // EXIT_CONFIG
|
||||
}
|
||||
// The path to the "views" directory
|
||||
if (!isset($view_folder[0]) && is_dir(APPPATH . 'views' . DIRECTORY_SEPARATOR)) {
|
||||
$view_folder = APPPATH . 'views';
|
||||
} elseif (is_dir($view_folder)) {
|
||||
if (($_temp = realpath($view_folder)) !== false) {
|
||||
$view_folder = $_temp;
|
||||
} else {
|
||||
$view_folder = strtr(
|
||||
rtrim($view_folder, '/\\'),
|
||||
'/\\',
|
||||
DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR
|
||||
);
|
||||
}
|
||||
} elseif (is_dir(APPPATH . $view_folder . DIRECTORY_SEPARATOR)) {
|
||||
$view_folder = APPPATH . strtr(
|
||||
trim($view_folder, '/\\'),
|
||||
'/\\',
|
||||
DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR
|
||||
);
|
||||
} else {
|
||||
header('HTTP/1.1 503 Service Unavailable.', true, 503);
|
||||
echo 'Your view folder path does not appear to be set correctly. Please open the following file and correct this: ' . SELF;
|
||||
exit(3); // EXIT_CONFIG
|
||||
}
|
||||
|
||||
define('VIEWPATH', $view_folder.DIRECTORY_SEPARATOR);
|
||||
define('VIEWPATH', $view_folder . DIRECTORY_SEPARATOR);
|
||||
|
||||
/*
|
||||
* --------------------------------------------------------------------
|
||||
@ -312,4 +281,4 @@ switch (ENVIRONMENT)
|
||||
*
|
||||
* And away we go...
|
||||
*/
|
||||
require_once BASEPATH.'core/CodeIgniter.php';
|
||||
require_once BASEPATH . 'core/CodeIgniter.php';
|
||||
|
@ -1,31 +1,31 @@
|
||||
var ST = window.ST || {};
|
||||
|
||||
ST.show_embed = function() {
|
||||
ST.show_embed = function () {
|
||||
$embed_field = $('#embed_field');
|
||||
var lang_showcode = $embed_field.data('lang-showcode');
|
||||
$embed_field.hide();
|
||||
$embed_field.after('<a id="show_code" href="#">' + lang_showcode + '</a>');
|
||||
$('#show_code').on('click', function(e) {
|
||||
$('#show_code').on('click', function (e) {
|
||||
e.preventDefault();
|
||||
$(this).hide();
|
||||
$embed_field.show().select();
|
||||
});
|
||||
$embed_field.on("blur", function() {
|
||||
$embed_field.on("blur", function () {
|
||||
$(this).hide();
|
||||
$('#show_code').show();
|
||||
});
|
||||
};
|
||||
|
||||
ST.spamadmin = function() {
|
||||
ST.spamadmin = function () {
|
||||
if ($('.content h1').text() == 'Spamadmin') {
|
||||
$('.content .hidden').show();
|
||||
$('.content .quick_remove').live('click', function(ev) {
|
||||
$('.content .quick_remove').live('click', function (ev) {
|
||||
var ip = $(ev.target).data('ip');
|
||||
if (confirm('Delete all pastes belonging to ' + ip + '?')) {
|
||||
$.post(base_url + 'spamadmin/' + ip, {
|
||||
'confirm_remove': 'yes',
|
||||
'block_ip': 1
|
||||
}, function() {
|
||||
}, function () {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
@ -34,42 +34,42 @@ ST.spamadmin = function() {
|
||||
}
|
||||
|
||||
// needed by .selectable
|
||||
$.fn.addBack = function(selector) {
|
||||
$.fn.addBack = function (selector) {
|
||||
return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));
|
||||
}
|
||||
|
||||
// $('.selectable>tbody').selectable({
|
||||
// filter: 'tr',
|
||||
// cancel: 'a',
|
||||
// stop: function() {
|
||||
// var $deletestack = $(".paste_deletestack");
|
||||
// var $input = $("input[name=pastes_to_delete]");
|
||||
// $('.inv').show();
|
||||
// $deletestack.empty();
|
||||
// $input.empty();
|
||||
// var res = [];
|
||||
// $(".ui-selected").each(function(i, el) {
|
||||
// var id = $('a', el).attr('href').split('view/')[1];
|
||||
// res.push(id);
|
||||
// });
|
||||
// $deletestack.text(res.join(' '));
|
||||
// $input.val(res.join(' '));
|
||||
// }
|
||||
// });
|
||||
$('.selectable>tbody').selectable({
|
||||
filter: 'tr',
|
||||
cancel: 'a',
|
||||
stop: function () {
|
||||
var $deletestack = $(".paste_deletestack");
|
||||
var $input = $("input[name=pastes_to_delete]");
|
||||
$('.inv').show();
|
||||
$deletestack.empty();
|
||||
$input.empty();
|
||||
var res = [];
|
||||
$(".ui-selected").each(function (i, el) {
|
||||
var id = $('a', el).attr('href').split('view/')[1];
|
||||
res.push(id);
|
||||
});
|
||||
$deletestack.text(res.join(' '));
|
||||
$input.val(res.join(' '));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
ST.line_highlighter = function() {
|
||||
ST.line_highlighter = function () {
|
||||
var org_href = window.location.href.replace(/(.*?)#(.*)/, '$1');
|
||||
var first_line = false;
|
||||
var second_line = false;
|
||||
|
||||
$('blockquote').on('mousedown', function(ev) {
|
||||
$('blockquote').on('mousedown', function (ev) {
|
||||
if (ev.which == 1) { // left mouse button has been clicked
|
||||
window.getSelection().removeAllRanges();
|
||||
}
|
||||
});
|
||||
|
||||
$('blockquote').on('click', 'li', function(ev) {
|
||||
$('blockquote').on('click', 'li', function (ev) {
|
||||
var $this = $(this);
|
||||
var li_num = ($this.index() + 1);
|
||||
if (ev.shiftKey == 1) {
|
||||
@ -100,7 +100,7 @@ ST.line_highlighter = function() {
|
||||
|
||||
}
|
||||
|
||||
ST.highlight_lines = function() {
|
||||
ST.highlight_lines = function () {
|
||||
var wloc = window.location.href;
|
||||
if (wloc.indexOf('#') > -1) {
|
||||
$('.container .CodeMirror li').css('background', 'none');
|
||||
@ -123,9 +123,9 @@ ST.highlight_lines = function() {
|
||||
}
|
||||
}
|
||||
|
||||
ST.crypto = function() {
|
||||
ST.crypto = function () {
|
||||
$('button[name=submit]').after(' <button type="submit" id="create_encrypted" class="btn-large btn-success"> <i class="icon-lock icon-white"></i> Create encrypted</button>');
|
||||
$('#create_encrypted').on('click', function() {
|
||||
$('#create_encrypted').on('click', function () {
|
||||
var $code = $('#code');
|
||||
|
||||
// encrypt the paste
|
||||
@ -139,20 +139,22 @@ ST.crypto = function() {
|
||||
|
||||
// post request via JS
|
||||
$.post(base_url + 'post_encrypted', {
|
||||
'name': $('#name').val(),
|
||||
'title': $('#title').val(),
|
||||
'code': encrypted,
|
||||
'lang': $('#lang').val(),
|
||||
'expire': $('#expire').val(),
|
||||
'captcha': $('#captcha').val(),
|
||||
'reply': $('input[name=reply]').val()
|
||||
},
|
||||
function(redirect_url) {
|
||||
'name': $('#name').val(),
|
||||
'title': $('#title').val(),
|
||||
'code': encrypted,
|
||||
'lang': $('#lang').val(),
|
||||
'expire': $('#expire').val(),
|
||||
'captcha': $('#captcha').val(),
|
||||
'reply': $('input[name=reply]').val()
|
||||
},
|
||||
function (redirect_url) {
|
||||
if (redirect_url.indexOf('E_CAPTCHA') > -1) {
|
||||
$('.container .message').remove();
|
||||
$('.container:eq(1)').prepend('<div class="message error"><div class="container">The captcha is incorrect.</div></div>');
|
||||
} else if (redirect_url.indexOf('invalid') > -1) {
|
||||
$('#create_encrypted').parent().html('<p>' + redirect_url + '#' + key + '</p>');
|
||||
// burn on read
|
||||
redirect_url = redirect_url.replace('" /><!-- behind you -->', '#' + key + '" />')
|
||||
$('#create_encrypted').parent().html('<p>' + redirect_url + '</p>');
|
||||
} else {
|
||||
window.location.href = base_url + redirect_url + '#' + key;
|
||||
}
|
||||
@ -201,13 +203,13 @@ ST.crypto = function() {
|
||||
}
|
||||
$('.meta .spacer:first').hide();
|
||||
$('.qr').hide();
|
||||
} catch (e) {}
|
||||
} catch (e) { }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// generate a random key
|
||||
ST.crypto_generate_key = function(len) {
|
||||
ST.crypto_generate_key = function (len) {
|
||||
var index = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
|
||||
var key = '';
|
||||
for (var i = 0; i < len; i++) {
|
||||
@ -216,7 +218,7 @@ ST.crypto_generate_key = function(len) {
|
||||
return key;
|
||||
}
|
||||
|
||||
ST.dragdrop = function() {
|
||||
ST.dragdrop = function () {
|
||||
$("#code").fileReaderJS({
|
||||
// CSS Class to add to the drop element when a drag is active
|
||||
dragClass: "drag",
|
||||
@ -235,7 +237,7 @@ ST.dragdrop = function() {
|
||||
// How to read any files not specified by readAsMap
|
||||
readAsDefault: 'DataURL',
|
||||
on: {
|
||||
loadend: function(e, file) {
|
||||
loadend: function (e, file) {
|
||||
try {
|
||||
var words = CryptoJS.enc.Base64.parse(e.target.result.split(',')[1]);
|
||||
var utf8 = CryptoJS.enc.Utf8.stringify(words);
|
||||
@ -250,7 +252,7 @@ ST.dragdrop = function() {
|
||||
});
|
||||
}
|
||||
|
||||
ST.ace_init = function() {
|
||||
ST.ace_init = function () {
|
||||
// prepare the editor, needs to be a div
|
||||
var $code = $('#code');
|
||||
|
||||
@ -275,16 +277,16 @@ ST.ace_init = function() {
|
||||
ST.ace_editor = ace.edit("editor");
|
||||
ST.ace_editor.setTheme("ace/theme/clouds");
|
||||
ST.ace_editor.getSession().setValue($code.val());
|
||||
ST.ace_editor.getSession().on('change', function(e) {
|
||||
ST.ace_editor.getSession().on('change', function (e) {
|
||||
$code.val(ST.ace_editor.getValue());
|
||||
});
|
||||
ST.ace_setlang();
|
||||
$('#lang').change(function() {
|
||||
$('#lang').change(function () {
|
||||
ST.ace_setlang();
|
||||
});
|
||||
}
|
||||
|
||||
ST.ace_setlang = function() {
|
||||
ST.ace_setlang = function () {
|
||||
var lang = $('#lang').val();
|
||||
var mode = '';
|
||||
try {
|
||||
@ -298,12 +300,12 @@ ST.ace_setlang = function() {
|
||||
ST.ace_editor.getSession().setMode("ace/mode/" + mode);
|
||||
}
|
||||
|
||||
ST.codemirror_init = function() {
|
||||
ST.codemirror_init = function () {
|
||||
if (typeof CodeMirror == 'undefined') {
|
||||
return false;
|
||||
}
|
||||
ST.cm_modes = $.parseJSON($('#codemirror_modes').text());
|
||||
$('#lang').change(function() {
|
||||
$('#lang').change(function () {
|
||||
ST.codemirror_setlang();
|
||||
});
|
||||
if (typeof ST.cm_editor == 'undefined') {
|
||||
@ -317,12 +319,12 @@ ST.codemirror_init = function() {
|
||||
ST.codemirror_setlang();
|
||||
}
|
||||
|
||||
ST.codemirror_setlang = function() {
|
||||
ST.codemirror_setlang = function () {
|
||||
var lang = $('#lang').val();
|
||||
var mode = ST.cm_modes[lang];
|
||||
|
||||
$.get(base_url + 'main/get_cm_js/' + lang,
|
||||
function(data) {
|
||||
function (data) {
|
||||
if (data != '') {
|
||||
ST.cm_editor.setOption('mode', mode);
|
||||
} else {
|
||||
@ -332,11 +334,11 @@ ST.codemirror_setlang = function() {
|
||||
'script');
|
||||
}
|
||||
|
||||
ST.clickable_urls = function() {
|
||||
ST.clickable_urls = function () {
|
||||
$('.container .row .span12').linkify();
|
||||
}
|
||||
|
||||
ST.init = function() {
|
||||
ST.init = function () {
|
||||
ST.show_embed();
|
||||
ST.spamadmin();
|
||||
ST.line_highlighter();
|
||||
@ -347,6 +349,6 @@ ST.init = function() {
|
||||
ST.ace_init();
|
||||
};
|
||||
|
||||
$(document).ready(function() {
|
||||
$(document).ready(function () {
|
||||
ST.init();
|
||||
});
|
||||
|
@ -1,21 +1,21 @@
|
||||
var ST = window.ST || {};
|
||||
|
||||
ST.show_embed = function() {
|
||||
ST.show_embed = function () {
|
||||
$embed_field = $('#embed_field');
|
||||
var lang_showcode = $embed_field.data('lang-showcode');
|
||||
$embed_field.hide();
|
||||
$embed_field.after('<a id="show_code" href="#">' + lang_showcode + '</a>');
|
||||
$('#show_code').live('click',
|
||||
function() {
|
||||
function () {
|
||||
$(this).hide();
|
||||
$embed_field.show().select();
|
||||
return false;
|
||||
});
|
||||
};
|
||||
|
||||
ST.expand = function() {
|
||||
ST.expand = function () {
|
||||
$('.expander').show();
|
||||
$('.expand').click(function() {
|
||||
$('.expand').click(function () {
|
||||
if ($('.paste').hasClass('full')) {
|
||||
return false;
|
||||
}
|
||||
@ -27,24 +27,24 @@ ST.expand = function() {
|
||||
}
|
||||
var new_width = (window_width - (spacer * 3));
|
||||
$('.text_formatted').animate({
|
||||
'width': new_width + 'px',
|
||||
'left': '-' + (((window_width - 900) / 2 - spacer)) + 'px'
|
||||
},
|
||||
'width': new_width + 'px',
|
||||
'left': '-' + (((window_width - 900) / 2 - spacer)) + 'px'
|
||||
},
|
||||
200);
|
||||
return false;
|
||||
});
|
||||
};
|
||||
|
||||
ST.spamadmin = function() {
|
||||
ST.spamadmin = function () {
|
||||
if ($('.content h1').text() == 'Spamadmin') {
|
||||
$('.content .hidden').show();
|
||||
$('.content .quick_remove').live('click', function(ev) {
|
||||
$('.content .quick_remove').live('click', function (ev) {
|
||||
var ip = $(ev.target).data('ip');
|
||||
if (confirm('Delete all pastes belonging to ' + ip + '?')) {
|
||||
$.post(base_url + 'spamadmin/' + ip, {
|
||||
'confirm_remove': 'yes',
|
||||
'block_ip': 1
|
||||
}, function() {
|
||||
}, function () {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
@ -53,9 +53,9 @@ ST.spamadmin = function() {
|
||||
|
||||
$(document).tooltip({
|
||||
items: "td.first a",
|
||||
content: function(done) {
|
||||
content: function (done) {
|
||||
var pid = $(this).attr('href').split('view/')[1];
|
||||
$.get(base_url + 'view/raw/' + pid + '?preview', function(data) {
|
||||
$.get(base_url + 'view/raw/' + pid + '?preview', function (data) {
|
||||
done(data);
|
||||
});
|
||||
},
|
||||
@ -65,21 +65,21 @@ ST.spamadmin = function() {
|
||||
}
|
||||
|
||||
// needed by .selectable
|
||||
$.fn.addBack = function(selector) {
|
||||
$.fn.addBack = function (selector) {
|
||||
return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));
|
||||
}
|
||||
|
||||
$('.selectable>tbody').selectable({
|
||||
filter: 'tr',
|
||||
cancel: 'a',
|
||||
stop: function() {
|
||||
stop: function () {
|
||||
var $deletestack = $(".paste_deletestack");
|
||||
var $input = $("input[name=pastes_to_delete]");
|
||||
$('.inv').show();
|
||||
$deletestack.empty();
|
||||
$input.empty();
|
||||
var res = [];
|
||||
$(".ui-selected").each(function(i, el) {
|
||||
$(".ui-selected").each(function (i, el) {
|
||||
var id = $('a', el).attr('href').split('view/')[1];
|
||||
res.push(id);
|
||||
});
|
||||
@ -89,18 +89,18 @@ ST.spamadmin = function() {
|
||||
});
|
||||
};
|
||||
|
||||
ST.line_highlighter = function() {
|
||||
ST.line_highlighter = function () {
|
||||
var org_href = window.location.href.replace(/(.*?)#(.*)/, '$1');
|
||||
var first_line = false;
|
||||
var second_line = false;
|
||||
|
||||
$('.text_formatted').on('mousedown', function(ev) {
|
||||
$('.text_formatted').on('mousedown', function (ev) {
|
||||
if (ev.which == 1) { // left mouse button has been clicked
|
||||
window.getSelection().removeAllRanges();
|
||||
}
|
||||
});
|
||||
|
||||
$('.text_formatted').on('click', 'li', function(ev) {
|
||||
$('.text_formatted').on('click', 'li', function (ev) {
|
||||
var $this = $(this);
|
||||
var li_num = ($this.index() + 1);
|
||||
if (ev.shiftKey == 1) {
|
||||
@ -129,7 +129,7 @@ ST.line_highlighter = function() {
|
||||
ST.highlight_lines();
|
||||
}
|
||||
|
||||
ST.highlight_lines = function() {
|
||||
ST.highlight_lines = function () {
|
||||
var wloc = window.location.href;
|
||||
if (wloc.indexOf('#') > -1) {
|
||||
$('.text_formatted .container li').css('background', 'none');
|
||||
@ -152,9 +152,9 @@ ST.highlight_lines = function() {
|
||||
}
|
||||
}
|
||||
|
||||
ST.crypto = function() {
|
||||
ST.crypto = function () {
|
||||
$('button[name=submit]').after('<button id="create_encrypted">Create encrypted</button>');
|
||||
$('#create_encrypted').on('click', function() {
|
||||
$('#create_encrypted').on('click', function () {
|
||||
var $code = $('#code');
|
||||
|
||||
// encrypt the paste
|
||||
@ -168,20 +168,22 @@ ST.crypto = function() {
|
||||
|
||||
// post request via JS
|
||||
$.post(base_url + 'post_encrypted', {
|
||||
'name': $('#name').val(),
|
||||
'title': $('#title').val(),
|
||||
'code': encrypted,
|
||||
'lang': $('#lang').val(),
|
||||
'expire': $('#expire').val(),
|
||||
'captcha': $('#captcha').val(),
|
||||
'reply': $('input[name=reply]').val()
|
||||
},
|
||||
function(redirect_url) {
|
||||
'name': $('#name').val(),
|
||||
'title': $('#title').val(),
|
||||
'code': encrypted,
|
||||
'lang': $('#lang').val(),
|
||||
'expire': $('#expire').val(),
|
||||
'captcha': $('#captcha').val(),
|
||||
'reply': $('input[name=reply]').val()
|
||||
},
|
||||
function (redirect_url) {
|
||||
if (redirect_url.indexOf('E_CAPTCHA') > -1) {
|
||||
$('.content .container .message').remove();
|
||||
$('.content .container').prepend('<div class="message error"><div class="container">The captcha is incorrect.</div></div>');
|
||||
} else if (redirect_url.indexOf('invalid') > -1) {
|
||||
$('#create_encrypted').parent().html('<p>' + redirect_url + '#' + key + '</p>');
|
||||
// burn on read
|
||||
redirect_url = redirect_url.replace('" /><!-- behind you -->', '#' + key + '" />')
|
||||
$('#create_encrypted').parent().html('<p>' + redirect_url + '</p>');
|
||||
} else {
|
||||
window.location.href = base_url + redirect_url + '#' + key;
|
||||
}
|
||||
@ -230,13 +232,13 @@ ST.crypto = function() {
|
||||
}
|
||||
$('.meta .spacer:first').hide();
|
||||
$('.qr').hide();
|
||||
} catch (e) {}
|
||||
} catch (e) { }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// generate a random key
|
||||
ST.crypto_generate_key = function(len) {
|
||||
ST.crypto_generate_key = function (len) {
|
||||
var index = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
|
||||
var key = '';
|
||||
for (var i = 0; i < len; i++) {
|
||||
@ -245,7 +247,7 @@ ST.crypto_generate_key = function(len) {
|
||||
return key;
|
||||
}
|
||||
|
||||
ST.dragdrop = function() {
|
||||
ST.dragdrop = function () {
|
||||
$("#code").fileReaderJS({
|
||||
// CSS Class to add to the drop element when a drag is active
|
||||
dragClass: "drag",
|
||||
@ -264,7 +266,7 @@ ST.dragdrop = function() {
|
||||
// How to read any files not specified by readAsMap
|
||||
readAsDefault: 'DataURL',
|
||||
on: {
|
||||
loadend: function(e, file) {
|
||||
loadend: function (e, file) {
|
||||
try {
|
||||
var words = CryptoJS.enc.Base64.parse(e.target.result.split(',')[1]);
|
||||
var utf8 = CryptoJS.enc.Utf8.stringify(words);
|
||||
@ -279,7 +281,7 @@ ST.dragdrop = function() {
|
||||
});
|
||||
}
|
||||
|
||||
ST.ace_init = function() {
|
||||
ST.ace_init = function () {
|
||||
// prepare the editor, needs to be a div
|
||||
var $code = $('#code');
|
||||
|
||||
@ -304,16 +306,16 @@ ST.ace_init = function() {
|
||||
ST.ace_editor = ace.edit("editor");
|
||||
ST.ace_editor.setTheme("ace/theme/clouds");
|
||||
ST.ace_editor.getSession().setValue($code.val());
|
||||
ST.ace_editor.getSession().on('change', function(e) {
|
||||
ST.ace_editor.getSession().on('change', function (e) {
|
||||
$code.val(ST.ace_editor.getValue());
|
||||
});
|
||||
ST.ace_setlang();
|
||||
$('#lang').change(function() {
|
||||
$('#lang').change(function () {
|
||||
ST.ace_setlang();
|
||||
});
|
||||
}
|
||||
|
||||
ST.ace_setlang = function() {
|
||||
ST.ace_setlang = function () {
|
||||
var lang = $('#lang').val();
|
||||
var mode = '';
|
||||
try {
|
||||
@ -327,12 +329,12 @@ ST.ace_setlang = function() {
|
||||
ST.ace_editor.getSession().setMode("ace/mode/" + mode);
|
||||
}
|
||||
|
||||
ST.codemirror_init = function() {
|
||||
ST.codemirror_init = function () {
|
||||
if (typeof CodeMirror == 'undefined') {
|
||||
return false;
|
||||
}
|
||||
ST.cm_modes = $.parseJSON($('#codemirror_modes').text());
|
||||
$('#lang').change(function() {
|
||||
$('#lang').change(function () {
|
||||
ST.codemirror_setlang();
|
||||
});
|
||||
if (typeof ST.cm_editor == 'undefined') {
|
||||
@ -344,12 +346,12 @@ ST.codemirror_init = function() {
|
||||
ST.codemirror_setlang();
|
||||
}
|
||||
|
||||
ST.codemirror_setlang = function() {
|
||||
ST.codemirror_setlang = function () {
|
||||
var lang = $('#lang').val();
|
||||
var mode = ST.cm_modes[lang];
|
||||
|
||||
$.get(base_url + 'main/get_cm_js/' + lang,
|
||||
function(data) {
|
||||
function (data) {
|
||||
if (data != '') {
|
||||
ST.cm_editor.setOption('mode', mode);
|
||||
} else {
|
||||
@ -359,11 +361,11 @@ ST.codemirror_setlang = function() {
|
||||
'script');
|
||||
}
|
||||
|
||||
ST.clickable_urls = function() {
|
||||
ST.clickable_urls = function () {
|
||||
$('.paste .container').linkify();
|
||||
}
|
||||
|
||||
ST.init = function() {
|
||||
ST.init = function () {
|
||||
ST.expand();
|
||||
ST.show_embed();
|
||||
ST.spamadmin();
|
||||
@ -375,6 +377,6 @@ ST.init = function() {
|
||||
ST.ace_init();
|
||||
};
|
||||
|
||||
$(document).ready(function() {
|
||||
$(document).ready(function () {
|
||||
ST.init();
|
||||
});
|
||||
|
@ -38,12 +38,12 @@
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<label for="paste"><?php echo lang('paste_yourpaste'); ?>
|
||||
<label for="code"><?php echo lang('paste_yourpaste'); ?>
|
||||
<span class="instruction"><?php echo lang('paste_yourpaste_desc'); ?></span>
|
||||
<span class="instruction"><a href="#" id="enable_codemirror" data-lang-enablesynhl="<?php echo lang('paste_enablesynhl'); ?>" data-lang-disablesynhl="<?php echo lang('paste_disablesynhl'); ?>"></a></span>
|
||||
</label>
|
||||
|
||||
<textarea id="code" name="code" cols="40" rows="20" tabindex="4"><?php if(isset($paste_set)){ echo $paste_set; }?></textarea>
|
||||
<textarea id="code" name="code" cols="40" rows="20" tabindex="4" required><?php if(isset($paste_set)){ echo $paste_set; }?></textarea>
|
||||
|
||||
</div>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user