Merge branch 'master' of disposed.de:scattport

Conflicts:
	application/config/autoload.php
	application/views/header.php
This commit is contained in:
Karsten Heiken
2011-09-07 17:04:46 +02:00
38 changed files with 1524 additions and 674 deletions

4
.gitignore vendored
View File

@@ -2,9 +2,11 @@
.project .project
.settings/ .settings/
.htaccess .htaccess
*.xcf
application/config/config.php application/config/config.php
application/config/database.php application/config/database.php
application/logs/* application/logs/*
application/cache/*
assets/cache/*
uploads/* uploads/*
*.xcf
*.mo *.mo

View File

@@ -0,0 +1,27 @@
<?php defined('BASEPATH') || exit('No direct script access allowed');
/*
|--------------------------------------------------------------------------
| Asset storage
|--------------------------------------------------------------------------
|
| The path to where the assets are stored, WITH trailing slash.
|
*/
$config['assets_folder'] = 'assets/';
$config['cache_folder'] = $config['assets_folder'] . 'cache/';
/*
|--------------------------------------------------------------------------
| Toggle CSSTidy/JSMin compression
|--------------------------------------------------------------------------
|
| Whether to run compression using CSSTidy or JSMin.
|
*/
$config['enable_csstidy'] = true;
$config['enable_jsmin'] = true;
/* End of file assets.php */
/* Location: ./application/config/assets.php */

View File

@@ -1,4 +1,4 @@
<?php defined('BASEPATH') || exit("No direct script access allowed"); <?php defined('BASEPATH') || exit('No direct script access allowed');
/** /**
* Default group, use name * Default group, use name

View File

@@ -1,4 +1,4 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <?php defined('BASEPATH') || exit('No direct script access allowed');
/* /*
| ------------------------------------------------------------------- | -------------------------------------------------------------------
| AUTO-LOADER | AUTO-LOADER
@@ -64,7 +64,7 @@ $autoload['libraries'] = array('session', 'lang_detect', 'database', 'access', '
| $autoload['helper'] = array('url', 'file'); | $autoload['helper'] = array('url', 'file');
*/ */
$autoload['helper'] = array('date', 'url', 'html', 'language', 'hash', 'text'); $autoload['helper'] = array('date', 'url', 'form', 'language', 'hash', 'asset', 'text');
/* /*

View File

@@ -1,4 +1,4 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <?php defined('BASEPATH') || exit('No direct script access allowed');
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@@ -154,11 +154,11 @@ $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
| use segment based URLs. | use segment based URLs.
| |
*/ */
$config['allow_get_array'] = true; $config['allow_get_array'] = true;
$config['enable_query_strings'] = false; $config['enable_query_strings'] = false;
$config['controller_trigger'] = 'c'; $config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm'; $config['function_trigger'] = 'm';
$config['directory_trigger'] = 'd'; // experimental not currently in use $config['directory_trigger'] = 'd'; // experimental not currently in use
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@@ -244,15 +244,15 @@ $config['encryption_key'] = 'a627b9c57a09c3d51d79d5d9111933c2ef44f583';
| 'sess_time_to_update' = how many seconds between CI refreshing Session Information | 'sess_time_to_update' = how many seconds between CI refreshing Session Information
| |
*/ */
$config['sess_cookie_name'] = 'scatt_session'; $config['sess_cookie_name'] = 'scatt_session';
$config['sess_expiration'] = 7200; $config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = false; $config['sess_expire_on_close'] = false;
$config['sess_encrypt_cookie'] = true; $config['sess_encrypt_cookie'] = true;
$config['sess_use_database'] = true; $config['sess_use_database'] = true;
$config['sess_table_name'] = 'sessions'; $config['sess_table_name'] = 'sessions';
$config['sess_match_ip'] = false; $config['sess_match_ip'] = false;
$config['sess_match_useragent'] = true; $config['sess_match_useragent'] = true;
$config['sess_time_to_update'] = 300; $config['sess_time_to_update'] = 300;
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@@ -265,10 +265,10 @@ $config['sess_time_to_update'] = 300;
| 'cookie_secure' = Cookies will only be set if a secure HTTPS connection exists. | 'cookie_secure' = Cookies will only be set if a secure HTTPS connection exists.
| |
*/ */
$config['cookie_prefix'] = ""; $config['cookie_prefix'] = "";
$config['cookie_domain'] = ""; $config['cookie_domain'] = "";
$config['cookie_path'] = "/"; $config['cookie_path'] = "/";
$config['cookie_secure'] = false; $config['cookie_secure'] = false;
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

View File

@@ -1,4 +1,4 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <?php defined('BASEPATH') || exit('No direct script access allowed');
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@@ -26,7 +26,6 @@ define('DIR_WRITE_MODE', 0777);
| These modes are used when working with fopen()/popen() | These modes are used when working with fopen()/popen()
| |
*/ */
define('FOPEN_READ', 'rb'); define('FOPEN_READ', 'rb');
define('FOPEN_READ_WRITE', 'r+b'); define('FOPEN_READ_WRITE', 'r+b');
define('FOPEN_WRITE_CREATE_DESTRUCTIVE', 'wb'); // truncates existing file data, use with care define('FOPEN_WRITE_CREATE_DESTRUCTIVE', 'wb'); // truncates existing file data, use with care

View File

@@ -1,4 +1,4 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <?php defined('BASEPATH') || exit('No direct script access allowed');
/* /*
| ------------------------------------------------------------------- | -------------------------------------------------------------------
| DATABASE CONNECTIVITY SETTINGS | DATABASE CONNECTIVITY SETTINGS
@@ -39,7 +39,7 @@
*/ */
$active_group = 'default'; $active_group = 'default';
$active_record = TRUE; $active_record = true;
$db['default']['hostname'] = 'localhost'; $db['default']['hostname'] = 'localhost';
$db['default']['username'] = ''; $db['default']['username'] = '';
@@ -47,15 +47,15 @@ $db['default']['password'] = '';
$db['default']['database'] = ''; $db['default']['database'] = '';
$db['default']['dbdriver'] = 'mysql'; $db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = ''; $db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE; $db['default']['pconnect'] = true;
$db['default']['db_debug'] = TRUE; $db['default']['db_debug'] = true;
$db['default']['cache_on'] = FALSE; $db['default']['cache_on'] = false;
$db['default']['cachedir'] = ''; $db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8'; $db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci'; $db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = ''; $db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE; $db['default']['autoinit'] = true;
$db['default']['stricton'] = FALSE; $db['default']['stricton'] = false;
/* End of file database.php */ /* End of file database.php */

View File

@@ -1,10 +1,10 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <?php defined('BASEPATH') || exit('No direct script access allowed');
/*
/** | -------------------------------------------------------------------
* Data Mapper Configuration | DATAMAPPER CONFIGURATION
* | -------------------------------------------------------------------
* Global configuration settings that apply to all DataMapped models. | Global configuration settings that apply to all DataMapped models.
*/ */
$config['prefix'] = ''; $config['prefix'] = '';
$config['join_prefix'] = ''; $config['join_prefix'] = '';
@@ -12,11 +12,11 @@ $config['error_prefix'] = '<p>';
$config['error_suffix'] = '</p>'; $config['error_suffix'] = '</p>';
$config['created_field'] = 'created'; $config['created_field'] = 'created';
$config['updated_field'] = 'updated'; $config['updated_field'] = 'updated';
$config['local_time'] = FALSE; $config['local_time'] = false;
$config['unix_timestamp'] = FALSE; $config['unix_timestamp'] = false;
$config['auto_transaction'] = FALSE; $config['auto_transaction'] = false;
$config['auto_populate_has_many'] = FALSE; $config['auto_populate_has_many'] = false;
$config['auto_populate_has_one'] = FALSE; $config['auto_populate_has_one'] = false;
/* End of file datamapper.php */ /* End of file datamapper.php */
/* Location: ./application/config/datamapper.php */ /* Location: ./application/config/datamapper.php */

View File

