├── .gitignore ├── README.textile ├── README.txt ├── application ├── .htaccess ├── cache │ ├── .htaccess │ └── index.html ├── config │ ├── autoload.php │ ├── constants.php │ ├── development │ │ ├── config.php │ │ └── database.php │ ├── doctypes.php │ ├── foreign_chars.php │ ├── hooks.php │ ├── index.html │ ├── migration.php │ ├── mimes.php │ ├── production │ │ ├── config.php │ │ └── database.php │ ├── profiler.php │ ├── routes.php │ ├── smileys.php │ └── user_agents.php ├── controllers │ ├── index.html │ ├── index.php │ ├── migrate.php │ ├── questions.php │ └── users.php ├── core │ ├── MY_Controller.php │ ├── MY_Loader.php │ ├── MY_Model.php │ ├── MY_Router.php │ └── index.html ├── errors │ ├── error_404.php │ ├── error_db.php │ ├── error_general.php │ ├── error_php.php │ └── index.html ├── helpers │ ├── general_helper.php │ └── index.html ├── hooks │ └── index.html ├── index.html ├── language │ └── english │ │ └── index.html ├── libraries │ ├── MY_Form_validation.php │ ├── MY_Session.php │ ├── Zend.php │ ├── Zend │ │ ├── Cache.php │ │ ├── Cache │ │ │ ├── Backend.php │ │ │ ├── Backend │ │ │ │ ├── Apc.php │ │ │ │ ├── BlackHole.php │ │ │ │ ├── ExtendedInterface.php │ │ │ │ ├── File.php │ │ │ │ ├── Interface.php │ │ │ │ ├── Libmemcached.php │ │ │ │ ├── Memcached.php │ │ │ │ ├── Sqlite.php │ │ │ │ ├── Static.php │ │ │ │ ├── Test.php │ │ │ │ ├── TwoLevels.php │ │ │ │ ├── WinCache.php │ │ │ │ ├── Xcache.php │ │ │ │ ├── ZendPlatform.php │ │ │ │ ├── ZendServer.php │ │ │ │ └── ZendServer │ │ │ │ │ ├── Disk.php │ │ │ │ │ └── ShMem.php │ │ │ ├── Core.php │ │ │ ├── Exception.php │ │ │ ├── Frontend │ │ │ │ ├── Capture.php │ │ │ │ ├── Class.php │ │ │ │ ├── File.php │ │ │ │ ├── Function.php │ │ │ │ ├── Output.php │ │ │ │ └── Page.php │ │ │ └── Manager.php │ │ └── Exception.php │ ├── Zf_cache.php │ └── index.html ├── logs │ ├── index.html │ └── log-2013-02-27.php ├── migrations │ └── 001_create_blog.php ├── models │ ├── answer_model.php │ ├── index.html │ ├── question_model.php │ └── user_model.php ├── modules │ └── blog │ │ ├── controllers │ │ └── blog.php │ │ ├── models │ │ └── blog_m.php │ │ └── views │ │ └── listing.php ├── third_party │ ├── MX │ │ ├── Base.php │ │ ├── Ci.php │ │ ├── Config.php │ │ ├── Controller.php │ │ ├── Lang.php │ │ ├── Loader.php │ │ ├── Modules.php │ │ └── Router.php │ └── index.html └── views │ ├── homepage.php │ ├── index.html │ ├── layouts │ └── layout.php │ ├── questions │ ├── detail.php │ └── listing.php │ └── users │ └── login.php ├── composer.json ├── composer.lock ├── database └── bestpractises_2014-06-02.sql ├── public_html ├── .htaccess ├── index.php ├── license.txt └── style.css ├── sparks └── ion_auth │ └── 2.3.2 │ ├── README.md │ ├── config │ ├── autoload.php │ └── ion_auth.php │ ├── controllers │ └── auth.php │ ├── language │ ├── arabic │ │ └── ion_auth_lang.php │ ├── catalan │ │ └── ion_auth_lang.php │ ├── croatian │ │ └── ion_auth_lang.php │ ├── czech │ │ └── ion_auth_lang.php │ ├── danish │ │ └── ion_auth_lang.php │ ├── dutch │ │ └── ion_auth_lang.php │ ├── english │ │ └── ion_auth_lang.php │ ├── estonian │ │ └── ion_auth_lang.php │ ├── finnish │ │ └── ion_auth_lang.php │ ├── french │ │ └── ion_auth_lang.php │ ├── german │ │ └── ion_auth_lang.php │ ├── greek │ │ └── ion_auth_lang.php │ ├── indonesian │ │ └── ion_auth_lang.php │ ├── italian │ │ └── ion_auth_lang.php │ ├── japanese │ │ └── ion_auth_lang.php │ ├── lithuanian │ │ └── ion_auth_lang.php │ ├── norwegian │ │ └── ion_auth_lang.php │ ├── pirate │ │ └── ion_auth_lang.php │ ├── polish │ │ └── ion_auth_lang.php │ ├── portuguese │ │ └── ion_auth_lang.php │ ├── russian │ │ └── ion_auth_lang.php │ ├── slovak │ │ └── ion_auth_lang.php │ ├── spanish │ │ └── ion_auth_lang.php │ ├── swedish │ │ └── ion_auth_lang.php │ ├── turkish │ │ └── ion_auth_lang.php │ ├── ukrainian │ │ └── ion_auth_lang.php │ ├── zh_cn │ │ └── ion_auth_lang.php │ └── zh_tw │ │ └── ion_auth_lang.php │ ├── libraries │ ├── Bcrypt.php │ └── Ion_auth.php │ ├── models │ ├── ion_auth_model.php │ └── ion_auth_mongodb_model.php │ ├── spark.info │ ├── sql │ ├── ion_auth.mssql.sql │ ├── ion_auth.postgre.sql │ ├── ion_auth.sql │ └── mongo │ │ ├── groups.bson │ │ ├── system.indexes.bson │ │ └── users.bson │ ├── userguide │ └── index.html │ └── views │ └── auth │ ├── change_password.php │ ├── create_user.php │ ├── deactivate_user.php │ ├── edit_user.php │ ├── email │ ├── activate.tpl.php │ ├── forgot_password.tpl.php │ └── new_password.tpl.php │ ├── forgot_password.php │ ├── index.php │ ├── login.php │ └── reset_password.php ├── system ├── .htaccess ├── core │ ├── Benchmark.php │ ├── CodeIgniter.php │ ├── Common.php │ ├── Config.php │ ├── Controller.php │ ├── Exceptions.php │ ├── Hooks.php │ ├── Input.php │ ├── Lang.php │ ├── Loader.php │ ├── Model.php │ ├── Output.php │ ├── Router.php │ ├── Security.php │ ├── URI.php │ ├── Utf8.php │ └── index.html ├── database │ ├── DB.php │ ├── DB_active_rec.php │ ├── DB_cache.php │ ├── DB_driver.php │ ├── DB_forge.php │ ├── DB_result.php │ ├── DB_utility.php │ ├── drivers │ │ ├── cubrid │ │ │ ├── cubrid_driver.php │ │ │ ├── cubrid_forge.php │ │ │ ├── cubrid_result.php │ │ │ ├── cubrid_utility.php │ │ │ └── index.html │ │ ├── index.html │ │ ├── mssql │ │ │ ├── index.html │ │ │ ├── mssql_driver.php │ │ │ ├── mssql_forge.php │ │ │ ├── mssql_result.php │ │ │ └── mssql_utility.php │ │ ├── mysql │ │ │ ├── index.html │ │ │ ├── mysql_driver.php │ │ │ ├── mysql_forge.php │ │ │ ├── mysql_result.php │ │ │ └── mysql_utility.php │ │ ├── mysqli │ │ │ ├── index.html │ │ │ ├── mysqli_driver.php │ │ │ ├── mysqli_forge.php │ │ │ ├── mysqli_result.php │ │ │ └── mysqli_utility.php │ │ ├── oci8 │ │ │ ├── index.html │ │ │ ├── oci8_driver.php │ │ │ ├── oci8_forge.php │ │ │ ├── oci8_result.php │ │ │ └── oci8_utility.php │ │ ├── odbc │ │ │ ├── index.html │ │ │ ├── odbc_driver.php │ │ │ ├── odbc_forge.php │ │ │ ├── odbc_result.php │ │ │ └── odbc_utility.php │ │ ├── pdo │ │ │ ├── index.html │ │ │ ├── pdo_driver.php │ │ │ ├── pdo_forge.php │ │ │ ├── pdo_result.php │ │ │ └── pdo_utility.php │ │ ├── postgre │ │ │ ├── index.html │ │ │ ├── postgre_driver.php │ │ │ ├── postgre_forge.php │ │ │ ├── postgre_result.php │ │ │ └── postgre_utility.php │ │ ├── sqlite │ │ │ ├── index.html │ │ │ ├── sqlite_driver.php │ │ │ ├── sqlite_forge.php │ │ │ ├── sqlite_result.php │ │ │ └── sqlite_utility.php │ │ └── sqlsrv │ │ │ ├── index.html │ │ │ ├── sqlsrv_driver.php │ │ │ ├── sqlsrv_forge.php │ │ │ ├── sqlsrv_result.php │ │ │ └── sqlsrv_utility.php │ └── index.html ├── fonts │ ├── index.html │ └── texb.ttf ├── helpers │ ├── array_helper.php │ ├── captcha_helper.php │ ├── cookie_helper.php │ ├── date_helper.php │ ├── directory_helper.php │ ├── download_helper.php │ ├── email_helper.php │ ├── file_helper.php │ ├── form_helper.php │ ├── html_helper.php │ ├── index.html │ ├── inflector_helper.php │ ├── language_helper.php │ ├── number_helper.php │ ├── path_helper.php │ ├── security_helper.php │ ├── smiley_helper.php │ ├── string_helper.php │ ├── text_helper.php │ ├── typography_helper.php │ ├── url_helper.php │ └── xml_helper.php ├── index.html ├── language │ ├── english │ │ ├── calendar_lang.php │ │ ├── date_lang.php │ │ ├── db_lang.php │ │ ├── email_lang.php │ │ ├── form_validation_lang.php │ │ ├── ftp_lang.php │ │ ├── imglib_lang.php │ │ ├── index.html │ │ ├── migration_lang.php │ │ ├── number_lang.php │ │ ├── profiler_lang.php │ │ ├── unit_test_lang.php │ │ └── upload_lang.php │ └── index.html └── libraries │ ├── Cache │ ├── Cache.php │ └── drivers │ │ ├── Cache_apc.php │ │ ├── Cache_dummy.php │ │ ├── Cache_file.php │ │ └── Cache_memcached.php │ ├── Calendar.php │ ├── Cart.php │ ├── Driver.php │ ├── Email.php │ ├── Encrypt.php │ ├── Form_validation.php │ ├── Ftp.php │ ├── Image_lib.php │ ├── Javascript.php │ ├── Log.php │ ├── Migration.php │ ├── Pagination.php │ ├── Parser.php │ ├── Profiler.php │ ├── Session.php │ ├── Sha1.php │ ├── Table.php │ ├── Trackback.php │ ├── Typography.php │ ├── Unit_test.php │ ├── Upload.php │ ├── User_agent.php │ ├── Xmlrpc.php │ ├── Xmlrpcs.php │ ├── Zip.php │ ├── index.html │ └── javascript │ └── Jquery.php ├── tools ├── README.md ├── lib │ └── spark │ │ ├── sources │ │ ├── spark_cli.php │ │ ├── spark_exception.php │ │ ├── spark_source.php │ │ ├── spark_type.php │ │ ├── spark_types │ │ ├── git_spark.php │ │ ├── hg_spark.php │ │ └── zip_spark.php │ │ └── spark_utils.php ├── spark └── test │ ├── install_test.php │ ├── lib │ ├── bootstrap.php │ └── test-sparks │ │ └── .gitkeep │ ├── phpunit.xml │ ├── remove_test.php │ ├── search_test.php │ └── version_test.php └── vendor ├── autoload.php └── composer ├── ClassLoader.php ├── autoload_classmap.php ├── autoload_namespaces.php ├── autoload_real.php └── installed.json /.gitignore: -------------------------------------------------------------------------------- 1 | application/cache/* 2 | application/logs/* 3 | vendor -------------------------------------------------------------------------------- /README.textile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joostvanveen/codeigniter-best-practises/0b6df9d5eac87c60709f31da516a1b63011123bf/README.textile -------------------------------------------------------------------------------- /README.txt: -------------------------------------------------------------------------------- 1 | ASK AWAY 2 | 3 | USER STORIES 4 | View a list of questions 5 | View a single question 6 | Answer a question 7 | Ask a question when logged in 8 | login 9 | register 10 | 11 | CONTROLLERS/ACTIONS 12 | questions/add 13 | questions/detail 14 | questions/listing 15 | 16 | users/register 17 | users/login -------------------------------------------------------------------------------- /application/.htaccess: -------------------------------------------------------------------------------- 1 | Deny from all -------------------------------------------------------------------------------- /application/cache/.htaccess: -------------------------------------------------------------------------------- 1 | deny from all -------------------------------------------------------------------------------- /application/cache/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/config/constants.php: -------------------------------------------------------------------------------- 1 | '', 5 | 'xhtml1-strict' => '', 6 | 'xhtml1-trans' => '', 7 | 'xhtml1-frame' => '', 8 | 'html5' => '', 9 | 'html4-strict' => '', 10 | 'html4-trans' => '', 11 | 'html4-frame' => '' 12 | ); 13 | 14 | /* End of file doctypes.php */ 15 | /* Location: ./application/config/doctypes.php */ -------------------------------------------------------------------------------- /application/config/foreign_chars.php: -------------------------------------------------------------------------------- 1 | 'ae', 12 | '/ö|œ/' => 'oe', 13 | '/ü/' => 'ue', 14 | '/Ä/' => 'Ae', 15 | '/Ü/' => 'Ue', 16 | '/Ö/' => 'Oe', 17 | '/À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ/' => 'A', 18 | '/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª/' => 'a', 19 | '/Ç|Ć|Ĉ|Ċ|Č/' => 'C', 20 | '/ç|ć|ĉ|ċ|č/' => 'c', 21 | '/Ð|Ď|Đ/' => 'D', 22 | '/ð|ď|đ/' => 'd', 23 | '/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě/' => 'E', 24 | '/è|é|ê|ë|ē|ĕ|ė|ę|ě/' => 'e', 25 | '/Ĝ|Ğ|Ġ|Ģ/' => 'G', 26 | '/ĝ|ğ|ġ|ģ/' => 'g', 27 | '/Ĥ|Ħ/' => 'H', 28 | '/ĥ|ħ/' => 'h', 29 | '/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ/' => 'I', 30 | '/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı/' => 'i', 31 | '/Ĵ/' => 'J', 32 | '/ĵ/' => 'j', 33 | '/Ķ/' => 'K', 34 | '/ķ/' => 'k', 35 | '/Ĺ|Ļ|Ľ|Ŀ|Ł/' => 'L', 36 | '/ĺ|ļ|ľ|ŀ|ł/' => 'l', 37 | '/Ñ|Ń|Ņ|Ň/' => 'N', 38 | '/ñ|ń|ņ|ň|ʼn/' => 'n', 39 | '/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ/' => 'O', 40 | '/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º/' => 'o', 41 | '/Ŕ|Ŗ|Ř/' => 'R', 42 | '/ŕ|ŗ|ř/' => 'r', 43 | '/Ś|Ŝ|Ş|Š/' => 'S', 44 | '/ś|ŝ|ş|š|ſ/' => 's', 45 | '/Ţ|Ť|Ŧ/' => 'T', 46 | '/ţ|ť|ŧ/' => 't', 47 | '/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ/' => 'U', 48 | '/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ/' => 'u', 49 | '/Ý|Ÿ|Ŷ/' => 'Y', 50 | '/ý|ÿ|ŷ/' => 'y', 51 | '/Ŵ/' => 'W', 52 | '/ŵ/' => 'w', 53 | '/Ź|Ż|Ž/' => 'Z', 54 | '/ź|ż|ž/' => 'z', 55 | '/Æ|Ǽ/' => 'AE', 56 | '/ß/'=> 'ss', 57 | '/IJ/' => 'IJ', 58 | '/ij/' => 'ij', 59 | '/Œ/' => 'OE', 60 | '/ƒ/' => 'f' 61 | ); 62 | 63 | /* End of file foreign_chars.php */ 64 | /* Location: ./application/config/foreign_chars.php */ -------------------------------------------------------------------------------- /application/config/hooks.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/config/migration.php: -------------------------------------------------------------------------------- 1 | migration->latest() this is the version that schema will 21 | | be upgraded / downgraded to. 22 | | 23 | */ 24 | $config['migration_version'] = 0; 25 | 26 | 27 | /* 28 | |-------------------------------------------------------------------------- 29 | | Migrations Path 30 | |-------------------------------------------------------------------------- 31 | | 32 | | Path to your migrations folder. 33 | | Typically, it will be within your application path. 34 | | Also, writing permission is required within the migrations path. 35 | | 36 | */ 37 | $config['migration_path'] = APPPATH . 'migrations/'; 38 | 39 | 40 | /* End of file migration.php */ 41 | /* Location: ./application/config/migration.php */ -------------------------------------------------------------------------------- /application/config/profiler.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/controllers/index.php: -------------------------------------------------------------------------------- 1 | input->is_cli_request() == FALSE) { 11 | show_404(); 12 | } 13 | 14 | $this->load->library('migration'); 15 | $this->load->dbforge(); 16 | } 17 | 18 | public function latest () 19 | { 20 | $this->migration->latest(); 21 | echo $this->migration->error_string() . PHP_EOL; 22 | } 23 | 24 | public function reset () 25 | { 26 | $this->migration->version(0); 27 | echo $this->migration->error_string() . PHP_EOL; 28 | } 29 | 30 | public function version ($version = 0) 31 | { 32 | $version = (int) $version; 33 | if ($version == 0) { 34 | die('You need to paas a version greater than zero') . PHP_EOL; 35 | } 36 | 37 | $this->migration->version($version); 38 | echo $this->migration->error_string() . PHP_EOL; 39 | } 40 | 41 | } -------------------------------------------------------------------------------- /application/controllers/questions.php: -------------------------------------------------------------------------------- 1 | load->model('question_model'); 7 | $this->load->model('answer_model'); 8 | } 9 | public function add () 10 | { 11 | 12 | } 13 | 14 | /** 15 | * Display a single question 16 | */ 17 | public function detail ($id) 18 | { 19 | // Fetch a single question with its user and answers 20 | $cacheID = 'question_' . $id; 21 | if (!$this->data['question'] = $this->zf_cache->load($cacheID)) { 22 | $this->data['question'] = $this->question_model->with('user')->get($id); 23 | $this->zf_cache->save($this->data['question'], $cacheID, array('all_questions')); 24 | } 25 | 26 | $cacheID = 'answer_' . $id; 27 | if (!$this->data['answers'] = $this->zf_cache->load($cacheID)) { 28 | $this->db->where('questions_id', $id); 29 | $this->data['answers'] = $this->answer_model->with('user')->get_all(); 30 | $this->zf_cache->save($this->data['answers'], $cacheID, array('all_answers', 'all_questions')); 31 | } 32 | 33 | // Save the answer 34 | if (count($_POST)) { 35 | $this->answer_model->insert(); 36 | $this->zf_cache->remove('answer_' . $id); 37 | redirect(current_url()); 38 | } 39 | 40 | // Load view 41 | $this->load_view('questions/detail'); 42 | } 43 | 44 | /** 45 | * Display a list of all questions 46 | */ 47 | public function listing () 48 | { 49 | // Fetch all questions 50 | $cacheID = 'listing'; 51 | if (!$this->data['questions'] = $this->zf_cache->load($cacheID)) { 52 | $this->data['questions'] = $this->question_model->get_with_users(); 53 | $this->zf_cache->save($this->data['questions'], $cacheID, array('all_questions')); 54 | } 55 | 56 | // Load view 57 | $this->load_view('questions/listing'); 58 | } 59 | } -------------------------------------------------------------------------------- /application/controllers/users.php: -------------------------------------------------------------------------------- 1 | load->model('user_model'); 9 | } 10 | 11 | public function logout () 12 | { 13 | $this->ion_auth->logout(); 14 | redirect('users/login'); 15 | } 16 | 17 | /** 18 | * Login a user and redirect him to questions 19 | */ 20 | public function login () 21 | { 22 | // redirect if already logged in 23 | if ($this->ion_auth->logged_in() == TRUE) { 24 | redirect('questions/listing'); 25 | } 26 | 27 | // Validate the form 28 | $this->form_validation->set_rules($this->user_model->validation); 29 | if ($this->form_validation->run() == true) { 30 | 31 | // Try to log in 32 | if ($this->ion_auth->login($this->input->post('email'), $this->input->post('password')) == TRUE) { 33 | redirect('questions/listing'); 34 | } 35 | else { 36 | $this->data['error'] = 'We could not log you in'; 37 | } 38 | } 39 | 40 | // Set subview & Load layout 41 | $this->load_view('users/login'); 42 | } 43 | 44 | public function register () 45 | {} 46 | } -------------------------------------------------------------------------------- /application/core/MY_Controller.php: -------------------------------------------------------------------------------- 1 | ion_auth->logged_in() == false && ! in_array(uri_string(), $no_redirect)) { 19 | redirect('users/login'); 20 | } 21 | 22 | $this->parser = new Textile\Parser(); 23 | 24 | $this->load->library('zf_cache', array('lifetime' => 900)); 25 | $this->zf_cache = $this->zf_cache->get_instance(); 26 | 27 | $this->output->enable_profiler(ENVIRONMENT == 'development'); 28 | } 29 | 30 | /** 31 | * Set subview and load layout 32 | * @param string $subview 33 | */ 34 | public function load_view ($subview) 35 | { 36 | $this->data['subview'] = $subview; 37 | $this->load->view('layouts/layout', $this->data); 38 | } 39 | } -------------------------------------------------------------------------------- /application/core/MY_Router.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/errors/error_404.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 404 Page Not Found 5 | 55 | 56 | 57 |
58 |

59 | 60 |
61 | 62 | -------------------------------------------------------------------------------- /application/errors/error_db.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Database Error 5 | 55 | 56 | 57 |
58 |

59 | 60 |
61 | 62 | -------------------------------------------------------------------------------- /application/errors/error_general.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Error 5 | 55 | 56 | 57 |
58 |

59 | 60 |
61 | 62 | -------------------------------------------------------------------------------- /application/errors/error_php.php: -------------------------------------------------------------------------------- 1 |
2 | 3 |

A PHP Error was encountered

4 | 5 |

Severity:

6 |

Message:

7 |

Filename:

8 |

Line Number:

9 | 10 |
-------------------------------------------------------------------------------- /application/errors/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/helpers/general_helper.php: -------------------------------------------------------------------------------- 1 | \n(\s+)/m", "] => ", $output); 17 | $output = '
' . $label . ' => ' . $output . '
'; 18 | 19 | // Output 20 | if ($echo == TRUE) { 21 | echo $output; 22 | } 23 | else { 24 | return $output; 25 | } 26 | } 27 | } 28 | 29 | 30 | if (!function_exists('dump_exit')) { 31 | function dump_exit($var, $label = 'Dump', $echo = TRUE) { 32 | dump ($var, $label, $echo); 33 | exit; 34 | } 35 | } 36 | 37 | /** 38 | * Filter input based on a whitelist. This filter strips out all characters that 39 | * are NOT: 40 | * - letters 41 | * - numbers 42 | * - Textile Markup special characters. 43 | * 44 | * Textile markup special characters are: 45 | * _-.*#;:|!"+%{}@ 46 | * 47 | * This filter will also pass cyrillic characters, and characters like é and ë. 48 | * 49 | * Typical usage: 50 | * $string = '_ - . * # ; : | ! " + % { } @ abcdefgABCDEFG12345 éüртхцчшщъыэюьЁуфҐ ' . "\nAnd another line!"; 51 | * echo textile_sanitize($string); 52 | * 53 | * @param string $string 54 | * @return string The sanitized string 55 | * @author Joost van Veen 56 | */ 57 | function textile_sanitize($string){ 58 | $whitelist = '/[^a-zA-Z0-9а-яА-ЯéüртхцчшщъыэюьЁуфҐ \.\*\+\\n|#;:!"%@{} _-]/'; 59 | return preg_replace($whitelist, '', $string); 60 | } 61 | 62 | function escape($string){ 63 | return textile_sanitize($string); 64 | } 65 | 66 | -------------------------------------------------------------------------------- /application/helpers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

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

Directory access is forbidden.

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

Directory access is forbidden.

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

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/libraries/MY_Form_validation.php: -------------------------------------------------------------------------------- 1 | _ci =& get_instance(); 12 | 13 | $this->_ci->load->library('zend'); 14 | $this->_ci->zend->load('Zend/Cache'); 15 | 16 | !isset($options['lifetime']) || $this->lifetime = $options['lifetime']; 17 | !isset($options['enabled']) || $this->enabled = $options['enabled']; 18 | !isset($options['automatic_serialization']) || $this->automatic_serialization = $options['automatic_serialization']; 19 | 20 | $this->_cache = Zend_Cache::factory('Core', 'File', array( 21 | 'caching' => $this->enabled, 22 | 'lifetime' => $this->lifetime, 23 | 'automatic_serialization' => $this->automatic_serialization 24 | ), array( 25 | 'cache_dir' => APPPATH . 'cache' 26 | )); 27 | } 28 | 29 | public function get_instance () 30 | { 31 | return $this->_cache; 32 | } 33 | } -------------------------------------------------------------------------------- /application/libraries/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/logs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/logs/log-2013-02-27.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | DEBUG - 2013-02-27 12:03:34 --> Config Class Initialized 4 | DEBUG - 2013-02-27 12:03:34 --> Hooks Class Initialized 5 | DEBUG - 2013-02-27 12:03:34 --> Utf8 Class Initialized 6 | DEBUG - 2013-02-27 12:03:34 --> UTF-8 Support Enabled 7 | DEBUG - 2013-02-27 12:03:34 --> URI Class Initialized 8 | DEBUG - 2013-02-27 12:03:34 --> Router Class Initialized 9 | DEBUG - 2013-02-27 12:03:34 --> No URI present. Default controller set. 10 | DEBUG - 2013-02-27 12:03:34 --> Output Class Initialized 11 | DEBUG - 2013-02-27 12:03:34 --> Security Class Initialized 12 | DEBUG - 2013-02-27 12:03:34 --> Input Class Initialized 13 | DEBUG - 2013-02-27 12:03:34 --> Global POST and COOKIE data sanitized 14 | DEBUG - 2013-02-27 12:03:34 --> Language Class Initialized 15 | DEBUG - 2013-02-27 12:03:34 --> Loader Class Initialized 16 | DEBUG - 2013-02-27 12:03:34 --> Controller Class Initialized 17 | DEBUG - 2013-02-27 12:03:34 --> File loaded: ../application/views/welcome_message.php 18 | DEBUG - 2013-02-27 12:03:34 --> Final output sent to browser 19 | DEBUG - 2013-02-27 12:03:34 --> Total execution time: 0.0145 20 | DEBUG - 2013-02-27 13:47:52 --> Config Class Initialized 21 | DEBUG - 2013-02-27 13:47:52 --> Hooks Class Initialized 22 | DEBUG - 2013-02-27 13:47:52 --> Utf8 Class Initialized 23 | DEBUG - 2013-02-27 13:47:52 --> UTF-8 Support Enabled 24 | DEBUG - 2013-02-27 13:47:52 --> URI Class Initialized 25 | DEBUG - 2013-02-27 13:47:52 --> Router Class Initialized 26 | DEBUG - 2013-02-27 13:47:52 --> No URI present. Default controller set. 27 | DEBUG - 2013-02-27 13:47:52 --> Output Class Initialized 28 | DEBUG - 2013-02-27 13:47:52 --> Security Class Initialized 29 | DEBUG - 2013-02-27 13:47:52 --> Input Class Initialized 30 | DEBUG - 2013-02-27 13:47:52 --> Global POST and COOKIE data sanitized 31 | DEBUG - 2013-02-27 13:47:52 --> Language Class Initialized 32 | DEBUG - 2013-02-27 13:47:52 --> Loader Class Initialized 33 | DEBUG - 2013-02-27 13:47:52 --> Controller Class Initialized 34 | DEBUG - 2013-02-27 13:47:52 --> File loaded: ../application/views/welcome_message.php 35 | DEBUG - 2013-02-27 13:47:52 --> Final output sent to browser 36 | DEBUG - 2013-02-27 13:47:52 --> Total execution time: 0.1138 37 | -------------------------------------------------------------------------------- /application/migrations/001_create_blog.php: -------------------------------------------------------------------------------- 1 | dbforge->add_field(array( 8 | 'id' => array( 9 | 'type' => 'INT', 10 | 'unsigned' => TRUE, 11 | 'auto_increment' => TRUE), 12 | 'pubdate' => array( 13 | 'type' => 'DATETIME'), 14 | 'title' => array( 15 | 'type' => 'VARCHAR', 16 | 'constraint' => 250), 17 | 'text' => array( 18 | 'type' => 'TEXT')) 19 | ); 20 | 21 | $this->dbforge->add_key('id', TRUE); 22 | $this->dbforge->create_table('blog'); 23 | } 24 | 25 | public function down () 26 | { 27 | $this->dbforge->drop_table('blog'); 28 | } 29 | } -------------------------------------------------------------------------------- /application/models/answer_model.php: -------------------------------------------------------------------------------- 1 | array( 8 | 'primary_key' => 'questions_id')); 9 | 10 | public $validation = array( 11 | array('field' => 'user_id', 'label' => '', 'rules' => 'intval'), 12 | array('field' => 'questions_id', 'label' => '', 'rules' => 'intval'), 13 | array('field' => 'text', 'label' => 'Answer', 'rules' => 'trim|sanitize'), 14 | ); 15 | 16 | public function __construct () 17 | { 18 | parent::__construct(); 19 | $this->_database = $this->db; 20 | } 21 | 22 | /** 23 | * Insert an answer from POST values 24 | * @see MY_Model::insert() 25 | */ 26 | public function insert () 27 | { 28 | $data = array( 29 | 'user_id' => $this->input->post('user_id'), 30 | 'questions_id' => $this->input->post('questions_id'), 31 | 'text' => $this->input->post('text'), 32 | ); 33 | 34 | parent::insert($data); 35 | } 36 | } -------------------------------------------------------------------------------- /application/models/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/models/question_model.php: -------------------------------------------------------------------------------- 1 | array('primary_key' => 'questions_id', 'model' => 'answer_model')); 6 | 7 | public function __construct () 8 | { 9 | parent::__construct(); 10 | $this->_database = $this->db; 11 | } 12 | 13 | public function get_with_users () 14 | { 15 | $this->db->select('questions.*, users.first_name, users.last_name'); 16 | $this->db->join('users', 'questions.user_id=users.id'); 17 | return $this->get_all(); 18 | } 19 | } -------------------------------------------------------------------------------- /application/models/user_model.php: -------------------------------------------------------------------------------- 1 | 'email', 11 | 'label' => 'Email', 12 | 'rules' => 'required|valid_email|trim'), 13 | array( 14 | 'field' => 'password', 15 | 'label' => 'Password', 16 | 'rules' => 'required|trim')); 17 | 18 | public function __construct () 19 | { 20 | parent::__construct(); 21 | $this->_database = $this->db; 22 | } 23 | } -------------------------------------------------------------------------------- /application/modules/blog/controllers/blog.php: -------------------------------------------------------------------------------- 1 | load->model('blog_m'); 7 | } 8 | 9 | public function listing () 10 | { 11 | $posts = $this->blog_m->get_posts(); 12 | $this->load->view('listing', array('posts' => $posts)); 13 | } 14 | } -------------------------------------------------------------------------------- /application/modules/blog/models/blog_m.php: -------------------------------------------------------------------------------- 1 | 'This is my blog post', 'text' => 'This is my text'), 6 | array('title' => 'This is my second blog post', 'text' => 'This is my text'), 7 | array('title' => 'This is my third blog post', 'text' => 'This is my text'), 8 | ); 9 | } 10 | } -------------------------------------------------------------------------------- /application/modules/blog/views/listing.php: -------------------------------------------------------------------------------- 1 | ' . $post['title']. ''; 5 | echo '