@@ -1,15 +1,15 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <?php defined('BASEPATH') || exit('No direct script access allowed');
$_doctypes = array( $_doctypes = array(
'xhtml11' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.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-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-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">', '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>', 'html5' => '<!DOCTYPE html>',
'html4-strict' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">', '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-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">' '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 */ /* End of file doctypes.php */
/* Location: ./application/config/doctypes.php */ /* Location: ./application/config/doctypes.php */

View File

@@ -1,4 +1,4 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <?php defined('BASEPATH') || exit('No direct script access allowed');
/* /*
| ------------------------------------------------------------------- | -------------------------------------------------------------------
| Foreign Characters | Foreign Characters
@@ -8,56 +8,56 @@
| |
*/ */
$foreign_characters = array( $foreign_characters = array(
'/ä|æ|ǽ/' => 'ae', '/ä|æ|ǽ/' => 'ae',
'/ö|œ/' => 'oe', '/ö|œ/' => 'oe',
'/ü/' => 'ue', '/ü/' => 'ue',
'/Ä/' => 'Ae', '/Ä/' => 'Ae',
'/Ü/' => 'Ue', '/Ü/' => 'Ue',
'/Ö/' => 'Oe', '/Ö/' => 'Oe',
'/À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ/' => 'A', '/À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ/' => 'A',
'/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª/' => 'a', '/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª/' => 'a',
'/Ç|Ć|Ĉ|Ċ|Č/' => 'C', '/Ç|Ć|Ĉ|Ċ|Č/' => 'C',
'/ç|ć|ĉ|ċ|č/' => 'c', '/ç|ć|ĉ|ċ|č/' => 'c',
'/Ð|Ď|Đ/' => 'D', '/Ð|Ď|Đ/' => 'D',
'/ð|ď|đ/' => 'd', '/ð|ď|đ/' => 'd',
'/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě/' => 'E', '/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě/' => 'E',
'/è|é|ê|ë|ē|ĕ|ė|ę|ě/' => 'e', '/è|é|ê|ë|ē|ĕ|ė|ę|ě/' => 'e',
'/Ĝ|Ğ|Ġ|Ģ/' => 'G', '/Ĝ|Ğ|Ġ|Ģ/' => 'G',
'/ĝ|ğ|ġ|ģ/' => 'g', '/ĝ|ğ|ġ|ģ/' => 'g',
'/Ĥ|Ħ/' => 'H', '/Ĥ|Ħ/' => 'H',
'/ĥ|ħ/' => 'h', '/ĥ|ħ/' => 'h',
'/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ/' => 'I', '/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ/' => 'I',
'/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı/' => 'i', '/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı/' => 'i',
'/Ĵ/' => 'J', '/Ĵ/' => 'J',
'/ĵ/' => 'j', '/ĵ/' => 'j',
'/Ķ/' => 'K', '/Ķ/' => 'K',
'/ķ/' => 'k', '/ķ/' => 'k',
'/Ĺ|Ļ|Ľ|Ŀ|Ł/' => 'L', '/Ĺ|Ļ|Ľ|Ŀ|Ł/' => 'L',
'/ĺ|ļ|ľ|ŀ|ł/' => 'l', '/ĺ|ļ|ľ|ŀ|ł/' => 'l',
'/Ñ|Ń|Ņ|Ň/' => 'N', '/Ñ|Ń|Ņ|Ň/' => 'N',
'/ñ|ń|ņ|ň|ʼn/' => 'n', '/ñ|ń|ņ|ň|ʼn/' => 'n',
'/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ/' => 'O', '/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ/' => 'O',
'/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º/' => 'o', '/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º/' => 'o',
'/Ŕ|Ŗ|Ř/' => 'R', '/Ŕ|Ŗ|Ř/' => 'R',
'/ŕ|ŗ|ř/' => 'r', '/ŕ|ŗ|ř/' => 'r',
'/Ś|Ŝ|Ş|Š/' => 'S', '/Ś|Ŝ|Ş|Š/' => 'S',
'/ś|ŝ|ş|š|ſ/' => 's', '/ś|ŝ|ş|š|ſ/' => 's',
'/Ţ|Ť|Ŧ/' => 'T', '/Ţ|Ť|Ŧ/' => 'T',
'/ţ|ť|ŧ/' => 't', '/ţ|ť|ŧ/' => 't',
'/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ/' => 'U', '/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ/' => 'U',
'/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ/' => 'u', '/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ/' => 'u',
'/Ý|Ÿ|Ŷ/' => 'Y', '/Ý|Ÿ|Ŷ/' => 'Y',
'/ý|ÿ|ŷ/' => 'y', '/ý|ÿ|ŷ/' => 'y',
'/Ŵ/' => 'W', '/Ŵ/' => 'W',
'/ŵ/' => 'w', '/ŵ/' => 'w',
'/Ź|Ż|Ž/' => 'Z', '/Ź|Ż|Ž/' => 'Z',
'/ź|ż|ž/' => 'z', '/ź|ż|ž/' => 'z',
'/Æ|Ǽ/' => 'AE', '/Æ|Ǽ/' => 'AE',
'/ß/'=> 'ss', '/ß/'=> 'ss',
'/IJ/' => 'IJ', '/IJ/' => 'IJ',
'/ij/' => 'ij', '/ij/' => 'ij',
'/Œ/' => 'OE', '/Œ/' => 'OE',
'/ƒ/' => 'f' '/ƒ/' => 'f'
); );
/* End of file foreign_chars.php */ /* End of file foreign_chars.php */

View File

@@ -1,4 +1,4 @@
<?php defined('BASEPATH') || exit("No direct script access allowed"); <?php defined('BASEPATH') || exit('No direct script access allowed');
/** /**
* Rules for login page. * Rules for login page.
@@ -6,21 +6,21 @@
* @var array * @var array
*/ */
$config['auth/login'] = array( $config['auth/login'] = array(
array( array(
'field' => 'username', 'field' => 'username',
'label' => _('Username'), 'label' => _('Username'),
'rules' => 'required|trim', 'rules' => 'required|trim',
), ),
array( array(
'field' => 'password', 'field' => 'password',
'label' => _('Password'), 'label' => _('Password'),
'rules' => 'required|trim', 'rules' => 'required|trim',
), ),
array( array(
'field' => 'remember', 'field' => 'remember',
'label' => _('Remember me on this computer'), 'label' => _('Remember me on this computer'),
'rules' => 'integer', 'rules' => 'integer',
), ),
); );
/** /**
@@ -29,49 +29,49 @@ $config['auth/login'] = array(
* @var array * @var array
*/ */
$config['auth/forgot_password'] = array( $config['auth/forgot_password'] = array(
array( array(
'field' => 'email', 'field' => 'email',
'label' => _('Email address'), 'label' => _('Email address'),
'rules' => 'required|valid_email|trim', 'rules' => 'required|valid_email|trim',
), ),
); );
/** /**
* Rules for the settings page. * Rules for the settings page.
* *
* @var array * @var array
*/ */
$config['auth/settings'] = array( $config['auth/settings'] = array(
array( array(
'field' => 'firstname', 'field' => 'firstname',
'label' => _('First name'), 'label' => _('First name'),
'rules' => 'required|max_length[50]|trim', 'rules' => 'required|max_length[50]|trim',
), ),
array( array(
'field' => 'lastname', 'field' => 'lastname',
'label' => _('Last name'), 'label' => _('Last name'),
'rules' => 'required|max_length[50]|trim', 'rules' => 'required|max_length[50]|trim',
), ),
array( array(
'field' => 'email', 'field' => 'email',
'label' => _('Email address'), 'label' => _('Email address'),
'rules' => 'required|valid_email|trim', 'rules' => 'required|valid_email|trim',
), ),
array( array(
'field' => 'institution', 'field' => 'institution',
'label' => _('Institution'), 'label' => _('Institution'),
'rules' => 'max_length[100]|trim', 'rules' => 'max_length[100]|trim',
), ),
array( array(
'field' => 'phone', 'field' => 'phone',
'label' => _('Phone number'), 'label' => _('Phone number'),
'rules' => 'regex_match[/^\+\d{2,4}\s\d{2,4}\s\d{3,10}+$/i]|trim', 'rules' => 'regex_match[/^\+\d{2,4}\s\d{2,4}\s\d{3,10}+$/i]|trim',
), ),
array( array(
'field' => 'new_password', 'field' => 'new_password',
'label' => _('New password'), 'label' => _('New password'),
'rules' => 'min_length[6]|matches[new_password_confirm]', 'rules' => 'min_length[6]|matches[new_password_confirm]',
), ),
); );
/** /**
@@ -80,46 +80,46 @@ $config['auth/settings'] = array(
* @var array * @var array
*/ */
$config['users/create'] = array( $config['users/create'] = array(
array( array(
'field' => 'username', 'field' => 'username',
'label' => _('Username'), 'label' => _('Username'),
'rules' => 'required|min_length[4]|max_length[20]|unique[users.username]|trim', 'rules' => 'required|min_length[4]|max_length[20]|unique[users.username]|trim',
), ),
array( array(
'field' => 'email', 'field' => 'email',
'label' => _('Email address'), 'label' => _('Email address'),
'rules' => 'required|valid_email|trim', 'rules' => 'required|valid_email|trim',
), ),
array( array(
'field' => 'password', 'field' => 'password',
'label' => _('Password'), 'label' => _('Password'),
'rules' => 'required|min_length[6]|matches[password_confirm]', 'rules' => 'required|min_length[6]|matches[password_confirm]',
), ),
array( array(
'field' => 'password_confirm', 'field' => 'password_confirm',
'label' => _('Confirm password'), 'label' => _('Confirm password'),
'rules' => 'required', 'rules' => 'required',
), ),
array( array(
'field' => 'firstname', 'field' => 'firstname',
'label' => _('First name'), 'label' => _('First name'),
'rules' => 'required|max_length[50]|trim', 'rules' => 'required|max_length[50]|trim',
), ),
array( array(
'field' => 'lastname', 'field' => 'lastname',
'label' => _('Last name'), 'label' => _('Last name'),
'rules' => 'required|max_length[50]|trim', 'rules' => 'required|max_length[50]|trim',
), ),
array( array(
'field' => 'institution', 'field' => 'institution',
'label' => _('Institution'), 'label' => _('Institution'),
'rules' => 'max_length[100]|trim', 'rules' => 'max_length[100]|trim',
), ),
array( array(
'field' => 'phone', 'field' => 'phone',
'label' => _('Phone number'), 'label' => _('Phone number'),
'rules' => 'regex_match[/^\+\d{2,4}\s\d{2,4}\s\d{3,10}+$/i]|trim', 'rules' => 'regex_match[/^\+\d{2,4}\s\d{2,4}\s\d{3,10}+$/i]|trim',
), ),
); );
/** /**
@@ -128,31 +128,31 @@ $config['users/create'] = array(
* @var array * @var array
*/ */
$config['users/edit'] = array( $config['users/edit'] = array(
array( array(
'field' => 'firstname', 'field' => 'firstname',
'label' => _('First name'), 'label' => _('First name'),
'rules' => 'required|max_length[50]|trim', 'rules' => 'required|max_length[50]|trim',
), ),
array( array(
'field' => 'lastname', 'field' => 'lastname',
'label' => _('Last name'), 'label' => _('Last name'),
'rules' => 'required|max_length[50]|trim', 'rules' => 'required|max_length[50]|trim',
), ),
array( array(
'field' => 'email', 'field' => 'email',
'label' => _('Email address'), 'label' => _('Email address'),
'rules' => 'required|valid_email|trim', 'rules' => 'required|valid_email|trim',
), ),
array( array(
'field' => 'institution', 'field' => 'institution',
'label' => _('Institution'), 'label' => _('Institution'),
'rules' => 'max_length[100]|trim', 'rules' => 'max_length[100]|trim',
), ),
array( array(
'field' => 'phone', 'field' => 'phone',
'label' => _('Phone number'), 'label' => _('Phone number'),
'rules' => 'regex_match[/^\+\d{2,4}\s\d{2,4}\s\d{3,10}+$/i]|trim', 'rules' => 'regex_match[/^\+\d{2,4}\s\d{2,4}\s\d{3,10}+$/i]|trim',
), ),
); );
/** /**
@@ -161,16 +161,16 @@ $config['users/edit'] = array(
* @var array * @var array
*/ */
$config['programs/edit'] = array( $config['programs/edit'] = array(
array( array(
'field' => 'name', 'field' => 'name',
'label' => _('Name of the program'), 'label' => _('Name of the program'),
'rules' => 'required|max_length[100]|trim', 'rules' => 'required|max_length[100]|trim',
), ),
array( array(
'field' => 'config_template', 'field' => 'config_template',
'label' => _('Config template'), 'label' => _('Config template'),
'rules' => 'required', 'rules' => 'required',
), ),
); );
/** /**
@@ -179,31 +179,31 @@ $config['programs/edit'] = array(
* @var array * @var array
*/ */
$config['parameters/create'] = array( $config['parameters/create'] = array(
array( array(
'field' => 'name', 'field' => 'name',
'label' => _('Name'), 'label' => _('Name'),
'rules' => 'required|max_length[255]|trim', 'rules' => 'required|max_length[255]|trim',
), ),
array( array(
'field' => 'readable', 'field' => 'readable',
'label' => _('Human-readable name'), 'label' => _('Human-readable name'),
'rules' => 'required|max_length[100]|trim', 'rules' => 'required|max_length[100]|trim',
), ),
array( array(
'field' => 'unit', 'field' => 'unit',
'label' => _('Name'), 'label' => _('Name'),
'rules' => 'max_length[20]|trim', 'rules' => 'max_length[20]|trim',
), ),
array( array(
'field' => 'default_value', 'field' => 'default_value',
'label' => _('Default value'), 'label' => _('Default value'),
'rules' => 'max_length[255]|trim', 'rules' => 'max_length[255]|trim',
), ),
array( array(
'field' => 'type', 'field' => 'type',
'label' => _('Type'), 'label' => _('Type'),
'rules' => 'required|max_length[20]|trim', 'rules' => 'required|max_length[20]|trim',
), ),
); );
/** /**
@@ -212,26 +212,26 @@ $config['parameters/create'] = array(
* @var array * @var array
*/ */
$config['projects/create'] = array( $config['projects/create'] = array(
array( array(
'field' => 'name', 'field' => 'name',
'label' => _('Project name'), 'label' => _('Project name'),
'rules' => 'required|min_length[3]|max_length[100]|trim', 'rules' => 'required|min_length[3]|max_length[100]|trim',
), ),
array( array(
'field' => 'description', 'field' => 'description',
'label' => _('Description'), 'label' => _('Description'),
'rules' => 'required|trim', 'rules' => 'required|trim',
), ),
array( array(
'field' => 'defaultmodel', 'field' => 'defaultmodel',
'label' => _('3D model'), 'label' => _('3D model'),
'rules' => 'file_allowed_type[obj]', 'rules' => 'file_allowed_type[obj]',
), ),
array( array(
'field' => 'defaultconfig', 'field' => 'defaultconfig',
'label' => _('Default configuration'), 'label' => _('Default configuration'),
'rules' => 'file_allowed_type[calc]', 'rules' => 'file_allowed_type[calc]',
), ),
); );
/** /**
@@ -240,23 +240,22 @@ $config['projects/create'] = array(
* @var array * @var array
*/ */
$config['trials/create'] = array( $config['trials/create'] = array(
array( array(
'field' => 'name', 'field' => 'name',
'label' => _('Trial name'), 'label' => _('Trial name'),
'rules' => 'required|min_length[3]|max_length[60]|trim', 'rules' => 'required|min_length[3]|max_length[60]|trim',
), ),
array( array(
'field' => 'description', 'field' => 'description',
'label' => _('Description'), 'label' => _('Description'),
'rules' => 'required|trim', 'rules' => 'required|trim',
), ),
array( array(
'field' => 'program_id', 'field' => 'program_id',
'label' => _('Program'), 'label' => _('Program'),
'rules' => 'required|alpha_numeric|trim', 'rules' => 'required|alpha_numeric|trim',
), ),
); );
/* End of file form_validation.php */ /* End of file form_validation.php */
/* Location: ./application/config/form_validation.php */ /* Location: ./application/config/form_validation.php */

View File

@@ -1,4 +1,4 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <?php defined('BASEPATH') || exit('No direct script access allowed');
/* /*
| ------------------------------------------------------------------------- | -------------------------------------------------------------------------
| Hooks | Hooks
@@ -8,13 +8,13 @@
| |
| http://codeigniter.com/user_guide/general/hooks.html | http://codeigniter.com/user_guide/general/hooks.html
| |
*/ */
$hook['post_controller_constructor'] = array( $hook['post_controller_constructor'] = array(
'class' => '', 'class' => '',
'function' => 'check_login', 'function' => 'check_login',
'filename' => 'global.php', 'filename' => 'global.php',
'filepath' => 'hooks' 'filepath' => 'hooks'
); );
/* End of file hooks.php */ /* End of file hooks.php */

View File

@@ -16,8 +16,8 @@
| |
*/ */
$config['supported_languages'] = array( $config['supported_languages'] = array(
'en'=> array('name' => 'English', 'locale' => 'en_US'), 'en' => array('name' => 'English', 'locale' => 'en_US'),
'de'=> array('name' => 'Deutsch', 'locale' => 'de_DE') 'de' => array('name' => 'Deutsch', 'locale' => 'de_DE'),
); );
/* /*
@@ -30,3 +30,6 @@ $config['supported_languages'] = array(
| |
*/ */
$config['default_language'] = 'en'; $config['default_language'] = 'en';
/* End of file autoload.php */
/* Location: ./application/config/language.php */

View File

@@ -1,4 +1,4 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <?php defined('BASEPATH') || exit('No direct script access allowed');
/* /*
| ------------------------------------------------------------------- | -------------------------------------------------------------------
| MIME TYPES | MIME TYPES
@@ -8,99 +8,100 @@
| |
*/ */
$mimes = array( 'hqx' => 'application/mac-binhex40', $mimes = array(
'cpt' => 'application/mac-compactpro', 'hqx' => 'application/mac-binhex40',
'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel'), 'cpt' => 'application/mac-compactpro',
'bin' => 'application/macbinary', 'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel'),
'dms' => 'application/octet-stream', 'bin' => 'application/macbinary',
'lha' => 'application/octet-stream', 'dms' => 'application/octet-stream',
'lzh' => 'application/octet-stream', 'lha' => 'application/octet-stream',
'exe' => array('application/octet-stream', 'application/x-msdownload'), 'lzh' => 'application/octet-stream',
'class' => 'application/octet-stream', 'exe' => array('application/octet-stream', 'application/x-msdownload'),
'psd' => 'application/x-photoshop', 'class' => 'application/octet-stream',
'so' => 'application/octet-stream', 'psd' => 'application/x-photoshop',
'sea' => 'application/octet-stream', 'so' => 'application/octet-stream',
'dll' => 'application/octet-stream', 'sea' => 'application/octet-stream',
'oda' => 'application/oda', 'dll' => 'application/octet-stream',
'pdf' => array('application/pdf', 'application/x-download'), 'oda' => 'application/oda',
'ai' => 'application/postscript', 'pdf' => array('application/pdf', 'application/x-download'),
'eps' => 'application/postscript', 'ai' => 'application/postscript',
'ps' => 'application/postscript', 'eps' => 'application/postscript',
'smi' => 'application/smil', 'ps' => 'application/postscript',
'smil' => 'application/smil', 'smi' => 'application/smil',
'mif' => 'application/vnd.mif', 'smil' => 'application/smil',
'xls' => array('application/excel', 'application/vnd.ms-excel', 'application/msexcel'), 'mif' => 'application/vnd.mif',
'ppt' => array('application/powerpoint', 'application/vnd.ms-powerpoint'), 'xls' => array('application/excel', 'application/vnd.ms-excel', 'application/msexcel'),
'wbxml' => 'application/wbxml', 'ppt' => array('application/powerpoint', 'application/vnd.ms-powerpoint'),
'wmlc' => 'application/wmlc', 'wbxml' => 'application/wbxml',
'dcr' => 'application/x-director', 'wmlc' => 'application/wmlc',
'dir' => 'application/x-director', 'dcr' => 'application/x-director',
'dxr' => 'application/x-director', 'dir' => 'application/x-director',
'dvi' => 'application/x-dvi', 'dxr' => 'application/x-director',
'gtar' => 'application/x-gtar', 'dvi' => 'application/x-dvi',
'gz' => 'application/x-gzip', 'gtar' => 'application/x-gtar',
'php' => 'application/x-httpd-php', 'gz' => 'application/x-gzip',
'php4' => 'application/x-httpd-php', 'php' => 'application/x-httpd-php',
'php3' => 'application/x-httpd-php', 'php4' => 'application/x-httpd-php',
'phtml' => 'application/x-httpd-php', 'php3' => 'application/x-httpd-php',
'phps' => 'application/x-httpd-php-source', 'phtml' => 'application/x-httpd-php',
'js' => 'application/x-javascript', 'phps' => 'application/x-httpd-php-source',
'swf' => 'application/x-shockwave-flash', 'js' => 'application/x-javascript',
'sit' => 'application/x-stuffit', 'swf' => 'application/x-shockwave-flash',
'tar' => 'application/x-tar', 'sit' => 'application/x-stuffit',
'tgz' => array('application/x-tar', 'application/x-gzip-compressed'), 'tar' => 'application/x-tar',
'xhtml' => 'application/xhtml+xml', 'tgz' => array('application/x-tar', 'application/x-gzip-compressed'),
'xht' => 'application/xhtml+xml', 'xhtml' => 'application/xhtml+xml',
'zip' => array('application/x-zip', 'application/zip', 'application/x-zip-compressed'), 'xht' => 'application/xhtml+xml',
'mid' => 'audio/midi', 'zip' => array('application/x-zip', 'application/zip', 'application/x-zip-compressed'),
'midi' => 'audio/midi', 'mid' => 'audio/midi',
'mpga' => 'audio/mpeg', 'midi' => 'audio/midi',
'mp2' => 'audio/mpeg', 'mpga' => 'audio/mpeg',
'mp3' => array('audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'), 'mp2' => 'audio/mpeg',
'aif' => 'audio/x-aiff', 'mp3' => array('audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'),
'aiff' => 'audio/x-aiff', 'aif' => 'audio/x-aiff',
'aifc' => 'audio/x-aiff', 'aiff' => 'audio/x-aiff',
'ram' => 'audio/x-pn-realaudio', 'aifc' => 'audio/x-aiff',
'rm' => 'audio/x-pn-realaudio', 'ram' => 'audio/x-pn-realaudio',
'rpm' => 'audio/x-pn-realaudio-plugin', 'rm' => 'audio/x-pn-realaudio',
'ra' => 'audio/x-realaudio', 'rpm' => 'audio/x-pn-realaudio-plugin',
'rv' => 'video/vnd.rn-realvideo', 'ra' => 'audio/x-realaudio',
'wav' => 'audio/x-wav', 'rv' => 'video/vnd.rn-realvideo',
'bmp' => 'image/bmp', 'wav' => 'audio/x-wav',
'gif' => 'image/gif', 'bmp' => 'image/bmp',
'jpeg' => array('image/jpeg', 'image/pjpeg'), 'gif' => 'image/gif',
'jpg' => array('image/jpeg', 'image/pjpeg'), 'jpeg' => array('image/jpeg', 'image/pjpeg'),
'jpe' => array('image/jpeg', 'image/pjpeg'), 'jpg' => array('image/jpeg', 'image/pjpeg'),
'png' => array('image/png', 'image/x-png'), 'jpe' => array('image/jpeg', 'image/pjpeg'),
'tiff' => 'image/tiff', 'png' => array('image/png', 'image/x-png'),
'tif' => 'image/tiff', 'tiff' => 'image/tiff',
'css' => 'text/css', 'tif' => 'image/tiff',
'html' => 'text/html', 'css' => 'text/css',
'htm' => 'text/html', 'html' => 'text/html',
'shtml' => 'text/html', 'htm' => 'text/html',
'txt' => 'text/plain', 'shtml' => 'text/html',
'text' => 'text/plain', 'txt' => 'text/plain',
'log' => array('text/plain', 'text/x-log'), 'text' => 'text/plain',
'rtx' => 'text/richtext', 'log' => array('text/plain', 'text/x-log'),
'rtf' => 'text/rtf', 'rtx' => 'text/richtext',
'xml' => 'text/xml', 'rtf' => 'text/rtf',
'xsl' => 'text/xml', 'xml' => 'text/xml',
'mpeg' => 'video/mpeg', 'xsl' => 'text/xml',
'mpg' => 'video/mpeg', 'mpeg' => 'video/mpeg',
'mpe' => 'video/mpeg', 'mpg' => 'video/mpeg',
'qt' => 'video/quicktime', 'mpe' => 'video/mpeg',
'mov' => 'video/quicktime', 'qt' => 'video/quicktime',
'avi' => 'video/x-msvideo', 'mov' => 'video/quicktime',
'movie' => 'video/x-sgi-movie', 'avi' => 'video/x-msvideo',
'doc' => 'application/msword', 'movie' => 'video/x-sgi-movie',
'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'doc' => 'application/msword',
'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'word' => array('application/msword', 'application/octet-stream'), 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'xl' => 'application/excel', 'word' => array('application/msword', 'application/octet-stream'),
'eml' => 'message/rfc822', 'xl' => 'application/excel',
'json' => array('application/json', 'text/json'), 'eml' => 'message/rfc822',
'obj' => 'text/plain', 'json' => array('application/json', 'text/json'),
); 'obj' => 'text/plain',
);
/* End of file mimes.php */ /* End of file mimes.php */

View File

@@ -1,4 +1,4 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <?php defined('BASEPATH') || exit('No direct script access allowed');
/* /*
| ------------------------------------------------------------------------- | -------------------------------------------------------------------------
| Profiler Sections | Profiler Sections

View File

@@ -1,4 +1,4 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <?php defined('BASEPATH') || exit('No direct script access allowed');
/* /*
| ------------------------------------------------------------------------- | -------------------------------------------------------------------------
| URI ROUTING | URI ROUTING
@@ -41,9 +41,6 @@
$route['default_controller'] = "dashboard"; $route['default_controller'] = "dashboard";
$route['404_override'] = ''; $route['404_override'] = '';
$route['(\w{2})/(.*)'] = '$2';
$route['(\w{2})'] = $route['default_controller'];
/* End of file routes.php */ /* End of file routes.php */
/* Location: ./application/config/routes.php */ /* Location: ./application/config/routes.php */

View File

@@ -1,4 +1,4 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <?php defined('BASEPATH') || exit('No direct script access allowed');
/* /*
| ------------------------------------------------------------------- | -------------------------------------------------------------------
| SMILEYS | SMILEYS
@@ -14,53 +14,53 @@
$smileys = array( $smileys = array(
// smiley image name width height alt // smiley image name width height alt
':-)' => array('grin.gif', '19', '19', 'grin'), ':-)' => array('grin.gif', '19', '19', 'grin'),
':lol:' => array('lol.gif', '19', '19', 'LOL'), ':lol:' => array('lol.gif', '19', '19', 'LOL'),
':cheese:' => array('cheese.gif', '19', '19', 'cheese'), ':cheese:' => array('cheese.gif', '19', '19', 'cheese'),
':)' => array('smile.gif', '19', '19', 'smile'), ':)' => array('smile.gif', '19', '19', 'smile'),
';-)' => array('wink.gif', '19', '19', 'wink'), ';-)' => array('wink.gif', '19', '19', 'wink'),
';)' => array('wink.gif', '19', '19', 'wink'), ';)' => array('wink.gif', '19', '19', 'wink'),
':smirk:' => array('smirk.gif', '19', '19', 'smirk'), ':smirk:' => array('smirk.gif', '19', '19', 'smirk'),
':roll:' => array('rolleyes.gif', '19', '19', 'rolleyes'), ':roll:' => array('rolleyes.gif', '19', '19', 'rolleyes'),
':-S' => array('confused.gif', '19', '19', 'confused'), ':-S' => array('confused.gif', '19', '19', 'confused'),
':wow:' => array('surprise.gif', '19', '19', 'surprised'), ':wow:' => array('surprise.gif', '19', '19', 'surprised'),
':bug:' => array('bigsurprise.gif', '19', '19', 'big surprise'), ':bug:' => array('bigsurprise.gif', '19', '19', 'big surprise'),
':-P' => array('tongue_laugh.gif', '19', '19', 'tongue laugh'), ':-P' => array('tongue_laugh.gif', '19', '19', 'tongue laugh'),
'%-P' => array('tongue_rolleye.gif', '19', '19', 'tongue rolleye'), '%-P' => array('tongue_rolleye.gif', '19', '19', 'tongue rolleye'),
';-P' => array('tongue_wink.gif', '19', '19', 'tongue wink'), ';-P' => array('tongue_wink.gif', '19', '19', 'tongue wink'),
':P' => array('raspberry.gif', '19', '19', 'raspberry'), ':P' => array('raspberry.gif', '19', '19', 'raspberry'),
':blank:' => array('blank.gif', '19', '19', 'blank stare'), ':blank:' => array('blank.gif', '19', '19', 'blank stare'),
':long:' => array('longface.gif', '19', '19', 'long face'), ':long:' => array('longface.gif', '19', '19', 'long face'),
':ohh:' => array('ohh.gif', '19', '19', 'ohh'), ':ohh:' => array('ohh.gif', '19', '19', 'ohh'),
':grrr:' => array('grrr.gif', '19', '19', 'grrr'), ':grrr:' => array('grrr.gif', '19', '19', 'grrr'),
':gulp:' => array('gulp.gif', '19', '19', 'gulp'), ':gulp:' => array('gulp.gif', '19', '19', 'gulp'),
'8-/' => array('ohoh.gif', '19', '19', 'oh oh'), '8-/' => array('ohoh.gif', '19', '19', 'oh oh'),
':down:' => array('downer.gif', '19', '19', 'downer'), ':down:' => array('downer.gif', '19', '19', 'downer'),
':red:' => array('embarrassed.gif', '19', '19', 'red face'), ':red:' => array('embarrassed.gif', '19', '19', 'red face'),
':sick:' => array('sick.gif', '19', '19', 'sick'), ':sick:' => array('sick.gif', '19', '19', 'sick'),
':shut:' => array('shuteye.gif', '19', '19', 'shut eye'), ':shut:' => array('shuteye.gif', '19', '19', 'shut eye'),
':-/' => array('hmm.gif', '19', '19', 'hmmm'), ':-/' => array('hmm.gif', '19', '19', 'hmmm'),
'>:(' => array('mad.gif', '19', '19', 'mad'), '>:(' => array('mad.gif', '19', '19', 'mad'),
':mad:' => array('mad.gif', '19', '19', 'mad'), ':mad:' => array('mad.gif', '19', '19', 'mad'),
'>:-(' => array('angry.gif', '19', '19', 'angry'), '>:-(' => array('angry.gif', '19', '19', 'angry'),
':angry:' => array('angry.gif', '19', '19', 'angry'), ':angry:' => array('angry.gif', '19', '19', 'angry'),
':zip:' => array('zip.gif', '19', '19', 'zipper'), ':zip:' => array('zip.gif', '19', '19', 'zipper'),
':kiss:' => array('kiss.gif', '19', '19', 'kiss'), ':kiss:' => array('kiss.gif', '19', '19', 'kiss'),
':ahhh:' => array('shock.gif', '19', '19', 'shock'), ':ahhh:' => array('shock.gif', '19', '19', 'shock'),
':coolsmile:' => array('shade_smile.gif', '19', '19', 'cool smile'), ':coolsmile:' => array('shade_smile.gif', '19', '19', 'cool smile'),
':coolsmirk:' => array('shade_smirk.gif', '19', '19', 'cool smirk'), ':coolsmirk:' => array('shade_smirk.gif', '19', '19', 'cool smirk'),
':coolgrin:' => array('shade_grin.gif', '19', '19', 'cool grin'), ':coolgrin:' => array('shade_grin.gif', '19', '19', 'cool grin'),
':coolhmm:' => array('shade_hmm.gif', '19', '19', 'cool hmm'), ':coolhmm:' => array('shade_hmm.gif', '19', '19', 'cool hmm'),
':coolmad:' => array('shade_mad.gif', '19', '19', 'cool mad'), ':coolmad:' => array('shade_mad.gif', '19', '19', 'cool mad'),
':coolcheese:' => array('shade_cheese.gif', '19', '19', 'cool cheese'), ':coolcheese:' => array('shade_cheese.gif', '19', '19', 'cool cheese'),
':vampire:' => array('vampire.gif', '19', '19', 'vampire'), ':vampire:' => array('vampire.gif', '19', '19', 'vampire'),
':snake:' => array('snake.gif', '19', '19', 'snake'), ':snake:' => array('snake.gif', '19', '19', 'snake'),
':exclaim:' => array('exclaim.gif', '19', '19', 'excaim'), ':exclaim:' => array('exclaim.gif', '19', '19', 'excaim'),
':question:' => array('question.gif', '19', '19', 'question') // no comma after last item ':question:' => array('question.gif', '19', '19', 'question'),
); );
/* End of file smileys.php */ /* End of file smileys.php */
/* Location: ./application/config/smileys.php */ /* Location: ./application/config/smileys.php */