' . $post['text']. '

'; 6 | } 7 | } -------------------------------------------------------------------------------- /application/third_party/MX/Base.php: -------------------------------------------------------------------------------- 1 | config->item('controller_suffix'), '', get_class($this)); 46 | log_message('debug', $class." MX_Controller Initialized"); 47 | Modules::$registry[strtolower($class)] = $this; 48 | 49 | /* copy a loader instance and initialize */ 50 | $this->load = clone load_class('Loader'); 51 | $this->load->initialize($this); 52 | 53 | /* autoload module items */ 54 | $this->load->_autoloader($this->autoload); 55 | } 56 | 57 | public function __get($class) { 58 | return CI::$APP->$class; 59 | } 60 | } -------------------------------------------------------------------------------- /application/third_party/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/views/homepage.php: -------------------------------------------------------------------------------- 1 |

Hello from homepage

2 | -------------------------------------------------------------------------------- /application/views/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /application/views/layouts/layout.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | AskAway 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 |

Ask Away

21 | 26 |
27 |
28 | load->view($subview); ?> 29 |
30 | 33 |
34 | 35 | 36 | -------------------------------------------------------------------------------- /application/views/questions/detail.php: -------------------------------------------------------------------------------- 1 |
2 |

subject); ?>

3 |

4 | user->first_name); ?> 5 | user->last_name); ?> 6 | - created); ?> 7 |

8 |

parser->textileThis(escape($question->text)); ?>

9 |
10 | 11 | 12 |
13 |

Answers

14 | 15 | 16 |
17 |

18 | user->first_name); ?> 19 | user->last_name); ?> 20 | - created); ?> 21 |

22 |
parser->textileThis(escape($answer->text)); ?>
23 |
24 | 25 | 26 |
27 | 28 | 29 |
30 |

Answer this question!

31 |

You can use textile markup

32 | 33 | ion_auth->user()->row()->id); ?> 34 | uri->segment(3)); ?> 35 | 36 | 37 | 38 | 39 |
-------------------------------------------------------------------------------- /application/views/questions/listing.php: -------------------------------------------------------------------------------- 1 | ' . anchor('questions/detail/' . $question->id, escape($question->subject)) . ''; 5 | echo '

' . escape($question->first_name) . ' ' . escape($question->last_name) . ' ' . escape($question->created) . '

'; 6 | } 7 | } -------------------------------------------------------------------------------- /application/views/users/login.php: -------------------------------------------------------------------------------- 1 |
2 |

Please log in

3 | 4 | ' . validation_errors() . '' : ''; ?> 5 | ' . $error . '' : '';?> 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
-------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "netcarver/textile": "3.5.*@dev" 4 | } 5 | } -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "hash": "4a8105c6bb06b1e00e32a89255faaa15", 3 | "packages": [ 4 | { 5 | "name": "netcarver/textile", 6 | "version": "dev-master", 7 | "source": { 8 | "type": "git", 9 | "url": "https://github.com/netcarver/textile.git", 10 | "reference": "725143be6e147dfc1e21e1c912f377084bb8c57a" 11 | }, 12 | "dist": { 13 | "type": "zip", 14 | "url": "https://api.github.com/repos/netcarver/textile/zipball/725143be6e147dfc1e21e1c912f377084bb8c57a", 15 | "reference": "725143be6e147dfc1e21e1c912f377084bb8c57a", 16 | "shasum": "" 17 | }, 18 | "require": { 19 | "php": ">=5.3.0" 20 | }, 21 | "time": "2013-01-27 23:52:35", 22 | "type": "library", 23 | "extra": { 24 | "branch-alias": { 25 | "dev-master": "3.5-dev" 26 | } 27 | }, 28 | "autoload": { 29 | "psr-0": { 30 | "Netcarver\\Textile": "src/" 31 | } 32 | }, 33 | "notification-url": "https://packagist.org/downloads/", 34 | "license": [ 35 | "BSD-3-Clause" 36 | ], 37 | "description": "A lightweight markup language that takes (almost) plaintext and converts it into well formed HTML.", 38 | "homepage": "https://github.com/netcarver/textile" 39 | } 40 | ], 41 | "packages-dev": null, 42 | "aliases": [ 43 | 44 | ], 45 | "minimum-stability": "stable", 46 | "stability-flags": { 47 | "netcarver/textile": 20 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /public_html/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | 3 | Options +FollowSymLinks 4 | RewriteEngine on 5 | 6 | # Send request via index.php (again, not if its a real file or folder) 7 | RewriteCond %{REQUEST_FILENAME} !-f 8 | RewriteCond %{REQUEST_FILENAME} !-d 9 | RewriteRule ^(.*)$ index.php/$1 [L] 10 | 11 | -------------------------------------------------------------------------------- /public_html/license.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2008 - 2011, EllisLab, Inc. 2 | All rights reserved. 3 | 4 | This license is a legal agreement between you and EllisLab Inc. for the use 5 | of CodeIgniter Software (the "Software"). By obtaining the Software you 6 | agree to comply with the terms and conditions of this license. 7 | 8 | PERMITTED USE 9 | You are permitted to use, copy, modify, and distribute the Software and its 10 | documentation, with or without modification, for any purpose, provided that 11 | the following conditions are met: 12 | 13 | 1. A copy of this license agreement must be included with the distribution. 14 | 15 | 2. Redistributions of source code must retain the above copyright notice in 16 | all source code files. 17 | 18 | 3. Redistributions in binary form must reproduce the above copyright notice 19 | in the documentation and/or other materials provided with the distribution. 20 | 21 | 4. Any files that have been modified must carry notices stating the nature 22 | of the change and the names of those who changed them. 23 | 24 | 5. Products derived from the Software must include an acknowledgment that 25 | they are derived from CodeIgniter in their documentation and/or other 26 | materials provided with the distribution. 27 | 28 | 6. Products derived from the Software may not be called "CodeIgniter", 29 | nor may "CodeIgniter" appear in their name, without prior written 30 | permission from EllisLab, Inc. 31 | 32 | INDEMNITY 33 | You agree to indemnify and hold harmless the authors of the Software and 34 | any contributors for any direct, indirect, incidental, or consequential 35 | third-party claims, actions or suits, as well as any related expenses, 36 | liabilities, damages, settlements or fees arising from your use or misuse 37 | of the Software, or a violation of any terms of this license. 38 | 39 | DISCLAIMER OF WARRANTY 40 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR 41 | IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF QUALITY, PERFORMANCE, 42 | NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. 43 | 44 | LIMITATIONS OF LIABILITY 45 | YOU ASSUME ALL RISK ASSOCIATED WITH THE INSTALLATION AND USE OF THE SOFTWARE. 46 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS OF THE SOFTWARE BE LIABLE 47 | FOR CLAIMS, DAMAGES OR OTHER LIABILITY ARISING FROM, OUT OF, OR IN CONNECTION 48 | WITH THE SOFTWARE. LICENSE HOLDERS ARE SOLELY RESPONSIBLE FOR DETERMINING THE 49 | APPROPRIATENESS OF USE AND ASSUME ALL RISKS ASSOCIATED WITH ITS USE, INCLUDING 50 | BUT NOT LIMITED TO THE RISKS OF PROGRAM ERRORS, DAMAGE TO EQUIPMENT, LOSS OF 51 | DATA OR SOFTWARE PROGRAMS, OR UNAVAILABILITY OR INTERRUPTION OF OPERATIONS. 52 | -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/README.md: -------------------------------------------------------------------------------- 1 | #Ion Auth 2 2 | ###The future of authentication 3 | by [Ben Edmunds](http://benedmunds.com) 4 | 5 | Redux Auth 2 had a lot of potential. It's lightweight, simple, and clean, 6 | but had a ton of bugs and was missing some key features. So we refactored 7 | the code and added new features. 8 | 9 | This version drops any backwards compatibility and makes things even more 10 | awesome then you could expect. 11 | 12 | ##Documentation 13 | Documentation is located at http://benedmunds.com/ion_auth/ 14 | 15 | ##Installation 16 | Just copy the files from this package to the correspoding folder in your 17 | application folder. For example, copy Ion_auth/config/ion_auth.php to 18 | system/application/config/ion_auth.php. 19 | 20 | ###Relational DB Setup 21 | Then just run the appropriate SQL file (if you're using migrations you can 22 | get the migrations from JD here: 23 | https://github.com/iamfiscus/codeigniter-ion-auth-migration). 24 | 25 | ###MongoDB Setup 26 | Integrate the following projects to enable MongoDB support in CodeIgniter: 27 | 28 | CodeIgniter MongoDB Active Record Library - http://github.com/alexbilbie/codeigniter-mongodb-library/tree/v2 29 | CodeIgniter MongoDB Session Library - http://github.com/sepehr/ci-mongodb-session 30 | 31 | Set $config['use_mongodb'] = TRUE; in the config file and then run the following command: 32 | 33 | $ mongorestore sql/mongo 34 | 35 | 36 | ##Usage 37 | In the package you will find example usage code in the controllers and views 38 | folders. The example code isn't the most beautiful code you'll ever see but 39 | it'll show you how to use the library and it's nice and generic so it doesn't 40 | require a MY_controller or anything else. 41 | 42 | ###Default Login 43 | Username: admin@admin.com 44 | Password: password 45 | 46 | 47 | ###Important 48 | It is highly recommended that you use encrypted database sessions for security! 49 | 50 | 51 | ###Optimization 52 | It is recommended that you add your identity column as a unique index. 53 | 54 | 55 | 56 | Feel free to send me an email if you have any problems. 57 | 58 | 59 | Thanks, 60 | -Ben Edmunds 61 | ben.edmunds@gmail.com 62 | @benedmunds 63 | -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/config/autoload.php: -------------------------------------------------------------------------------- 1 | 58 | -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/language/croatian/ion_auth_lang.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/language/dutch/ion_auth_lang.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/language/norwegian/ion_auth_lang.php: -------------------------------------------------------------------------------- 1 | 7 | * @link http://www.yorickpeterse.com/ 8 | * 9 | */ 10 | 11 | // Account Creation 12 | $lang['account_creation_successful'] = 'Ahoy, Welcome Aboard Landlubber!'; 13 | $lang['account_creation_unsuccessful'] = 'Avast, Unable to Commandeer Ship'; 14 | $lang['account_creation_duplicate_email'] = 'Letter in the Bottle Already Used or Invalid'; 15 | $lang['account_creation_duplicate_username'] = 'Pirate Name Already Used or Invalid'; 16 | 17 | 18 | // Password 19 | $lang['password_change_successful'] = 'Secret Code Successfully Changed'; 20 | $lang['password_change_unsuccessful'] = 'Unable to Change Secret Code'; 21 | $lang['forgot_password_successful'] = 'Secret Code Reset Letter Sent'; 22 | $lang['forgot_password_unsuccessful'] = 'Unable to Reset Secret Code'; 23 | 24 | // Activation 25 | $lang['activate_successful'] = 'Ahoy, Your Ship Be Ready For Sailing The Seven Seas'; 26 | $lang['activate_unsuccessful'] = 'Avast, Furner be having trouble!'; 27 | $lang['deactivate_successful'] = 'Furner be burned down by the Navy'; 28 | $lang['deactivate_unsuccessful'] = 'Shiver me timbers! Account not Deactivated'; 29 | $lang['activation_email_successful'] = 'Letter in the Bottle Sent'; 30 | $lang['activation_email_unsuccessful'] = 'Unable to Send Letter in the Bottle'; 31 | 32 | // Login / Logout 33 | $lang['login_successful'] = 'Yarr, welcome aboard!'; 34 | $lang['login_unsuccessful'] = 'In-Correct Secret Code'; 35 | $lang['logout_successful'] = 'Be Seeying ya Matey'; 36 | 37 | // Account Changes 38 | $lang['update_successful'] = 'Ship Information Successfully Updated'; 39 | $lang['update_unsuccessful'] = 'Unable to Update Ship Information'; 40 | $lang['delete_successful'] = 'Pirate Sent to Davy Jones\' Locker'; 41 | $lang['delete_unsuccessful'] = 'Avast, The Pirate be Still Alive'; 42 | 43 | // Email Subjects - TODO Please Translate 44 | $lang['email_forgotten_password_subject'] = 'Forgotten Password Verification'; 45 | $lang['email_new_password_subject'] = 'New Password'; 46 | $lang['email_activation_subject'] = 'Account Activation'; -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/language/polish/ion_auth_lang.php: -------------------------------------------------------------------------------- 1 | = 0), 21 | CONSTRAINT users_check_group_id CHECK(group_id >= 0), 22 | CONSTRAINT users_check_active CHECK(active >= 0) 23 | ); 24 | 25 | 26 | CREATE TABLE groups ( 27 | id int NOT NULL IDENTITY(1,1), 28 | [name] varchar(20) NOT NULL, 29 | description varchar(100) NOT NULL, 30 | PRIMARY KEY(id), 31 | CONSTRAINT groups_check_id CHECK(id >= 0) 32 | ); 33 | 34 | 35 | CREATE TABLE users_groups ( 36 | id int NOT NULL IDENTITY(1,1), 37 | user_id int NOT NULL, 38 | group_id int NOT NULL, 39 | PRIMARY KEY(id), 40 | CONSTRAINT users_groups_check_id CHECK(id >= 0), 41 | CONSTRAINT users_groups_check_group_id CHECK(group_id >= 0) 42 | CONSTRAINT users_groups_check_user_id CHECK(user_id >= 0) 43 | ); 44 | 45 | 46 | SET IDENTITY_INSERT groups ON; 47 | INSERT INTO groups (id, name, description) VALUES (1,'admin','Administrator'); 48 | INSERT INTO groups (id, name, description) VALUES (2,'members','General User'); 49 | SET IDENTITY_INSERT groups OFF; 50 | 51 | SET IDENTITY_INSERT users ON; 52 | INSERT INTO users (id, ip_address, username, password, salt, email, activation_code, forgotten_password_code, created_on, last_login, active, first_name, last_name, company, phone) 53 | VALUES ('1',0x7f000001,'administrator','59beecdf7fc966e2f17fd8f65a4a9aeb09d4a3d4','9462e8eee0','admin@admin.com','',NULL, GETDATE(), GETDATE(),'1','Admin','istrator','ADMIN','0'); 54 | SET IDENTITY_INSERT users OFF; 55 | 56 | SET IDENTITY_INSERT users_groups ON; 57 | INSERT INTO users_groups (id, user_id, group_id) VALUES (1,1,1); 58 | INSERT INTO users_groups (id, user_id, group_id) VALUES (2,1,2); 59 | SET IDENTITY_INSERT users_groups OFF; 60 | 61 | CREATE TABLE login_attempts ( 62 | id int NOT NULL IDENTITY(1,1), 63 | ip_address varbinary(16) NOT NULL, 64 | login varchar(100) NOT NULL, 65 | time datetime, 66 | PRIMARY KEY(id), 67 | CONSTRAINT users_check_id CHECK(id >= 0) 68 | ); 69 | -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/sql/ion_auth.postgre.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "users" ( 2 | "id" SERIAL NOT NULL, 3 | "ip_address" inet NOT NULL, 4 | "username" varchar(100) NOT NULL, 5 | "password" varchar(40) NOT NULL, 6 | "salt" varchar(40), 7 | "email" varchar(100) NOT NULL, 8 | "activation_code" varchar(40), 9 | "forgotten_password_code" varchar(40), 10 | "forgotten_password_time" int, 11 | "remember_code" varchar(40), 12 | "created_on" int NOT NULL, 13 | "last_login" int, 14 | "active" int4, 15 | "first_name" varchar(50), 16 | "last_name" varchar(50), 17 | "company" varchar(100), 18 | "phone" varchar(20), 19 | PRIMARY KEY("id"), 20 | CONSTRAINT "check_id" CHECK(id >= 0), 21 | CONSTRAINT "check_active" CHECK(active >= 0) 22 | ); 23 | 24 | 25 | CREATE TABLE "groups" ( 26 | "id" SERIAL NOT NULL, 27 | "name" varchar(20) NOT NULL, 28 | "description" varchar(100) NOT NULL, 29 | PRIMARY KEY("id"), 30 | CONSTRAINT "check_id" CHECK(id >= 0) 31 | ); 32 | 33 | 34 | CREATE TABLE "users_groups" ( 35 | "id" SERIAL NOT NULL, 36 | "user_id" integer NOT NULL, 37 | "group_id" integer NOT NULL, 38 | PRIMARY KEY("id"), 39 | CONSTRAINT "users_groups_check_id" CHECK(id >= 0), 40 | CONSTRAINT "users_groups_check_user_id" CHECK(user_id >= 0), 41 | CONSTRAINT "users_groups_check_group_id" CHECK(group_id >= 0) 42 | ); 43 | 44 | 45 | INSERT INTO groups (id, name, description) VALUES 46 | (1,'admin','Administrator'), 47 | (2,'members','General User'); 48 | 49 | INSERT INTO users (ip_address, username, password, salt, email, activation_code, forgotten_password_code, created_on, last_login, active, first_name, last_name, company, phone) VALUES 50 | ('127.0.0.1','administrator','59beecdf7fc966e2f17fd8f65a4a9aeb09d4a3d4','9462e8eee0','admin@admin.com','',NULL,'1268889823','1268889823','1','Admin','istrator','ADMIN','0'); 51 | 52 | INSERT INTO users_groups (user_id, group_id) VALUES 53 | (1,1), 54 | (1,2); 55 | 56 | CREATE TABLE "login_attempts" ( 57 | "id" SERIAL NOT NULL, 58 | "ip_address" inet NOT NULL, 59 | "login" varchar(100) NOT NULL, 60 | "time" int, 61 | PRIMARY KEY("id"), 62 | CONSTRAINT "check_id" CHECK(id >= 0) 63 | ); 64 | -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/sql/ion_auth.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS `groups`; 2 | 3 | # 4 | # Table structure for table 'groups' 5 | # 6 | 7 | CREATE TABLE `groups` ( 8 | `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, 9 | `name` varchar(20) NOT NULL, 10 | `description` varchar(100) NOT NULL, 11 | PRIMARY KEY (`id`) 12 | ); 13 | 14 | # 15 | # Dumping data for table 'groups' 16 | # 17 | 18 | INSERT INTO `groups` (`id`, `name`, `description`) VALUES 19 | (1,'admin','Administrator'), 20 | (2,'members','General User'); 21 | 22 | 23 | 24 | DROP TABLE IF EXISTS `users`; 25 | 26 | # 27 | # Table structure for table 'users' 28 | # 29 | 30 | CREATE TABLE `users` ( 31 | `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, 32 | `ip_address` varbinary(16) NOT NULL, 33 | `username` varchar(100) NOT NULL, 34 | `password` varchar(40) NOT NULL, 35 | `salt` varchar(40) DEFAULT NULL, 36 | `email` varchar(100) NOT NULL, 37 | `activation_code` varchar(40) DEFAULT NULL, 38 | `forgotten_password_code` varchar(40) DEFAULT NULL, 39 | `forgotten_password_time` int(11) unsigned DEFAULT NULL, 40 | `remember_code` varchar(40) DEFAULT NULL, 41 | `created_on` int(11) unsigned NOT NULL, 42 | `last_login` int(11) unsigned DEFAULT NULL, 43 | `active` tinyint(1) unsigned DEFAULT NULL, 44 | `first_name` varchar(50) DEFAULT NULL, 45 | `last_name` varchar(50) DEFAULT NULL, 46 | `company` varchar(100) DEFAULT NULL, 47 | `phone` varchar(20) DEFAULT NULL, 48 | PRIMARY KEY (`id`) 49 | ); 50 | 51 | 52 | # 53 | # Dumping data for table 'users' 54 | # 55 | 56 | INSERT INTO `users` (`id`, `ip_address`, `username`, `password`, `salt`, `email`, `activation_code`, `forgotten_password_code`, `created_on`, `last_login`, `active`, `first_name`, `last_name`, `company`, `phone`) VALUES 57 | ('1',0x7f000001,'administrator','59beecdf7fc966e2f17fd8f65a4a9aeb09d4a3d4','9462e8eee0','admin@admin.com','',NULL,'1268889823','1268889823','1', 'Admin','istrator','ADMIN','0'); 58 | 59 | 60 | DROP TABLE IF EXISTS `users_groups`; 61 | 62 | # 63 | # Table structure for table 'users_groups' 64 | # 65 | 66 | CREATE TABLE `users_groups` ( 67 | `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, 68 | `user_id` mediumint(8) unsigned NOT NULL, 69 | `group_id` mediumint(8) unsigned NOT NULL, 70 | PRIMARY KEY (`id`) 71 | ); 72 | 73 | INSERT INTO `users_groups` (`id`, `user_id`, `group_id`) VALUES 74 | (1,1,1), 75 | (2,1,2); 76 | 77 | 78 | DROP TABLE IF EXISTS `login_attempts`; 79 | 80 | # 81 | # Table structure for table 'login_attempts' 82 | # 83 | 84 | CREATE TABLE `login_attempts` ( 85 | `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, 86 | `ip_address` varbinary(16) NOT NULL, 87 | `login` varchar(100) NOT NULL, 88 | `time` int(11) unsigned DEFAULT NULL, 89 | PRIMARY KEY (`id`) 90 | ); 91 | -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/sql/mongo/groups.bson: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joostvanveen/codeigniter-best-practises/0b6df9d5eac87c60709f31da516a1b63011123bf/sparks/ion_auth/2.3.2/sql/mongo/groups.bson -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/sql/mongo/system.indexes.bson: -------------------------------------------------------------------------------- 1 | Fname_id_nsion_auth.groupskey_idvEname_id_nsion_auth.userskey_idv -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/sql/mongo/users.bson: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joostvanveen/codeigniter-best-practises/0b6df9d5eac87c60709f31da516a1b63011123bf/sparks/ion_auth/2.3.2/sql/mongo/users.bson -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/views/auth/change_password.php: -------------------------------------------------------------------------------- 1 |

Change Password

2 | 3 |
4 | 5 | 6 | 7 |

Old Password:
8 | 9 |

10 | 11 |

New Password (at least characters long):
12 | 13 |

14 | 15 |

Confirm New Password:
16 | 17 |

18 | 19 | 20 |

21 | 22 | 23 | -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/views/auth/create_user.php: -------------------------------------------------------------------------------- 1 |

Create User

2 |

Please enter the users information below.

3 | 4 |
5 | 6 | 7 | 8 |

9 | First Name:
10 | 11 |

12 | 13 |

14 | Last Name:
15 | 16 |

17 | 18 |

19 | Company Name:
20 | 21 |

22 | 23 |

24 | Email:
25 | 26 |

27 | 28 |

29 | Phone:
30 | -- 31 |

32 | 33 |

34 | Password:
35 | 36 |

37 | 38 |

39 | Confirm Password:
40 | 41 |

42 | 43 | 44 |

45 | 46 | -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/views/auth/deactivate_user.php: -------------------------------------------------------------------------------- 1 |

Deactivate User

2 |

Are you sure you want to deactivate the user 'username; ?>'

3 | 4 | id);?> 5 | 6 |