View File

@@ -1,4 +1,4 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <?php defined('BASEPATH') || exit('No direct script access allowed');
/* /*
| ------------------------------------------------------------------- | -------------------------------------------------------------------
| USER AGENT TYPES | USER AGENT TYPES
@@ -11,168 +11,167 @@
*/ */
$platforms = array ( $platforms = array (
'windows nt 6.0' => 'Windows Longhorn', 'windows nt 6.0' => 'Windows Longhorn',
'windows nt 5.2' => 'Windows 2003', 'windows nt 5.2' => 'Windows 2003',
'windows nt 5.0' => 'Windows 2000', 'windows nt 5.0' => 'Windows 2000',
'windows nt 5.1' => 'Windows XP', 'windows nt 5.1' => 'Windows XP',
'windows nt 4.0' => 'Windows NT 4.0', 'windows nt 4.0' => 'Windows NT 4.0',
'winnt4.0' => 'Windows NT 4.0', 'winnt4.0' => 'Windows NT 4.0',
'winnt 4.0' => 'Windows NT', 'winnt 4.0' => 'Windows NT',
'winnt' => 'Windows NT', 'winnt' => 'Windows NT',
'windows 98' => 'Windows 98', 'windows 98' => 'Windows 98',
'win98' => 'Windows 98', 'win98' => 'Windows 98',
'windows 95' => 'Windows 95', 'windows 95' => 'Windows 95',
'win95' => 'Windows 95', 'win95' => 'Windows 95',
'windows' => 'Unknown Windows OS', 'windows' => 'Unknown Windows OS',
'os x' => 'Mac OS X', 'os x' => 'Mac OS X',
'ppc mac' => 'Power PC Mac', 'ppc mac' => 'Power PC Mac',
'freebsd' => 'FreeBSD', 'freebsd' => 'FreeBSD',
'ppc' => 'Macintosh', 'ppc' => 'Macintosh',
'linux' => 'Linux', 'linux' => 'Linux',
'debian' => 'Debian', 'debian' => 'Debian',
'sunos' => 'Sun Solaris', 'sunos' => 'Sun Solaris',
'beos' => 'BeOS', 'beos' => 'BeOS',
'apachebench' => 'ApacheBench', 'apachebench' => 'ApacheBench',
'aix' => 'AIX', 'aix' => 'AIX',
'irix' => 'Irix', 'irix' => 'Irix',
'osf' => 'DEC OSF', 'osf' => 'DEC OSF',
'hp-ux' => 'HP-UX', 'hp-ux' => 'HP-UX',
'netbsd' => 'NetBSD', 'netbsd' => 'NetBSD',
'bsdi' => 'BSDi', 'bsdi' => 'BSDi',
'openbsd' => 'OpenBSD', 'openbsd' => 'OpenBSD',
'gnu' => 'GNU/Linux', 'gnu' => 'GNU/Linux',
'unix' => 'Unknown Unix OS' 'unix' => 'Unknown Unix OS'
); );
// The order of this array should NOT be changed. Many browsers return // The order of this array should NOT be changed. Many browsers return
// multiple browser types so we want to identify the sub-type first. // multiple browser types so we want to identify the sub-type first.
$browsers = array( $browsers = array(
'Flock' => 'Flock', 'Flock' => 'Flock',
'Chrome' => 'Chrome', 'Chrome' => 'Chrome',
'Opera' => 'Opera', 'Opera' => 'Opera',
'MSIE' => 'Internet Explorer', 'MSIE' => 'Internet Explorer',
'Internet Explorer' => 'Internet Explorer', 'Internet Explorer' => 'Internet Explorer',
'Shiira' => 'Shiira', 'Shiira' => 'Shiira',
'Firefox' => 'Firefox', 'Firefox' => 'Firefox',
'Chimera' => 'Chimera', 'Chimera' => 'Chimera',
'Phoenix' => 'Phoenix', 'Phoenix' => 'Phoenix',
'Firebird' => 'Firebird', 'Firebird' => 'Firebird',
'Camino' => 'Camino', 'Camino' => 'Camino',
'Netscape' => 'Netscape', 'Netscape' => 'Netscape',
'OmniWeb' => 'OmniWeb', 'OmniWeb' => 'OmniWeb',
'Safari' => 'Safari', 'Safari' => 'Safari',
'Mozilla' => 'Mozilla', 'Mozilla' => 'Mozilla',
'Konqueror' => 'Konqueror', 'Konqueror' => 'Konqueror',
'icab' => 'iCab', 'icab' => 'iCab',
'Lynx' => 'Lynx', 'Lynx' => 'Lynx',
'Links' => 'Links', 'Links' => 'Links',
'hotjava' => 'HotJava', 'hotjava' => 'HotJava',
'amaya' => 'Amaya', 'amaya' => 'Amaya',
'IBrowse' => 'IBrowse' 'IBrowse' => 'IBrowse'
); );
$mobiles = array( $mobiles = array(
// legacy array, old values commented out // legacy array, old values commented out
'mobileexplorer' => 'Mobile Explorer', 'mobileexplorer' => 'Mobile Explorer',
// 'openwave' => 'Open Wave', // 'openwave' => 'Open Wave',
// 'opera mini' => 'Opera Mini', // 'opera mini' => 'Opera Mini',
// 'operamini' => 'Opera Mini', // 'operamini' => 'Opera Mini',
// 'elaine' => 'Palm', // 'elaine' => 'Palm',
'palmsource' => 'Palm', 'palmsource' => 'Palm',
// 'digital paths' => 'Palm', // 'digital paths' => 'Palm',
// 'avantgo' => 'Avantgo', // 'avantgo' => 'Avantgo',
// 'xiino' => 'Xiino', // 'xiino' => 'Xiino',
'palmscape' => 'Palmscape', 'palmscape' => 'Palmscape',
// 'nokia' => 'Nokia', // 'nokia' => 'Nokia',
// 'ericsson' => 'Ericsson', // 'ericsson' => 'Ericsson',
// 'blackberry' => 'BlackBerry', // 'blackberry' => 'BlackBerry',
// 'motorola' => 'Motorola' // 'motorola' => 'Motorola'
// Phones and Manufacturers // Phones and Manufacturers
'motorola' => "Motorola", 'motorola' => "Motorola",
'nokia' => "Nokia", 'nokia' => "Nokia",
'palm' => "Palm", 'palm' => "Palm",
'iphone' => "Apple iPhone", 'iphone' => "Apple iPhone",
'ipad' => "iPad", 'ipad' => "iPad",
'ipod' => "Apple iPod Touch", 'ipod' => "Apple iPod Touch",
'sony' => "Sony Ericsson", 'sony' => "Sony Ericsson",
'ericsson' => "Sony Ericsson", 'ericsson' => "Sony Ericsson",
'blackberry' => "BlackBerry", 'blackberry' => "BlackBerry",
'cocoon' => "O2 Cocoon", 'cocoon' => "O2 Cocoon",
'blazer' => "Treo", 'blazer' => "Treo",
'lg' => "LG", 'lg' => "LG",
'amoi' => "Amoi", 'amoi' => "Amoi",
'xda' => "XDA", 'xda' => "XDA",
'mda' => "MDA", 'mda' => "MDA",
'vario' => "Vario", 'vario' => "Vario",
'htc' => "HTC", 'htc' => "HTC",
'samsung' => "Samsung", 'samsung' => "Samsung",
'sharp' => "Sharp", 'sharp' => "Sharp",
'sie-' => "Siemens", 'sie-' => "Siemens",
'alcatel' => "Alcatel", 'alcatel' => "Alcatel",
'benq' => "BenQ", 'benq' => "BenQ",
'ipaq' => "HP iPaq", 'ipaq' => "HP iPaq",
'mot-' => "Motorola", 'mot-' => "Motorola",
'playstation portable' => "PlayStation Portable", 'playstation portable' => "PlayStation Portable",
'hiptop' => "Danger Hiptop", 'hiptop' => "Danger Hiptop",
'nec-' => "NEC", 'nec-' => "NEC",
'panasonic' => "Panasonic", 'panasonic' => "Panasonic",
'philips' => "Philips", 'philips' => "Philips",
'sagem' => "Sagem", 'sagem' => "Sagem",
'sanyo' => "Sanyo", 'sanyo' => "Sanyo",
'spv' => "SPV", 'spv' => "SPV",
'zte' => "ZTE", 'zte' => "ZTE",
'sendo' => "Sendo", 'sendo' => "Sendo",
// Operating Systems // Operating Systems
'symbian' => "Symbian", 'symbian' => "Symbian",
'SymbianOS' => "SymbianOS", 'SymbianOS' => "SymbianOS",
'elaine' => "Palm", 'elaine' => "Palm",
'palm' => "Palm", 'palm' => "Palm",
'series60' => "Symbian S60", 'series60' => "Symbian S60",
'windows ce' => "Windows CE", 'windows ce' => "Windows CE",
// Browsers // Browsers
'obigo' => "Obigo", 'obigo' => "Obigo",
'netfront' => "Netfront Browser", 'netfront' => "Netfront Browser",
'openwave' => "Openwave Browser", 'openwave' => "Openwave Browser",
'mobilexplorer' => "Mobile Explorer", 'mobilexplorer' => "Mobile Explorer",
'operamini' => "Opera Mini", 'operamini' => "Opera Mini",
'opera mini' => "Opera Mini", 'opera mini' => "Opera Mini",
// Other // Other
'digital paths' => "Digital Paths", 'digital paths' => "Digital Paths",
'avantgo' => "AvantGo", 'avantgo' => "AvantGo",
'xiino' => "Xiino", 'xiino' => "Xiino",
'novarra' => "Novarra Transcoder", 'novarra' => "Novarra Transcoder",
'vodafone' => "Vodafone", 'vodafone' => "Vodafone",
'docomo' => "NTT DoCoMo", 'docomo' => "NTT DoCoMo",
'o2' => "O2", 'o2' => "O2",
// Fallback // Fallback
'mobile' => "Generic Mobile", 'mobile' => "Generic Mobile",
'wireless' => "Generic Mobile", 'wireless' => "Generic Mobile",
'j2me' => "Generic Mobile", 'j2me' => "Generic Mobile",
'midp' => "Generic Mobile", 'midp' => "Generic Mobile",
'cldc' => "Generic Mobile", 'cldc' => "Generic Mobile",
'up.link' => "Generic Mobile", 'up.link' => "Generic Mobile",
'up.browser' => "Generic Mobile", 'up.browser' => "Generic Mobile",
'smartphone' => "Generic Mobile", 'smartphone' => "Generic Mobile",
'cellphone' => "Generic Mobile" 'cellphone' => "Generic Mobile"
); );
// There are hundreds of bots but these are the most common. // There are hundreds of bots but these are the most common.
$robots = array( $robots = array(
'googlebot' => 'Googlebot', 'googlebot' => 'Googlebot',
'msnbot' => 'MSNBot', 'msnbot' => 'MSNBot',
'slurp' => 'Inktomi Slurp', 'slurp' => 'Inktomi Slurp',
'yahoo' => 'Yahoo', 'yahoo' => 'Yahoo',
'askjeeves' => 'AskJeeves', 'askjeeves' => 'AskJeeves',
'fastcrawler' => 'FastCrawler', 'fastcrawler' => 'FastCrawler',
'infoseek' => 'InfoSeek Robot 1.0', 'infoseek' => 'InfoSeek Robot 1.0',
'lycos' => 'Lycos' 'lycos' => 'Lycos'
); );
/* End of file user_agents.php */ /* End of file user_agents.php */
/* Location: ./application/config/user_agents.php */ /* Location: ./application/config/user_agents.php */