7 | 8 | 9 | 10 | 11 |

12 | 13 | 14 | $user->id)); ?> 15 | 16 |

17 | 18 | -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/views/auth/edit_user.php: -------------------------------------------------------------------------------- 1 |

Edit User

2 |

Please enter the users information below.

3 | 4 |
5 | 6 | 7 | 8 |

9 | First Name:
10 | 11 |

12 | 13 |

14 | Last Name:
15 | 16 |

17 | 18 |

19 | Company Name:
20 | 21 |

22 | 23 |

24 | Phone:
25 | -- 26 |

27 | 28 |

29 | Password: (if changing password)
30 | 31 |

32 | 33 |

34 | Confirm Password: (if changing password)
35 | 36 |

37 | 38 | 39 | id);?> 40 | 41 | 42 |

43 | 44 | -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/views/auth/email/activate.tpl.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Activate account for

4 |

Please click this link to .

5 | 6 | -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/views/auth/email/forgot_password.tpl.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Reset Password for

4 |

Please click this link to .

5 | 6 | -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/views/auth/email/new_password.tpl.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |

New Password for

4 | 5 |

Your password has been reset to:

6 | 7 | -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/views/auth/forgot_password.php: -------------------------------------------------------------------------------- 1 |

Forgot Password

2 |

Please enter your email address so we can send you an email to reset your password.

3 | 4 |
5 | 6 | 7 | 8 |

9 | Email Address:
10 | 11 |

12 | 13 |

14 | 15 | -------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/views/auth/index.php: -------------------------------------------------------------------------------- 1 |

Users

2 |

Below is a list of the users.

3 | 4 |
5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 24 | 25 | 26 | 27 |
First NameLast NameEmailGroupsStatus
first_name;?>last_name;?>email;?> 20 | groups as $group):?> 21 | name;?>
22 | 23 |
active) ? anchor("auth/deactivate/".$user->id, 'Active') : anchor("auth/activate/". $user->id, 'Inactive');?>
28 | 29 |

Create a new user

-------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/views/auth/login.php: -------------------------------------------------------------------------------- 1 |

Login

2 |

Please login with your email/username and password below.

3 | 4 |
5 | 6 | 7 | 8 |

9 | 10 | 11 |

12 | 13 |

14 | 15 | 16 |

17 | 18 |

19 | 20 | 21 |

22 | 23 | 24 |

25 | 26 | 27 | 28 |

Forgot your password?

-------------------------------------------------------------------------------- /sparks/ion_auth/2.3.2/views/auth/reset_password.php: -------------------------------------------------------------------------------- 1 |

Change Password

2 | 3 |
4 | 5 | 6 | 7 |

8 | New Password (at least characters long):
9 | 10 |

11 | 12 |

13 | Confirm New Password:
14 | 15 |

16 | 17 | 18 | 19 | 20 |