View File

@@ -0,0 +1,44 @@
<?php
/*
* Copyright (c) 2011 Karsten Heiken <karsten@disposed.de>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
/**
* Static about page
*
* @author Karsten Heiken <karsten@disposed.de>
*/
class About extends CI_Controller {
/**
* Constructor.
*/
public function __construct() {
parent::__construct();
}
public function index() {
$this->load->view('about');
}
}
/* End of file about.php */
/* Location: ./application/controllers/about.php */

View File

@@ -0,0 +1,44 @@
<?php
/*
* Copyright (c) 2011 Karsten Heiken <karsten@disposed.de>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
/**
* Static license page
*
* @author Karsten Heiken <karsten@disposed.de>
*/
class License extends CI_Controller {
/**
* Constructor.
*/
public function __construct() {
parent::__construct();
}
public function index() {
$this->load->view('license');
}
}
/* End of file license.php */
/* Location: ./application/controllers/license.php */

View File

@@ -0,0 +1,51 @@
<?php
/*
* Copyright (c) 2011 Eike Foken <kontakt@eikefoken.de>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
/**
* Extends CI's config class.
*
* @author Eike Foken <kontakt@eikefoken.de>
*/
class MY_Config extends CI_Config {
/**
* Calls the parent constructor.
*/
public function __construct() {
parent::__construct();
log_message('debug', "Config Class Extension Initialized");
}
/**
* Handles relative URLs.
*
* @see CI_Config::site_url()
*/
public function site_url($uri = '', $relative = true) {
$url = parent::site_url($uri);
return $relative ? parse_url($url, PHP_URL_PATH) : $url;
}
}
/* End of file MY_Config.php */
/* Location: ./application/core/MY_Config.php */