21 | 22 | -------------------------------------------------------------------------------- /system/.htaccess: -------------------------------------------------------------------------------- 1 | Deny from all -------------------------------------------------------------------------------- /system/core/Controller.php: -------------------------------------------------------------------------------- 1 | $class) 45 | { 46 | $this->$var =& load_class($class); 47 | } 48 | 49 | $this->load =& load_class('Loader', 'core'); 50 | 51 | $this->load->initialize(); 52 | 53 | log_message('debug', "Controller Class Initialized"); 54 | } 55 | 56 | public static function &get_instance() 57 | { 58 | return self::$instance; 59 | } 60 | } 61 | // END Controller class 62 | 63 | /* End of file Controller.php */ 64 | /* Location: ./system/core/Controller.php */ -------------------------------------------------------------------------------- /system/core/Model.php: -------------------------------------------------------------------------------- 1 | $key; 52 | } 53 | } 54 | // END Model Class 55 | 56 | /* End of file Model.php */ 57 | /* Location: ./system/core/Model.php */ -------------------------------------------------------------------------------- /system/core/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /system/database/drivers/cubrid/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /system/database/drivers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /system/database/drivers/mssql/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /system/database/drivers/mssql/mssql_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsuported_feature'); 83 | } 84 | 85 | } 86 | 87 | /* End of file mssql_utility.php */ 88 | /* Location: ./system/database/drivers/mssql/mssql_utility.php */ -------------------------------------------------------------------------------- /system/database/drivers/mysql/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /system/database/drivers/mysqli/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /system/database/drivers/mysqli/mysqli_utility.php: -------------------------------------------------------------------------------- 1 | db->_escape_identifiers($table); 52 | } 53 | 54 | // -------------------------------------------------------------------- 55 | 56 | /** 57 | * Repair table query 58 | * 59 | * Generates a platform-specific query so that a table can be repaired 60 | * 61 | * @access private 62 | * @param string the table name 63 | * @return object 64 | */ 65 | function _repair_table($table) 66 | { 67 | return "REPAIR TABLE ".$this->db->_escape_identifiers($table); 68 | } 69 | 70 | // -------------------------------------------------------------------- 71 | 72 | /** 73 | * MySQLi Export 74 | * 75 | * @access private 76 | * @param array Preferences 77 | * @return mixed 78 | */ 79 | function _backup($params = array()) 80 | { 81 | // Currently unsupported 82 | return $this->db->display_error('db_unsuported_feature'); 83 | } 84 | } 85 | 86 | /* End of file mysqli_utility.php */ 87 | /* Location: ./system/database/drivers/mysqli/mysqli_utility.php */ -------------------------------------------------------------------------------- /system/database/drivers/oci8/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /system/database/drivers/oci8/oci8_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsuported_feature'); 83 | } 84 | } 85 | 86 | /* End of file oci8_utility.php */ 87 | /* Location: ./system/database/drivers/oci8/oci8_utility.php */ -------------------------------------------------------------------------------- /system/database/drivers/odbc/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /system/database/drivers/odbc/odbc_utility.php: -------------------------------------------------------------------------------- 1 | db->db_debug) 37 | { 38 | return $this->db->display_error('db_unsuported_feature'); 39 | } 40 | return FALSE; 41 | } 42 | 43 | // -------------------------------------------------------------------- 44 | 45 | /** 46 | * Optimize table query 47 | * 48 | * Generates a platform-specific query so that a table can be optimized 49 | * 50 | * @access private 51 | * @param string the table name 52 | * @return object 53 | */ 54 | function _optimize_table($table) 55 | { 56 | // Not a supported ODBC feature 57 | if ($this->db->db_debug) 58 | { 59 | return $this->db->display_error('db_unsuported_feature'); 60 | } 61 | return FALSE; 62 | } 63 | 64 | // -------------------------------------------------------------------- 65 | 66 | /** 67 | * Repair table query 68 | * 69 | * Generates a platform-specific query so that a table can be repaired 70 | * 71 | * @access private 72 | * @param string the table name 73 | * @return object 74 | */ 75 | function _repair_table($table) 76 | { 77 | // Not a supported ODBC feature 78 | if ($this->db->db_debug) 79 | { 80 | return $this->db->display_error('db_unsuported_feature'); 81 | } 82 | return FALSE; 83 | } 84 | 85 | // -------------------------------------------------------------------- 86 | 87 | /** 88 | * ODBC Export 89 | * 90 | * @access private 91 | * @param array Preferences 92 | * @return mixed 93 | */ 94 | function _backup($params = array()) 95 | { 96 | // Currently unsupported 97 | return $this->db->display_error('db_unsuported_feature'); 98 | } 99 | 100 | } 101 | 102 | /* End of file odbc_utility.php */ 103 | /* Location: ./system/database/drivers/odbc/odbc_utility.php */ -------------------------------------------------------------------------------- /system/database/drivers/pdo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /system/database/drivers/pdo/pdo_utility.php: -------------------------------------------------------------------------------- 1 | db->db_debug) 37 | { 38 | return $this->db->display_error('db_unsuported_feature'); 39 | } 40 | return FALSE; 41 | } 42 | 43 | // -------------------------------------------------------------------- 44 | 45 | /** 46 | * Optimize table query 47 | * 48 | * Generates a platform-specific query so that a table can be optimized 49 | * 50 | * @access private 51 | * @param string the table name 52 | * @return object 53 | */ 54 | function _optimize_table($table) 55 | { 56 | // Not a supported PDO feature 57 | if ($this->db->db_debug) 58 | { 59 | return $this->db->display_error('db_unsuported_feature'); 60 | } 61 | return FALSE; 62 | } 63 | 64 | // -------------------------------------------------------------------- 65 | 66 | /** 67 | * Repair table query 68 | * 69 | * Generates a platform-specific query so that a table can be repaired 70 | * 71 | * @access private 72 | * @param string the table name 73 | * @return object 74 | */ 75 | function _repair_table($table) 76 | { 77 | // Not a supported PDO feature 78 | if ($this->db->db_debug) 79 | { 80 | return $this->db->display_error('db_unsuported_feature'); 81 | } 82 | return FALSE; 83 | } 84 | 85 | // -------------------------------------------------------------------- 86 | 87 | /** 88 | * PDO Export 89 | * 90 | * @access private 91 | * @param array Preferences 92 | * @return mixed 93 | */ 94 | function _backup($params = array()) 95 | { 96 | // Currently unsupported 97 | return $this->db->display_error('db_unsuported_feature'); 98 | } 99 | 100 | } 101 | 102 | /* End of file pdo_utility.php */ 103 | /* Location: ./system/database/drivers/pdo/pdo_utility.php */ -------------------------------------------------------------------------------- /system/database/drivers/postgre/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /system/database/drivers/postgre/postgre_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsuported_feature'); 83 | } 84 | } 85 | 86 | 87 | /* End of file postgre_utility.php */ 88 | /* Location: ./system/database/drivers/postgre/postgre_utility.php */ -------------------------------------------------------------------------------- /system/database/drivers/sqlite/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /system/database/drivers/sqlite/sqlite_utility.php: -------------------------------------------------------------------------------- 1 | db_debug) 41 | { 42 | return $this->db->display_error('db_unsuported_feature'); 43 | } 44 | return array(); 45 | } 46 | 47 | // -------------------------------------------------------------------- 48 | 49 | /** 50 | * Optimize table query 51 | * 52 | * Is optimization even supported in SQLite? 53 | * 54 | * @access private 55 | * @param string the table name 56 | * @return object 57 | */ 58 | function _optimize_table($table) 59 | { 60 | return FALSE; 61 | } 62 | 63 | // -------------------------------------------------------------------- 64 | 65 | /** 66 | * Repair table query 67 | * 68 | * Are table repairs even supported in SQLite? 69 | * 70 | * @access private 71 | * @param string the table name 72 | * @return object 73 | */ 74 | function _repair_table($table) 75 | { 76 | return FALSE; 77 | } 78 | 79 | // -------------------------------------------------------------------- 80 | 81 | /** 82 | * SQLite Export 83 | * 84 | * @access private 85 | * @param array Preferences 86 | * @return mixed 87 | */ 88 | function _backup($params = array()) 89 | { 90 | // Currently unsupported 91 | return $this->db->display_error('db_unsuported_feature'); 92 | } 93 | } 94 | 95 | /* End of file sqlite_utility.php */ 96 | /* Location: ./system/database/drivers/sqlite/sqlite_utility.php */ -------------------------------------------------------------------------------- /system/database/drivers/sqlsrv/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /system/database/drivers/sqlsrv/sqlsrv_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsuported_feature'); 83 | } 84 | 85 | } 86 | 87 | /* End of file mssql_utility.php */ 88 | /* Location: ./system/database/drivers/mssql/mssql_utility.php */ -------------------------------------------------------------------------------- /system/database/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /system/fonts/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /system/fonts/texb.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joostvanveen/codeigniter-best-practises/0b6df9d5eac87c60709f31da516a1b63011123bf/system/fonts/texb.ttf -------------------------------------------------------------------------------- /system/helpers/directory_helper.php: -------------------------------------------------------------------------------- 1 | 0) && @is_dir($source_dir.$file)) 61 | { 62 | $filedata[$file] = directory_map($source_dir.$file.DIRECTORY_SEPARATOR, $new_depth, $hidden); 63 | } 64 | else 65 | { 66 | $filedata[] = $file; 67 | } 68 | } 69 | 70 | closedir($fp); 71 | return $filedata; 72 | } 73 | 74 | return FALSE; 75 | } 76 | } 77 | 78 | 79 | /* End of file directory_helper.php */ 80 | /* Location: ./system/helpers/directory_helper.php */ -------------------------------------------------------------------------------- /system/helpers/email_helper.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /system/helpers/language_helper.php: -------------------------------------------------------------------------------- 1 | lang->line($line); 46 | 47 | if ($id != '') 48 | { 49 | $line = '"; 50 | } 51 | 52 | return $line; 53 | } 54 | } 55 | 56 | // ------------------------------------------------------------------------ 57 | /* End of file language_helper.php */ 58 | /* Location: ./system/helpers/language_helper.php */ -------------------------------------------------------------------------------- /system/helpers/number_helper.php: -------------------------------------------------------------------------------- 1 | lang->load('number'); 43 | 44 | if ($num >= 1000000000000) 45 | { 46 | $num = round($num / 1099511627776, $precision); 47 | $unit = $CI->lang->line('terabyte_abbr'); 48 | } 49 | elseif ($num >= 1000000000) 50 | { 51 | $num = round($num / 1073741824, $precision); 52 | $unit = $CI->lang->line('gigabyte_abbr'); 53 | } 54 | elseif ($num >= 1000000) 55 | { 56 | $num = round($num / 1048576, $precision); 57 | $unit = $CI->lang->line('megabyte_abbr'); 58 | } 59 | elseif ($num >= 1000) 60 | { 61 | $num = round($num / 1024, $precision); 62 | $unit = $CI->lang->line('kilobyte_abbr'); 63 | } 64 | else 65 | { 66 | $unit = $CI->lang->line('bytes'); 67 | return number_format($num).' '.$unit; 68 | } 69 | 70 | return number_format($num, $precision).' '.$unit; 71 | } 72 | } 73 | 74 | 75 | /* End of file number_helper.php */ 76 | /* Location: ./system/helpers/number_helper.php */ -------------------------------------------------------------------------------- /system/helpers/path_helper.php: -------------------------------------------------------------------------------- 1 | load->library('typography'); 44 | 45 | return $CI->typography->nl2br_except_pre($str); 46 | } 47 | } 48 | 49 | // ------------------------------------------------------------------------ 50 | 51 | /** 52 | * Auto Typography Wrapper Function 53 | * 54 | * 55 | * @access public 56 | * @param string 57 | * @param bool whether to allow javascript event handlers 58 | * @param bool whether to reduce multiple instances of double newlines to two 59 | * @return string 60 | */ 61 | if ( ! function_exists('auto_typography')) 62 | { 63 | function auto_typography($str, $strip_js_event_handlers = TRUE, $reduce_linebreaks = FALSE) 64 | { 65 | $CI =& get_instance(); 66 | $CI->load->library('typography'); 67 | return $CI->typography->auto_typography($str, $strip_js_event_handlers, $reduce_linebreaks); 68 | } 69 | } 70 | 71 | 72 | // -------------------------------------------------------------------- 73 | 74 | /** 75 | * HTML Entities Decode 76 | * 77 | * This function is a replacement for html_entity_decode() 78 | * 79 | * @access public 80 | * @param string 81 | * @return string 82 | */ 83 | if ( ! function_exists('entity_decode')) 84 | { 85 | function entity_decode($str, $charset='UTF-8') 86 | { 87 | global $SEC; 88 | return $SEC->entity_decode($str, $charset); 89 | } 90 | } 91 | 92 | /* End of file typography_helper.php */ 93 | /* Location: ./system/helpers/typography_helper.php */ -------------------------------------------------------------------------------- /system/helpers/xml_helper.php: -------------------------------------------------------------------------------- 1 | ","\"", "'", "-"), 53 | array("&", "<", ">", """, "'", "-"), 54 | $str); 55 | 56 | // Decode the temp markers back to entities 57 | $str = preg_replace("/$temp(\d+);/","&#\\1;",$str); 58 | 59 | if ($protect_all === TRUE) 60 | { 61 | $str = preg_replace("/$temp(\w+);/","&\\1;", $str); 62 | } 63 | 64 | return $str; 65 | } 66 | } 67 | 68 | // ------------------------------------------------------------------------ 69 | 70 | /* End of file xml_helper.php */ 71 | /* Location: ./system/helpers/xml_helper.php */ -------------------------------------------------------------------------------- /system/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /system/language/english/calendar_lang.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /system/language/english/migration_lang.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

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

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /tools/README.md: -------------------------------------------------------------------------------- 1 | # CodeIgniter Spark 2 | 3 | Spark is a way to pull down packages automatically 4 | 5 | $ tools/spark install -v1.2 gravatar_helper 6 | 7 | And then you can load the package like so: 8 | 9 | $this->load->spark('gravatar_helper/1.2'); 10 | echo Gravatar_helper::from_email('john.crepezzi@gmail.com'); 11 | 12 | --- 13 | 14 | ## Adding a package 15 | 16 | $ tools/spark install -v1.2 gravatar 17 | $ tools/spark install gravatar # most recent version 18 | 19 | ## Removing a package 20 | 21 | $ tools/spark remove -v1.2 gravatar # remove a specific version 22 | $ tools/spark remove gravatar -f # remove all 23 | 24 | ## Reinstalling a package 25 | 26 | $ tools/spark reinstall -v1.2 gravatar # reinstall a specific version 27 | $ tools/spark reinstall gravatar -f # remove all versions and install latest 28 | 29 | ## Search for a package 30 | 31 | $ tools/spark search gravatar 32 | 33 | ## List installed packages 34 | 35 | $ tools/spark list 36 | 37 | ## Get Help 38 | 39 | $ tools/spark help 40 | 41 | --- 42 | 43 | ## Install 44 | 45 | Go to your favorite CI project, and run (must have CURL installed): 46 | 47 | $ php -r "$(curl -fsSL http://www.getsparks.org/static/install.php)" 48 | -------------------------------------------------------------------------------- /tools/lib/spark/sources: -------------------------------------------------------------------------------- 1 | # the main repository 2 | getsparks.org 3 | 4 | # list other repositories here 5 | -------------------------------------------------------------------------------- /tools/lib/spark/spark_exception.php: -------------------------------------------------------------------------------- 1 | tag = $this->tag; 13 | } 14 | 15 | static function get_spark($data) 16 | { 17 | if (self::git_installed()) 18 | { 19 | return new Git_spark($data); 20 | } 21 | else 22 | { 23 | Spark_utils::warning('Git not found - reverting to archived copy'); 24 | return new Zip_spark($data); 25 | } 26 | } 27 | 28 | private static function git_installed() 29 | { 30 | return !!`git`; 31 | } 32 | 33 | function location_detail() 34 | { 35 | return "Git repository at $this->base_location"; 36 | } 37 | 38 | function retrieve() 39 | { 40 | // check out the right tag 41 | `git clone --recursive $this->base_location $this->temp_path`; 42 | `cd $this->temp_path; git checkout $this->tag -b $this->temp_token`; 43 | // remove the git directory 44 | Spark_utils::remove_full_directory("$this->temp_path/.git"); 45 | 46 | if (!file_exists($this->temp_path)) 47 | { 48 | throw new Spark_exception('Failed to retrieve the spark ;('); 49 | } 50 | return true; 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /tools/lib/spark/spark_types/hg_spark.php: -------------------------------------------------------------------------------- 1 | tag = $this->tag; 9 | } 10 | 11 | static function get_spark($data) 12 | { 13 | if (self::hg_installed()) 14 | { 15 | return new Mercurial_spark($data); 16 | } 17 | else 18 | { 19 | Spark_utils::warning('Mercurial not found - reverting to archived copy'); 20 | return new Zip_spark($data); 21 | } 22 | } 23 | 24 | private static function hg_installed() 25 | { 26 | return !!`hg`; 27 | } 28 | 29 | function location_detail() 30 | { 31 | return "Mercurial repository at $this->base_location"; 32 | } 33 | 34 | function retrieve() 35 | { 36 | `hg clone -r$this->tag $this->base_location $this->temp_path`; 37 | // remove the mercurial directory 38 | Spark_utils::remove_full_directory("$this->temp_path/.hg"); 39 | 40 | if (!file_exists($this->temp_path)) 41 | { 42 | throw new Spark_exception('Failed to retrieve the spark ;('); 43 | } 44 | return true; 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /tools/lib/spark/spark_types/zip_spark.php: -------------------------------------------------------------------------------- 1 | temp_file = $this->temp_path . '.zip'; 9 | $this->archive_url = property_exists($this->data, 'archive_url') ? $this->data->archive_url : null; 10 | } 11 | 12 | function location_detail() 13 | { 14 | return "ZIP archive at $this->archive_url"; 15 | } 16 | 17 | private static function unzip_installed() 18 | { 19 | return !!`unzip`; 20 | } 21 | 22 | function retrieve() 23 | { 24 | file_put_contents($this->temp_file, file_get_contents($this->archive_url)); 25 | // Try a few ways to unzip 26 | if (class_exists('ZipArchive')) 27 | { 28 | $zip = new ZipArchive; 29 | $zip->open($this->temp_file); 30 | $zip->extractTo($this->temp_path); 31 | $zip->close(); 32 | } 33 | else 34 | { 35 | if (!self::unzip_installed()) 36 | { 37 | throw new Spark_exception('You have to install PECL ZipArchive or `unzip` to install this spark.'); 38 | } 39 | `unzip $this->temp_file -d $this->temp_path`; 40 | } 41 | 42 | if (!file_exists($this->temp_path)) 43 | { 44 | throw new Spark_exception('Failed to retrieve the spark ;('); 45 | } 46 | return true; 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /tools/spark: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | 1 ? $argv[1] : null; 30 | $args = $argc > 2 ? array_slice($argv, 2) : array(); 31 | 32 | $cli->execute($cmd, $args); 33 | -------------------------------------------------------------------------------- /tools/test/install_test.php: -------------------------------------------------------------------------------- 1 | capture_buffer_lines(function($cli) { 8 | $cli->execute('install', array('-v1.0', 'example-spark')); 9 | }); 10 | $success = (bool) (strpos(end($clines), chr(27) . '[1;36m[ SPARK ]' . 11 | chr(27) . '[0m Spark installed') === 0); 12 | Spark_utils::remove_full_directory(SPARK_PATH . '/example-spark'); 13 | $this->assertEquals(true, $success); 14 | } 15 | 16 | function test_install_without_version() 17 | { 18 | $clines = $this->capture_buffer_lines(function($cli) { 19 | $cli->execute('install', array('example-spark')); 20 | }); 21 | $success = (bool) (strpos(end($clines), chr(27) . '[1;36m[ SPARK ]' . 22 | chr(27) . '[0m Spark installed') === 0); 23 | Spark_utils::remove_full_directory(SPARK_PATH . '/example-spark'); 24 | $this->assertEquals(true, $success); 25 | } 26 | 27 | function test_install_with_invalid_spark() 28 | { 29 | $clines = $this->capture_buffer_lines(function($cli) { 30 | $cli->execute('install', array('jjks7878erHjhsjdkksj')); 31 | }); 32 | $success = (bool) (strpos(end($clines), chr(27) . '[1;31m[ ERROR ]' . 33 | chr(27) . '[0m Unable to find spark') === 0); 34 | Spark_utils::remove_full_directory(SPARK_PATH . '/example-spark'); 35 | $this->assertEquals(true, $success); 36 | } 37 | 38 | function test_install_with_invalid_spark_version() 39 | { 40 | $clines = $this->capture_buffer_lines(function($cli) { 41 | $cli->execute('install', array('v9.4', 'example-spark')); 42 | }); 43 | $success = (bool) (strpos(reset($clines), chr(27) . '[1;31m[ ERROR ]' . 44 | chr(27) . '[0m Uh-oh!') === 0); 45 | Spark_utils::remove_full_directory(SPARK_PATH . '/example-spark'); 46 | $this->assertEquals(true, $success); 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /tools/test/lib/bootstrap.php: -------------------------------------------------------------------------------- 1 | source_names[] = 'getsparks.org'; 12 | $this->sources = array_map(function($n) { 13 | return new Spark_source($n); 14 | }, $this->source_names); 15 | $this->cli = new Spark_CLI($this->sources); 16 | } 17 | 18 | function tearDown() 19 | { 20 | if (is_dir(SPARK_PATH . '/example-spark')) 21 | { 22 | Spark_utils::remove_full_directory(SPARK_PATH . '/example-spark'); 23 | } 24 | } 25 | 26 | protected function capture_buffer_lines($func) { 27 | ob_start(); 28 | $func($this->cli); 29 | $t = ob_get_contents(); 30 | ob_end_clean(); 31 | if ($t == '') return array(); // empty 32 | return explode("\n", substr($t, 0, count($t) - 2)); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /tools/test/lib/test-sparks/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joostvanveen/codeigniter-best-practises/0b6df9d5eac87c60709f31da516a1b63011123bf/tools/test/lib/test-sparks/.gitkeep -------------------------------------------------------------------------------- /tools/test/phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | ./ 7 | 8 | 9 | -------------------------------------------------------------------------------- /tools/test/remove_test.php: -------------------------------------------------------------------------------- 1 | capture_buffer_lines(function($cli) { 9 | $cli->execute('install', array('-v1.0', 'example-spark')); // Spark needs installed first 10 | $cli->execute('remove', array('-v1.0', 'example-spark')); 11 | }); 12 | $success = (bool) (strpos(end($clines), chr(27) . '[1;36m[ SPARK ]' . chr(27) . '[0m Spark removed') === 0 && ! is_dir(SPARK_PATH.'/example-spark')); 13 | $this->assertEquals(true, $success); 14 | Spark_utils::remove_full_directory(SPARK_PATH . '/example-spark'); 15 | } 16 | 17 | function test_remove_without_flags() 18 | { 19 | $clines = $this->capture_buffer_lines(function($cli) { 20 | $cli->execute('install', array('-v1.0', 'example-spark')); // Spark needs installed first 21 | $cli->execute('remove', array('example-spark')); 22 | }); 23 | $success = (bool) (strpos(end($clines), chr(27) . '[1;31m[ ERROR ]' . chr(27) . '[0m Please specify') === 0 && is_dir(SPARK_PATH.'/example-spark')); 24 | $this->assertEquals(true, $success); 25 | Spark_utils::remove_full_directory(SPARK_PATH . '/example-spark'); 26 | } 27 | 28 | function test_remove_with_f_flag() 29 | { 30 | $clines = $this->capture_buffer_lines(function($cli) { 31 | $cli->execute('install', array('-v1.0', 'example-spark')); // Spark needs installed first 32 | $cli->execute('remove', array('-f', 'example-spark')); 33 | }); 34 | $success = (bool) (strpos(end($clines), chr(27) . '[1;36m[ SPARK ]' . chr(27) . '[0m Spark removed') === 0 && ! is_dir(SPARK_PATH.'/example-spark')); 35 | $this->assertEquals(true, $success); 36 | Spark_utils::remove_full_directory(SPARK_PATH . '/example-spark'); 37 | } 38 | 39 | function test_remove_with_invalid_version() 40 | { 41 | $clines = $this->capture_buffer_lines(function($cli) { 42 | $cli->execute('install', array('-v1.0', 'example-spark')); // Spark needs installed first 43 | $cli->execute('remove', array('-v9.4', 'example-spark')); 44 | }); 45 | $success = (bool) (strpos(end($clines), chr(27) . '[1;36m[ SPARK ]' . chr(27) . '[0m Looks like that spark isn\'t installed') === 0 && is_dir(SPARK_PATH.'/example-spark')); 46 | $this->assertEquals(true, $success); 47 | Spark_utils::remove_full_directory(SPARK_PATH . '/example-spark'); 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /tools/test/search_test.php: -------------------------------------------------------------------------------- 1 | capture_buffer_lines(function($cli) { 8 | $cli->execute('search', array('markdown')); 9 | }); 10 | // Less than ideal, I know 11 | $this->assertEquals(array("\033[33mmarkdown\033[0m - A markdown helper for easy parsing of markdown"), $clines); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /tools/test/version_test.php: -------------------------------------------------------------------------------- 1 | capture_buffer_lines(function($cli) { 8 | $cli->execute('version'); 9 | }); 10 | $this->assertEquals(array(SPARK_VERSION), $clines); 11 | } 12 | 13 | function test_sources() 14 | { 15 | $clines = $this->capture_buffer_lines(function($cli) { 16 | $cli->execute('sources'); 17 | }); 18 | $this->assertEquals($this->source_names, $clines); 19 | } 20 | 21 | function test_bad_command() 22 | { 23 | $clines = $this->capture_buffer_lines(function($cli) { 24 | $cli->execute('fake'); 25 | }); 26 | $this->assertEquals(array(chr(27) . '[1;31m[ ERROR ]' . chr(27) . '[0m Uh-oh!', chr(27) . '[1;31m[ ERROR ]' . chr(27) . '[0m Unknown action: fake'), $clines); 27 | } 28 | 29 | function test_search_empty() 30 | { 31 | $clines = $this->capture_buffer_lines(function($cli) { 32 | $cli->execute('search', array('nothing_found_here')); 33 | }); 34 | $this->assertEquals(array(), $clines); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /vendor/autoload.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/netcarver/textile/src/', 10 | ); 11 | -------------------------------------------------------------------------------- /vendor/composer/autoload_real.php: -------------------------------------------------------------------------------- 1 | $path) { 31 | $loader->add($namespace, $path); 32 | } 33 | 34 | $classMap = require __DIR__ . '/autoload_classmap.php'; 35 | if ($classMap) { 36 | $loader->addClassMap($classMap); 37 | } 38 | 39 | $loader->register(true); 40 | 41 | return $loader; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /vendor/composer/installed.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "netcarver/textile", 4 | "version": "dev-master", 5 | "version_normalized": "9999999-dev", 6 | "source": { 7 | "type": "git", 8 | "url": "https://github.com/netcarver/textile.git", 9 | "reference": "725143be6e147dfc1e21e1c912f377084bb8c57a" 10 | }, 11 | "dist": { 12 | "type": "zip", 13 | "url": "https://api.github.com/repos/netcarver/textile/zipball/725143be6e147dfc1e21e1c912f377084bb8c57a", 14 | "reference": "725143be6e147dfc1e21e1c912f377084bb8c57a", 15 | "shasum": "" 16 | }, 17 | "require": { 18 | "php": ">=5.3.0" 19 | }, 20 | "time": "2013-01-27 23:52:35", 21 | "type": "library", 22 | "extra": { 23 | "branch-alias": { 24 | "dev-master": "3.5-dev" 25 | } 26 | }, 27 | "installation-source": "source", 28 | "autoload": { 29 | "psr-0": { 30 | "Netcarver\\Textile": "src/" 31 | } 32 | }, 33 | "notification-url": "https://packagist.org/downloads/", 34 | "license": [ 35 | "BSD-3-Clause" 36 | ], 37 | "description": "A lightweight markup language that takes (almost) plaintext and converts it into well formed HTML.", 38 | "homepage": "https://github.com/netcarver/textile" 39 | } 40 | ] 41 | --------------------------------------------------------------------------------