View File

@@ -14,28 +14,18 @@
* @return string * @return string
*/ */
if (!function_exists('lang_select')) { if (!function_exists('lang_select')) {
function lang_select($img_folder = '', $index_page = false) { function lang_select($img_folder = '') {
$CI =& get_instance(); $CI =& get_instance();
$link = '<a'; $link = '<a';
if ($CI->config->item('language') == 'en_US') { if ($CI->config->item('language') == 'en_US') {
$link .= ' href="' . $CI->config->site_url('de') . '">'; $link .= ' href="?lang=de">';
$link .= '<img src="' . $CI->config->slash_item('base_url') . 'assets/images/languages/en.png" />';
if ($index_page === true) {
$link .= '<img src="' . $CI->config->site_url('assets/images/languages/en.png') . '" />';
} else {
$link .= '<img src="' . $CI->config->slash_item('base_url') . 'assets/images/languages/en.png" />';
}
$link .= ' English'; $link .= ' English';
} else if ($CI->config->item('language') == 'de_DE') { } else if ($CI->config->item('language') == 'de_DE') {
$link .= ' href="' . $CI->config->site_url('en') . '" >'; $link .= ' href="?lang=en">';
$link .= '<img src="' . $CI->config->slash_item('base_url') . 'assets/images/languages/de.png" />';
if ($index_page === true) {
$link .= '<img src="' . $CI->config->site_url('assets/images/languages/de.png') . '" />';
} else {
$link .= '<img src="' . $CI->config->slash_item('base_url') . 'assets/images/languages/de.png" />';
}
$link .= ' Deutsch'; $link .= ' Deutsch';
} }

View File

@@ -0,0 +1,72 @@
<?php defined('BASEPATH') || exit('No direct script access allowed');
/**
* Helper functions for including assets.
*
* @author Eike Foken <kontakt@eikefoken.de>
*/
/**
* Helps generating links to asset files of any sort.
*
* Note: The type should be the name of the folder the asset is stored in.
*
* @param string $type
* @param string $filename
* @return string
*/
function asset_url($type, $filename) {
$CI = &get_instance();
$CI->load->library('assets');
return $CI->assets->url($type, $filename);
}
/**
* Helps generating HTML for assets of any sort.
*
* @param string $type
* @param string $filename
* @param mixed $attributes
* @return string
*/
function asset($type, $filename, $attributes = '') {
$CI = &get_instance();
$CI->load->library('assets');
return $CI->assets->load($type, $filename, $attributes);
}
/**
* Inserts CSS assets.
*
* @param string $filename
* @param mixed $attributes
* @return string
*/
function css_asset($filename, $attributes = '') {
return asset('css', $filename, $attributes);
}
/**
* Inserts image assets.
*
* @param string $filename
* @param mixed $attributes
* @return string
*/
function image_asset($filename, $attributes = '') {
return asset('image', $filename, $attributes);
}
/**
* Inserts javascript assets.
*
* @param string $filename
* @return string
*/
function js_asset($filename) {
return asset('js', $filename);
}
/* End of file asset_helper.php */
/* Location: ./application/helpers/asset_helper.php */

View File

@@ -0,0 +1,146 @@
<?php defined('BASEPATH') || exit('No direct script access allowed');
/**
*
* @author Eike Foken <kontakt@eikefoken.de>
*/
class Assets {
private $assetsFolder;
private $cacheFolder;
private $css = array();
private $javascript = array();
private $CI;
/**
* Constructor.
*/
public function __construct($config = array()) {
log_message('debug', "Asset Class Initialized");
// set the super object to a local variable
$this->CI =& get_instance();
// set the asset path
$this->assetsPath = ($config['assets_folder'] != '') ? $config['assets_folder'] : 'assets';
if (!is_dir($this->assetsPath)) {
log_message('error', "Asset folder does not exist");
}
// set the cache path
$this->cachePath = ($config['cache_folder'] != '') ? $config['cache_folder'] : 'assets/cache';
if (!is_dir($this->cachePath) || !is_really_writable($this->cachePath)) {
$this->cacheEnable = false;
}
}
/**
* Loads an asset.
*
* @param string $type
* @param string $filename
* @param mixed $attributes
*/
public function load($type, $filename, $attributes = '') {
// validate type parameter
$type = strtolower($type);
if (!in_array($type, array('image', 'images', 'icon', 'icons', 'css', 'js'))) {
log_message('error', "Invalid asset type '" . $type . "' used.");
}
if (in_array($type, array('image', 'icon'))) {
$type .= 's';
}
// build the path strings
$filepath = $this->assetsPath . $type . '/' . $filename;
if (!file_exists($filepath)) {
log_message('error', "Unable to load requested asset: $filename");
return '';
}
switch ($type) {
case 'images':
case 'icons':
if (!isset($attributes['alt'])) {
$attributes['alt'] = '';
}
$output = '<img src="' . $this->CI->config->slash_item('base_url') . $filepath . '"' . $this->parseAttributes($attributes) . ' />';
break;
case 'css':
$output = '<link href="' . $this->CI->config->slash_item('base_url') . $filepath . '" rel="stylesheet" type="text/css"' . $this->parseAttributes($attributes) . " />\n";
break;
case 'js':
// $this->javascript[] = array('filepath' => $filepath, 'attributes' => $attributes);
// $code = file_get_contents(FCPATH . $this->assetsFolder . $type . '/' . $filename);
// if ($this->CI->config->item('enable_jsmin') == true) {
// $this->CI->load->library('jsmin');
// $code = $this->CI->jsmin->minify($code);
// }
// $httpHeaders = '<' . '?php header("Content-type: text/javascript; charset: UTF-8");?' . '>';
// if ($this->CI->config->item('compress_output') == true) {
// $httpHeaders .= '';
// }
// $code = $httpHeaders . "\n" . $code;
// file_put_contents(FCPATH . $this->cacheFolder . $type . '_' . md5($code) . EXT, $code);
$output = '<script src="' . $this->CI->config->slash_item('base_url') . $filepath . '" language="javascript" type="text/javascript"></script>';
$output .= "\n";
break;
default:
$output = '';
}
return $output;
}
/**
* Generates an URL of the given asset.
*
* @param string $type
* @param string $filename
* @return string
*/
public function url($type, $filename) {
$type = strtolower($type);
if (!in_array($type, array('image', 'images', 'icon', 'icons', 'css', 'js'))) {
log_message('error', "'" . $type . "' is not a valid asset type");
return;
}
if (in_array($type, array('image', 'icon'))) {
$type .= 's';
}
return $this->CI->config->slash_item('base_url') . $this->assetsPath . $type . '/' . $filename;
}
/**
* Parses out the attributes.
*
* @param mixed $attributes
* @return string
*/
private function parseAttributes($attributes) {
if (is_string($attributes)) {
return ($attributes != '') ? ' '.$attributes : '';
}
$output = '';
foreach ($attributes as $key => $value) {
$output .= ' ' . $key . '="' . $value . '"';
}
return $output;
}
}
/* End of file Assets.php */
/* Location: ./application/libraries/Assets.php */

View File

@@ -0,0 +1,277 @@
<?php
/**
* Jsmin.php - PHP implementation of Douglas Crockford's JSMin.
*
* This is pretty much a direct port of jsmin.c to PHP with just a few
* PHP-specific performance tweaks. Also, whereas jsmin.c reads from stdin and
* outputs to stdout, this library accepts a string as input and returns another
* string as output.
*
* PHP 5 or higher is required.
*
* Permission is hereby granted to use this version of the library under the
* same terms as jsmin.c, which has the following license:
*
* --
* Copyright (c) 2002 Douglas Crockford (www.crockford.com)
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
* of the Software, and to permit persons to whom the Software is furnished to do
* so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* The Software shall be used for Good, not Evil.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
* --
*
* @package CodeIgniter
* @author Ryan Grove <ryan@wonko.com>
* @copyright 2002 Douglas Crockford <douglas@crockford.com> (jsmin.c)
* @copyright 2008 Ryan Grove <ryan@wonko.com> (PHP port)
* @license http://opensource.org/licenses/mit-license.php MIT License
* @version 1.1.1 (2008-03-02)
* @link http://code.google.com/p/jsmin-php/
*/
class Jsmin {
const ORD_LF = 10;
const ORD_SPACE = 32;
protected $a = '';
protected $b = '';
protected $input = '';
protected $inputIndex = 0;
protected $inputLength = 0;
protected $lookAhead = null;
protected $output = '';
/**
* Constructor.
*/
public function __construct() {
log_message('debug', "Jsmin Class Initialized");
}
/**
* Minifies javascript code.
*
* @param string $input
* @return string The minified code
*/
public function minify($input) {
$this->input = str_replace("\r\n", "\n", $input);
$this->inputLength = strlen($this->input);
return $this->min();
}
private function action($d) {
switch ($d) {
case 1:
$this->output .= $this->a;
case 2:
$this->a = $this->b;
if ($this->a === "'" || $this->a === '"') {
for (;;) {
$this->output .= $this->a;
$this->a = $this->get();
if ($this->a === $this->b) {
break;
}
if (ord($this->a) <= self::ORD_LF) {
log_message('error', "Unterminated string literal");
return;
}
if ($this->a === '\\') {
$this->output .= $this->a;
$this->a = $this->get();
}
}
}
case 3:
$this->b = $this->next();
if ($this->b === '/' && ($this->a === '(' || $this->a === ',' || $this->a === '=' || $this->a === ':' || $this->a === '[' || $this->a === '!' || $this->a === '&' || $this->a === '|' || $this->a === '?')) {
$this->output .= $this->a . $this->b;
for (;;) {
$this->a = $this->get();
if ($this->a === '/') {
break;
} else if ($this->a === '\\') {
$this->output .= $this->a;
$this->a = $this->get();
} else if (ord($this->a) <= self::ORD_LF) {
log_message('error', "Unterminated regular expression literal");
return;
}
$this->output .= $this->a;
}
$this->b = $this->next();
}
}
}
private function get() {
$c = $this->lookAhead;
$this->lookAhead = null;
if ($c === null) {
if ($this->inputIndex < $this->inputLength) {
$c = $this->input[$this->inputIndex];
$this->inputIndex += 1;
} else {
$c = null;
}
}
if ($c === "\r") {
return "\n";
}
if ($c === null || $c === "\n" || ord($c) >= self::ORD_SPACE) {
return $c;
}
return ' ';
}
private function isAlphaNum($c) {
return ord($c) > 126 || $c === '\\' || preg_match('/^[\w\$]$/', $c) === 1;
}
private function min() {
$this->a = "\n";
$this->action(3);
while ($this->a !== null) {
switch ($this->a) {
case ' ':
if ($this->isAlphaNum($this->b)) {
$this->action(1);
} else {
$this->action(2);
}
break;
case "\n":
switch ($this->b) {
case '{':
case '[':
case '(':
case '+':
case '-':
$this->action(1);
break;
case ' ':
$this->action(3);
break;
default:
if ($this->isAlphaNum($this->b)) {
$this->action(1);
} else {
$this->action(2);
}
}
break;
default:
switch ($this->b) {
case ' ':
if ($this->isAlphaNum($this->a)) {
$this->action(1);
break;
}
$this->action(3);
break;
case "\n":
switch ($this->a) {
case '}':
case ']':
case ')':
case '+':
case '-':
case '"':
case "'":
$this->action(1);
break;
default:
if ($this->isAlphaNum($this->a)) {
$this->action(1);
} else {
$this->action(3);
}
}
break;
default:
$this->action(1);
break;
}
}
}
return $this->output;
}
private function next() {
$c = $this->get();
if ($c === '/') {
switch ($this->peek()) {
case '/':
for (;;) {
$c = $this->get();
if (ord($c) <= self::ORD_LF) {
return $c;
}
}
case '*':
$this->get();
for (;;) {
switch ($this->get()) {
case '*':
if ($this->peek() === '/') {
$this->get();
return ' ';
}
break;
case null:
throw new JSMinException('Unterminated comment.');
}
}
default:
return $c;
}
}
return $c;
}
private function peek() {
$this->lookAhead = $this->get();
return $this->lookAhead;
}
}
/* End of file Jsmin.php */
/* Location: ./application/libraries/Jsmin.php */

View File

@@ -39,12 +39,10 @@ class Lang_detect {
* @return string Language directory name, e.g. 'english' * @return string Language directory name, e.g. 'english'
*/ */
public function detectLanguage() { public function detectLanguage() {
for ($i = $this->CI->uri->total_segments(); $i > 0; $i--) { $segment = $this->CI->input->get('lang');
$segment = $this->CI->uri->segment($i); if (strlen($segment) == 2 && array_key_exists($segment, $this->supportedLanguages)) {
if (strlen($segment) == 2 && array_key_exists($segment, $this->supportedLanguages)) { $lang = $segment;
$lang = $segment; $this->CI->session->set_userdata('language', $lang);
$this->CI->session->set_userdata('language', $lang);
}
} }
if ($this->CI->session->userdata('language')) { if ($this->CI->session->userdata('language')) {

View File

@@ -0,0 +1,27 @@
<?php $this->load->view('header'); ?>
<div id="content">
<div class="title">
<h2><?=_('About');?></h2>
</div>
<div class="box">
<h3><?=_('Introduction');?></h3>
<p>
</p>
</div>
<div class="box">
<h3><?=_('Contributors');?></h3>
<p>
<h4>Programming</h4>
<ul>
<li>Karsten Heiken, 2011</li>
<li>Eike Foken, 2011</li>
</ul>
</p>
</div>
</div>
<?php $this->load->view('footer'); ?>

View File

@@ -6,12 +6,12 @@
<title>ScattPort | <?=_('Login');?></title> <title>ScattPort | <?=_('Login');?></title>
<?= link_tag('assets/css/login.css'); ?> <?=asset('css', 'login.css');?>
<?= link_tag('assets/css/form.css'); ?> <?=asset('css', 'form.css');?>
<?= script_tag('assets/js/minmax.js'); ?> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" language="javascript" type="text/javascript"></script>
<?= script_tag('https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js'); ?> <?=asset('js', 'assets/js/minmax.js');?>
<?= script_tag('assets/js/scattport.js'); ?> <?=asset('js', 'assets/js/scattport.js');?>
<script type="text/javascript"> <script type="text/javascript">
var SITE_URL = '<?=site_url()?>'; var SITE_URL = '<?=site_url()?>';
</script> </script>

View File

@@ -2,7 +2,7 @@
<? <?
if ($this->access->isAdmin()): if ($this->access->isAdmin()):
?> ?>
<span class="left"><strong><?=_('Administration')?> - </strong> <span class="left"><strong><?=_('Administration')?></strong> -
<a href="<?=site_url('admin/settings')?>"><?=_('Global settings')?></a> | <a href="<?=site_url('admin/settings')?>"><?=_('Global settings')?></a> |
<a href="<?=site_url('admin/servers')?>"><?=_('Manage calculation servers')?></a> | <a href="<?=site_url('admin/servers')?>"><?=_('Manage calculation servers')?></a> |
<a href="<?=site_url('admin/users')?>"><?=_('Manage users')?></a> | <a href="<?=site_url('admin/users')?>"><?=_('Manage users')?></a> |
@@ -11,11 +11,19 @@
<? <?
endif; endif;
?> ?>
<span class="right">© 2011 Karsten Heiken.</span>
<span class="right">
<?=anchor('about', _('About'));?> |
<?=anchor('license', _('License'));?>
</span>
<span class="right">
<?=asset('image', 'iwt.gif', array('width' => 36));?>
<?=asset('image', 'dfg.gif', array('width' => 36));?>
<?=asset('image', 'uni.png', array('width' => 36));?>
</span>
</div> </div>
</div> </div>
</body> </body>
</html> </html>

View File

@@ -7,26 +7,28 @@
<title>ScattPort</title> <title>ScattPort</title>
<?=link_tag('assets/css/style.css');?> <?=css_asset('style.css');?>
<?=link_tag('assets/css/table.css');?> <?=css_asset('table.css');?>
<?=link_tag('assets/css/form.css');?> <?=css_asset('form.css');?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" language="javascript" type="text/javascript"></script>
<?=js_asset('tablednd.jquery.js');?>
<?=js_asset('jsc3d.min.js');?>
<?=js_asset('scattport.js');?>
<?=js_asset('jtip.js');?>
<?=script_tag('assets/js/minmax.js');?>
<?=script_tag('assets/js/jsc3d.min.js');?>
<?=script_tag('https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js');?>
<?=script_tag('assets/js/scattport.js');?>
<?=script_tag('assets/js/tablednd.jquery.js');?>
<?=script_tag('assets/js/jtip.js');?>
<script type="text/javascript"> <script type="text/javascript">
var SITE_URL = '<?=site_url()?>'; var SITE_URL = '<?=site_url("/");?>';
var BASE_URL = '<?=base_url()?>'; var BASE_URL = '<?=base_url("/");?>';
</script> </script>
</head> </head>
<body> <body>
<div id="header"> <div id="header">
<h1><?=anchor('', img('assets/images/logo.png'))?></h1> <h1><?=anchor('', image_asset('logo.png'));?></h1>
<div class="status"> <div class="status">
<select name="activeProject"> <select name="activeProject">
<?php <?php
@@ -39,7 +41,7 @@
?> ?>
</select> </select>
</div> </div>
<div class="menu"><?= _('Hello,') ?> <a href="<?=site_url('');?>"><?=$this->user->profile()->firstname;?> <?=$this->user->profile()->lastname;?></a>! | <?=lang_select('assets/images');?> | <a href="#"><?=_('Help')?></a> | <?=anchor('auth/settings', _('Settings'));?> | <?=anchor('auth/logout', _('Logout'));?></div> <div class="menu"><?= _('Hello,') ?> <a href="<?=base_url();?>"><?=$this->user->profile()->firstname;?> <?=$this->user->profile()->lastname;?></a>! | <?=lang_select('assets/images');?> | <a href="#"><?=_('Help');?></a> | <?=anchor('auth/settings', _('Settings'));?> | <?=anchor('auth/logout', _('Logout'));?></div>
</div> </div>
<div id="wrapper"> <div id="wrapper">
@@ -52,58 +54,65 @@
</div> </div>
<div class="navigation"> <div class="navigation">
<ul> <ul>
<? <?php
if ($this->input->get('active_project')): if ($this->input->get('active_project')):
$active_project = $this->project->getById($this->input->get('active_project')); $active_project = $this->project->getById($this->input->get('active_project'));
?> ?>
<li> <li>
<a href="javascript:void(0);" onclick="$(this).parent().toggleClass('active').find('ul').slideToggle();"><?=_('Project');?> <?=$active_project['shortname'];?></a> <a href="javascript:void(0);" onclick="$(this).parent().toggleClass('active').find('ul').toggle();"><?=_('Project');?> <?=$active_project['shortname'];?></a>
<ul> <ul>
<li><a href="<?=site_url('projects/detail/' . $active_project['id']);?>" title="<?=_('Show overview');?>"><?=_('Overview');?></a></li> <li><a href="<?=site_url('projects/detail/' . $active_project['id']);?>" title="<?=_('Show overview');?>"><?=_('Overview');?></a></li>
<li><a href="<?=site_url('trials/create/' . $active_project['id']);?>" title="<?=sprintf(_('Create a new trial for the project &quot;%s&quot;'), $active_project['name']);?>"><?=_('New trial');?></a></li> <li><a href="<?=site_url('trials/create/' . $active_project['id']);?>" title="<?=sprintf(_('Create a new trial for the project &quot;%s&quot;'), $active_project['name']);?>"><?=_('New trial');?></a></li>
<li><a href="<?=site_url('results/project/' . $active_project['id']);?>" title="<?=sprintf(_('Show results for the project &quot;%s&quot;'), $active_project['name']);?>"><?=_('Show results');?></a></li> <li><a href="<?=site_url('results/project/' . $active_project['id']);?>" title="<?=sprintf(_('Show results for the project &quot;%s&quot;'), $active_project['name']);?>"><?=_('Show results');?></a></li>
</ul> </ul>
</li> </li>
<? <?php
endif; endif;
?> ?>
<li> <li class="togglable" id="nav_projects">
<a href="javascript:void(0);" onclick="$(this).parent().toggleClass('active').find('ul').slideToggle();"><?=_('Projects');?></a> <a href="javascript:void(0);"><?=_('Projects');?></a>
<ul> <ul>
<li><a href="<?=site_url('projects/create');?>" title="<?=_('Create a new project');?>"><?=_('New project');?></a></li> <li><a href="<?=site_url('projects/create');?>" title="<?=_('Create a new project');?>"><?=_('New project');?></a></li>
<li><a href="<?=site_url('projects');?>" title="<?=_('Shows a list of all projects');?>"><?=_('Show projects');?></a></li> <li><a href="<?=site_url('projects');?>" title="<?=_('Shows a list of all projects');?>"><?=_('Show projects');?></a></li>
<li><a href="<?=site_url('projects/search');?>" title="<?=_('Search for a project');?>"><?=_('Search');?></a></li> <li><a href="<?=site_url('projects/search');?>" title="<?=_('Search for a project');?>"><?=_('Search');?></a></li>
</ul> </ul>
</li> </li>
<li class="togglable" id="nav_calculations">
<a href="javascript:void(0);"><?=_('Calculations');?></a>
<ul>
<li><a href="<?=site_url('jobs/results');?>" title="<?=_('Show the newest results');?>"><?=_('Newest results');?></a></li>
<li><a href="<?=site_url('jobs/running');?>" title="<?=_('Shows a list of running calculations');?>"><?=_('Running calculations');?></a></li>
</ul>
</li>
</ul> </ul>
</div> </div>
<div class="title"> <div class="title">
<h2><a href="<?=site_url('projects')?>" title="<?=_('Show all projects')?>"><?=_('Projects')?></a></h2> <h2><a href="<?=site_url('projects');?>" title="<?=_('Show all projects');?>"><?=_('Projects');?></a></h2>
</div> </div>
<div class="navigation"> <div class="navigation">
<ul> <ul>
<li> <li class="togglable" id="nav_own_projects">
<a href="javascript:void(0);" onclick="$(this).parent().toggleClass('active').find('ul').slideToggle();"><?=_('My projects')?></a> <a href="javascript:void(0);"><?=_('My projects');?></a>
<ul> <ul>
<? <?php
$projects = $this->project->getOwn(); $projects = $this->project->getOwn();
foreach($projects as $project): foreach($projects as $project):
?> ?>
<li><a href="<?=site_url('projects/detail/'.$project['id'])?>"><?=$project['name']?></a></li> <li><a href="<?=site_url('projects/detail/'.$project['id']);?>"><?=$project['name'];?></a></li>
<? <?php
endforeach; endforeach;
?> ?>
</ul> </ul>
</li> </li>
<li> <li class="togglable" id="nav_shared_projects">
<a href="javascript:void(0);" onclick="$(this).parent().toggleClass('active').find('ul').slideToggle();"><?=_('Projects shared with me')?></a> <a href="javascript:void(0);"><?=_('Projects shared with me');?></a>
<ul> <ul>
<li><a href="#">Prisma</a></li> <li><a href="#">Prisma</a></li>
</ul> </ul>
</li> </li>
<li> <li class="togglable" id="nav_public_projects">
<a href="javascript:void(0);" onclick="$(this).parent().toggleClass('active').find('ul').slideToggle();"><?=_('Public projects')?></a> <a href="javascript:void(0);"><?=_('Public projects');?></a>
<ul> <ul>
<li><a href="#">Beispielprojekt</a></li> <li><a href="#">Beispielprojekt</a></li>
</ul> </ul>
@@ -112,25 +121,25 @@
</div> </div>
<div class="title"> <div class="title">
<h2><?=_('Search')?></h2> <h2><?=_('Search');?></h2>
</div> </div>
<div class="box"> <div class="box">
<form id="search-form" method="get" action="#"> <form id="search-form" method="get" action="#">
<input type="text" name="search" id="search-input" class="search-input"> <input type="text" name="search" id="search-input" class="search-input" />
<input type="image" src="<?=site_url('assets/images/button-search.gif')?>" id="search-submit" class="search-submit"> <input type="image" src="<?=asset_url('images', 'button-search.gif');?>" id="search-submit" class="search-submit" />
</form> </form>
</div> </div>
<div class="title"> <div class="title">
<h2><?=_('Recent events')?></h2> <h2><?=_('Recent events');?></h2>
</div> </div>
<div class="box"> <div class="box">
<ul id="blog"> <ul id="blog">
<li><h4><a href="#" title="<?=_('Calculation done')?>"><?=_('Calculation done')?></a> <abbr title="22.07.2011">22.07.2011</abbr></h4><p><?=sprintf(_('Calculation successfully finished for project &quot;%s&quot;'), 'Gerstenkorn')?></i></p></li> <li><h4><a href="#" title="<?=_('Calculation done');?>"><?=_('Calculation done');?></a> <abbr title="22.07.2011">22.07.2011</abbr></h4><p><?=sprintf(_('Calculation successfully finished for project &quot;%s&quot;'), 'Gerstenkorn');?></i></p></li>
<li><h4><a href="#" title="<?=_('Calculation done')?>"><?=_('Calculation done')?></a> <abbr title="22.07.2011">22.07.2011</abbr></h4><p><?=sprintf(_('Calculation successfully finished for project &quot;%s&quot;'), 'Gerstenkorn')?></i></p></li> <li><h4><a href="#" title="<?=_('Calculation done');?>"><?=_('Calculation done');?></a> <abbr title="22.07.2011">22.07.2011</abbr></h4><p><?=sprintf(_('Calculation successfully finished for project &quot;%s&quot;'), 'Gerstenkorn');?></i></p></li>
<li><h4><a href="#" title="<?=_('Calculation done')?>"><?=_('Calculation done')?></a> <abbr title="22.07.2011">22.07.2011</abbr></h4><p><?=sprintf(_('Calculation successfully finished for project &quot;%s&quot;'), 'Gerstenkorn')?></i></p></li> <li><h4><a href="#" title="<?=_('Calculation done');?>"><?=_('Calculation done');?></a> <abbr title="22.07.2011">22.07.2011</abbr></h4><p><?=sprintf(_('Calculation successfully finished for project &quot;%s&quot;'), 'Gerstenkorn');?></i></p></li>
</ul> </ul>
</div> </div>

View File

@@ -0,0 +1,40 @@
<?php $this->load->view('header'); ?>
<div id="content">
<div class="title">
<h2><?=_('License');?></h2>
</div>
<div class="box">
<h3>This application is licensed under the MIT License for Open Source Software</h3>
<p>Copyright (c) 2011 Karsten Heiken, Eike Foken</p>
<p>
Permission is hereby granted, free of charge, to any person obtaining<br />
a copy of this software and associated documentation files (the "Software"),<br />
to deal in the Software without restriction, including without limitation<br />
the rights to use, copy, modify, merge, publish, distribute, sublicense,<br />
and/or sell copies of the Software, and to permit persons to whom the Software<br />
is furnished to do so, subject to the following conditions:
</p>
<p>
The above copyright notice and this permission notice shall be included in all<br />
copies or substantial portions of the Software.
</p>
<p>
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,<br />
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES<br />
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND<br />
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT<br />
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,<br />
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING<br />
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR <br />
OTHER DEALINGS IN THE SOFTWARE.
</p>
</div>
</div>
<?php $this->load->view('footer'); ?>

10
assets/cache/index.html vendored Executable file
View File

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

View File

@@ -170,7 +170,7 @@ div.error {
margin: 0; margin: 0;
padding: 0 15px; padding: 0 15px;
border-top: 1px solid #e8e8e8; border-top: 1px solid #e8e8e8;
background: url(../images/navigation-off.gif) repeat-x; background: url(../images/navigation-on.gif) repeat-x;
line-height: 24px; line-height: 24px;
height: 100%; height: 100%;
display: block; display: block;
@@ -178,18 +178,22 @@ div.error {
} }
.navigation ul li a { .navigation ul li a {
color: #666; background: url(../images/icons/chevron-small-expand.png) -2px center no-repeat;
padding-left: 16px;
margin-left: -7px;
color: #fff;
height: 100%; height: 100%;
width: 100%; width: 100%;
display: block; display: block;
} }
.navigation ul li.active { .navigation ul li.active {
background: url(../images/navigation-on.gif) repeat-x; background: url(../images/navigation-off.gif) repeat-x;
} }
.navigation ul li.active a { .navigation ul li.active a {
color: #fff; background: url(../images/icons/chevron-small.png) -2px center no-repeat;
color: #666;
} }
.navigation ul li ul { .navigation ul li ul {
@@ -205,6 +209,9 @@ div.error {
} }
.navigation ul li ul li a { .navigation ul li ul li a {
background: none;
padding: 0;
margin: 0;
color: #0088cc; color: #0088cc;
} }
@@ -310,7 +317,8 @@ div.error {
background: #fff; background: #fff;
border: 1px solid #e8e8e8; border: 1px solid #e8e8e8;
padding: 15px; padding: 15px;
height: 12px; height: 35px;
line-height: 36px;
clear: both; clear: both;
} }
@@ -320,6 +328,7 @@ div.error {
#footer .right { #footer .right {
float: right; float: right;
margin-left: 6px;
} }
/* Buttons */ /* Buttons */
@@ -520,7 +529,7 @@ ul.tabs li {
margin-bottom: -1px; /* Pull the list item down 1px */ margin-bottom: -1px; /* Pull the list item down 1px */
overflow: hidden; overflow: hidden;
position: relative; position: relative;
background: #e0e0e0 url('../images/navigation-off.gif'); background: #e0e0e0 url('../images/tabs-back.gif');
} }
ul.tabs li a { ul.tabs li a {

BIN
assets/images/dfg.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
assets/images/iwt.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
assets/images/tabs-back.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 B

BIN
assets/images/uni.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@@ -22,6 +22,81 @@ function deleteConfirm(url) {
} }
} }
/**
* Sets a cookie.
*
* @param name
* @param value
* @param days
*/
function setCookie(name, value, days) {
var today = new Date();
var expire = new Date();
if (days == null || days == 0) {
days = 1;
}
expire.setTime(today.getTime() + 3600000 * 24 * days);
document.cookie = name + "=" + escape(value) + ";path=/;expires=" + expire.toGMTString();
}
/**
* Gets a cookie.
*
* @param name
* @returns
*/
function getCookie(name) {
var cookie = ' ' + document.cookie;
var index = cookie.indexOf(" " + name + "=");
if (index == -1) {
index = cookie.indexOf(";" + name + "=");
}
if (index == -1 || name == '') {
return '';
}
var index2 = cookie.indexOf(";", index + 1);
if (index2 == -1) {
index2 = cookie.length;
}
return unescape(cookie.substring(index + name.length + 2, index2));
}
/**
*
* @param cookieName
* @returns
*/
var CookieList = function(cookieName) {
var cookie = getCookie(cookieName);
// load the items or a new array if null
var items = cookie ? cookie.split(/,/) : new Array();
return {
"add": function(val) {
// add to the items
items.push(val);
// save the items to a cookie
setCookie(cookieName, items.join(','));
}, "remove": function(val) {
// remove the value from items
items.splice(items.indexOf(val), 1);
// save the items to a cookie
setCookie(cookieName, items.join(','));
}, "clear": function() {
items = null;
// clear the cookie
setCookie(cookieName, null, null);
}, "items": function() {
// get all the items
return items;
}
};
};
/** /**
* Saves the changes done by in-place edit. * Saves the changes done by in-place edit.
* *
@@ -207,4 +282,27 @@ $(document).ready(function() {
window.location = url; window.location = url;
} }
}); });
/*
* Toggleable navigation
*/
var toggleList = new CookieList("toggled");
var toggled = toggleList.items();
for (var i = 0; i < toggled.length; i++) {
$('#' + toggled[i]).toggleClass('active').find('ul').hide();
}
$('.togglable').find('a').not('ul li ul li a').click(function() {
var id = $(this).parent().attr('id');
// toggle
$(this).parent().toggleClass('active').find('ul').toggle();
if ($(this).next().css('display') == 'none') {
toggleList.add(id);
} else {
toggleList.remove(id);
}
});
}); });